gma500: Only register interrupt handler for poulsbo hardware
authorPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
Fri, 26 Aug 2011 10:17:42 +0000 (11:17 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 26 Aug 2011 17:46:42 +0000 (10:46 -0700)
First step in adding proper irq handling. We'll start with poulsbo support so
make sure other chips don't touch drm_irq_install().

Signed-off-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/gma500/psb_drv.c
drivers/staging/gma500/psb_drv.h

index b2cdce7..d91083a 100644 (file)
@@ -410,7 +410,7 @@ static int psb_driver_load(struct drm_device *dev, unsigned long chipset)
        PSB_WVDC32(0x00000000, PSB_INT_ENABLE_R);
        PSB_WVDC32(0xFFFFFFFF, PSB_INT_MASK_R);
        spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags);
-       if (drm_core_check_feature(dev, DRIVER_MODESET))
+       if (IS_PSB(dev) && drm_core_check_feature(dev, DRIVER_MODESET))
                drm_irq_install(dev);
 
        dev->vblank_disable_allowed = 1;
index fd4732d..8cd4f1a 100644 (file)
@@ -43,6 +43,7 @@ enum {
        CHIP_MFLD_0130 = 3,             /* Medfield */
 };
 
+#define IS_PSB(dev) (((dev)->pci_device & 0xfffe) == 0x8108)
 #define IS_MRST(dev) (((dev)->pci_device & 0xfffc) == 0x4100)
 #define IS_MFLD(dev) (((dev)->pci_device & 0xfff8) == 0x0130)