Re: [PATCH v6 1/2] Use "request_muxed_region" in it87 watchdog drivers

From: Natarajan Gurumoorthy
Date: Fri Apr 15 2011 - 04:46:22 EST


On Thu, Apr 14, 2011 at 10:58 PM, Guenter Roeck
<guenter.roeck@xxxxxxxxxxxx> wrote:
> I have seen the list. I don't think you should fix everything in one go.
> First step might be to get the w83697hf and it87 to work together, then
> go from there.
>
> Is there a reason for loading (or trying to load) both the it87 and
> the w83697hf driver at the same time ? Those drivers are usually only
> loaded if the respective chip is known to exist. If there is no reason
> to try loading both drivers, a simple workaround would be to not do it.
>
Guenter,
I agree the above should never happen. The only way the 2
drivers will be loaded at the same time is a misconfigured kernel
where these 2 drivers get built and the rc scripts end up loading them
too. If we are agreed that I suggest we make the superio_enter routine
be the following:

static inline void
superio_enter(void)
{
/*
* Reserve REG and REG + 1 for exclusive access.
*/
while (!request_muxed_region(REG, 2, WATCHDOG_NAME))
continue;

outb(0x87, REG);
outb(0x01, REG);
outb(0x55, REG);
outb(0x55, REG);
}

What I am suggesting is not returning an error and instead keep
calling "request_muxed_region" till it succeeds. If superio_enter
returns an error then we will have to rewrite a large chunk of
it8712f_wdt to deal with it. There are 8-9 calls to superio_enter. We
will have supreio_enter returning errors at awkward places in the
driver where the current logic has no code to deal with errors.

In case of properly written drivers the while loop will eventually
exit. I agree this is ugly as sin but it limits the perturbation of
the driver. Feedback please.

Regards
Nat


> Thanks,
> Guenter
>
>



--
Regards
Nat Gurumoorthy AB6SJ
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/