[PATCH 2/2] platform/x86: simatic-ipc: add auto-loading of hwmon modules

From: Henning Schild
Date: Tue Jul 11 2023 - 08:09:21 EST


In order to know which hwmon modules to load one would have to usually
first probe from user-land i.e. with sensors-detect and create a config
for each machine. But here we know exactly what machines we are dealing
with, so we can request those howmon modules without user-mode detection
and config files.

Signed-off-by: Henning Schild <henning.schild@xxxxxxxxxxx>
---
drivers/platform/x86/simatic-ipc.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

diff --git a/drivers/platform/x86/simatic-ipc.c b/drivers/platform/x86/simatic-ipc.c
index 71487216d33f..403dc231bef7 100644
--- a/drivers/platform/x86/simatic-ipc.c
+++ b/drivers/platform/x86/simatic-ipc.c
@@ -153,6 +153,21 @@ static int register_platform_devices(u32 station_id)
return 0;
}

+static void request_additional_modules(u32 station_id)
+{
+ switch (station_id) {
+ case SIMATIC_IPC_IPC227G:
+ case SIMATIC_IPC_IPC277G:
+ case SIMATIC_IPC_IPCBX_39A:
+ case SIMATIC_IPC_IPCPX_39A:
+ request_module("nct6775");
+ break;
+ default:
+ request_module("emc1403");
+ break;
+ }
+}
+
static int __init simatic_ipc_init_module(void)
{
const struct dmi_system_id *match;
@@ -170,6 +185,8 @@ static int __init simatic_ipc_init_module(void)
return 0;
}

+ request_additional_modules(station_id);
+
return register_platform_devices(station_id);
}

--
2.41.0