| 
     
      
      
      From: Till A. <ti...@ad...> - 2001-11-17 11:37:09
       
   | 
Hello folks,
I've been trying to get the atyfb driver to work on my laptop which
sports a card that identifies itself as a ATI Mach64 : ATI|3D Rage LT
Pro AGP-133. I can select atyfb at boot time and pass it a resolution and
it boots up without complaint. The thing is, there isnt a single
resolution/depth combination that works as expected. Some
resolution/depth combinations produce only a flickering screen, some are
readable, but are missing about 1/3 of the right part of the screen,
some appear fine, but only cover an area in the upper left corner of the
screen and dont fill the screen.
Now this card supports something ATI calls ratiometric expansion, which
blows the screen up to the full size of the display.  The laptop has a
key combination (Fn-F3) which toggles it. Booting the machine with
expansion off produces much better results than with it enabled,
although the screen does not get expanded (as is to be expected).
Hitting the above-mentioned key combination during operation causes a
hard lock of the machine.
If I'm reading the docs correctly, this feature is controllable via a
bunch of registers, that the atyfb does not apper to touch at all at the
moment. (Bear with me if I'm totally off here, I am no expert at any of
this by a long stretch). The mach64 driver included in the current
XFree86 on the other hand performs some initial setting up and later
disabling of this scaling feature, and the X driver performs beautifully
on this laptop.
So does the atyfb driver need to be extended to set the stretching
registers to a sane state to work properly with this card? If so, is
there someone on this list for whom this would be a three minute job and
who'd be willing to hack this in? I'm willing to help and test, but I'd
appreciate the guidance of someone with more experience in this.
I also noticed that the vertical yres is weird when using atyfb. I found
this around line 950 of atyfb_base.c which I dont understand and which I
think causes this: 
if (var.yres == var.yres_virtual) {
    32 vram = (fb->total_vram - (PAGE_SIZE << 2));
    var.yres_virtual = ((vram * 8) / var.bits_per_pixel) / var.xres_virtual;
    if (var.yres_virtual < var.yres)
         var.yres_virtual = var.yres;
}
What is the reasoning behind this?
Cheers,
Till
-- 
mailto: ti...@ad...        
http://www.adam-lilienthal.de/till
 | 
| 
     
      
      
      From: Till A. <ti...@ad...> - 2001-11-17 12:41:02
       
   | 
Sorry for the reply to self, but I should have mentioned the kernel version I've been using. It's 2.4.12. Sorry, Till -- mailto: ti...@ad... http://www.adam-lilienthal.de/till  | 
| 
     
      
      
      From: Geert U. <ge...@li...> - 2001-11-18 09:29:06
       
   | 
On Sat, 17 Nov 2001, Till Adam wrote:
> So does the atyfb driver need to be extended to set the stretching
> registers to a sane state to work properly with this card? If so, is
Yes.
> there someone on this list for whom this would be a three minute job and
> who'd be willing to hack this in? I'm willing to help and test, but I'd
> appreciate the guidance of someone with more experience in this.
Some PPC people already started working on this.
> I also noticed that the vertical yres is weird when using atyfb. I found
> this around line 950 of atyfb_base.c which I dont understand and which I
> think causes this:
>
> if (var.yres == var.yres_virtual) {
>     32 vram = (fb->total_vram - (PAGE_SIZE << 2));
>     var.yres_virtual = ((vram * 8) / var.bits_per_pixel) / var.xres_virtual;
>     if (var.yres_virtual < var.yres)
>          var.yres_virtual = var.yres;
> }
>
> What is the reasoning behind this?
You mean the virtual vertical resolution? It's made as large as possible, so
the console driver can use the virtual screen to do fast text scrolling, using
panning of the virtual screen.
Gr{oetje,eeting}s,
						Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
 | 
| 
     
      
      
      From: Till A. <ti...@ad...> - 2001-11-18 09:37:21
       
   | 
# Thus spake Geert Uytterhoeven (ge...@li...):
> On Sat, 17 Nov 2001, Till Adam wrote:
> > So does the atyfb driver need to be extended to set the stretching
> > registers to a sane state to work properly with this card? If so, is
> 
> Yes.
> 
> > there someone on this list for whom this would be a three minute job and
> > who'd be willing to hack this in? I'm willing to help and test, but I'd
> > appreciate the guidance of someone with more experience in this.
> 
> Some PPC people already started working on this.
Any details on who to hook up with or where to find these folks? A
mailing list perhaps?
> > I also noticed that the vertical yres is weird when using atyfb. I found
> > this around line 950 of atyfb_base.c which I dont understand and which I
> > think causes this:
> >
> > if (var.yres == var.yres_virtual) {
> >     32 vram = (fb->total_vram - (PAGE_SIZE << 2));
> >     var.yres_virtual = ((vram * 8) / var.bits_per_pixel) / var.xres_virtual;
> >     if (var.yres_virtual < var.yres)
> >          var.yres_virtual = var.yres;
> > }
> >
> > What is the reasoning behind this?
> 
> You mean the virtual vertical resolution? It's made as large as possible, so
> the console driver can use the virtual screen to do fast text scrolling, using
> panning of the virtual screen.
Oh, that makes sense. Thanks for explaining that.
Cheers,
Till
-- 
mailto: ti...@ad...        
http://www.adam-lilienthal.de/till
 | 
| 
     
      
      
      From: Geert U. <ge...@li...> - 2001-11-18 14:41:53
       
   | 
On Sun, 18 Nov 2001, Till Adam wrote:
> # Thus spake Geert Uytterhoeven (ge...@li...):
>
> > On Sat, 17 Nov 2001, Till Adam wrote:
> > > So does the atyfb driver need to be extended to set the stretching
> > > registers to a sane state to work properly with this card? If so, is
> >
> > Yes.
> >
> > > there someone on this list for whom this would be a three minute job and
> > > who'd be willing to hack this in? I'm willing to help and test, but I'd
> > > appreciate the guidance of someone with more experience in this.
> >
> > Some PPC people already started working on this.
>
> Any details on who to hook up with or where to find these folks? A
> mailing list perhaps?
lin...@li... (CC'ed in this message)
Gr{oetje,eeting}s,
						Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
 | 
| 
     
      
      
      From: Kevin B. H. <khe...@iv...> - 2001-11-18 15:22:22
       
   | 
Hi,
BTW: if you are adventerous and if the Mach64 stretch registers are 
anything like those iin Rage128 or Radeon, you can check out the latest 
patches to either to see how this is done for those ATI cards and try to 
implement it yourself if you want to.
A recent post to this mailing list (see the archive for a post whose 
subject is "Scaling registers on r128" from Adrian Cox) supplied a patch 
to the Rage128 that did exactly this.  You may be able to modify it easily.
Just a thought.
Kevin
On November 18, 2001 09:41, Geert Uytterhoeven wrote:
> On Sun, 18 Nov 2001, Till Adam wrote:
> > # Thus spake Geert Uytterhoeven (ge...@li...):
> > > On Sat, 17 Nov 2001, Till Adam wrote:
> > > > So does the atyfb driver need to be extended to set the stretching
> > > > registers to a sane state to work properly with this card? If so,
> > > > is
> > >
> > > Yes.
> > >
> > > > there someone on this list for whom this would be a three minute
> > > > job and who'd be willing to hack this in? I'm willing to help and
> > > > test, but I'd appreciate the guidance of someone with more
> > > > experience in this.
> > >
> > > Some PPC people already started working on this.
> >
> > Any details on who to hook up with or where to find these folks? A
> > mailing list perhaps?
>
> lin...@li... (CC'ed in this message)
>
> Gr{oetje,eeting}s,
>
> 						Geert
 | 
| 
     
      
      
      From: Benjamin H. <be...@ke...> - 2001-11-19 13:20:55
       
   | 
>BTW: if you are adventerous and if the Mach64 stretch registers are >anything like those iin Rage128 or Radeon, you can check out the latest >patches to either to see how this is done for those ATI cards and try to >implement it yourself if you want to. > >A recent post to this mailing list (see the archive for a post whose >subject is "Scaling registers on r128" from Adrian Cox) supplied a patch >to the Rage128 that did exactly this. You may be able to modify it easily. > >Just a thought. In fact, that depends if you have an LT-G, an LT-Pro or a Mobility M1. A friend of mine have been hacking with those lately, he'll send more some more detailed infos once he gets something working. Ben.  |