i915: compat code doesn't work in i8xx hw.

main
Dave Airlie 2007-11-06 18:00:10 +11:00
parent 81b7f9b71c
commit 349eebd567
1 changed files with 12 additions and 12 deletions

View File

@ -2,6 +2,9 @@
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
#include "i915_drm.h"
#include "i915_drv.h"
#define PCI_DEVICE_ID_INTEL_82946GZ_HB 0x2970 #define PCI_DEVICE_ID_INTEL_82946GZ_HB 0x2970
#define PCI_DEVICE_ID_INTEL_82965G_1_HB 0x2980 #define PCI_DEVICE_ID_INTEL_82965G_1_HB 0x2980
#define PCI_DEVICE_ID_INTEL_82965Q_HB 0x2990 #define PCI_DEVICE_ID_INTEL_82965Q_HB 0x2990
@ -13,17 +16,6 @@
#define PCI_DEVICE_ID_INTEL_Q35_HB 0x29B0 #define PCI_DEVICE_ID_INTEL_Q35_HB 0x29B0
#define PCI_DEVICE_ID_INTEL_Q33_HB 0x29D0 #define PCI_DEVICE_ID_INTEL_Q33_HB 0x29D0
#define IS_I965 (agp_dev->device == PCI_DEVICE_ID_INTEL_82946GZ_HB || \
agp_dev->device == PCI_DEVICE_ID_INTEL_82965G_1_HB || \
agp_dev->device == PCI_DEVICE_ID_INTEL_82965Q_HB || \
agp_dev->device == PCI_DEVICE_ID_INTEL_82965G_HB || \
agp_dev->device == PCI_DEVICE_ID_INTEL_82965GM_HB || \
agp_dev->device == PCI_DEVICE_ID_INTEL_82965GME_HB)
#define IS_G33 (agp_dev->device == PCI_DEVICE_ID_INTEL_G33_HB || \
agp_dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \
agp_dev->device == PCI_DEVICE_ID_INTEL_Q33_HB)
#define I915_IFPADDR 0x60 #define I915_IFPADDR 0x60
#define I965_IFPADDR 0x70 #define I965_IFPADDR 0x70
@ -109,11 +101,15 @@ void intel_init_chipset_flush_compat(struct drm_device *dev)
{ {
struct pci_dev *agp_dev = dev->agp->agp_info.device; struct pci_dev *agp_dev = dev->agp->agp_info.device;
/* not flush on i8xx */
if (!IS_I9XX(dev))
return;
intel_private.ifp_resource.name = "GMCH IFPBAR"; intel_private.ifp_resource.name = "GMCH IFPBAR";
intel_private.ifp_resource.flags = IORESOURCE_MEM; intel_private.ifp_resource.flags = IORESOURCE_MEM;
/* Setup chipset flush for 915 */ /* Setup chipset flush for 915 */
if (IS_I965 || IS_G33) { if (IS_I965G(dev) || IS_G33(dev)) {
intel_i965_g33_setup_chipset_flush(agp_dev); intel_i965_g33_setup_chipset_flush(agp_dev);
} else { } else {
intel_i915_setup_chipset_flush(agp_dev); intel_i915_setup_chipset_flush(agp_dev);
@ -128,6 +124,10 @@ void intel_init_chipset_flush_compat(struct drm_device *dev)
void intel_fini_chipset_flush_compat(struct drm_device *dev) void intel_fini_chipset_flush_compat(struct drm_device *dev)
{ {
/* not flush on i8xx */
if (!IS_I9XX(dev))
return;
iounmap(intel_private.flush_page); iounmap(intel_private.flush_page);
release_resource(&intel_private.ifp_resource); release_resource(&intel_private.ifp_resource);
} }