From: "David E. Box" <david.e.box@linux.intel.com>
To: hpa@zytor.com, mingo@redhat.com, tglx@linutronix.de
Cc: x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] x86: iosf_mbi: Provide dummy functions if CONFIG_IOSF_MBI not set
Date: Wed, 12 Feb 2014 15:34:23 -0800 [thread overview]
Message-ID: <1392248063-16389-1-git-send-email-david.e.box@linux.intel.com> (raw)
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
next reply other threads:[~2014-02-12 23:36 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-12 23:34 David E. Box [this message]
2014-02-23 1:02 ` [PATCH RESEND] x86: iosf_mbi: Provide dummy functions if CONFIG_IOSF_MBI not set 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
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=1392248063-16389-1-git-send-email-david.e.box@linux.intel.com \
--to=david.e.box@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.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