All of lore.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, x86@kernel.org
Cc: "David E. Box" <david.e.box@linux.intel.com>,
	rafael.j.wysocki@intel.com, linux-kernel@vger.kernel.org,
	kristen.c.accardi@intel.com, jacob.jun.pan@linux.intel.com,
	boon.leong.ong@intel.com
Subject: [PATCH v4 1/4] x86/iosf: Make IOSF driver modular and usable by more drivers
Date: Fri,  9 May 2014 13:44:05 -0700	[thread overview]
Message-ID: <1399668248-24199-2-git-send-email-david.e.box@linux.intel.com> (raw)
In-Reply-To: <1399668248-24199-1-git-send-email-david.e.box@linux.intel.com>
In-Reply-To: <1399052199-8703-1-git-send-email-david.e.box@linux.intel.com>

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

Currently drivers that run on non-IOSF systems (Core/Xeon) can't use the IOSF
driver on SOC's without selecting it which forces an unnecessary and limiting
dependency. Provides dummy functions to allow these modules to conditionally
use the driver on IOSF equipped platforms without impacting their ability to
compile and load on non-IOSF platforms. 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      |    7 +++++++
 3 files changed, 42 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..1a91a36 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 IS_ENABLED(CONFIG_IOSF_MBI)
+
+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, "IOSF_MBI driver not available");
+	return -EPERM;
+}
+
+static inline
+int iosf_mbi_write(u8 port, u8 opcode, u32 offset, u32 mdr)
+{
+	WARN(1, "IOSF_MBI driver not available");
+	return -EPERM;
+}
+
+static inline
+int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask)
+{
+	WARN(1, "IOSF_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..f4ff978 100644
--- a/arch/x86/kernel/iosf_mbi.c
+++ b/arch/x86/kernel/iosf_mbi.c
@@ -177,6 +177,13 @@ int iosf_mbi_modify(u8 port, u8 opcode, u32 offset, u32 mdr, u32 mask)
 }
 EXPORT_SYMBOL(iosf_mbi_modify);
 
+bool iosf_mbi_available(void)
+{
+	/* Mbi isn't hot-pluggable. No remove routine is provided */
+	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-05-09 20:46 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   ` [PATCH v2 3/4] x86/iosf: Make IOSF driver modular and usable by more drivers David E. Box
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     ` David E. Box [this message]
2014-05-28 21:24       ` [tip:x86/platform] x86, iosf: Make IOSF driver modular and usable by more drivers 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=1399668248-24199-2-git-send-email-david.e.box@linux.intel.com \
    --to=david.e.box@linux.intel.com \
    --cc=boon.leong.ong@intel.com \
    --cc=hpa@zytor.com \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=kristen.c.accardi@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=rafael.j.wysocki@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.