All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Tony Luck <tony.luck@intel.com>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Wolfram Sang <wsa@kernel.org>, Jean Delvare <jdelvare@suse.de>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Henning Schild <henning.schild@siemens.com>,
	Lee Jones <lee.jones@linaro.org>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Hans de Goede <hdegoede@redhat.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Jonathan Yong <jonathan.yong@intel.com>,
	Guenter Roeck <linux@roeck-us.net>,
	Wim Van Sebroeck <wim@linux-watchdog.org>,
	linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org,
	linux-i2c@vger.kernel.org, linux-leds@vger.kernel.org,
	linux-gpio@vger.kernel.org, platform-driver-x86@vger.kernel.org,
	linux-watchdog@vger.kernel.org
Cc: Borislav Petkov <bp@alien8.de>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	James Morse <james.morse@arm.com>,
	Robert Richter <rric@kernel.org>,
	Jean Delvare <jdelvare@suse.com>, Pavel Machek <pavel@ucw.cz>,
	Peter Tyser <ptyser@xes-inc.com>,
	Andy Shevchenko <andy@kernel.org>,
	Mark Gross <markgross@kernel.org>
Subject: [PATCH v6 08/12] EDAC, pnd2: convert to use common P2SB accessor
Date: Mon,  6 Jun 2022 19:41:34 +0300	[thread overview]
Message-ID: <20220606164138.66535-9-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20220606164138.66535-1-andriy.shevchenko@linux.intel.com>

Since we have a common P2SB accessor in tree we may use it instead of
open coded variants.

Replace custom code by p2sb_bar() call.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Henning Schild <henning.schild@siemens.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
---
 drivers/edac/Kconfig     |  1 +
 drivers/edac/pnd2_edac.c | 55 ++++++++++++----------------------------
 2 files changed, 17 insertions(+), 39 deletions(-)

diff --git a/drivers/edac/Kconfig b/drivers/edac/Kconfig
index d3e2477948c8..17562cf1fe97 100644
--- a/drivers/edac/Kconfig
+++ b/drivers/edac/Kconfig
@@ -263,6 +263,7 @@ config EDAC_I10NM
 config EDAC_PND2
 	tristate "Intel Pondicherry2"
 	depends on PCI && X86_64 && X86_MCE_INTEL
+	select P2SB if X86
 	help
 	  Support for error detection and correction on the Intel
 	  Pondicherry2 Integrated Memory Controller. This SoC IP is
diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c
index 7d1df120e24c..a20b299f1202 100644
--- a/drivers/edac/pnd2_edac.c
+++ b/drivers/edac/pnd2_edac.c
@@ -28,6 +28,8 @@
 #include <linux/bitmap.h>
 #include <linux/math64.h>
 #include <linux/mod_devicetable.h>
+#include <linux/platform_data/x86/p2sb.h>
+
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
 #include <asm/processor.h>
@@ -232,42 +234,14 @@ static u64 get_mem_ctrl_hub_base_addr(void)
 	return U64_LSHIFT(hi.base, 32) | U64_LSHIFT(lo.base, 15);
 }
 
-static u64 get_sideband_reg_base_addr(void)
-{
-	struct pci_dev *pdev;
-	u32 hi, lo;
-	u8 hidden;
-
-	pdev = pci_get_device(PCI_VENDOR_ID_INTEL, 0x19dd, NULL);
-	if (pdev) {
-		/* Unhide the P2SB device, if it's hidden */
-		pci_read_config_byte(pdev, 0xe1, &hidden);
-		if (hidden)
-			pci_write_config_byte(pdev, 0xe1, 0);
-
-		pci_read_config_dword(pdev, 0x10, &lo);
-		pci_read_config_dword(pdev, 0x14, &hi);
-		lo &= 0xfffffff0;
-
-		/* Hide the P2SB device, if it was hidden before */
-		if (hidden)
-			pci_write_config_byte(pdev, 0xe1, hidden);
-
-		pci_dev_put(pdev);
-		return (U64_LSHIFT(hi, 32) | U64_LSHIFT(lo, 0));
-	} else {
-		return 0xfd000000;
-	}
-}
-
 #define DNV_MCHBAR_SIZE  0x8000
 #define DNV_SB_PORT_SIZE 0x10000
 static int dnv_rd_reg(int port, int off, int op, void *data, size_t sz, char *name)
 {
 	struct pci_dev *pdev;
 	void __iomem *base;
-	u64 addr;
-	unsigned long size;
+	struct resource r;
+	int ret;
 
 	if (op == 4) {
 		pdev = pci_get_device(PCI_VENDOR_ID_INTEL, 0x1980, NULL);
@@ -279,20 +253,23 @@ static int dnv_rd_reg(int port, int off, int op, void *data, size_t sz, char *na
 	} else {
 		/* MMIO via memory controller hub base address */
 		if (op == 0 && port == 0x4c) {
-			addr = get_mem_ctrl_hub_base_addr();
-			if (!addr)
+			memset(&r, 0, sizeof(r));
+
+			r.start = get_mem_ctrl_hub_base_addr();
+			if (!r.start)
 				return -ENODEV;
-			size = DNV_MCHBAR_SIZE;
+			r.end = r.start + DNV_MCHBAR_SIZE - 1;
 		} else {
 			/* MMIO via sideband register base address */
-			addr = get_sideband_reg_base_addr();
-			if (!addr)
-				return -ENODEV;
-			addr += (port << 16);
-			size = DNV_SB_PORT_SIZE;
+			ret = p2sb_bar(NULL, 0, &r);
+			if (ret)
+				return ret;
+
+			r.start += (port << 16);
+			r.end = r.start + DNV_SB_PORT_SIZE - 1;
 		}
 
-		base = ioremap((resource_size_t)addr, size);
+		base = ioremap(r.start, resource_size(&r));
 		if (!base)
 			return -ENODEV;
 
-- 
2.35.1


  parent reply	other threads:[~2022-06-06 16:42 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-06 16:41 [PATCH v6 00/12] platform/x86: introduce p2sb_bar() helper Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 01/12] platform/x86/intel: Add Primary to Sideband (P2SB) bridge support Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 02/12] pinctrl: intel: Check against matching data instead of ACPI companion Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 03/12] mfd: lpc_ich: Factor out lpc_ich_enable_spi_write() Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 04/12] mfd: lpc_ich: Switch to generic p2sb_bar() Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 05/12] mfd: lpc_ich: Add support for pinctrl in non-ACPI system Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 06/12] i2c: i801: convert to use common P2SB accessor Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 07/12] EDAC, pnd2: Use proper I/O accessors and address space annotation Andy Shevchenko
2022-06-06 16:41 ` Andy Shevchenko [this message]
2022-06-06 16:41 ` [PATCH v6 09/12] watchdog: simatic-ipc-wdt: convert to use P2SB accessor Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 10/12] leds: simatic-ipc-leds: " Andy Shevchenko
2022-06-06 16:41 ` [PATCH v6 11/12] platform/x86: simatic-ipc: drop custom P2SB bar code Andy Shevchenko
2022-06-07 17:15   ` Hans de Goede
2022-06-06 16:41 ` [PATCH v6 12/12] leds: simatic-ipc-leds-gpio: add GPIO version of Siemens driver Andy Shevchenko
2022-08-01 14:09   ` Henning Schild
2022-08-02 10:54     ` Henning Schild
2022-06-07 17:16 ` [PATCH v6 00/12] platform/x86: introduce p2sb_bar() helper Hans de Goede
2022-06-08  7:42 ` Lee Jones
2022-06-08 10:50   ` Andy Shevchenko
2022-06-21 11:58     ` Andy Shevchenko
2022-06-29 16:39       ` Andy Shevchenko
2022-06-29 17:14         ` Henning Schild
2022-07-13 16:40           ` Andy Shevchenko
2022-07-13 16:51             ` Rafael J. Wysocki
2022-07-13 18:48             ` Henning Schild
2022-07-14  9:37               ` Lee Jones
2022-07-14 10:23                 ` Andy Shevchenko
2022-07-14 10:34                   ` Lee Jones
2022-07-14 11:03                     ` Henning Schild
2022-07-14 11:26   ` Pavel Machek
2022-07-14 12:10     ` Lee Jones
2022-07-17 10:27       ` Pavel Machek
2022-07-18 11:17 ` Andy Shevchenko
2022-08-10  7:38   ` Henning Schild

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=20220606164138.66535-9-andriy.shevchenko@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=andy@kernel.org \
    --cc=bp@alien8.de \
    --cc=hdegoede@redhat.com \
    --cc=henning.schild@siemens.com \
    --cc=hkallweit1@gmail.com \
    --cc=james.morse@arm.com \
    --cc=jdelvare@suse.com \
    --cc=jdelvare@suse.de \
    --cc=jonathan.yong@intel.com \
    --cc=lee.jones@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=markgross@kernel.org \
    --cc=mchehab@kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=pavel@ucw.cz \
    --cc=platform-driver-x86@vger.kernel.org \
    --cc=ptyser@xes-inc.com \
    --cc=rric@kernel.org \
    --cc=tony.luck@intel.com \
    --cc=wim@linux-watchdog.org \
    --cc=wsa@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.