[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#298099: kernel: please allow building AGP_INTEL on x86_64



Package: kernel
Severity: normal
Tags: patch upstream

The kernel's build system insists that users of x86_64 hardware use
AGP_INTEL_MCH rather than AGP_INTEL.  However, the MCH driver supports
a far more limited range of hardware, and in particular fails to
support my system's i915G chipset.  (I have one of the new P4s with
support for EM64T.)

Perhaps it would be better to add support for this chipset to the MCH
driver, but the "regular" driver seems to work fine -- X runs without
problems, certainly.

I have attached a (trivial) patch to drop the bogus restriction, along
with a patch for some 64-bit cleanliness issues in i810_dma.c that it
uncovers (though the latter's probably gratuitous given that the
original i810 allmost certainly doesn't support any 64-bit processors
anyway).

--- kernel-source-2.6.11/drivers/char/agp/Kconfig~	2005-03-02 02:38:10.000000000 -0500
+++ kernel-source-2.6.11/drivers/char/agp/Kconfig	2005-03-03 14:03:51.000000000 -0500
@@ -78,7 +78,7 @@
 
 config AGP_INTEL
 	tristate "Intel 440LX/BX/GX, I8xx and E7x05 chipset support"
-	depends on AGP && X86 && !X86_64
+	depends on AGP && X86
 	help
 	  This option gives you AGP support for the GLX component of XFree86 4.x
 	  on Intel 440LX/BX/GX, 815, 820, 830, 840, 845, 850, 860, 875,
--- kernel-source-2.6.11/drivers/char/drm/i810_dma.c~	2005-03-02 02:37:55.000000000 -0500
+++ kernel-source-2.6.11/drivers/char/drm/i810_dma.c	2005-03-04 11:27:58.000000000 -0500
@@ -847,7 +847,7 @@
 		*(u32 *)buf_priv->kernel_virtual = ((GFX_OP_PRIMITIVE | prim | ((used/4)-2)));
 
 		if (used & 4) {
-			*(u32 *)((u32)buf_priv->kernel_virtual + used) = 0;
+			*(u32 *)((unsigned long)buf_priv->kernel_virtual + used) = 0;
 			used += 4;
 		}
 
@@ -1207,7 +1207,7 @@
 
 	if (buf_priv->currently_mapped == I810_BUF_MAPPED) {
 		if (used & 4) {
-			*(u32 *)((u32)buf_priv->virtual + used) = 0;
+			*(u32 *)((unsigned long)buf_priv->virtual + used) = 0;
 			used += 4;
 		}
 



Reply to: