hwmon: (it87) Allow calling __superio_enter outside muxed region
authorFrank Crawford <frank@crawford.emu.id.au>
Wed, 4 Jan 2023 06:09:25 +0000 (17:09 +1100)
committerGuenter Roeck <linux@roeck-us.net>
Fri, 3 Feb 2023 15:30:10 +0000 (07:30 -0800)
Allow for superio_enter to be called without requesting the muxed memory
region, in particular for initialisation of the second chipset, which must
be put into configuration mode, but without an associated call to leave
configuration mode.

Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
Link: https://lore.kernel.org/r/20230104060926.619686-2-frank@crawford.emu.id.au
[groeck: Clarified subject]
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/it87.c

index 9997f76..4ebce2c 100644 (file)
@@ -87,6 +87,14 @@ static struct platform_device *it87_pdev[2];
 #define        DEVID   0x20    /* Register: Device ID */
 #define        DEVREV  0x22    /* Register: Device Revision */
 
+static inline void __superio_enter(int ioreg)
+{
+       outb(0x87, ioreg);
+       outb(0x01, ioreg);
+       outb(0x55, ioreg);
+       outb(ioreg == REG_4E ? 0xaa : 0x55, ioreg);
+}
+
 static inline int superio_inb(int ioreg, int reg)
 {
        outb(reg, ioreg);
@@ -124,10 +132,7 @@ static inline int superio_enter(int ioreg)
        if (!request_muxed_region(ioreg, 2, DRVNAME))
                return -EBUSY;
 
-       outb(0x87, ioreg);
-       outb(0x01, ioreg);
-       outb(0x55, ioreg);
-       outb(ioreg == REG_4E ? 0xaa : 0x55, ioreg);
+       __superio_enter(ioreg);
        return 0;
 }