Add PCH chipset type check for Cougarpoint
authorZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 15 Apr 2010 14:57:02 +0000 (22:57 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 15 Apr 2010 07:24:58 +0000 (15:24 +0800)
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
lib/intel_gpu_tools.h
lib/intel_pci.c

index 0251031..acee657 100644 (file)
@@ -54,3 +54,13 @@ struct pci_device *intel_get_pci_device(void);
 uint32_t intel_get_drm_devid(int fd);
 
 void intel_map_file(char *);
+
+enum pch_type {
+       PCH_IBX,
+       PCH_CPT,
+};
+
+extern enum pch_type pch;
+void intel_check_pch(void);
+
+#define HAS_CPT (pch == PCH_CPT)
index 3bfacb5..db436be 100644 (file)
@@ -39,6 +39,8 @@
 
 #include "intel_gpu_tools.h"
 
+enum pch_type pch;
+
 struct pci_device *
 intel_get_pci_device(void)
 {
@@ -69,3 +71,18 @@ intel_get_pci_device(void)
 
        return pci_dev;
 }
+
+void
+intel_check_pch(void)
+{
+       struct pci_device *pch_dev;
+
+       pch_dev = pci_device_find_by_slot(0, 0, 31, 0);
+       if (pch_dev == NULL)
+               return;
+
+       if (pch_dev->vendor_id == 0x8086 &&
+               (pch_dev->device_id & 0xff00) == 0x1c00)
+               pch = PCH_CPT;
+}
+