Message ID | 20240902224504.1012750-1-festevam@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | watchdog: da9063: Do not use a global variable | expand |
On 9/2/24 15:45, Fabio Estevam wrote: > From: Fabio Estevam <festevam@denx.de> > > Using the 'use_sw_pm' variable as global is not recommended > as it prevents multi instances of the driver to run. > > Make it a member of the da9063 structure instead. > > Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
On Mon, Sep 02, 2024 at 07:45:04PM -0300, Fabio Estevam wrote: > From: Fabio Estevam <festevam@denx.de> > > Using the 'use_sw_pm' variable as global is not recommended > as it prevents multi instances of the driver to run. > > Make it a member of the da9063 structure instead. > > Signed-off-by: Fabio Estevam <festevam@denx.de> Reviewed-by: Guenter Roeck <linux@roeck-us.net> > --- > drivers/watchdog/da9063_wdt.c | 9 +++++---- > include/linux/mfd/da9063/core.h | 1 + > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/watchdog/da9063_wdt.c b/drivers/watchdog/da9063_wdt.c > index 684667469b10..69f884cf1a7b 100644 > --- a/drivers/watchdog/da9063_wdt.c > +++ b/drivers/watchdog/da9063_wdt.c > @@ -27,7 +27,6 @@ > * others: timeout = 2048 ms * 2^(TWDSCALE-1). > */ > static const unsigned int wdt_timeout[] = { 0, 2, 4, 8, 16, 32, 65, 131 }; > -static bool use_sw_pm; > > #define DA9063_TWDSCALE_DISABLE 0 > #define DA9063_TWDSCALE_MIN 1 > @@ -230,7 +229,7 @@ static int da9063_wdt_probe(struct platform_device *pdev) > if (!wdd) > return -ENOMEM; > > - use_sw_pm = device_property_present(dev, "dlg,use-sw-pm"); > + da9063->use_sw_pm = device_property_present(dev, "dlg,use-sw-pm"); > > wdd->info = &da9063_watchdog_info; > wdd->ops = &da9063_watchdog_ops; > @@ -267,8 +266,9 @@ static int da9063_wdt_probe(struct platform_device *pdev) > static int __maybe_unused da9063_wdt_suspend(struct device *dev) > { > struct watchdog_device *wdd = dev_get_drvdata(dev); > + struct da9063 *da9063 = watchdog_get_drvdata(wdd); > > - if (!use_sw_pm) > + if (!da9063->use_sw_pm) > return 0; > > if (watchdog_active(wdd)) > @@ -280,8 +280,9 @@ static int __maybe_unused da9063_wdt_suspend(struct device *dev) > static int __maybe_unused da9063_wdt_resume(struct device *dev) > { > struct watchdog_device *wdd = dev_get_drvdata(dev); > + struct da9063 *da9063 = watchdog_get_drvdata(wdd); > > - if (!use_sw_pm) > + if (!da9063->use_sw_pm) > return 0; > > if (watchdog_active(wdd)) > diff --git a/include/linux/mfd/da9063/core.h b/include/linux/mfd/da9063/core.h > index 8db52324f416..eae82f421414 100644 > --- a/include/linux/mfd/da9063/core.h > +++ b/include/linux/mfd/da9063/core.h > @@ -78,6 +78,7 @@ struct da9063 { > enum da9063_type type; > unsigned char variant_code; > unsigned int flags; > + bool use_sw_pm; > > /* Control interface */ > struct regmap *regmap; > -- > 2.34.1 > >
diff --git a/drivers/watchdog/da9063_wdt.c b/drivers/watchdog/da9063_wdt.c index 684667469b10..69f884cf1a7b 100644 --- a/drivers/watchdog/da9063_wdt.c +++ b/drivers/watchdog/da9063_wdt.c @@ -27,7 +27,6 @@ * others: timeout = 2048 ms * 2^(TWDSCALE-1). */ static const unsigned int wdt_timeout[] = { 0, 2, 4, 8, 16, 32, 65, 131 }; -static bool use_sw_pm; #define DA9063_TWDSCALE_DISABLE 0 #define DA9063_TWDSCALE_MIN 1 @@ -230,7 +229,7 @@ static int da9063_wdt_probe(struct platform_device *pdev) if (!wdd) return -ENOMEM; - use_sw_pm = device_property_present(dev, "dlg,use-sw-pm"); + da9063->use_sw_pm = device_property_present(dev, "dlg,use-sw-pm"); wdd->info = &da9063_watchdog_info; wdd->ops = &da9063_watchdog_ops; @@ -267,8 +266,9 @@ static int da9063_wdt_probe(struct platform_device *pdev) static int __maybe_unused da9063_wdt_suspend(struct device *dev) { struct watchdog_device *wdd = dev_get_drvdata(dev); + struct da9063 *da9063 = watchdog_get_drvdata(wdd); - if (!use_sw_pm) + if (!da9063->use_sw_pm) return 0; if (watchdog_active(wdd)) @@ -280,8 +280,9 @@ static int __maybe_unused da9063_wdt_suspend(struct device *dev) static int __maybe_unused da9063_wdt_resume(struct device *dev) { struct watchdog_device *wdd = dev_get_drvdata(dev); + struct da9063 *da9063 = watchdog_get_drvdata(wdd); - if (!use_sw_pm) + if (!da9063->use_sw_pm) return 0; if (watchdog_active(wdd)) diff --git a/include/linux/mfd/da9063/core.h b/include/linux/mfd/da9063/core.h index 8db52324f416..eae82f421414 100644 --- a/include/linux/mfd/da9063/core.h +++ b/include/linux/mfd/da9063/core.h @@ -78,6 +78,7 @@ struct da9063 { enum da9063_type type; unsigned char variant_code; unsigned int flags; + bool use_sw_pm; /* Control interface */ struct regmap *regmap;