Re: [RFC PATCH 2/2] hwmon: (f71805f): Use request_region() in f71805f_init()

From: Guenter Roeck
Date: Thu Mar 14 2019 - 13:44:14 EST


On Thu, Mar 14, 2019 at 05:21:32PM +0000, John Garry wrote:
> On 14/03/2019 17:05, Guenter Roeck wrote:
> >On Fri, Mar 15, 2019 at 12:55:16AM +0800, John Garry wrote:
> >>Currently the driver does not call request_region() prior to
> >>accessing IO port regions in f71805f_init(), so add it.
> >>
> >>Signed-off-by: John Garry <john.garry@xxxxxxxxxx>
> >>---
> >> drivers/hwmon/f71805f.c | 13 ++++++++++++-
> >> 1 file changed, 12 insertions(+), 1 deletion(-)
> >>
> >>diff --git a/drivers/hwmon/f71805f.c b/drivers/hwmon/f71805f.c
> >>index 73c681162653..910082c7f184 100644
> >>--- a/drivers/hwmon/f71805f.c
> >>+++ b/drivers/hwmon/f71805f.c
> >>@@ -1617,10 +1617,21 @@ static int __init f71805f_init(void)
> >> int err;
> >> unsigned short address;
> >> struct f71805f_sio_data sio_data;
> >>+ struct resource *res;
> >>+ size_t size = 0x4e - 0x2e + SIO_REG_ADDR + 4;
> >>+
> >>+ /* Request the whole 0x2e - 0x4e region */
> >>+ res = request_region(0x2e, size, "f71805f");
> >
>
> Hi Guenter,
>
> >request_muxed_region() would be a better choice here since it doesn't
> >bail out immediately if the region is temporarily busy.
>
> Are you saying that this region could be busy due to another driver
> accessing this same region (probably for the same purpose)?
>
Depends on the definition of "same reason". To access the chip's
Super-IO configuration registers, yes, that can happen. I don't
see it used in the kernel today, but examples would be someone
adding support for the chips supported by this driver to gpio-f7188x,
or adding support for the F71872 watchdog to the f71808e_wdt driver.

Guenter