LKML Archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 1/2] amba: bus: balance firmware node reference counting
@ 2023-10-02 13:26 Andy Shevchenko
  2023-10-02 13:26 ` [PATCH v2 2/2] amba: bus: Enable compile testing Andy Shevchenko
  0 siblings, 1 reply; 4+ messages in thread
From: Andy Shevchenko @ 2023-10-02 13:26 UTC (permalink / raw
  To: Andy Shevchenko, Rob Herring, linux-acpi, linux-arm-kernel,
	linux-kernel, devicetree
  Cc: Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla, Rafael J. Wysocki,
	Len Brown, Russell King, Rob Herring, Frank Rowand, Peng Fan

Currently the ACPI code doesn't bump the reference count of
the firmware node, while OF counter part does. Not that it's
a problem right now, since ACPI doesn't really use the reference
counting for firmware nodes, it still makes sense to make code
robust against any changes done there. For this,
 - switch ACPI case to use device_set_node() to be unified with OF
 - move reference counting to amba_device_add()
 - switch to use firmware nodes instead of OF ones

In the result we will have reference counting done in the same module
for all callers independently on the nature of firmware node behind.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---

v2: fixed compilation error (LKP), all dependencies are in v6.6-rcX (Rob)

 drivers/acpi/arm64/amba.c | 2 +-
 drivers/amba/bus.c        | 5 ++++-
 drivers/of/platform.c     | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/arm64/amba.c b/drivers/acpi/arm64/amba.c
index 60be8ee1dbdc..171b5c2c7edd 100644
--- a/drivers/acpi/arm64/amba.c
+++ b/drivers/acpi/arm64/amba.c
@@ -101,7 +101,7 @@ static int amba_handler_attach(struct acpi_device *adev,
 	if (parent)
 		dev->dev.parent = acpi_get_first_physical_node(parent);
 
-	ACPI_COMPANION_SET(&dev->dev, adev);
+	device_set_node(&dev->dev, acpi_fwnode_handle(adev));
 
 	ret = amba_device_add(dev, &iomem_resource);
 	if (ret) {
diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c
index 09e72967b8ab..a24c152bfaac 100644
--- a/drivers/amba/bus.c
+++ b/drivers/amba/bus.c
@@ -18,6 +18,7 @@
 #include <linux/limits.h>
 #include <linux/clk/clk-conf.h>
 #include <linux/platform_device.h>
+#include <linux/property.h>
 #include <linux/reset.h>
 #include <linux/of_irq.h>
 #include <linux/of_device.h>
@@ -528,7 +529,7 @@ static void amba_device_release(struct device *dev)
 {
 	struct amba_device *d = to_amba_device(dev);
 
-	of_node_put(d->dev.of_node);
+	fwnode_handle_put(dev_fwnode(&d->dev));
 	if (d->res.parent)
 		release_resource(&d->res);
 	mutex_destroy(&d->periphid_lock);
@@ -548,6 +549,8 @@ int amba_device_add(struct amba_device *dev, struct resource *parent)
 {
 	int ret;
 
+	fwnode_handle_get(dev_fwnode(&dev->dev));
+
 	ret = request_resource(parent, &dev->res);
 	if (ret)
 		return ret;
diff --git a/drivers/of/platform.c b/drivers/of/platform.c
index f235ab55b91e..126d265aa7d8 100644
--- a/drivers/of/platform.c
+++ b/drivers/of/platform.c
@@ -273,7 +273,7 @@ static struct amba_device *of_amba_device_create(struct device_node *node,
 	dev->dev.dma_mask = &dev->dev.coherent_dma_mask;
 
 	/* setup generic device info */
-	device_set_node(&dev->dev, of_fwnode_handle(of_node_get(node)));
+	device_set_node(&dev->dev, of_fwnode_handle(node));
 	dev->dev.parent = parent ? : &platform_bus;
 	dev->dev.platform_data = platform_data;
 	if (bus_id)
-- 
2.40.0.1.gaa8946217a0b


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] amba: bus: Enable compile testing
  2023-10-02 13:26 [PATCH v2 1/2] amba: bus: balance firmware node reference counting Andy Shevchenko
@ 2023-10-02 13:26 ` Andy Shevchenko
  2023-10-02 15:19   ` kernel test robot
  2023-10-02 17:38   ` Rob Herring
  0 siblings, 2 replies; 4+ messages in thread
From: Andy Shevchenko @ 2023-10-02 13:26 UTC (permalink / raw
  To: Andy Shevchenko, Rob Herring, linux-acpi, linux-arm-kernel,
	linux-kernel, devicetree
  Cc: Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla, Rafael J. Wysocki,
	Len Brown, Russell King, Rob Herring, Frank Rowand, Peng Fan

There is no architecture specific code in the implementation of
AMBA bus, let's enable compile testing for it.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---

v2: new patch to make it easier to compile test on non-ARM

 drivers/amba/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/amba/Kconfig b/drivers/amba/Kconfig
index fb6c7e0b4cce..9ff4638550c8 100644
--- a/drivers/amba/Kconfig
+++ b/drivers/amba/Kconfig
@@ -1,6 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 config ARM_AMBA
-	bool
+	bool "AMBA bus support" || if COMPILE_TEST
 
 if ARM_AMBA
 
-- 
2.40.0.1.gaa8946217a0b


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] amba: bus: Enable compile testing
  2023-10-02 13:26 ` [PATCH v2 2/2] amba: bus: Enable compile testing Andy Shevchenko
@ 2023-10-02 15:19   ` kernel test robot
  2023-10-02 17:38   ` Rob Herring
  1 sibling, 0 replies; 4+ messages in thread
From: kernel test robot @ 2023-10-02 15:19 UTC (permalink / raw
  To: Andy Shevchenko, Rob Herring, linux-acpi, linux-arm-kernel,
	linux-kernel, devicetree
  Cc: oe-kbuild-all, Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla,
	Rafael J. Wysocki, Len Brown, Russell King, Frank Rowand,
	Peng Fan

Hi Andy,

kernel test robot noticed the following build errors:

[auto build test ERROR on rafael-pm/linux-next]
[also build test ERROR on robh/for-next soc/for-next linus/master v6.6-rc4 next-20230929]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andy-Shevchenko/amba-bus-Enable-compile-testing/20231002-213425
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
patch link:    https://lore.kernel.org/r/20231002132635.2595382-2-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v2 2/2] amba: bus: Enable compile testing
config: powerpc-randconfig-002-20231002 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231002/202310022317.qmuYgpwj-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310022317.qmuYgpwj-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/amba/Kconfig:4: syntax error
   drivers/amba/Kconfig:3: invalid statement
   make[3]: *** [scripts/kconfig/Makefile:77: oldconfig] Error 1 shuffle=3457451660
   make[2]: *** [Makefile:697: oldconfig] Error 2 shuffle=3457451660
   make[1]: *** [Makefile:234: __sub-make] Error 2 shuffle=3457451660
   make[1]: Target 'oldconfig' not remade because of errors.
   make: *** [Makefile:234: __sub-make] Error 2 shuffle=3457451660
   make: Target 'oldconfig' not remade because of errors.
--
>> drivers/amba/Kconfig:4: syntax error
   drivers/amba/Kconfig:3: invalid statement
   make[3]: *** [scripts/kconfig/Makefile:77: olddefconfig] Error 1 shuffle=3457451660
   make[2]: *** [Makefile:697: olddefconfig] Error 2 shuffle=3457451660
   make[1]: *** [Makefile:234: __sub-make] Error 2 shuffle=3457451660
   make[1]: Target 'olddefconfig' not remade because of errors.
   make: *** [Makefile:234: __sub-make] Error 2 shuffle=3457451660
   make: Target 'olddefconfig' not remade because of errors.


vim +4 drivers/amba/Kconfig

bd968d59ad1bf0 Thierry Reding 2014-07-29 @4  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] amba: bus: Enable compile testing
  2023-10-02 13:26 ` [PATCH v2 2/2] amba: bus: Enable compile testing Andy Shevchenko
  2023-10-02 15:19   ` kernel test robot
@ 2023-10-02 17:38   ` Rob Herring
  1 sibling, 0 replies; 4+ messages in thread
From: Rob Herring @ 2023-10-02 17:38 UTC (permalink / raw
  To: Andy Shevchenko
  Cc: linux-acpi, linux-arm-kernel, linux-kernel, devicetree,
	Lorenzo Pieralisi, Hanjun Guo, Sudeep Holla, Rafael J. Wysocki,
	Len Brown, Russell King, Frank Rowand, Peng Fan

On Mon, Oct 2, 2023 at 8:32 AM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> There is no architecture specific code in the implementation of
> AMBA bus, let's enable compile testing for it.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> ---
>
> v2: new patch to make it easier to compile test on non-ARM
>
>  drivers/amba/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/amba/Kconfig b/drivers/amba/Kconfig
> index fb6c7e0b4cce..9ff4638550c8 100644
> --- a/drivers/amba/Kconfig
> +++ b/drivers/amba/Kconfig
> @@ -1,6 +1,6 @@
>  # SPDX-License-Identifier: GPL-2.0
>  config ARM_AMBA
> -       bool
> +       bool "AMBA bus support" || if COMPILE_TEST

Other than not compile testing a compile test enabling patch, it's
really "Arm (AMBA) Primecell Device bus". Despite the naming, AMBA
encompasses lots of Arm defined buses, but what this bus type is is
just peripherals which have the Primecell device ID registers.

Rob

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-10-02 17:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-02 13:26 [PATCH v2 1/2] amba: bus: balance firmware node reference counting Andy Shevchenko
2023-10-02 13:26 ` [PATCH v2 2/2] amba: bus: Enable compile testing Andy Shevchenko
2023-10-02 15:19   ` kernel test robot
2023-10-02 17:38   ` Rob Herring

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 read-only IMAP folder(s) and NNTP newsgroup(s).