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;
                }
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to