Re: Patch: Make iBook1 work again

From: Daniël Mantione
Date: Thu Sep 18 2003 - 03:01:27 EST


On Wed, 17 Sep 2003, Daniël Mantione wrote:

> So, to fix this we can look at the X driver, I must have made an error
> somewhere.

I found a problem, but it would mean that it was already broken before my
patch.

X does this test to check if a chip has 24 bit or a 32 bit precision display
fifo settings:

if (pATI->Chip < ATI_CHIP_264VT4)
{
pATI->XCLKPageFaultDelay += 2;
pATI->XCLKMaxRASDelay += 3;
pATI->DisplayFIFODepth = 24;
}

In atichip.h, ATI_CHIP_264LT is smaller than ATI_CHIP_264VT4, so according
to the X sources, the Mach64 LT has a fifo depth 24.

Now my code:

if (M64_HAS(FIFO_24)) {
info->fifo_size = 24;
info->xclkpagefaultdelay += 2;
info->xclkmaxrasdelay += 3;
} else {
info->fifo_size = 32;
};

That looks ok. But look at the aty_chips table:

{ 0x4c47, 0x4c47, 0x00, 0x00, m64n_ltg, 230, 63, 63, M64F_GT |
M64F_INTEGRATED | M64F_GTB_DSP | M64F_SDRAM_MAGIC_PLL |
M64F_EXTRA_BRIGHT | M64F_LT_SLEEP | M64F_G3_PB_1024x768 },

The Mach64 LT does not have the M64F_FIFO_24 flag set! That will result in
completely different values to be calculated and cause a distorted
display.

Greetings,

Daniël Mantione

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/