| From fb37317553c93b7497d66c6617410ec64d3c7d13 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 8 Mar 2021 16:24:47 +0100 |
| Subject: PCI: thunder: Fix compile testing |
| |
| From: Arnd Bergmann <arnd@arndb.de> |
| |
| [ Upstream commit 16f7ae5906dfbeff54f74ec75d0563bb3a87ab0b ] |
| |
| Compile-testing these drivers is currently broken. Enabling it causes a |
| couple of build failures though: |
| |
| drivers/pci/controller/pci-thunder-ecam.c:119:30: error: shift count >= width of type [-Werror,-Wshift-count-overflow] |
| drivers/pci/controller/pci-thunder-pem.c:54:2: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration] |
| drivers/pci/controller/pci-thunder-pem.c:392:8: error: implicit declaration of function 'acpi_get_rc_resources' [-Werror,-Wimplicit-function-declaration] |
| |
| Fix them with the obvious one-line changes. |
| |
| Link: https://lore.kernel.org/r/20210308152501.2135937-2-arnd@kernel.org |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> |
| Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> |
| Reviewed-by: Robert Richter <rric@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/pci/controller/pci-thunder-ecam.c | 2 +- |
| drivers/pci/controller/pci-thunder-pem.c | 13 +++++++------ |
| drivers/pci/pci.h | 6 ++++++ |
| 3 files changed, 14 insertions(+), 7 deletions(-) |
| |
| diff --git a/drivers/pci/controller/pci-thunder-ecam.c b/drivers/pci/controller/pci-thunder-ecam.c |
| index f964fd26f7e0..ffd84656544f 100644 |
| --- a/drivers/pci/controller/pci-thunder-ecam.c |
| +++ b/drivers/pci/controller/pci-thunder-ecam.c |
| @@ -116,7 +116,7 @@ static int thunder_ecam_p2_config_read(struct pci_bus *bus, unsigned int devfn, |
| * the config space access window. Since we are working with |
| * the high-order 32 bits, shift everything down by 32 bits. |
| */ |
| - node_bits = (cfg->res.start >> 32) & (1 << 12); |
| + node_bits = upper_32_bits(cfg->res.start) & (1 << 12); |
| |
| v |= node_bits; |
| set_val(v, where, size, val); |
| diff --git a/drivers/pci/controller/pci-thunder-pem.c b/drivers/pci/controller/pci-thunder-pem.c |
| index 1a3f70ac61fc..0660b9da204f 100644 |
| --- a/drivers/pci/controller/pci-thunder-pem.c |
| +++ b/drivers/pci/controller/pci-thunder-pem.c |
| @@ -12,6 +12,7 @@ |
| #include <linux/pci-acpi.h> |
| #include <linux/pci-ecam.h> |
| #include <linux/platform_device.h> |
| +#include <linux/io-64-nonatomic-lo-hi.h> |
| #include "../pci.h" |
| |
| #if defined(CONFIG_PCI_HOST_THUNDER_PEM) || (defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS)) |
| @@ -324,9 +325,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg, |
| * structure here for the BAR. |
| */ |
| bar4_start = res_pem->start + 0xf00000; |
| - pem_pci->ea_entry[0] = (u32)bar4_start | 2; |
| - pem_pci->ea_entry[1] = (u32)(res_pem->end - bar4_start) & ~3u; |
| - pem_pci->ea_entry[2] = (u32)(bar4_start >> 32); |
| + pem_pci->ea_entry[0] = lower_32_bits(bar4_start) | 2; |
| + pem_pci->ea_entry[1] = lower_32_bits(res_pem->end - bar4_start) & ~3u; |
| + pem_pci->ea_entry[2] = upper_32_bits(bar4_start); |
| |
| cfg->priv = pem_pci; |
| return 0; |
| @@ -334,9 +335,9 @@ static int thunder_pem_init(struct device *dev, struct pci_config_window *cfg, |
| |
| #if defined(CONFIG_ACPI) && defined(CONFIG_PCI_QUIRKS) |
| |
| -#define PEM_RES_BASE 0x87e0c0000000UL |
| -#define PEM_NODE_MASK GENMASK(45, 44) |
| -#define PEM_INDX_MASK GENMASK(26, 24) |
| +#define PEM_RES_BASE 0x87e0c0000000ULL |
| +#define PEM_NODE_MASK GENMASK_ULL(45, 44) |
| +#define PEM_INDX_MASK GENMASK_ULL(26, 24) |
| #define PEM_MIN_DOM_IN_NODE 4 |
| #define PEM_MAX_DOM_IN_NODE 10 |
| |
| diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h |
| index ef7c4661314f..9684b468267f 100644 |
| --- a/drivers/pci/pci.h |
| +++ b/drivers/pci/pci.h |
| @@ -624,6 +624,12 @@ static inline int pci_dev_specific_reset(struct pci_dev *dev, int probe) |
| #if defined(CONFIG_PCI_QUIRKS) && defined(CONFIG_ARM64) |
| int acpi_get_rc_resources(struct device *dev, const char *hid, u16 segment, |
| struct resource *res); |
| +#else |
| +static inline int acpi_get_rc_resources(struct device *dev, const char *hid, |
| + u16 segment, struct resource *res) |
| +{ |
| + return -ENODEV; |
| +} |
| #endif |
| |
| int pci_rebar_get_current_size(struct pci_dev *pdev, int bar); |
| -- |
| 2.30.2 |
| |