Lock by a ACPI mutex that is required for support ASUS MAXIMUS VII HERO motherboard. In other case, all methods are returned zero instead of real values. Code uses acpi mutex before any IO operations in case when such acpi mutex is known. Patch series adds additional check for chip ID, and if method returned zero, all calls by acpi_wmi are disabled. @Andy Shevchenko: >> Do you need string_helpers.h after this change? It was not required in the original patch, as it was included as part of some other header and I have left includes without changes. I have a little bit changed conditionals in "add MAXIMUS VII HERO", code can change access variable several times: * By the default, access is set to direct, * after code has checked that wmi methods can return something useful, * and as the last step code has checked that mutext is existed and set access back to direct. But as for me, it should be less confusing. What do you think? --- Changes in v2: - Fix commit message. - Remove default acpi_board_ANY and use NULL instead. - Use chip ID everywhere. - Use an anonymous union for mutexes. - Use temporary status varibale in acpi calls. --- Denis Pauk (3): hwmon: (nct6775) Use lock function pointers in nct6775_data hwmon: (nct6775) Implement custom lock by ACPI mutex hwmon: (nct6775) add MAXIMUS VII HERO drivers/hwmon/nct6775.c | 364 +++++++++++++++++++++++++++++----------- 1 file changed, 263 insertions(+), 101 deletions(-) base-commit: fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf -- 2.33.0