mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Peter Tyser <ptyser@xes-inc.com>
To: linux-kernel@vger.kernel.org
Cc: Peter Tyser <ptyser@xes-inc.com>,
	Guenter Roeck <linux@roeck-us.net>,
	James Ralston <james.d.ralston@intel.com>,
	Samuel Ortiz <sameo@linux.intel.com>,
	Lee Jones <lee.jones@linaro.org>
Subject: [PATCH 3/8] mfd: lpc_ich: Remove lpc_ich_cfg struct use
Date: Mon, 10 Mar 2014 16:34:53 -0500	[thread overview]
Message-ID: <1394487298-14459-3-git-send-email-ptyser@xes-inc.com> (raw)
In-Reply-To: <1394487298-14459-1-git-send-email-ptyser@xes-inc.com>

Future chipsets will use different register layouts that don't map
cleanly to the lpc_ich_cfg fields.  Remove the lpc_ich_cfg struct and
add explicit fields to the higher level lpc_ich_priv structure.

This change should have no functional impact.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Tested-by: Rajat Jain <rajatjain@juniper.net>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: James Ralston <james.d.ralston@intel.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Cc: Lee Jones <lee.jones@linaro.org>
---
 drivers/mfd/lpc_ich.c |   63 +++++++++++++++++++++++++------------------------
 1 files changed, 32 insertions(+), 31 deletions(-)

diff --git a/drivers/mfd/lpc_ich.c b/drivers/mfd/lpc_ich.c
index e247e7e..2cc052a 100644
--- a/drivers/mfd/lpc_ich.c
+++ b/drivers/mfd/lpc_ich.c
@@ -90,16 +90,16 @@
 #define wdt_mem_res(i) wdt_res(ICH_RES_MEM_OFF, i)
 #define wdt_res(b, i) (&wdt_ich_res[(b) + (i)])
 
-struct lpc_ich_cfg {
-	int base;
-	int ctrl;
-	int save;
-};
-
 struct lpc_ich_priv {
 	int chipset;
-	struct lpc_ich_cfg acpi;
-	struct lpc_ich_cfg gpio;
+
+	int abase;		/* ACPI base */
+	int actrl;		/* ACPI control or PMC base */
+	int gbase;		/* GPIO base */
+	int gctrl;		/* GPIO control */
+
+	int actrl_save;		/* Cached ACPI control base value */
+	int gctrl_save;		/* Cached GPIO control value */
 };
 
 static struct resource wdt_ich_res[] = {
@@ -742,14 +742,14 @@ static void lpc_ich_restore_config_space(struct pci_dev *dev)
 {
 	struct lpc_ich_priv *priv = pci_get_drvdata(dev);
 
-	if (priv->acpi.save >= 0) {
-		pci_write_config_byte(dev, priv->acpi.ctrl, priv->acpi.save);
-		priv->acpi.save = -1;
+	if (priv->actrl_save >= 0) {
+		pci_write_config_byte(dev, priv->actrl, priv->actrl_save);
+		priv->actrl_save = -1;
 	}
 
-	if (priv->gpio.save >= 0) {
-		pci_write_config_byte(dev, priv->gpio.ctrl, priv->gpio.save);
-		priv->gpio.save = -1;
+	if (priv->gctrl_save >= 0) {
+		pci_write_config_byte(dev, priv->gctrl, priv->gctrl_save);
+		priv->gctrl_save = -1;
 	}
 }
 
@@ -758,9 +758,9 @@ static void lpc_ich_enable_acpi_space(struct pci_dev *dev)
 	struct lpc_ich_priv *priv = pci_get_drvdata(dev);
 	u8 reg_save;
 
-	pci_read_config_byte(dev, priv->acpi.ctrl, &reg_save);
-	pci_write_config_byte(dev, priv->acpi.ctrl, reg_save | 0x80);
-	priv->acpi.save = reg_save;
+	pci_read_config_byte(dev, priv->actrl, &reg_save);
+	pci_write_config_byte(dev, priv->actrl, reg_save | 0x80);
+	priv->actrl_save = reg_save;
 }
 
 static void lpc_ich_enable_gpio_space(struct pci_dev *dev)
@@ -768,9 +768,9 @@ static void lpc_ich_enable_gpio_space(struct pci_dev *dev)
 	struct lpc_ich_priv *priv = pci_get_drvdata(dev);
 	u8 reg_save;
 
-	pci_read_config_byte(dev, priv->gpio.ctrl, &reg_save);
-	pci_write_config_byte(dev, priv->gpio.ctrl, reg_save | 0x10);
-	priv->gpio.save = reg_save;
+	pci_read_config_byte(dev, priv->gctrl, &reg_save);
+	pci_write_config_byte(dev, priv->gctrl, reg_save | 0x10);
+	priv->gctrl_save = reg_save;
 }
 
 static void lpc_ich_finalize_cell(struct pci_dev *dev, struct mfd_cell *cell)
@@ -815,7 +815,7 @@ static int lpc_ich_init_gpio(struct pci_dev *dev)
 	struct resource *res;
 
 	/* Setup power management base register */
-	pci_read_config_dword(dev, priv->acpi.base, &base_addr_cfg);
+	pci_read_config_dword(dev, priv->abase, &base_addr_cfg);
 	base_addr = base_addr_cfg & 0x0000ff80;
 	if (!base_addr) {
 		dev_notice(&dev->dev, "I/O space for ACPI uninitialized\n");
@@ -841,7 +841,7 @@ static int lpc_ich_init_gpio(struct pci_dev *dev)
 
 gpe0_done:
 	/* Setup GPIO base register */
-	pci_read_config_dword(dev, priv->gpio.base, &base_addr_cfg);
+	pci_read_config_dword(dev, priv->gbase, &base_addr_cfg);
 	base_addr = base_addr_cfg & 0x0000ff80;
 	if (!base_addr) {
 		dev_notice(&dev->dev, "I/O space for GPIO uninitialized\n");
@@ -891,7 +891,7 @@ static int lpc_ich_init_wdt(struct pci_dev *dev)
 	struct resource *res;
 
 	/* Setup power management base register */
-	pci_read_config_dword(dev, priv->acpi.base, &base_addr_cfg);
+	pci_read_config_dword(dev, priv->abase, &base_addr_cfg);
 	base_addr = base_addr_cfg & 0x0000ff80;
 	if (!base_addr) {
 		dev_notice(&dev->dev, "I/O space for ACPI uninitialized\n");
@@ -952,17 +952,18 @@ static int lpc_ich_probe(struct pci_dev *dev,
 		return -ENOMEM;
 
 	priv->chipset = id->driver_data;
-	priv->acpi.save = -1;
-	priv->acpi.base = ACPIBASE;
-	priv->acpi.ctrl = ACPICTRL;
 
-	priv->gpio.save = -1;
+	priv->actrl_save = -1;
+	priv->abase = ACPIBASE;
+	priv->actrl = ACPICTRL;
+
+	priv->gctrl_save = -1;
 	if (priv->chipset <= LPC_ICH5) {
-		priv->gpio.base = GPIOBASE_ICH0;
-		priv->gpio.ctrl = GPIOCTRL_ICH0;
+		priv->gbase = GPIOBASE_ICH0;
+		priv->gctrl = GPIOCTRL_ICH0;
 	} else {
-		priv->gpio.base = GPIOBASE_ICH6;
-		priv->gpio.ctrl = GPIOCTRL_ICH6;
+		priv->gbase = GPIOBASE_ICH6;
+		priv->gctrl = GPIOCTRL_ICH6;
 	}
 
 	pci_set_drvdata(dev, priv);
-- 
1.7.7.GIT


  parent reply	other threads:[~2014-03-10 21:36 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-10 21:34 [PATCH 1/8] mfd: lpc_ich: Fix ACPI enable bitmask Peter Tyser
2014-03-10 21:34 ` [PATCH 2/8] mfd: lpc_ich: Only configure watchdog or GPIO when present Peter Tyser
2014-03-11  0:59   ` Guenter Roeck
2014-03-13 22:46   ` Lee Jones
2014-03-10 21:34 ` Peter Tyser [this message]
2014-03-11  0:59   ` [PATCH 3/8] mfd: lpc_ich: Remove lpc_ich_cfg struct use Guenter Roeck
2014-03-13 22:46   ` Lee Jones
2014-03-10 21:34 ` [PATCH 4/8] mfd: lpc_ich: Add support for iTCO v3 Peter Tyser
2014-03-11  1:02   ` Guenter Roeck
2014-03-13 22:47   ` Lee Jones
2014-03-15 20:04   ` Wim Van Sebroeck
2014-03-10 21:34 ` [PATCH 5/8] watchdog: iTCO_wdt: Add support for v3 silicon Peter Tyser
2014-03-11  1:06   ` Guenter Roeck
2014-03-13 22:47   ` Lee Jones
2014-03-15 20:03   ` Wim Van Sebroeck
2014-03-18  8:28     ` Lee Jones
2014-03-18 13:59       ` Wim Van Sebroeck
2014-03-18 20:36         ` Lee Jones
2014-03-10 21:34 ` [PATCH 6/8] mfd: lpc_ich: Change Avoton to iTCO v3 Peter Tyser
2014-03-11  1:07   ` Guenter Roeck
2014-03-13 22:48   ` Lee Jones
2014-03-15 20:04   ` Wim Van Sebroeck
2014-03-18  8:27     ` Lee Jones
2014-03-18 14:00       ` Wim Van Sebroeck
2014-03-10 21:34 ` [PATCH 7/8] mfd: lpc_ich: Add support for NM10 GPIO Peter Tyser
2014-03-11  1:08   ` Guenter Roeck
2014-03-13 22:48   ` Lee Jones
2014-03-10 21:34 ` [PATCH 8/8] mfd: lpc_ich: Add support for Intel Bay Trail SoC Peter Tyser
2014-03-11  1:09   ` Guenter Roeck
2014-03-13 22:49   ` Lee Jones
2014-03-11  0:59 ` [PATCH 1/8] mfd: lpc_ich: Fix ACPI enable bitmask Guenter Roeck
2014-03-13 15:16 ` Guenter Roeck
2014-03-13 15:25   ` Lee Jones
2014-03-13 22:50     ` Lee Jones
2014-03-13 23:04       ` Guenter Roeck
2014-03-14 10:29         ` Lee Jones
2014-03-19 17:17           ` Guenter Roeck
2014-03-19 21:47             ` Lee Jones
2014-03-13 22:45 ` Lee Jones

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=1394487298-14459-3-git-send-email-ptyser@xes-inc.com \
    --to=ptyser@xes-inc.com \
    --cc=james.d.ralston@intel.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=sameo@linux.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

all inboxes | Powered by JetHome®