aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-06-03 18:46:38 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2014-06-03 18:46:38 -0400
commit4aef77b2fe373cdba461925589b9d1d4468ee016 (patch)
tree96b27318a112e315eff3c38e77705bf9a6b5a174 /arch/x86/kernel
parente0d23cdc626faef36900965c48dd8806df651f77 (diff)
parent04725ad59474d24553d526fa774179ecd2922342 (diff)
Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
Pull x86 IOSF platform updates from Ingo Molnar: "IOSF (Intel OnChip System Fabric) updates: - generalize the IOSF interface to allow mixed mode drivers: non-IOSF drivers to utilize of IOSF features on IOSF platforms. - add 'Quark X1000' IOSF/MBI support - clean up BayTrail and Quark PCI ID enumeration" * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86, iosf: Add PCI ID macros for better readability x86, iosf: Add Quark X1000 PCI ID x86, iosf: Added Quark MBI identifiers x86, iosf: Make IOSF driver modular and usable by more drivers
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/iosf_mbi.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/arch/x86/kernel/iosf_mbi.c b/arch/x86/kernel/iosf_mbi.c
index c3aae6672843..d30acdc1229d 100644
--- a/arch/x86/kernel/iosf_mbi.c
+++ b/arch/x86/kernel/iosf_mbi.c
@@ -25,6 +25,9 @@
25 25
26#include <asm/iosf_mbi.h> 26#include <asm/iosf_mbi.h>
27 27
28#define PCI_DEVICE_ID_BAYTRAIL 0x0F00
29#define PCI_DEVICE_ID_QUARK_X1000 0x0958
30
28static DEFINE_SPINLOCK(iosf_mbi_lock); 31static DEFINE_SPINLOCK(iosf_mbi_lock);
29 32
30static inline u32 iosf_mbi_form_mcr(u8 op, u8 port, u8 offset) 33static inline u32 iosf_mbi_form_mcr(u8 op, u8 port, u8 offset)
@@ -177,6 +180,13 @@ int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask)
177} 180}
178EXPORT_SYMBOL(iosf_mbi_modify); 181EXPORT_SYMBOL(iosf_mbi_modify);
179 182
183bool iosf_mbi_available(void)
184{
185 /* Mbi isn't hot-pluggable. No remove routine is provided */
186 return mbi_pdev;
187}
188EXPORT_SYMBOL(iosf_mbi_available);
189
180static int iosf_mbi_probe(struct pci_dev *pdev, 190static int iosf_mbi_probe(struct pci_dev *pdev,
181 const struct pci_device_id *unused) 191 const struct pci_device_id *unused)
182{ 192{
@@ -193,7 +203,8 @@ static int iosf_mbi_probe(struct pci_dev *pdev,
193} 203}
194 204
195static DEFINE_PCI_DEVICE_TABLE(iosf_mbi_pci_ids) = { 205static DEFINE_PCI_DEVICE_TABLE(iosf_mbi_pci_ids) = {
196 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0F00) }, 206 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_BAYTRAIL) },
207 { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_QUARK_X1000) },
197 { 0, }, 208 { 0, },
198}; 209};
199MODULE_DEVICE_TABLE(pci, iosf_mbi_pci_ids); 210MODULE_DEVICE_TABLE(pci, iosf_mbi_pci_ids);