* Re: [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
@ 2025-02-08 8:42 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-02-08 8:42 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250206-aux-device-create-helper-v2-6-fa6a0f326527@baylibre.com>
References: <20250206-aux-device-create-helper-v2-6-fa6a0f326527@baylibre.com>
TO: Jerome Brunet <jbrunet@baylibre.com>
TO: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
TO: Dave Ertman <david.m.ertman@intel.com>
TO: Ira Weiny <ira.weiny@intel.com>
TO: "Rafael J. Wysocki" <rafael@kernel.org>
TO: Stephen Boyd <sboyd@kernel.org>
TO: Arnd Bergmann <arnd@arndb.de>
CC: Jerome Brunet <jbrunet@baylibre.com>
CC: linux-kernel@vger.kernel.org
Hi Jerome,
kernel test robot noticed the following build warnings:
[auto build test WARNING on 2014c95afecee3e76ca4a56956a936e23283f05b]
url: https://github.com/intel-lab-lkp/linux/commits/Jerome-Brunet/driver-core-auxiliary-bus-add-device-creation-helper/20250207-023433
base: 2014c95afecee3e76ca4a56956a936e23283f05b
patch link: https://lore.kernel.org/r/20250206-aux-device-create-helper-v2-6-fa6a0f326527%40baylibre.com
patch subject: [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: xtensa-randconfig-r071-20250208 (https://download.01.org/0day-ci/archive/20250208/202502081655.FlCrxpYN-lkp@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 14.2.0
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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202502081655.FlCrxpYN-lkp@intel.com/
smatch warnings:
drivers/clk/imx/clk-imx8mp-audiomix.c:241 clk_imx8mp_audiomix_reset_controller_register() warn: passing zero to 'PTR_ERR'
vim +/PTR_ERR +241 drivers/clk/imx/clk-imx8mp-audiomix.c
1496dd413b2e09 Shengjiu Wang 2024-03-21 230
c350f4c434316c Jerome Brunet 2025-02-06 231 static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev)
6f0e817175c5b2 Shengjiu Wang 2024-06-14 232 {
c350f4c434316c Jerome Brunet 2025-02-06 233 struct auxiliary_device *adev;
6f0e817175c5b2 Shengjiu Wang 2024-06-14 234
6f0e817175c5b2 Shengjiu Wang 2024-06-14 235 if (!of_property_present(dev->of_node, "#reset-cells"))
6f0e817175c5b2 Shengjiu Wang 2024-06-14 236 return 0;
6f0e817175c5b2 Shengjiu Wang 2024-06-14 237
c350f4c434316c Jerome Brunet 2025-02-06 238 adev = devm_auxiliary_device_create(dev, KBUILD_MODNAME,
c350f4c434316c Jerome Brunet 2025-02-06 239 "reset", NULL, 0);
c350f4c434316c Jerome Brunet 2025-02-06 240 if (IS_ERR_OR_NULL(adev))
c350f4c434316c Jerome Brunet 2025-02-06 @241 return PTR_ERR(adev);
6f0e817175c5b2 Shengjiu Wang 2024-06-14 242
6f0e817175c5b2 Shengjiu Wang 2024-06-14 243 return 0;
6f0e817175c5b2 Shengjiu Wang 2024-06-14 244 }
6f0e817175c5b2 Shengjiu Wang 2024-06-14 245
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2 0/7] driver core: auxiliary bus: add device creation helper
@ 2025-02-06 18:23 Jerome Brunet
2025-02-06 18:23 ` [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary " Jerome Brunet
0 siblings, 1 reply; 4+ messages in thread
From: Jerome Brunet @ 2025-02-06 18:23 UTC (permalink / raw)
To: Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Rafael J. Wysocki,
Stephen Boyd, Arnd Bergmann
Cc: Jerome Brunet, linux-kernel
The suggestion for this change was initially discussed here: [1]
This patchset adds and use a helper to create a simple auxiliary device.
The goal is to remove boilerplate code that tends to get repeated for
simple cases.
Only the last change was tested on actual HW. The other usage of the helper
have only been compile tested with x64_64 allmodconfig. There are many other
simple cases of auxiliary device creation but those tend to use the
'container_of' trick to allocate the auxiliary device. It is possible to
convert these drivers to use the provided helper but the conversion is
slightly more complex.
[1]: https://lore.kernel.org/linux-clk/df0a53ee859e450d84e81547099f5f36.sboyd@kernel.org
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
Changes in v2:
- Add usage examples, as requested.
- Add 'id' as function parameter: Adding the example usage showed that
handling IDA allocation was not appropriate and making the usage more
complex for simple use case.
- Also add 'modname' as parameter: Most driver have been using
KBUILD_MODNAME and this actually rarely align with the driver name.
- Link to v1: https://lore.kernel.org/r/20241210-aux-device-create-helper-v1-1-5887f4d89308@baylibre.com
---
Jerome Brunet (7):
driver core: auxiliary bus: add device creation helper
reset: mpfs: use the auxiliary device creation helper
drm/bridge: ti-sn65dsi86: use the auxiliary device creation helper
platform: arm64: lenovo-yoga-c630: use the auxiliary device creation helper
clk: eyeq: use the auxiliary device creation helper
clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
clk: amlogic: axg-audio: use the auxiliary reset driver - take 2
drivers/base/auxiliary.c | 88 +++++++++++++++++++++++
drivers/clk/clk-eyeq.c | 57 ++++-----------
drivers/clk/imx/clk-imx8mp-audiomix.c | 57 ++-------------
drivers/clk/meson/Kconfig | 2 +-
drivers/clk/meson/axg-audio.c | 114 ++++--------------------------
drivers/gpu/drm/bridge/ti-sn65dsi86.c | 88 +++++++----------------
drivers/platform/arm64/lenovo-yoga-c630.c | 43 ++---------
drivers/reset/reset-mpfs.c | 53 ++------------
include/linux/auxiliary_bus.h | 6 ++
9 files changed, 160 insertions(+), 348 deletions(-)
---
base-commit: 2014c95afecee3e76ca4a56956a936e23283f05b
change-id: 20241210-aux-device-create-helper-93141524e523
Best regards,
--
Jerome
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
2025-02-06 18:23 [PATCH v2 0/7] driver core: auxiliary bus: add " Jerome Brunet
@ 2025-02-06 18:23 ` Jerome Brunet
2025-02-12 7:26 ` Dan Carpenter
0 siblings, 1 reply; 4+ messages in thread
From: Jerome Brunet @ 2025-02-06 18:23 UTC (permalink / raw)
To: Greg Kroah-Hartman, Dave Ertman, Ira Weiny, Rafael J. Wysocki,
Stephen Boyd, Arnd Bergmann
Cc: Jerome Brunet, linux-kernel
The auxiliary device creation of this driver is simple enough to
use the available auxiliary device creation helper.
Use it and remove some boilerplate code.
Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
drivers/clk/imx/clk-imx8mp-audiomix.c | 57 +++++------------------------------
1 file changed, 7 insertions(+), 50 deletions(-)
diff --git a/drivers/clk/imx/clk-imx8mp-audiomix.c b/drivers/clk/imx/clk-imx8mp-audiomix.c
index c409fc7e061869988f83c7df3ef7860500426323..90e69e253ad5a30cd2a3cb3b63ebe85be1e6b059 100644
--- a/drivers/clk/imx/clk-imx8mp-audiomix.c
+++ b/drivers/clk/imx/clk-imx8mp-audiomix.c
@@ -228,64 +228,21 @@ struct clk_imx8mp_audiomix_priv {
struct clk_hw_onecell_data clk_data;
};
-#if IS_ENABLED(CONFIG_RESET_CONTROLLER)
-
-static void clk_imx8mp_audiomix_reset_unregister_adev(void *_adev)
-{
- struct auxiliary_device *adev = _adev;
-
- auxiliary_device_delete(adev);
- auxiliary_device_uninit(adev);
-}
-
-static void clk_imx8mp_audiomix_reset_adev_release(struct device *dev)
+static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev)
{
- struct auxiliary_device *adev = to_auxiliary_dev(dev);
-
- kfree(adev);
-}
-
-static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev,
- struct clk_imx8mp_audiomix_priv *priv)
-{
- struct auxiliary_device *adev __free(kfree) = NULL;
- int ret;
+ struct auxiliary_device *adev;
if (!of_property_present(dev->of_node, "#reset-cells"))
return 0;
- adev = kzalloc(sizeof(*adev), GFP_KERNEL);
- if (!adev)
- return -ENOMEM;
-
- adev->name = "reset";
- adev->dev.parent = dev;
- adev->dev.release = clk_imx8mp_audiomix_reset_adev_release;
-
- ret = auxiliary_device_init(adev);
- if (ret)
- return ret;
-
- ret = auxiliary_device_add(adev);
- if (ret) {
- auxiliary_device_uninit(adev);
- return ret;
- }
-
- return devm_add_action_or_reset(dev, clk_imx8mp_audiomix_reset_unregister_adev,
- no_free_ptr(adev));
-}
-
-#else /* !CONFIG_RESET_CONTROLLER */
+ adev = devm_auxiliary_device_create(dev, KBUILD_MODNAME,
+ "reset", NULL, 0);
+ if (IS_ERR_OR_NULL(adev))
+ return PTR_ERR(adev);
-static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev,
- struct clk_imx8mp_audiomix_priv *priv)
-{
return 0;
}
-#endif /* !CONFIG_RESET_CONTROLLER */
-
static void clk_imx8mp_audiomix_save_restore(struct device *dev, bool save)
{
struct clk_imx8mp_audiomix_priv *priv = dev_get_drvdata(dev);
@@ -408,7 +365,7 @@ static int clk_imx8mp_audiomix_probe(struct platform_device *pdev)
if (ret)
goto err_clk_register;
- ret = clk_imx8mp_audiomix_reset_controller_register(dev, priv);
+ ret = clk_imx8mp_audiomix_reset_controller_register(dev);
if (ret)
goto err_clk_register;
--
2.45.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
2025-02-06 18:23 ` [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary " Jerome Brunet
@ 2025-02-12 7:26 ` Dan Carpenter
2025-02-12 10:16 ` Jerome Brunet
0 siblings, 1 reply; 4+ messages in thread
From: Dan Carpenter @ 2025-02-12 7:26 UTC (permalink / raw)
To: oe-kbuild, Jerome Brunet, Greg Kroah-Hartman, Dave Ertman,
Ira Weiny, Rafael J. Wysocki, Stephen Boyd, Arnd Bergmann
Cc: lkp, oe-kbuild-all, Jerome Brunet, linux-kernel
Hi Jerome,
kernel test robot noticed the following build warnings:
url: https://github.com/intel-lab-lkp/linux/commits/Jerome-Brunet/driver-core-auxiliary-bus-add-device-creation-helper/20250207-023433
base: 2014c95afecee3e76ca4a56956a936e23283f05b
patch link: https://lore.kernel.org/r/20250206-aux-device-create-helper-v2-6-fa6a0f326527%40baylibre.com
patch subject: [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
config: xtensa-randconfig-r071-20250208 (https://download.01.org/0day-ci/archive/20250208/202502081655.FlCrxpYN-lkp@intel.com/config)
compiler: xtensa-linux-gcc (GCC) 14.2.0
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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202502081655.FlCrxpYN-lkp@intel.com/
smatch warnings:
drivers/clk/imx/clk-imx8mp-audiomix.c:241 clk_imx8mp_audiomix_reset_controller_register() warn: passing zero to 'PTR_ERR'
vim +/PTR_ERR +241 drivers/clk/imx/clk-imx8mp-audiomix.c
c350f4c434316c Jerome Brunet 2025-02-06 231 static int clk_imx8mp_audiomix_reset_controller_register(struct device *dev)
6f0e817175c5b2 Shengjiu Wang 2024-06-14 232 {
c350f4c434316c Jerome Brunet 2025-02-06 233 struct auxiliary_device *adev;
6f0e817175c5b2 Shengjiu Wang 2024-06-14 234
6f0e817175c5b2 Shengjiu Wang 2024-06-14 235 if (!of_property_present(dev->of_node, "#reset-cells"))
6f0e817175c5b2 Shengjiu Wang 2024-06-14 236 return 0;
6f0e817175c5b2 Shengjiu Wang 2024-06-14 237
c350f4c434316c Jerome Brunet 2025-02-06 238 adev = devm_auxiliary_device_create(dev, KBUILD_MODNAME,
c350f4c434316c Jerome Brunet 2025-02-06 239 "reset", NULL, 0);
c350f4c434316c Jerome Brunet 2025-02-06 240 if (IS_ERR_OR_NULL(adev))
c350f4c434316c Jerome Brunet 2025-02-06 @241 return PTR_ERR(adev);
If devm_auxiliary_device_create() could return NULL then that would count
as success. But devm_auxiliary_device_create() can't return NULL. It
only makes sense to return NULL if the auxiliary device is optional.
https://staticthinking.wordpress.com/2022/08/01/mixing-error-pointers-and-null/
6f0e817175c5b2 Shengjiu Wang 2024-06-14 242
6f0e817175c5b2 Shengjiu Wang 2024-06-14 243 return 0;
6f0e817175c5b2 Shengjiu Wang 2024-06-14 244 }
--
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 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
2025-02-12 7:26 ` Dan Carpenter
@ 2025-02-12 10:16 ` Jerome Brunet
0 siblings, 0 replies; 4+ messages in thread
From: Jerome Brunet @ 2025-02-12 10:16 UTC (permalink / raw)
To: Dan Carpenter
Cc: oe-kbuild, Greg Kroah-Hartman, Dave Ertman, Ira Weiny,
Rafael J. Wysocki, Stephen Boyd, Arnd Bergmann, lkp,
oe-kbuild-all, linux-kernel
On Wed 12 Feb 2025 at 10:26, Dan Carpenter <dan.carpenter@linaro.org> wrote:
> Hi Jerome,
>
> kernel test robot noticed the following build warnings:
>
> url:
> https://github.com/intel-lab-lkp/linux/commits/Jerome-Brunet/driver-core-auxiliary-bus-add-device-creation-helper/20250207-023433
> base: 2014c95afecee3e76ca4a56956a936e23283f05b
> patch link: https://lore.kernel.org/r/20250206-aux-device-create-helper-v2-6-fa6a0f326527%40baylibre.com
> patch subject: [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper
> config: xtensa-randconfig-r071-20250208
> (https://download.01.org/0day-ci/archive/20250208/202502081655.FlCrxpYN-lkp@intel.com/config)
> compiler: xtensa-linux-gcc (GCC) 14.2.0
>
> 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>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202502081655.FlCrxpYN-lkp@intel.com/
>
> smatch warnings:
> drivers/clk/imx/clk-imx8mp-audiomix.c:241
> clk_imx8mp_audiomix_reset_controller_register() warn: passing zero to
> 'PTR_ERR'
>
> vim +/PTR_ERR +241 drivers/clk/imx/clk-imx8mp-audiomix.c
>
> c350f4c434316c Jerome Brunet 2025-02-06 231 static int
> clk_imx8mp_audiomix_reset_controller_register(struct device *dev)
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 232 {
> c350f4c434316c Jerome Brunet 2025-02-06 233 struct auxiliary_device *adev;
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 234
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 235 if (!of_property_present(dev->of_node, "#reset-cells"))
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 236 return 0;
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 237
> c350f4c434316c Jerome Brunet 2025-02-06 238 adev = devm_auxiliary_device_create(dev, KBUILD_MODNAME,
> c350f4c434316c Jerome Brunet 2025-02-06 239 "reset", NULL, 0);
> c350f4c434316c Jerome Brunet 2025-02-06 240 if (IS_ERR_OR_NULL(adev))
> c350f4c434316c Jerome Brunet 2025-02-06 @241 return PTR_ERR(adev);
>
> If devm_auxiliary_device_create() could return NULL then that would count
> as success. But devm_auxiliary_device_create() can't return NULL. It
> only makes sense to return NULL if the auxiliary device is optional.
Hi Dan,
It should have been IS_ERR() there. It is something I've noticed and
fixed in the other changes before submitting the v2 but, somehow, this
one slipped through. Thanks for catching this. This is obviously still
present in the v3 I've sent yesterday but will be fixed on the next
version. I'm waiting for feedback on the core part before making another
one.
Cheers
>
> https://staticthinking.wordpress.com/2022/08/01/mixing-error-pointers-and-null/
>
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 242
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 243 return 0;
> 6f0e817175c5b2 Shengjiu Wang 2024-06-14 244 }
--
Jerome
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-02-12 10:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-08 8:42 [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary device creation helper kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2025-02-06 18:23 [PATCH v2 0/7] driver core: auxiliary bus: add " Jerome Brunet
2025-02-06 18:23 ` [PATCH v2 6/7] clk: clk-imx8mp-audiomix: use the auxiliary " Jerome Brunet
2025-02-12 7:26 ` Dan Carpenter
2025-02-12 10:16 ` Jerome Brunet
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.