Message ID | 20240201180102.70395-10-afd@ti.com |
---|---|
State | New |
Headers | show |
Series | Remove pm_power_off use in drivers/power/reset | expand |
Hi Andrew, kernel test robot noticed the following build warnings: [auto build test WARNING on sre-power-supply/for-next] [also build test WARNING on mani-mhi/mhi-next soc/for-next linus/master v6.8-rc2 next-20240202] [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/Andrew-Davis/power-reset-atc260x-poweroff-Use-devm_register_sys_off_handler-RESTART/20240202-020809 base: https://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git for-next patch link: https://lore.kernel.org/r/20240201180102.70395-10-afd%40ti.com patch subject: [PATCH 09/18] power: reset: rmobile-reset: Use devm_register_sys_off_handler(RESTART) config: hexagon-randconfig-r122-20240202 (https://download.01.org/0day-ci/archive/20240203/202402031246.nZHDnDnf-lkp@intel.com/config) compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 7dd790db8b77c4a833c06632e903dc4f13877a64) reproduce: (https://download.01.org/0day-ci/archive/20240203/202402031246.nZHDnDnf-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/202402031246.nZHDnDnf-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> drivers/power/reset/rmobile-reset.c:24:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void [noderef] __iomem *sysc_base2 @@ got void *cb_data @@ drivers/power/reset/rmobile-reset.c:24:40: sparse: expected void [noderef] __iomem *sysc_base2 drivers/power/reset/rmobile-reset.c:24:40: sparse: got void *cb_data >> drivers/power/reset/rmobile-reset.c:45:47: sparse: sparse: incorrect type in argument 5 (different address spaces) @@ expected void *cb_data @@ got void [noderef] __iomem *[assigned] sysc_base2 @@ drivers/power/reset/rmobile-reset.c:45:47: sparse: expected void *cb_data drivers/power/reset/rmobile-reset.c:45:47: sparse: got void [noderef] __iomem *[assigned] sysc_base2 vim +24 drivers/power/reset/rmobile-reset.c 21 22 static int rmobile_reset_handler(struct sys_off_data *data) 23 { > 24 void __iomem *sysc_base2 = data->cb_data; 25 26 /* Let's assume we have acquired the HPB semaphore */ 27 writel(RESCNT2_PRES, sysc_base2 + RESCNT2); 28 29 return NOTIFY_DONE; 30 } 31 32 static int rmobile_reset_probe(struct platform_device *pdev) 33 { 34 void __iomem *sysc_base2; 35 int error; 36 37 sysc_base2 = devm_platform_ioremap_resource(pdev, 0); 38 if (IS_ERR(sysc_base2)) 39 return PTR_ERR(sysc_base2); 40 41 error = devm_register_sys_off_handler(&pdev->dev, 42 SYS_OFF_MODE_RESTART, 43 SYS_OFF_PRIO_HIGH, 44 rmobile_reset_handler, > 45 sysc_base2); 46 if (error) { 47 dev_err(&pdev->dev, 48 "cannot register restart handler (err=%d)\n", error); 49 return error; 50 } 51 52 return 0; 53 } 54
diff --git a/drivers/power/reset/rmobile-reset.c b/drivers/power/reset/rmobile-reset.c index 29c17ed2d4de9..41e98ff33a3c3 100644 --- a/drivers/power/reset/rmobile-reset.c +++ b/drivers/power/reset/rmobile-reset.c @@ -19,12 +19,9 @@ /* Reset Control Register 2 */ #define RESCNT2_PRES 0x80000000 /* Soft power-on reset */ -static void __iomem *sysc_base2; - -static int rmobile_reset_handler(struct notifier_block *this, - unsigned long mode, void *cmd) +static int rmobile_reset_handler(struct sys_off_data *data) { - pr_debug("%s %lu\n", __func__, mode); + void __iomem *sysc_base2 = data->cb_data; /* Let's assume we have acquired the HPB semaphore */ writel(RESCNT2_PRES, sysc_base2 + RESCNT2); @@ -32,20 +29,20 @@ static int rmobile_reset_handler(struct notifier_block *this, return NOTIFY_DONE; } -static struct notifier_block rmobile_reset_nb = { - .notifier_call = rmobile_reset_handler, - .priority = 192, -}; - static int rmobile_reset_probe(struct platform_device *pdev) { + void __iomem *sysc_base2; int error; sysc_base2 = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(sysc_base2)) return PTR_ERR(sysc_base2); - error = register_restart_handler(&rmobile_reset_nb); + error = devm_register_sys_off_handler(&pdev->dev, + SYS_OFF_MODE_RESTART, + SYS_OFF_PRIO_HIGH, + rmobile_reset_handler, + sysc_base2); if (error) { dev_err(&pdev->dev, "cannot register restart handler (err=%d)\n", error); @@ -55,11 +52,6 @@ static int rmobile_reset_probe(struct platform_device *pdev) return 0; } -static void rmobile_reset_remove(struct platform_device *pdev) -{ - unregister_restart_handler(&rmobile_reset_nb); -} - static const struct of_device_id rmobile_reset_of_match[] = { { .compatible = "renesas,sysc-rmobile", }, { /* sentinel */ } @@ -68,7 +60,6 @@ MODULE_DEVICE_TABLE(of, rmobile_reset_of_match); static struct platform_driver rmobile_reset_driver = { .probe = rmobile_reset_probe, - .remove_new = rmobile_reset_remove, .driver = { .name = "rmobile_reset", .of_match_table = rmobile_reset_of_match,
Use device life-cycle managed register function to simplify probe and exit paths. Signed-off-by: Andrew Davis <afd@ti.com> --- drivers/power/reset/rmobile-reset.c | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-)