linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "David E. Box" <david.e.box@linux.intel.com>
To: david.e.box@linux.intel.com, jacob.jun.pan@linux.intel.com,
	linux-pm@vger.kernel.org, rafael.j.wysocki@intel.com,
	linux-kernel@vger.kernel.org, hpa@linux.intel.com
Cc: alan@linux.intel.com, durgadoss.r@intel.com, kristen.c.accardi@intel.com
Subject: [PATCH v2 3/4] x86/iosf: Make IOSF driver modular and usable by more drivers
Date: Tue, 29 Apr 2014 15:33:08 -0700	[thread overview]
Message-ID: <1398810789-2301-4-git-send-email-david.e.box@linux.intel.com> (raw)
In-Reply-To: <1398810789-2301-1-git-send-email-david.e.box@linux.intel.com>

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

Currently drivers that work on big core can't use the mailbox driver without
selecting it which forces an unneeded dependency. Provides dummy fucntions to
allow these modules to conditionally use the mailbox on soc's without limiting
their ability to compile and load on big core systems. Make mailbox driver
build default m to ensure availability on x86 SOC's.

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

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 25d2c6f..f1304d3 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2375,12 +2375,9 @@ config X86_DMA_REMAP
 	depends on STA2X11
 
 config IOSF_MBI
-	bool
+	tristate
+	default m
 	depends on PCI
-	---help---
-	  To be selected by modules requiring access to the Intel OnChip System
-	  Fabric (IOSF) Sideband MailBox Interface (MBI). For MBI platforms
-	  enumerable by PCI.
 
 source "net/Kconfig"
 
diff --git a/arch/x86/include/asm/iosf_mbi.h b/arch/x86/include/asm/iosf_mbi.h
index 8e71c79..9e92d65 100644
--- a/arch/x86/include/asm/iosf_mbi.h
+++ b/arch/x86/include/asm/iosf_mbi.h
@@ -50,6 +50,10 @@
 #define BT_MBI_PCIE_READ	0x00
 #define BT_MBI_PCIE_WRITE	0x01
 
+#if defined(CONFIG_IOSF_MBI) || defined(CONFIG_IOSF_MBI_MODULE)
+
+bool iosf_mbi_available(void);
+
 /**
  * iosf_mbi_read() - MailBox Interface read command
  * @port:	port indicating subunit being accessed
@@ -87,4 +91,33 @@ int iosf_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr);
  */
 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)
+{
+	WARN(1, "MBI driver not available");
+	return -EPERM;
+}
+
+static inline
+int iosf_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr)
+{
+	WARN(1, "MBI driver not available");
+	return -EPERM;
+}
+
+static inline
+int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask)
+{
+	WARN(1, "MBI driver not available");
+	return -EPERM;
+}
+#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


  parent reply	other threads:[~2014-04-29 22:36 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-28 14:04 [PATCH 0/5] RAPL driver updates Jacob Pan
2014-04-28 14:04 ` [PATCH 1/5] powercap/rapl: further relax energy counter checks Jacob Pan
2014-04-28 14:04 ` [PATCH 2/5] powercap/rapl: add new cpu ids Jacob Pan
2014-04-28 14:04 ` [PATCH 3/5] x86, iosf: Add dummy functions for loadable modules Jacob Pan
2014-04-28 14:04 ` [PATCH 4/5] x86/iosf: kconfig and used by other drivers Jacob Pan
2014-04-28 14:04 ` [PATCH 5/5] powercap/rapl: change floor frequency for vallewview Jacob Pan
2014-04-29  2:45   ` R, Durgadoss
2014-04-29 13:02     ` Jacob Pan
2014-04-29 14:40       ` R, Durgadoss
2014-04-29  8:23         ` Jacob Pan
2014-04-29 22:33 ` [PATCH v2 0/4] RAPL driver updates David E. Box
2014-04-29 22:33   ` [PATCH v2 1/4] powercap/rapl: further relax energy counter checks David E. Box
2014-04-30  5:29     ` R, Durgadoss
2014-04-29 22:33   ` [PATCH v2 2/4] powercap/rapl: add new cpu ids David E. Box
2014-04-29 22:33   ` David E. Box [this message]
2014-04-29 22:33   ` [PATCH v2 4/4] powercap/rapl: change floor frequency for vallewview David E. Box
2014-04-29 23:02   ` [PATCH v2 0/4] RAPL driver updates Rafael J. Wysocki
2014-04-29 23:38     ` Jacob Pan
2014-05-02 17:36   ` [PATCH v3] x86/iosf: Make IOSF driver modular and usable by more drivers David E. Box
2014-05-07 16:48     ` One Thousand Gnomes
2014-05-07 17:04       ` H. Peter Anvin
2014-05-07 17:10         ` One Thousand Gnomes
2014-05-07 17:14           ` H. Peter Anvin
2014-05-07 18:58             ` One Thousand Gnomes
2014-05-07 17:52           ` David E. Box
2014-05-09 20:44     ` [PATCH v4 0/4] x86/iosf: IOSF additional driver/device support David E. Box
2014-05-09 20:44     ` [PATCH v4 1/4] x86/iosf: Make IOSF driver modular and usable by more drivers David E. Box
2014-05-28 21:24       ` [tip:x86/platform] x86, iosf: " tip-bot for David E. Box
2014-05-09 20:44     ` [PATCH v4 2/4] arch: x86: added Quark MBI support David E. Box
2014-05-28 21:24       ` [tip:x86/platform] x86, iosf: Added Quark MBI identifiers tip-bot for Ong Boon Leong
2014-05-09 20:44     ` [PATCH v4 3/4] arch: x86: iosf_mbi: add Quark X1000 pci id David E. Box
2014-05-28 21:25       ` [tip:x86/platform] x86, iosf: Add Quark X1000 PCI ID tip-bot for Ong Boon Leong
2014-05-09 20:44     ` [PATCH v4 4/4] arch: x86: iosf_mbi: add pci id macros for better readability David E. Box
2014-05-28 21:25       ` [tip:x86/platform] x86, iosf: Add PCI ID " tip-bot for Ong Boon Leong

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=1398810789-2301-4-git-send-email-david.e.box@linux.intel.com \
    --to=david.e.box@linux.intel.com \
    --cc=alan@linux.intel.com \
    --cc=durgadoss.r@intel.com \
    --cc=hpa@linux.intel.com \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=kristen.c.accardi@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rafael.j.wysocki@intel.com \
    /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;
as well as URLs for NNTP newsgroup(s).