diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2010-04-15 22:57:02 +0800 |
---|---|---|
committer | Zhenyu Wang <zhenyuw@linux.intel.com> | 2010-04-15 15:24:58 +0800 |
commit | 2b40fc83d130d2850761aa1409e0716ace6dfe0b (patch) | |
tree | 8302ad7d65a70bb33974d281e0531d2160bd685e | |
parent | c3832aefbf9a4120f12283e3cb3e18d7daa04070 (diff) |
Add PCH chipset type check for Cougarpoint
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
-rw-r--r-- | lib/intel_gpu_tools.h | 10 | ||||
-rw-r--r-- | lib/intel_pci.c | 17 |
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; +} + |