diff options
author | Alan Cox <alan@linux.intel.com> | 2010-07-26 13:03:58 +0400 |
---|---|---|
committer | Matthew Garrett <mjg@redhat.com> | 2010-08-03 17:50:30 +0400 |
commit | 9dd3adeb00b14d4b3d106360e2e33272deab35f3 (patch) | |
tree | 4d6f85882d65107c6aa1076d07286eb2bb620774 /drivers/platform/x86/intel_scu_ipc.c | |
parent | a5b74e69e1238eb46a6fcf2b9dc9d0e4efbb4e46 (diff) | |
download | linux-9dd3adeb00b14d4b3d106360e2e33272deab35f3.tar.xz |
intel_scu_ipc: Use the new cpu identification function
This provides an architecture level board identify function to replace the
cpuid direct usage
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Diffstat (limited to 'drivers/platform/x86/intel_scu_ipc.c')
-rw-r--r-- | drivers/platform/x86/intel_scu_ipc.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/drivers/platform/x86/intel_scu_ipc.c b/drivers/platform/x86/intel_scu_ipc.c index 2245876836ec..5258749138d6 100644 --- a/drivers/platform/x86/intel_scu_ipc.c +++ b/drivers/platform/x86/intel_scu_ipc.c @@ -74,8 +74,6 @@ struct intel_scu_ipc_dev { static struct intel_scu_ipc_dev ipcdev; /* Only one for now */ -#define PLATFORM_LANGWELL 1 -#define PLATFORM_PENWELL 2 static int platform; /* Platform type */ /* @@ -169,7 +167,7 @@ static int pwr_reg_rdwr(u16 *addr, u8 *data, u32 count, u32 op, u32 id) return -ENODEV; } - if (platform == PLATFORM_LANGWELL) { + if (platform != MRST_CPU_CHIP_PENWELL) { /* Entry is 4 bytes for read/write, 5 bytes for read modify */ for (nc = 0; nc < count; nc++, offset += 3) { cbuf[offset] = addr[nc]; @@ -217,7 +215,7 @@ static int pwr_reg_rdwr(u16 *addr, u8 *data, u32 count, u32 op, u32 id) if (id == IPC_CMD_PCNTRL_R) { /* Read rbuf */ /* Workaround: values are read as 0 without memcpy_fromio */ memcpy_fromio(cbuf, ipcdev.ipc_base + 0x90, 16); - if (platform == PLATFORM_LANGWELL) { + if (platform != MRST_CPU_CHIP_PENWELL) { for (nc = 0, offset = 2; nc < count; nc++, offset += 3) data[nc] = ipc_data_readb(offset); } else { @@ -741,14 +739,9 @@ static struct pci_driver ipc_driver = { static int __init intel_scu_ipc_init(void) { - if (boot_cpu_data.x86 == 6 && - boot_cpu_data.x86_model == 0x27 && - boot_cpu_data.x86_mask == 1) - platform = PLATFORM_PENWELL; - else if (boot_cpu_data.x86 == 6 && - boot_cpu_data.x86_model == 0x26) - platform = PLATFORM_LANGWELL; - + platform = mrst_identify_cpu(); + if (platform == 0) + return -ENODEV; return pci_register_driver(&ipc_driver); } |