Support accessing the NCT677x via Asus WMI functions. On mainboards that support this way of accessing the chip, the driver will usually not work without this option since in these mainboards, ACPI will mark the I/O port as used. @Andy Shevchenko, I have added check for ACPI WMI config enabled for prevent issues with non x86 platforms. @Guenter Roeck, I have left nct6775_*_set_back() call without changes as its always called from platform specific callbacks. Could you please review? BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204807 Signed-off-by: Denis Pauk <pauk.denis@xxxxxxxxx> Co-developed-by: Bernhard Seibold <mail@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Bernhard Seibold <mail@xxxxxxxxxxxxxxxxxxx> Tested-by: Pär Ekholm <pehlm@xxxxxxxxxxx> Tested-by: <to.eivind@xxxxxxxxx> Tested-by: Artem S. Tashkinov <aros@xxxxxxx> Tested-by: Vittorio Roberto Alfieri <me@xxxxxxxxxxx> Tested-by: Sahan Fernando <sahan.h.fernando@xxxxxxxxx> Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxx> Cc: Guenter Roeck <linux@xxxxxxxxxxxx> --- Changes in v4: - Fix naming conflict with inb, outb by add sio prefix to callbacks in nct6775_sio_data. - Fix build without ACPI WMI. Changes in v3: - Remove unrequired type conversions. - Make function declarations one line. - Use nct6775 function pointers in struct nct6775_data instead direct calls. Changes in v2: - Split changes to separate patches. - Limit WMI usage by DMI_BOARD_NAME in checked ASUS motherboards. - Rearrange code for directly use struct nct6775_sio_data in superio_*() functions. Denis Pauk (2): hwmon: (nct6775) Use sio_data in superio_*(). hwmon: (nct6775) Support access via Asus WMI drivers/hwmon/nct6775.c | 701 ++++++++++++++++++++++++++-------------- 1 file changed, 464 insertions(+), 237 deletions(-) -- 2.33.0