* [PATCH v10 1/6] ACPI: Allow CONFIG_PCI to be unset for reboot
[not found] <20181215010247.26101-1-okaya@kernel.org>
@ 2018-12-15 1:02 ` Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 2/6] ACPI / OSL: Stub out acpi_os_(read/write)_pci_configurations() Sinan Kaya
` (4 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Sinan Kaya @ 2018-12-15 1:02 UTC (permalink / raw)
To: linux-acpi; +Cc: Sinan Kaya, Rafael J. Wysocki, Len Brown, open list
Make PCI reboot conditional on PCI support being present on the kernel
configuration.
Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
drivers/acpi/reboot.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/acpi/reboot.c b/drivers/acpi/reboot.c
index 6fa9c2a4cfe9..d75e637ee36a 100644
--- a/drivers/acpi/reboot.c
+++ b/drivers/acpi/reboot.c
@@ -7,8 +7,6 @@
void acpi_reboot(void)
{
struct acpi_generic_address *rr;
- struct pci_bus *bus0;
- unsigned int devfn;
u8 reset_value;
if (acpi_disabled)
@@ -33,6 +31,11 @@ void acpi_reboot(void)
* on a device on bus 0. */
switch (rr->space_id) {
case ACPI_ADR_SPACE_PCI_CONFIG:
+ {
+#ifdef CONFIG_PCI
+ unsigned int devfn;
+ struct pci_bus *bus0;
+
/* The reset register can only live on bus 0. */
bus0 = pci_find_bus(0, 0);
if (!bus0)
@@ -44,8 +47,9 @@ void acpi_reboot(void)
/* Write the value that resets us. */
pci_bus_write_config_byte(bus0, devfn,
(rr->address & 0xffff), reset_value);
+#endif
break;
-
+ }
case ACPI_ADR_SPACE_SYSTEM_MEMORY:
case ACPI_ADR_SPACE_SYSTEM_IO:
printk(KERN_DEBUG "ACPI MEMORY or I/O RESET_REG.\n");
--
2.19.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v10 2/6] ACPI / OSL: Stub out acpi_os_(read/write)_pci_configurations()
[not found] <20181215010247.26101-1-okaya@kernel.org>
2018-12-15 1:02 ` [PATCH v10 1/6] ACPI: Allow CONFIG_PCI to be unset for reboot Sinan Kaya
@ 2018-12-15 1:02 ` Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 3/6] PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set Sinan Kaya
` (3 subsequent siblings)
5 siblings, 0 replies; 14+ messages in thread
From: Sinan Kaya @ 2018-12-15 1:02 UTC (permalink / raw)
To: linux-acpi; +Cc: Sinan Kaya, Rafael J. Wysocki, Len Brown, open list
Getting ready to allow CONFIG_PCI to be unset with ACPI enabled. Stub out
acpi_os_read_pci_configuration and acpi_os_write_pci_configuration
functions when CONFIG_PCI is not defined.
Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
drivers/acpi/osl.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index b48874b8e1ea..524fd5f33ea4 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -773,6 +773,7 @@ acpi_status
acpi_os_read_pci_configuration(struct acpi_pci_id * pci_id, u32 reg,
u64 *value, u32 width)
{
+#ifdef CONFIG_PCI
int result, size;
u32 value32;
@@ -799,12 +800,19 @@ acpi_os_read_pci_configuration(struct acpi_pci_id * pci_id, u32 reg,
*value = value32;
return (result ? AE_ERROR : AE_OK);
+#else
+ int rc;
+
+ rc = pr_warn_once("PCI configuration space access is not supported\n");
+ return rc ? AE_SUPPORT : AE_OK;
+#endif
}
acpi_status
acpi_os_write_pci_configuration(struct acpi_pci_id * pci_id, u32 reg,
u64 value, u32 width)
{
+#ifdef CONFIG_PCI
int result, size;
switch (width) {
@@ -826,6 +834,12 @@ acpi_os_write_pci_configuration(struct acpi_pci_id * pci_id, u32 reg,
reg, size, value);
return (result ? AE_ERROR : AE_OK);
+#else
+ int rc;
+
+ rc = pr_warn_once("PCI configuration space access is not supported\n");
+ return rc ? AE_SUPPORT : AE_OK;
+#endif
}
static void acpi_os_execute_deferred(struct work_struct *work)
--
2.19.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v10 3/6] PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set
[not found] <20181215010247.26101-1-okaya@kernel.org>
2018-12-15 1:02 ` [PATCH v10 1/6] ACPI: Allow CONFIG_PCI to be unset for reboot Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 2/6] ACPI / OSL: Stub out acpi_os_(read/write)_pci_configurations() Sinan Kaya
@ 2018-12-15 1:02 ` Sinan Kaya
2018-12-17 17:00 ` Ingo Molnar
2018-12-15 1:02 ` [PATCH v10 4/6] ACPICA: Remove PCI bits from ACPICA when CONFIG_PCI is unset Sinan Kaya
` (2 subsequent siblings)
5 siblings, 1 reply; 14+ messages in thread
From: Sinan Kaya @ 2018-12-15 1:02 UTC (permalink / raw)
To: linux-acpi
Cc: Sinan Kaya, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
H. Peter Anvin, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
Rafael J. Wysocki, Len Brown, Bjorn Helgaas, Robert Moore,
Erik Schmauss, Jan Kiszka, Andy Shevchenko, Christian König,
Otavio Pontes, Christian König,
open list:X86 ARCHITECTURE (32-BIT AND 64-BIT),
open list:PCI SUBSYSTEM,
open list:ACPI COMPONENT ARCHITECTURE (ACPICA)
We are compiling PCI code today for systems with ACPI and no PCI
device present. Remove the useless code and reduce the tight
dependency.
Signed-off-by: Sinan Kaya <okaya@kernel.org>
Acked-by: Bjorn Helgaas <bhelgaas@google.com> # PCI parts
---
arch/x86/include/asm/pci_x86.h | 7 +++++++
drivers/acpi/Kconfig | 1 -
drivers/acpi/Makefile | 2 +-
drivers/acpi/internal.h | 5 +++++
drivers/pci/Makefile | 2 +-
include/acpi/acpi_drivers.h | 7 +++++++
include/linux/acpi.h | 7 +++++++
include/linux/pci.h | 4 ++++
8 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h
index 959d618dbb17..73bb404f4d2a 100644
--- a/arch/x86/include/asm/pci_x86.h
+++ b/arch/x86/include/asm/pci_x86.h
@@ -121,7 +121,14 @@ extern void __init dmi_check_pciprobe(void);
extern void __init dmi_check_skip_isa_align(void);
/* some common used subsys_initcalls */
+#ifdef CONFIG_PCI
extern int __init pci_acpi_init(void);
+#else
+static inline int __init pci_acpi_init(void)
+{
+ return -EINVAL;
+}
+#endif
extern void __init pcibios_irq_init(void);
extern int __init pcibios_init(void);
extern int pci_legacy_init(void);
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index 7cea769c37df..a0abcb3bd673 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -9,7 +9,6 @@ config ARCH_SUPPORTS_ACPI
menuconfig ACPI
bool "ACPI (Advanced Configuration and Power Interface) Support"
depends on ARCH_SUPPORTS_ACPI
- depends on PCI
select PNP
default y if X86
help
diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
index edc039313cd6..7c6afc111d76 100644
--- a/drivers/acpi/Makefile
+++ b/drivers/acpi/Makefile
@@ -39,7 +39,7 @@ acpi-y += processor_core.o
acpi-$(CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC) += processor_pdc.o
acpi-y += ec.o
acpi-$(CONFIG_ACPI_DOCK) += dock.o
-acpi-y += pci_root.o pci_link.o pci_irq.o
+acpi-$(CONFIG_PCI) += pci_root.o pci_link.o pci_irq.o
obj-$(CONFIG_ACPI_MCFG) += pci_mcfg.o
acpi-y += acpi_lpss.o acpi_apd.o
acpi-y += acpi_platform.o
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 530a3f675490..b7060dae2789 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -25,8 +25,13 @@ int acpi_osi_init(void);
acpi_status acpi_os_initialize1(void);
void init_acpi_device_notify(void);
int acpi_scan_init(void);
+#ifdef CONFIG_PCI
void acpi_pci_root_init(void);
void acpi_pci_link_init(void);
+#else
+static inline void acpi_pci_root_init(void) {}
+static inline void acpi_pci_link_init(void) {}
+#endif
void acpi_processor_init(void);
void acpi_platform_init(void);
void acpi_pnp_init(void);
diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile
index f2bda77a2df1..657d642fcc67 100644
--- a/drivers/pci/Makefile
+++ b/drivers/pci/Makefile
@@ -11,6 +11,7 @@ ifdef CONFIG_PCI
obj-$(CONFIG_PROC_FS) += proc.o
obj-$(CONFIG_SYSFS) += slot.o
obj-$(CONFIG_OF) += of.o
+obj-$(CONFIG_ACPI) += pci-acpi.o
endif
obj-$(CONFIG_PCI_QUIRKS) += quirks.o
@@ -20,7 +21,6 @@ obj-$(CONFIG_PCI_MSI) += msi.o
obj-$(CONFIG_PCI_ATS) += ats.o
obj-$(CONFIG_PCI_IOV) += iov.o
obj-$(CONFIG_PCI_BRIDGE_EMUL) += pci-bridge-emul.o
-obj-$(CONFIG_ACPI) += pci-acpi.o
obj-$(CONFIG_PCI_LABEL) += pci-label.o
obj-$(CONFIG_X86_INTEL_MID) += pci-mid.o
obj-$(CONFIG_PCI_SYSCALL) += syscall.o
diff --git a/include/acpi/acpi_drivers.h b/include/acpi/acpi_drivers.h
index 14499757338f..de1804aeaf69 100644
--- a/include/acpi/acpi_drivers.h
+++ b/include/acpi/acpi_drivers.h
@@ -88,7 +88,14 @@ int acpi_pci_link_free_irq(acpi_handle handle);
struct pci_bus;
+#ifdef CONFIG_PCI
struct pci_dev *acpi_get_pci_dev(acpi_handle);
+#else
+static inline struct pci_dev *acpi_get_pci_dev(acpi_handle handle)
+{
+ return NULL;
+}
+#endif
/* Arch-defined function to add a bus to the system */
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index ed80f147bd50..eb1fdf4c196a 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -340,7 +340,14 @@ struct pci_dev;
int acpi_pci_irq_enable (struct pci_dev *dev);
void acpi_penalize_isa_irq(int irq, int active);
bool acpi_isa_irq_available(int irq);
+#ifdef CONFIG_PCI
void acpi_penalize_sci_irq(int irq, int trigger, int polarity);
+#else
+static inline void acpi_penalize_sci_irq(int irq, int trigger,
+ int polarity)
+{
+}
+#endif
void acpi_pci_irq_disable (struct pci_dev *dev);
extern int ec_read(u8 addr, u8 *val);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 11c71c4ecf75..51a5a5217667 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1960,7 +1960,11 @@ int pcibios_set_pcie_reset_state(struct pci_dev *dev,
enum pcie_reset_state state);
int pcibios_add_device(struct pci_dev *dev);
void pcibios_release_device(struct pci_dev *dev);
+#ifdef CONFIG_PCI
void pcibios_penalize_isa_irq(int irq, int active);
+#else
+static inline void pcibios_penalize_isa_irq(int irq, int active) {}
+#endif
int pcibios_alloc_irq(struct pci_dev *dev);
void pcibios_free_irq(struct pci_dev *dev);
resource_size_t pcibios_default_alignment(void);
--
2.19.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v10 4/6] ACPICA: Remove PCI bits from ACPICA when CONFIG_PCI is unset
[not found] <20181215010247.26101-1-okaya@kernel.org>
` (2 preceding siblings ...)
2018-12-15 1:02 ` [PATCH v10 3/6] PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set Sinan Kaya
@ 2018-12-15 1:02 ` Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 5/6] arm64: select ACPI PCI code only both features are enabled Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set Sinan Kaya
5 siblings, 0 replies; 14+ messages in thread
From: Sinan Kaya @ 2018-12-15 1:02 UTC (permalink / raw)
To: linux-acpi
Cc: Sinan Kaya, Robert Moore, Erik Schmauss, Rafael J. Wysocki,
Len Brown, Sebastian Andrzej Siewior, Lv Zheng, Anuj Mittal,
open list:ACPI COMPONENT ARCHITECTURE (ACPICA),
open list
Now that we allow CONFIG_PCI to be unset, remove useless code from ACPICA
too.
Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
drivers/acpi/acpica/Makefile | 2 +-
drivers/acpi/acpica/achware.h | 9 +++++++++
include/acpi/platform/aclinux.h | 4 ++++
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile
index b14621da5413..59700433a96e 100644
--- a/drivers/acpi/acpica/Makefile
+++ b/drivers/acpi/acpica/Makefile
@@ -77,13 +77,13 @@ acpi-y += \
hwacpi.o \
hwesleep.o \
hwgpe.o \
- hwpci.o \
hwregs.o \
hwsleep.o \
hwvalid.o \
hwxface.o \
hwxfsleep.o
+acpi-$(CONFIG_PCI) += hwpci.o
acpi-$(ACPI_FUTURE_USAGE) += hwtimer.o
acpi-y += \
diff --git a/drivers/acpi/acpica/achware.h b/drivers/acpi/acpica/achware.h
index 43ce67a9da1f..ef99e2fc37f8 100644
--- a/drivers/acpi/acpica/achware.h
+++ b/drivers/acpi/acpica/achware.h
@@ -106,11 +106,20 @@ acpi_hw_enable_runtime_gpe_block(struct acpi_gpe_xrupt_info *gpe_xrupt_info,
struct acpi_gpe_block_info *gpe_block,
void *context);
+#ifdef ACPI_PCI_CONFIGURED
/*
* hwpci - PCI configuration support
*/
acpi_status
acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id,
acpi_handle root_pci_device, acpi_handle pci_region);
+#else
+static inline acpi_status
+acpi_hw_derive_pci_id(struct acpi_pci_id *pci_id, acpi_handle root_pci_device,
+ acpi_handle pci_region)
+{
+ return AE_SUPPORT;
+}
+#endif
#endif /* __ACHWARE_H__ */
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h
index 7451b3bca83a..e3d21d014fcc 100644
--- a/include/acpi/platform/aclinux.h
+++ b/include/acpi/platform/aclinux.h
@@ -33,6 +33,10 @@
/* Kernel specific ACPICA configuration */
+#ifdef CONFIG_PCI
+#define ACPI_PCI_CONFIGURED
+#endif
+
#ifdef CONFIG_ACPI_REDUCED_HARDWARE_ONLY
#define ACPI_REDUCED_HARDWARE 1
#endif
--
2.19.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v10 5/6] arm64: select ACPI PCI code only both features are enabled
[not found] <20181215010247.26101-1-okaya@kernel.org>
` (3 preceding siblings ...)
2018-12-15 1:02 ` [PATCH v10 4/6] ACPICA: Remove PCI bits from ACPICA when CONFIG_PCI is unset Sinan Kaya
@ 2018-12-15 1:02 ` Sinan Kaya
2018-12-17 10:04 ` Rafael J. Wysocki
2018-12-15 1:02 ` [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set Sinan Kaya
5 siblings, 1 reply; 14+ messages in thread
From: Sinan Kaya @ 2018-12-15 1:02 UTC (permalink / raw)
To: linux-acpi
Cc: Sinan Kaya, Catalin Marinas, Will Deacon,
moderated list:ARM64 PORT (AARCH64 ARCHITECTURE),
open list
ACPI and PCI are no longer coupled to each other. Specify requirements
for both when pulling in code.
Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
arch/arm64/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index ea2ab0330e3a..bcb6262044d8 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -5,7 +5,7 @@ config ARM64
select ACPI_GTDT if ACPI
select ACPI_IORT if ACPI
select ACPI_REDUCED_HARDWARE_ONLY if ACPI
- select ACPI_MCFG if ACPI
+ select ACPI_MCFG if (ACPI && PCI)
select ACPI_SPCR_TABLE if ACPI
select ACPI_PPTT if ACPI
select ARCH_CLOCKSOURCE_DATA
@@ -163,7 +163,7 @@ config ARM64
select OF
select OF_EARLY_FLATTREE
select OF_RESERVED_MEM
- select PCI_ECAM if ACPI
+ select PCI_ECAM if (ACPI && PCI)
select POWER_RESET
select POWER_SUPPLY
select REFCOUNT_FULL
--
2.19.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set
[not found] <20181215010247.26101-1-okaya@kernel.org>
` (4 preceding siblings ...)
2018-12-15 1:02 ` [PATCH v10 5/6] arm64: select ACPI PCI code only both features are enabled Sinan Kaya
@ 2018-12-15 1:02 ` Sinan Kaya
2018-12-17 10:04 ` Rafael J. Wysocki
` (2 more replies)
5 siblings, 3 replies; 14+ messages in thread
From: Sinan Kaya @ 2018-12-15 1:02 UTC (permalink / raw)
To: linux-acpi
Cc: Sinan Kaya, Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla,
Rafael J. Wysocki, Len Brown, open list
Remove PCI dependent code out of iort.c when CONFIG_PCI is not defined.
Signed-off-by: Sinan Kaya <okaya@kernel.org>
---
drivers/acpi/arm64/iort.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 70f4e80b9246..d0f68607efe6 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -1437,6 +1437,7 @@ static int __init iort_add_platform_device(struct acpi_iort_node *node,
static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
{
+#ifdef CONFIG_PCI
if (iort_node->type == ACPI_IORT_NODE_PCI_ROOT_COMPLEX) {
struct acpi_iort_node *parent;
struct acpi_iort_id_mapping *map;
@@ -1462,6 +1463,7 @@ static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
}
}
}
+#endif
return false;
}
--
2.19.0
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v10 5/6] arm64: select ACPI PCI code only both features are enabled
2018-12-15 1:02 ` [PATCH v10 5/6] arm64: select ACPI PCI code only both features are enabled Sinan Kaya
@ 2018-12-17 10:04 ` Rafael J. Wysocki
2018-12-17 15:52 ` Catalin Marinas
0 siblings, 1 reply; 14+ messages in thread
From: Rafael J. Wysocki @ 2018-12-17 10:04 UTC (permalink / raw)
To: Sinan Kaya
Cc: linux-acpi, Catalin Marinas, Will Deacon,
moderated list:ARM64 PORT (AARCH64 ARCHITECTURE),
open list
On Saturday, December 15, 2018 2:02:46 AM CET Sinan Kaya wrote:
> ACPI and PCI are no longer coupled to each other. Specify requirements
> for both when pulling in code.
>
> Signed-off-by: Sinan Kaya <okaya@kernel.org>
> ---
> arch/arm64/Kconfig | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index ea2ab0330e3a..bcb6262044d8 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -5,7 +5,7 @@ config ARM64
> select ACPI_GTDT if ACPI
> select ACPI_IORT if ACPI
> select ACPI_REDUCED_HARDWARE_ONLY if ACPI
> - select ACPI_MCFG if ACPI
> + select ACPI_MCFG if (ACPI && PCI)
> select ACPI_SPCR_TABLE if ACPI
> select ACPI_PPTT if ACPI
> select ARCH_CLOCKSOURCE_DATA
> @@ -163,7 +163,7 @@ config ARM64
> select OF
> select OF_EARLY_FLATTREE
> select OF_RESERVED_MEM
> - select PCI_ECAM if ACPI
> + select PCI_ECAM if (ACPI && PCI)
> select POWER_RESET
> select POWER_SUPPLY
> select REFCOUNT_FULL
>
I need a maintainer ACK here.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set
2018-12-15 1:02 ` [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set Sinan Kaya
@ 2018-12-17 10:04 ` Rafael J. Wysocki
2018-12-17 12:55 ` Lorenzo Pieralisi
2018-12-18 2:14 ` Hanjun Guo
2 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2018-12-17 10:04 UTC (permalink / raw)
To: Sinan Kaya
Cc: linux-acpi, Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla,
Len Brown, open list
On Saturday, December 15, 2018 2:02:47 AM CET Sinan Kaya wrote:
> Remove PCI dependent code out of iort.c when CONFIG_PCI is not defined.
>
> Signed-off-by: Sinan Kaya <okaya@kernel.org>
> ---
> drivers/acpi/arm64/iort.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 70f4e80b9246..d0f68607efe6 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1437,6 +1437,7 @@ static int __init iort_add_platform_device(struct acpi_iort_node *node,
>
> static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
> {
> +#ifdef CONFIG_PCI
> if (iort_node->type == ACPI_IORT_NODE_PCI_ROOT_COMPLEX) {
> struct acpi_iort_node *parent;
> struct acpi_iort_id_mapping *map;
> @@ -1462,6 +1463,7 @@ static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
> }
> }
> }
> +#endif
>
> return false;
> }
>
I need a maintainer ACK here.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set
2018-12-15 1:02 ` [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set Sinan Kaya
2018-12-17 10:04 ` Rafael J. Wysocki
@ 2018-12-17 12:55 ` Lorenzo Pieralisi
2018-12-18 2:14 ` Hanjun Guo
2 siblings, 0 replies; 14+ messages in thread
From: Lorenzo Pieralisi @ 2018-12-17 12:55 UTC (permalink / raw)
To: Sinan Kaya
Cc: linux-acpi, Hanjun Guo, Sudeep Holla, Rafael J. Wysocki,
Len Brown, open list
On Sat, Dec 15, 2018 at 01:02:47AM +0000, Sinan Kaya wrote:
> Remove PCI dependent code out of iort.c when CONFIG_PCI is not defined.
>
> Signed-off-by: Sinan Kaya <okaya@kernel.org>
> ---
> drivers/acpi/arm64/iort.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 70f4e80b9246..d0f68607efe6 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1437,6 +1437,7 @@ static int __init iort_add_platform_device(struct acpi_iort_node *node,
>
> static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
> {
> +#ifdef CONFIG_PCI
> if (iort_node->type == ACPI_IORT_NODE_PCI_ROOT_COMPLEX) {
> struct acpi_iort_node *parent;
> struct acpi_iort_id_mapping *map;
> @@ -1462,6 +1463,7 @@ static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
> }
> }
> }
> +#endif
>
> return false;
> }
> --
> 2.19.0
I would prefer the ifdef to wrap the function rather than in the
function.
Anyway, as an alternative, what about this:
-- >8 --
diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
index 70f4e80b9246..06d4cc888df6 100644
--- a/drivers/acpi/arm64/iort.c
+++ b/drivers/acpi/arm64/iort.c
@@ -1435,8 +1435,14 @@ static int __init iort_add_platform_device(struct acpi_iort_node *node,
return ret;
}
-static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
+#ifdef CONFIG_PCI
+static void __init iort_enable_acs(struct acpi_iort_node *iort_node)
{
+ static bool acs_enabled __initdata = false;
+
+ if (acs_enabled)
+ return;
+
if (iort_node->type == ACPI_IORT_NODE_PCI_ROOT_COMPLEX) {
struct acpi_iort_node *parent;
struct acpi_iort_id_mapping *map;
@@ -1458,13 +1464,15 @@ static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
if ((parent->type == ACPI_IORT_NODE_SMMU) ||
(parent->type == ACPI_IORT_NODE_SMMU_V3)) {
pci_request_acs();
- return true;
+ acs_enabled = true;
+ return;
}
}
}
-
- return false;
}
+#else
+static inline void iort_enable_acs(struct acpi_iort_node *iort_node) { }
+#endif
static void __init iort_init_platform_devices(void)
{
@@ -1472,7 +1480,6 @@ static void __init iort_init_platform_devices(void)
struct acpi_table_iort *iort;
struct fwnode_handle *fwnode;
int i, ret;
- bool acs_enabled = false;
const struct iort_dev_config *ops;
/*
@@ -1493,8 +1500,7 @@ static void __init iort_init_platform_devices(void)
return;
}
- if (!acs_enabled)
- acs_enabled = iort_enable_acs(iort_node);
+ iort_enable_acs(iort_node);
ops = iort_get_dev_cfg(iort_node);
if (ops) {
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v10 5/6] arm64: select ACPI PCI code only both features are enabled
2018-12-17 10:04 ` Rafael J. Wysocki
@ 2018-12-17 15:52 ` Catalin Marinas
0 siblings, 0 replies; 14+ messages in thread
From: Catalin Marinas @ 2018-12-17 15:52 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Sinan Kaya, linux-acpi, Will Deacon, open list,
moderated list:ARM64 PORT (AARCH64 ARCHITECTURE)
On Mon, Dec 17, 2018 at 11:04:42AM +0100, Rafael J. Wysocki wrote:
> On Saturday, December 15, 2018 2:02:46 AM CET Sinan Kaya wrote:
> > ACPI and PCI are no longer coupled to each other. Specify requirements
> > for both when pulling in code.
> >
> > Signed-off-by: Sinan Kaya <okaya@kernel.org>
> > ---
> > arch/arm64/Kconfig | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> > index ea2ab0330e3a..bcb6262044d8 100644
> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -5,7 +5,7 @@ config ARM64
> > select ACPI_GTDT if ACPI
> > select ACPI_IORT if ACPI
> > select ACPI_REDUCED_HARDWARE_ONLY if ACPI
> > - select ACPI_MCFG if ACPI
> > + select ACPI_MCFG if (ACPI && PCI)
> > select ACPI_SPCR_TABLE if ACPI
> > select ACPI_PPTT if ACPI
> > select ARCH_CLOCKSOURCE_DATA
> > @@ -163,7 +163,7 @@ config ARM64
> > select OF
> > select OF_EARLY_FLATTREE
> > select OF_RESERVED_MEM
> > - select PCI_ECAM if ACPI
> > + select PCI_ECAM if (ACPI && PCI)
> > select POWER_RESET
> > select POWER_SUPPLY
> > select REFCOUNT_FULL
> >
>
> I need a maintainer ACK here.
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v10 3/6] PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set
2018-12-15 1:02 ` [PATCH v10 3/6] PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set Sinan Kaya
@ 2018-12-17 17:00 ` Ingo Molnar
2018-12-18 1:57 ` Sinan Kaya
0 siblings, 1 reply; 14+ messages in thread
From: Ingo Molnar @ 2018-12-17 17:00 UTC (permalink / raw)
To: Sinan Kaya
Cc: linux-acpi, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
H. Peter Anvin, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
Rafael J. Wysocki, Len Brown, Bjorn Helgaas, Robert Moore,
Erik Schmauss, Jan Kiszka, Andy Shevchenko, Christian König,
Otavio Pontes, Christian König,
open list:X86 ARCHITECTURE (32-BIT AND 64-BIT),
open list:PCI SUBSYSTEM,
open list:ACPI COMPONENT ARCHITECTURE (ACPICA)
* Sinan Kaya <okaya@kernel.org> wrote:
> We are compiling PCI code today for systems with ACPI and no PCI
> device present. Remove the useless code and reduce the tight
> dependency.
>
> Signed-off-by: Sinan Kaya <okaya@kernel.org>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com> # PCI parts
If this is targeted for the ACPI tree:
Acked-by: Ingo Molnar <mingo@kernel.org>
Thanks,
Ingo
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v10 3/6] PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set
2018-12-17 17:00 ` Ingo Molnar
@ 2018-12-18 1:57 ` Sinan Kaya
0 siblings, 0 replies; 14+ messages in thread
From: Sinan Kaya @ 2018-12-18 1:57 UTC (permalink / raw)
To: Ingo Molnar
Cc: linux-acpi, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
H. Peter Anvin, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT),
Rafael J. Wysocki, Len Brown, Bjorn Helgaas, Robert Moore,
Erik Schmauss, Jan Kiszka, Andy Shevchenko, Christian König,
Otavio Pontes, Christian König,
open list:X86 ARCHITECTURE (32-BIT AND 64-BIT),
open list:PCI SUBSYSTEM,
open list:ACPI COMPONENT ARCHITECTURE (ACPICA)
On Mon, Dec 17, 2018 at 6:01 PM Ingo Molnar <mingo@kernel.org> wrote:
>
>
> * Sinan Kaya <okaya@kernel.org> wrote:
>
> > We are compiling PCI code today for systems with ACPI and no PCI
> > device present. Remove the useless code and reduce the tight
> > dependency.
> >
> > Signed-off-by: Sinan Kaya <okaya@kernel.org>
> > Acked-by: Bjorn Helgaas <bhelgaas@google.com> # PCI parts
>
> If this is targeted for the ACPI tree:
>
Thanks, yes. Plan is to take it through ACPI tree.
> Acked-by: Ingo Molnar <mingo@kernel.org>
>
> Thanks,
>
> Ingo
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set
2018-12-15 1:02 ` [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set Sinan Kaya
2018-12-17 10:04 ` Rafael J. Wysocki
2018-12-17 12:55 ` Lorenzo Pieralisi
@ 2018-12-18 2:14 ` Hanjun Guo
2018-12-18 2:46 ` Sinan Kaya
2 siblings, 1 reply; 14+ messages in thread
From: Hanjun Guo @ 2018-12-18 2:14 UTC (permalink / raw)
To: Sinan Kaya, linux-acpi
Cc: Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla, Rafael J. Wysocki,
Len Brown, open list
Hi Sinan,
On 2018/12/15 9:02, Sinan Kaya wrote:
> Remove PCI dependent code out of iort.c when CONFIG_PCI is not defined.
>
> Signed-off-by: Sinan Kaya <okaya@kernel.org>
> ---
> drivers/acpi/arm64/iort.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 70f4e80b9246..d0f68607efe6 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1437,6 +1437,7 @@ static int __init iort_add_platform_device(struct acpi_iort_node *node,
>
> static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
> {
> +#ifdef CONFIG_PCI
> if (iort_node->type == ACPI_IORT_NODE_PCI_ROOT_COMPLEX) {
> struct acpi_iort_node *parent;
> struct acpi_iort_id_mapping *map;
> @@ -1462,6 +1463,7 @@ static bool __init iort_enable_acs(struct acpi_iort_node *iort_node)
> }
> }
> }
> +#endif
I prefer stub function for iort_enable_acs(), not adding #ifdef/#endif pair inside
this function.
By the way, there are other pci function called in iort.c, could you explain a
little bit why no need to update other function calls in commit message?
Thanks
Hanjun
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set
2018-12-18 2:14 ` Hanjun Guo
@ 2018-12-18 2:46 ` Sinan Kaya
0 siblings, 0 replies; 14+ messages in thread
From: Sinan Kaya @ 2018-12-18 2:46 UTC (permalink / raw)
To: Hanjun Guo, linux-acpi
Cc: Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla, Rafael J. Wysocki,
Len Brown, open list
On 12/18/2018 3:14 AM, Hanjun Guo wrote:
> I prefer stub function for iort_enable_acs(), not adding #ifdef/#endif pair inside
> this function.
Yes, I'm reworking this per input from Lorenzo.
>
> By the way, there are other pci function called in iort.c, could you explain a
> little bit why no need to update other function calls in commit message?
I added few words about why other code was not stubbed out.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2018-12-18 2:46 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20181215010247.26101-1-okaya@kernel.org>
2018-12-15 1:02 ` [PATCH v10 1/6] ACPI: Allow CONFIG_PCI to be unset for reboot Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 2/6] ACPI / OSL: Stub out acpi_os_(read/write)_pci_configurations() Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 3/6] PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set Sinan Kaya
2018-12-17 17:00 ` Ingo Molnar
2018-12-18 1:57 ` Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 4/6] ACPICA: Remove PCI bits from ACPICA when CONFIG_PCI is unset Sinan Kaya
2018-12-15 1:02 ` [PATCH v10 5/6] arm64: select ACPI PCI code only both features are enabled Sinan Kaya
2018-12-17 10:04 ` Rafael J. Wysocki
2018-12-17 15:52 ` Catalin Marinas
2018-12-15 1:02 ` [PATCH v10 6/6] ACPI/IORT: Stub out ACS functions when CONFIG_PCI is not set Sinan Kaya
2018-12-17 10:04 ` Rafael J. Wysocki
2018-12-17 12:55 ` Lorenzo Pieralisi
2018-12-18 2:14 ` Hanjun Guo
2018-12-18 2:46 ` Sinan Kaya
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).