lib: detect PCH_LPT and PCH_NONE

So we don't assign PCH_IBX to anything that's not PCH_CPT nor PCH_LPT.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
This commit is contained in:
Paulo Zanoni 2013-03-01 13:30:46 -03:00
parent c3bfd738c7
commit 29abdb96dc
2 changed files with 22 additions and 3 deletions

View File

@ -92,13 +92,17 @@ uint64_t intel_get_total_swap_mb(void);
void intel_map_file(char *);
enum pch_type {
PCH_NONE,
PCH_IBX,
PCH_CPT,
PCH_LPT,
};
extern enum pch_type pch;
void intel_check_pch(void);
#define HAS_IBX (pch == PCH_IBX)
#define HAS_CPT (pch == PCH_CPT)
#define HAS_LPT (pch == PCH_LPT)
#endif /* INTEL_GPU_TOOLS_H */

View File

@ -100,9 +100,24 @@ intel_check_pch(void)
if (pch_dev == NULL)
return;
if (pch_dev->vendor_id == 0x8086 &&
(((pch_dev->device_id & 0xff00) == 0x1c00) ||
(pch_dev->device_id & 0xff00) == 0x1e00))
if (pch_dev->vendor_id != 0x8086)
return;
switch (pch_dev->device_id & 0xff00) {
case 0x3b00:
pch = PCH_IBX;
break;
case 0x1c00:
case 0x1e00:
pch = PCH_CPT;
break;
case 0x8c00:
case 0x9c00:
pch = PCH_LPT;
break;
default:
pch = PCH_NONE;
return;
}
}