Re: 2.6.22-rc5 regression

From: Wang Zhenyu
Date: Tue Jun 19 2007 - 21:16:41 EST


On 2007.06.20 01:37:16 +0000, Carlo Wood wrote:
> The result of this patch is that the kernel starts to print
> "agpgart: Detected an Intel 965G Chipset." again with the usual
> disastrous results. Now, that doesn't mean that this patch is
> wrong - but it explains why the problem returns after this patch.
>

Yep, the device table patch doesn't change any function, so your problem
started from when 965G support patch has been in kernel.

Carlo, pls try a kernel param of "pci=nommconf" to see if that could
fix your hang. There might be a BIOS bug, as similar issue also happen
like https://bugzilla.novell.com/show_bug.cgi?id=228683

I think for i965 we could have following patch to fix this, we may
fail if no IGD device got detected.

Signed-off-by: Wang Zhenyu <zhenyu.z.wang@xxxxxxxxx>
---
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
index 0439ee9..5a54a9c 100644
--- a/drivers/char/agp/intel-agp.c
+++ b/drivers/char/agp/intel-agp.c
@@ -1855,15 +1855,15 @@ static const struct intel_driver_description {
{ PCI_DEVICE_ID_INTEL_82946GZ_HB, PCI_DEVICE_ID_INTEL_82946GZ_IG, 0, "946GZ",
&intel_845_driver, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965G_1_HB, PCI_DEVICE_ID_INTEL_82965G_1_IG, 0, "965G",
- &intel_845_driver, &intel_i965_driver },
+ NULL, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965Q_HB, PCI_DEVICE_ID_INTEL_82965Q_IG, 0, "965Q",
- &intel_845_driver, &intel_i965_driver },
+ NULL, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965G_HB, PCI_DEVICE_ID_INTEL_82965G_IG, 0, "965G",
- &intel_845_driver, &intel_i965_driver },
+ NULL, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965GM_HB, PCI_DEVICE_ID_INTEL_82965GM_IG, 1, "965GM",
- &intel_845_driver, &intel_i965_driver },
+ NULL, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_82965GM_HB, PCI_DEVICE_ID_INTEL_82965GME_IG, 0, "965GME/GLE",
- &intel_845_driver, &intel_i965_driver },
+ NULL, &intel_i965_driver },
{ PCI_DEVICE_ID_INTEL_7505_0, 0, 0, "E7505", &intel_7505_driver, NULL },
{ PCI_DEVICE_ID_INTEL_7205_0, 0, 0, "E7205", &intel_7505_driver, NULL },
{ PCI_DEVICE_ID_INTEL_G33_HB, PCI_DEVICE_ID_INTEL_G33_IG, 0, "G33",
@@ -1917,6 +1917,7 @@ static int __devinit agp_intel_probe(struct pci_dev *pdev,
}

if (bridge->driver == NULL) {
+ /* The bridge has no AGP or no gfx device */
printk(KERN_WARNING PFX "Failed to find bridge device "
"(chip_id: %04x)\n", intel_agp_chipsets[i].gmch_chip_id);
agp_put_bridge(bridge);
---
-
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/