Message ID | 20230104060926.619686-2-frank@crawford.emu.id.au (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | hwmon: (it87) Set second Super-IO chip in configuration mode | expand |
On Wed, Jan 04, 2023 at 05:09:25PM +1100, Frank Crawford wrote: > 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> Applied to hwmon-next. Thanks, Guenter > --- > > v2: > * Improved description for patch > > --- > drivers/hwmon/it87.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c > index 9997f76b1f4a..4ebce2c661d7 100644 > --- a/drivers/hwmon/it87.c > +++ b/drivers/hwmon/it87.c > @@ -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; > } >
diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c index 9997f76b1f4a..4ebce2c661d7 100644 --- a/drivers/hwmon/it87.c +++ b/drivers/hwmon/it87.c @@ -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; }
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> --- v2: * Improved description for patch --- drivers/hwmon/it87.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)