On Sat, Jan 26, 2013 at 05:06:54AM +0900, Taku YAMAMOTO wrote:
> Hi all,
> 
> A good news to owners of i830, i845, i852, i855 and i865 (a.k.a. gen2),
> who've got frustrated with the bad performance with KMS.
> 
> I managed to track down the root cause of the slowness of gen2 with KMS and
> finally fixed it.
> The attached one-liner patch is the fix.
> (It was my surprise that the actual problem lied in agp rather than i915kms.)
> 
> -- 
> -|-__   YAMAMOTO, Taku
>  | __ <     <[email protected]>
> 
>       - A chicken is an egg's way of producing more eggs. -

> --- sys/dev/agp/agp_i810.c.orig       2013-01-20 16:18:33.382363986 +0900
> +++ sys/dev/agp/agp_i810.c    2013-01-25 05:47:17.046570619 +0900
> @@ -2228,7 +2228,7 @@ agp_i830_chipset_flush(device_t dev)
>       bus_write_4(sc->sc_res[0], AGP_I830_HIC, hic | (1 << 31));
>       for (i = 0; i < 20000 /* 1 sec */; i++) {
>               hic = bus_read_4(sc->sc_res[0], AGP_I830_HIC);
> -             if ((hic & (1 << 31)) != 0)
> +             if ((hic & (1 << 31)) == 0)
>                       break;
>               DELAY(50);
>       }


This looks right, comparing our (mine) code and the Linux intel-gtt.c.
Thank you for tracking it down.

Unfortunately, this magic is not documented at all. The 855GM datasheet
I have completely omits a description for the register 0x70 of the host
bridge. The only reference we are allowed to see is in the Linux agp
driver source.

I will wait a little before committing, in the hope that someone gives
the change an additional test.

Attachment: pgpS6Q3zTcWt9.pgp
Description: PGP signature

Reply via email to