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 _______________________________________________ lm-sensors mailing list lm-sensors@xxxxxxxxxxxxxx http://lists.lm-sensors.org/mailman/listinfo/lm-sensors