public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "David E. Box" <david.e.box@linux.intel.com>
To: tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com
Cc: "David E. Box" <david.e.box@linux.intel.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	srinivas.pandruvada@linux.intel.com, jacob.jun.pan@intel.com
Subject: [PATCH RESEND] x86: iosf_mbi: Provide dummy functions if CONFIG_IOSF_MBI not set
Date: Sat, 22 Feb 2014 17:02:32 -0800	[thread overview]
Message-ID: <1393117352-23717-1-git-send-email-david.e.box@linux.intel.com> (raw)
In-Reply-To: <1392248063-16389-1-git-send-email-david.e.box@linux.intel.com>

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


  reply	other threads:[~2014-02-23  1:04 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 ` David E. Box [this message]
2014-02-24 13:19   ` [PATCH RESEND] " 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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1393117352-23717-1-git-send-email-david.e.box@linux.intel.com \
    --to=david.e.box@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jacob.jun.pan@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox