Re: [PATCH 1/2] watchdog: simatic-ipc-wdt: make IO region access of one model muxed

From: Henning Schild
Date: Mon Jul 10 2023 - 14:55:09 EST


Am Mon, 10 Jul 2023 06:45:14 -0700
schrieb Guenter Roeck <linux@xxxxxxxxxxxx>:

> On Mon, Jul 10, 2023 at 03:33:45PM +0200, Hans de Goede wrote:
> > Hi Guenter,
> >
> > On 7/6/23 18:03, Guenter Roeck wrote:
> > > On 7/6/23 08:48, Henning Schild wrote:
> > >> The IO region used for the watchdog also hold CMOS battery
> > >> monitoring information. Make the access muxed so that a hwmon
> > >> driver can use the region as well.
> > >>
> > >> Signed-off-by: Henning Schild <henning.schild@xxxxxxxxxxx>
> > >
> > > Acked-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> >
> > Thank you. Is it ok if I pick up his patch and merge it together
> > with 2/2 through the pdx86 tree ?
> >
>
> Yes. That was my assumption.

Thanks guys. Cant believe i made it with v1. Getting better at this ;)

Henning

> Guenter
>
> > Regards,
> >
> > Hans
> >
> >
> > >
> > >> ---
> > >>   drivers/watchdog/simatic-ipc-wdt.c | 9 ++++++---
> > >>   1 file changed, 6 insertions(+), 3 deletions(-)
> > >>
> > >> diff --git a/drivers/watchdog/simatic-ipc-wdt.c
> > >> b/drivers/watchdog/simatic-ipc-wdt.c index
> > >> 6599695dc672..cdc1a2e15180 100644 ---
> > >> a/drivers/watchdog/simatic-ipc-wdt.c +++
> > >> b/drivers/watchdog/simatic-ipc-wdt.c @@ -155,9 +155,8 @@ static
> > >> int simatic_ipc_wdt_probe(struct platform_device *pdev) switch
> > >> (plat->devmode) { case SIMATIC_IPC_DEVICE_227E:
> > >> -        if (!devm_request_region(dev,
> > >> gp_status_reg_227e_res.start,
> > >> -                     resource_size(&gp_status_reg_227e_res),
> > >> -                     KBUILD_MODNAME)) {
> > >> +        res = &gp_status_reg_227e_res;
> > >> +        if (!request_muxed_region(res->start,
> > >> resource_size(res), res->name)) { dev_err(dev,
> > >>                   "Unable to register IO resource at %pR\n",
> > >>                   &gp_status_reg_227e_res);
> > >> @@ -210,6 +209,10 @@ static int simatic_ipc_wdt_probe(struct
> > >> platform_device *pdev) if (wdd_data.bootstatus)
> > >>           dev_warn(dev, "last reboot caused by watchdog
> > >> reset\n");
> > >>   +    if (plat->devmode == SIMATIC_IPC_DEVICE_227E)
> > >> +        release_region(gp_status_reg_227e_res.start,
> > >> +                   resource_size(&gp_status_reg_227e_res));
> > >> +
> > >>       watchdog_set_nowayout(&wdd_data, nowayout);
> > >>       watchdog_stop_on_reboot(&wdd_data);
> > >>       return devm_watchdog_register_device(dev, &wdd_data);
> > >
> >