From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Wolfram Sang <wsa@kernel.org>, Jean Delvare <jdelvare@suse.de>,
Heiner Kallweit <hkallweit1@gmail.com>,
Lee Jones <lee.jones@linaro.org>,
Hans de Goede <hdegoede@redhat.com>,
Linus Walleij <linus.walleij@linaro.org>,
Tan Jui Nee <jui.nee.tan@intel.com>, Kate Hsuan <hpa@redhat.com>,
Jonathan Yong <jonathan.yong@intel.com>,
linux-kernel@vger.kernel.org, linux-edac@vger.kernel.org,
linux-i2c@vger.kernel.org, linux-gpio@vger.kernel.org,
platform-driver-x86@vger.kernel.org
Cc: Borislav Petkov <bp@alien8.de>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Tony Luck <tony.luck@intel.com>,
James Morse <james.morse@arm.com>,
Robert Richter <rric@kernel.org>,
Jean Delvare <jdelvare@suse.com>,
Peter Tyser <ptyser@xes-inc.com>,
Mika Westerberg <mika.westerberg@linux.intel.com>,
Andy Shevchenko <andy@kernel.org>,
Mark Gross <markgross@kernel.org>,
Henning Schild <henning.schild@siemens.com>
Subject: [PATCH v4 8/8] EDAC, pnd2: convert to use common P2SB accessor
Date: Mon, 31 Jan 2022 17:13:46 +0200 [thread overview]
Message-ID: <20220131151346.45792-9-andriy.shevchenko@linux.intel.com> (raw)
In-Reply-To: <20220131151346.45792-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>
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 58ab63642e72..e566d66999a9 100644
--- a/drivers/edac/Kconfig
+++ b/drivers/edac/Kconfig
@@ -262,6 +262,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.34.1
next prev parent reply other threads:[~2022-01-31 15:14 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-31 15:13 [PATCH v4 0/8] platform/x86: introduce p2sb_bar() helper Andy Shevchenko
2022-01-31 15:13 ` [PATCH v4 1/8] platform/x86/intel: Add Primary to Sideband (P2SB) bridge support Andy Shevchenko
2022-02-14 11:26 ` Hans de Goede
2022-05-05 14:55 ` Lukas Wunner
2022-05-05 17:54 ` Andy Shevchenko
2022-05-08 7:13 ` Lukas Wunner
2022-05-08 10:05 ` Andy Shevchenko
2022-05-08 10:50 ` Lukas Wunner
2022-01-31 15:13 ` [PATCH v4 2/8] pinctrl: intel: Check against matching data instead of ACPI companion Andy Shevchenko
2022-01-31 15:13 ` [PATCH v4 3/8] mfd: lpc_ich: Factor out lpc_ich_enable_spi_write() Andy Shevchenko
2022-01-31 15:13 ` [PATCH v4 4/8] mfd: lpc_ich: Switch to generic p2sb_bar() Andy Shevchenko
2022-01-31 15:13 ` [PATCH v4 5/8] mfd: lpc_ich: Add support for pinctrl in non-ACPI system Andy Shevchenko
2022-02-15 16:54 ` Lee Jones
2022-02-15 17:11 ` Andy Shevchenko
2022-02-15 17:29 ` Lee Jones
2022-05-02 16:14 ` Andy Shevchenko
2022-05-04 12:52 ` Andy Shevchenko
2022-03-07 18:21 ` Henning Schild
2022-03-07 19:03 ` Andy Shevchenko
2022-01-31 15:13 ` [PATCH v4 6/8] i2c: i801: convert to use common P2SB accessor Andy Shevchenko
2022-02-03 14:14 ` Jean Delvare
2022-02-07 12:11 ` Wolfram Sang
2022-01-31 15:13 ` [PATCH v4 7/8] EDAC, pnd2: Use proper I/O accessors and address space annotation Andy Shevchenko
2022-01-31 15:13 ` Andy Shevchenko [this message]
2022-03-07 17:27 ` [PATCH v4 0/8] platform/x86: introduce p2sb_bar() helper Henning Schild
2022-03-08 19:35 ` [PATCH 0/2] simatic-ipc additions to p2sb apl lake gpio Henning Schild
2022-03-08 19:35 ` [PATCH 1/2] simatic-ipc: convert to use common P2SB accessor Henning Schild
2022-03-08 20:09 ` Henning Schild
2022-03-08 19:35 ` [PATCH 2/2] leds: simatic-ipc-leds-gpio: add GPIO version of Siemens driver Henning Schild
2022-05-04 12:51 ` [PATCH 0/2] simatic-ipc additions to p2sb apl lake gpio Andy Shevchenko
2022-05-04 15:19 ` Henning Schild
2022-05-04 16:36 ` Andy Shevchenko
2022-05-05 21:57 ` Guenter Roeck
2022-05-10 15:30 ` Henning Schild
2022-05-10 16:05 ` Andy Shevchenko
2022-03-08 19:50 ` [PATCH v4 0/8] platform/x86: introduce p2sb_bar() helper Henning Schild
2022-05-04 12:42 ` Andy Shevchenko
2022-05-04 15:10 ` Henning Schild
2022-05-04 15:55 ` Andy Shevchenko
2022-05-07 10:33 ` Andy Shevchenko
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=20220131151346.45792-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=hpa@redhat.com \
--cc=james.morse@arm.com \
--cc=jdelvare@suse.com \
--cc=jdelvare@suse.de \
--cc=jonathan.yong@intel.com \
--cc=jui.nee.tan@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=markgross@kernel.org \
--cc=mchehab@kernel.org \
--cc=mika.westerberg@linux.intel.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=ptyser@xes-inc.com \
--cc=rric@kernel.org \
--cc=tony.luck@intel.com \
--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.