Message ID | 20181215010247.26101-7-okaya@kernel.org (mailing list archive) |
---|---|
State | Superseded, archived |
Headers | show |
Series | ACPI: Allow ACPI to be built without CONFIG_PCI set | expand |
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.
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) {
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
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.
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; }
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(+)