Re: Getting Dual Independent Heads to work on Debian(sid) on iBook
- To: "Andreakis, Dean (MED)" <Dean.Andreakis@med.ge.com>
- Cc: email@example.com, devel@XFree86.Org
- Subject: Re: Getting Dual Independent Heads to work on Debian(sid) on iBook
- From: Benjamin Herrenschmidt <firstname.lastname@example.org>
- Date: 13 Jun 2003 17:37:28 +0200
- Message-id: <1055518647.914.41.camel@gaston>
- In-reply-to: <email@example.com>
- References: <firstname.lastname@example.org> <1055513177.916.34.camel@gaston> <email@example.com>
On Fri, 2003-06-13 at 17:08, Andreakis, Dean (MED) wrote:
> Given this result I tried comparing the sections of code in the kernel
> fbdev driver and the XF86 radeon driver that sets up the PLL and there
> was just a few minor diff's in the default min/max values. I went ahead
> and changed these to match and recompiled/installed XFree86 4.3 etc. but
> it didn't make any difference...the flickering still occured. Maybe I am
> looking at the wrong parts of code....hmmm....
Look for if (machine_is_compatible("PowerBook4,3")) in radeonfb, this
is where I hard code the PLL value for the panel:
if (machine_is_compatible("PowerBook4,3") && rinfo->arch == RADEON_M7)
regs->ppll_div_3 = 0x000600ad;
The yellow tint is usually a symptom of wrong endian. Look at the
code that sets SURFACE_CNTL and tweak it (try setting bits for
both apertures for example).
> I guess the other weird thing is the color issue (yellowing). It also
> seems to be related to the BusID setting. If I use 0:16:0 in the device
> sections then its yellow. If I use 0:10:0 in just the external crt
> device section (an incorrect value per your earlier comments) then the
> colors are all ok on both screens etc...
Hrm... Make no sense to me...
> In any case I appreiciate your comments. I guess I really want to get
> down to enabling the dual-head mode first and then I can worry about any
> flickering and color issues secondarily. On that note I looked at my
> XF86 log file and noticed the following error:
> (EE) RADEON (0): FBIOPAN_DISPLAY: Invalid argument
> This end up being in the fb_ioctl function in the kernel fbmem.c
> module.I am not sure whats going on in this particular section so maybe
> you can comment.
You are probably hitting this:
if ((var->xoffset + var->xres > var->xres_virtual)
|| (var->yoffset + var->yres > var->yres_virtual))
In radeonfb fb_pan_display()