@@ -19,10 +19,10 @@
/* Reset Control Register 2 */
#define RESCNT2_PRES 0x80000000 /* Soft power-on reset */
-static void __iomem *sysc_base2;
-
static int rmobile_reset_handler(struct sys_off_data *data)
{
+ void __iomem *sysc_base2 = (void __iomem *)data->cb_data;
+
/* Let's assume we have acquired the HPB semaphore */
writel(RESCNT2_PRES, sysc_base2 + RESCNT2);
@@ -31,6 +31,7 @@ static int rmobile_reset_handler(struct sys_off_data *data)
static int rmobile_reset_probe(struct platform_device *pdev)
{
+ void __iomem *sysc_base2;
int error;
sysc_base2 = devm_platform_ioremap_resource(pdev, 1);
@@ -41,7 +42,7 @@ static int rmobile_reset_probe(struct platform_device *pdev)
SYS_OFF_MODE_RESTART,
SYS_OFF_PRIO_HIGH,
rmobile_reset_handler,
- NULL);
+ (__force void *)sysc_base2);
if (error) {
dev_err(&pdev->dev,
"cannot register restart handler (err=%d)\n", error);
The static global variable sysc_base2 is no longer used outside the probe method and the reset handler, so it can be converted to a local variable, and passed to the reset handler via its callback data. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- Depends on commits 0867276eb12230a5 ("power: reset: rmobile-reset: Use devm_platform_ioremap_resource() helper") and ba1188ea8be80a7b ("power: reset: rmobile-reset: Use devm_register_sys_off_handler(RESTART)") in battery/for-next (next-20240214 and later). --- drivers/power/reset/rmobile-reset.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)