summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhenyu Wang <zhenyuw@linux.intel.com>2010-04-15 22:57:02 +0800
committerZhenyu Wang <zhenyuw@linux.intel.com>2010-04-15 15:24:58 +0800
commit2b40fc83d130d2850761aa1409e0716ace6dfe0b (patch)
tree8302ad7d65a70bb33974d281e0531d2160bd685e
parentc3832aefbf9a4120f12283e3cb3e18d7daa04070 (diff)
Add PCH chipset type check for Cougarpoint
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
-rw-r--r--lib/intel_gpu_tools.h10
-rw-r--r--lib/intel_pci.c17
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/intel_gpu_tools.h b/lib/intel_gpu_tools.h
index 0251031af..acee65750 100644
--- a/lib/intel_gpu_tools.h
+++ b/lib/intel_gpu_tools.h
@@ -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)
diff --git a/lib/intel_pci.c b/lib/intel_pci.c
index 3bfacb532..db436be69 100644
--- a/lib/intel_pci.c
+++ b/lib/intel_pci.c
@@ -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;
+}
+