linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86: iosf_mbi: Provide dummy functions if CONFIG_IOSF_MBI not set
@ 2014-02-12 23:34 David E. Box
  2014-02-23  1:02 ` [PATCH RESEND] " David E. Box
  0 siblings, 1 reply; 30+ messages in thread
From: David E. Box @ 2014-02-12 23:34 UTC (permalink / raw)
  To: hpa, mingo, tglx; +Cc: x86, linux-kernel

From: "David E. Box" <david.e.box@linux.intel.com>

Add iosf_mbi_available function for loadable modules.
Add dummy functions to prevent symbol lookup errors on loadable modules.
Clarify that the write opcode is to be used for iosf_mbi_modify().
Changes Kconfig for IOSF_MBI to default built-in.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
---
 arch/x86/Kconfig                |    2 +-
 arch/x86/include/asm/iosf_mbi.h |   39 +++++++++++++++++++++++++++++++++++----
 arch/x86/kernel/iosf_mbi.c      |    6 ++++++
 3 files changed, 42 insertions(+), 5 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index d3b1f8b..e25baf1 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2385,7 +2385,7 @@ config X86_DMA_REMAP
 	depends on STA2X11
 
 config IOSF_MBI
-	bool
+	def_bool y
 	depends on PCI
 	---help---
 	  To be selected by modules requiring access to the Intel OnChip System
diff --git a/arch/x86/include/asm/iosf_mbi.h b/arch/x86/include/asm/iosf_mbi.h
index 8e71c79..1c93591 100644
--- a/arch/x86/include/asm/iosf_mbi.h
+++ b/arch/x86/include/asm/iosf_mbi.h
@@ -5,6 +5,8 @@
 #ifndef IOSF_MBI_SYMS_H
 #define IOSF_MBI_SYMS_H
 
+#ifdef CONFIG_IOSF_MBI
+
 #define MBI_MCR_OFFSET		0xD0
 #define MBI_MDR_OFFSET		0xD4
 #define MBI_MCRX_OFFSET		0xD8
@@ -50,6 +52,8 @@
 #define BT_MBI_PCIE_READ	0x00
 #define BT_MBI_PCIE_WRITE	0x01
 
+extern bool iosf_mbi_available(void);
+
 /**
  * iosf_mbi_read() - MailBox Interface read command
  * @port:	port indicating subunit being accessed
@@ -60,7 +64,7 @@
  * Locking is handled by spinlock - cannot sleep.
  * Return: Nonzero on error
  */
-int iosf_mbi_read(u8 port, u8 opcode, u32 offset, u32 *mdr);
+extern int iosf_mbi_read(u8 port, u8 opcode, u32 offset, u32 *mdr);
 
 /**
  * iosf_mbi_write() - MailBox unmasked write command
@@ -72,19 +76,46 @@ int iosf_mbi_read(u8 port, u8 opcode, u32 offset, u32 *mdr);
  * Locking is handled by spinlock - cannot sleep.
  * Return: Nonzero on error
  */
-int iosf_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr);
+extern int iosf_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr);
 
 /**
  * iosf_mbi_modify() - MailBox masked write command
  * @port:	port indicating subunit being accessed
- * @opcode:	port specific read or write opcode
+ * @opcode:	port specific write opcode
  * @offset:	register address offset
  * @mdr:	register data being modified
  * @mask:	mask indicating bits in mdr to be modified
  *
+ * Use write opcode for this function.
  * Locking is handled by spinlock - cannot sleep.
  * Return: Nonzero on error
  */
-int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask);
+extern int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask);
+
+#else /* CONFIG_IOSF_MBI is not enabled */
+static inline
+bool iosf_mbi_available(void)
+{
+	return false;
+}
+
+static inline
+int iosf_mbi_read(u8 port, u8 opcode, u32 offset, u32 *mdr)
+{
+	return 0;
+}
+
+static inline
+int iosf_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr)
+{
+	return 0;
+}
+
+static inline
+int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask)
+{
+	return 0;
+}
+#endif /* CONFIG_IOSF_MBI */
 
 #endif /* IOSF_MBI_SYMS_H */
diff --git a/arch/x86/kernel/iosf_mbi.c b/arch/x86/kernel/iosf_mbi.c
index c3aae66..d3803c6 100644
--- a/arch/x86/kernel/iosf_mbi.c
+++ b/arch/x86/kernel/iosf_mbi.c
@@ -177,6 +177,12 @@ int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask)
 }
 EXPORT_SYMBOL(iosf_mbi_modify);
 
+bool iosf_mbi_available(void)
+{
+	return mbi_pdev;
+}
+EXPORT_SYMBOL(iosf_mbi_available);
+
 static int iosf_mbi_probe(struct pci_dev *pdev,
 			  const struct pci_device_id *unused)
 {
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2014-03-03 23:04 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-12 23:34 [PATCH] x86: iosf_mbi: Provide dummy functions if CONFIG_IOSF_MBI not set David E. Box
2014-02-23  1:02 ` [PATCH RESEND] " David E. Box
2014-02-24 13:19   ` One Thousand Gnomes
2014-02-24 13:21     ` H. Peter Anvin
2014-02-24 13:29       ` One Thousand Gnomes
2014-02-25  2:47   ` [PATCH V2 0/2] x86: IOSF: Add loadable module support David E. Box
2014-02-26 19:40     ` [PATCH V3 " David E. Box
2014-02-28 17:47       ` [PATCH V4 " David E. Box
2014-02-28 18:01         ` H. Peter Anvin
2014-03-01  2:40         ` [PATCH V5 " David E. Box
2014-03-03  7:01           ` Li, Aubrey
2014-03-03 15:58             ` David E. Box
2014-03-03 22:15               ` Li, Aubrey
2014-03-03 23:01                 ` David E. Box
2014-03-01  2:40         ` [PATCH V5 1/2] x86: IOSF: add dummy functions for loadable modules David E. Box
2014-03-01 20:34           ` [tip:x86/platform] x86, iosf: Add " tip-bot for David E. Box
2014-03-03  7:21           ` [PATCH V5 1/2] x86: IOSF: add " Li, Aubrey
2014-03-03 12:20             ` One Thousand Gnomes
2014-03-01  2:40         ` [PATCH V5 2/2] x86: IOSF: Change IOSF_MBI Kconfig to default y David E. Box
2014-03-03  7:07           ` Li, Aubrey
2014-03-03 16:25             ` David E. Box
2014-02-28 17:47       ` [PATCH V4 1/2] x86: IOSF: add dummy functions for loadable modules David E. Box
2014-02-28 17:47       ` [PATCH V4 2/2] x86: IOSF: Change IOSF_MBI Kconfig to default y David E. Box
2014-02-26 19:40     ` [PATCH V3 1/2] x86: IOSF: add dummy functions for loadable modules David E. Box
2014-02-26 19:40     ` [PATCH V3 2/2] x86: IOSF: Change IOSF_MBI Kconfig to default y David E. Box
2014-02-27  3:26       ` H. Peter Anvin
2014-02-27 16:50       ` [PATCH RESEND " David E. Box
2014-02-25  2:47   ` [PATCH V2 1/2] x86: IOSF: add dummy functions for loadable modules David E. Box
2014-02-25  2:47   ` [PATCH V2 2/2] x86: IOSF: Change IOSF_MBI Kconfig to default y David E. Box
2014-03-01 20:34     ` [tip:x86/platform] x86, iosf: " tip-bot for David E. Box

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).