bus: ti-sysc: Move check for no-reset-on-init
authorTony Lindgren <tony@atomide.com>
Thu, 11 Apr 2024 04:44:30 +0000 (07:44 +0300)
committerTony Lindgren <tony@atomide.com>
Thu, 25 Apr 2024 04:29:41 +0000 (07:29 +0300)
We are wrongly checking SYSC_QUIRK_NO_RESET_ON_INIT flag in sysc_reset(),
it can be called also after init from sysc_reinit_module(). Let's move
the check to the init code in preparation for adding reset control support
in the future.

Note that this change is not needed as a fix as there are no known issues
caused by it currently.

Signed-off-by: Tony Lindgren <tony@atomide.com>
drivers/bus/ti-sysc.c

index 41d33f39efe52a55347b8203bacfd618f849ebc4..a9d2aaae68b2c63b31d8f38863d423a5066b8123 100644 (file)
@@ -2145,8 +2145,7 @@ static int sysc_reset(struct sysc *ddata)
        sysc_offset = ddata->offsets[SYSC_SYSCONFIG];
 
        if (ddata->legacy_mode ||
-           ddata->cap->regbits->srst_shift < 0 ||
-           ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)
+           ddata->cap->regbits->srst_shift < 0)
                return 0;
 
        sysc_mask = BIT(ddata->cap->regbits->srst_shift);
@@ -2240,12 +2239,14 @@ static int sysc_init_module(struct sysc *ddata)
                        goto err_main_clocks;
        }
 
-       error = sysc_reset(ddata);
-       if (error)
-               dev_err(ddata->dev, "Reset failed with %d\n", error);
+       if (!(ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)) {
+               error = sysc_reset(ddata);
+               if (error)
+                       dev_err(ddata->dev, "Reset failed with %d\n", error);
 
-       if (error && !ddata->legacy_mode)
-               sysc_disable_module(ddata->dev);
+               if (error && !ddata->legacy_mode)
+                       sysc_disable_module(ddata->dev);
+       }
 
 err_main_clocks:
        if (error)