Re: bug in Linux 2.4.19RC1 i815e agpgart module, unable to determineaperture

Nicolas Aspert (Nicolas.Aspert@epfl.ch)
Thu, 27 Jun 2002 09:07:41 +0200


This is a multi-part message in MIME format.
--------------020100090800070806040307
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Adrian Bunk wrote:

> Since -rc1 agpgart_be.c uses for the 815 new 815-specific instead of the
> generic intel functions.
>
> Could you try whether reverting the following part of the patch fixes the
> problem?
>
> --- linux/drivers/char/agp/agpgart_be.c 2002-06-04 01:22:07.000000000 +0000
> +++ linux/drivers/char/agp/agpgart_be.c 2002-06-24 15:23:36.000000000 +0000
> @@ -3929,7 +4005,7 @@
> INTEL_I815,
> "Intel",
> "i815",
> - intel_generic_setup },
> + intel_815_setup },
> { PCI_DEVICE_ID_INTEL_820_0,
> PCI_VENDOR_ID_INTEL,
> INTEL_I820,
>
>
>

Hello

I suspect that the problem (from what you sent) comes from the
'intel_8xx_fetch_size' function. The APSIZE register has only one bit
with valuable information with intel815 chipset, all other bits are
'reserved'. The problem you saw may come from reading those reserved bits.
I attach a patch against 2.4.19-rc1 that aims at fixing this. Could you
please test and report whether things get better/worse ?

Best regards

Nicolas.

-- 
Nicolas Aspert      Signal Processing Institute (ITS)
Swiss Federal Institute of Technology (EPFL)

--------------020100090800070806040307 Content-Type: text/plain; name="i815-fetch-size-2.4.19-rc1.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="i815-fetch-size-2.4.19-rc1.diff"

diff -Nru linux-2.4.19-rc1.clean/drivers/char/agp/agpgart_be.c linux-2.4.19-rc1/drivers/char/agp/agpgart_be.c --- linux-2.4.19-rc1.clean/drivers/char/agp/agpgart_be.c Thu Jun 27 08:56:02 2002 +++ linux-2.4.19-rc1/drivers/char/agp/agpgart_be.c Thu Jun 27 08:59:21 2002 @@ -1402,6 +1402,10 @@ aper_size_info_8 *values; pci_read_config_byte(agp_bridge.dev, INTEL_APSIZE, &temp); + + if (agp_bridge.type == INTEL_I815) + temp &= (1 << 3); + values = A_SIZE_8(agp_bridge.aperture_sizes); for (i = 0; i < agp_bridge.num_aperture_sizes; i++) {

--------------020100090800070806040307--

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