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);
> > >
> >