mirror of
https://github.com/torvalds/linux.git
synced 2026-07-29 02:31:27 +02:00
hwmon: (gpd-fan): Initialize EC before registering hwmon device
Move the gpd_init_ec() call to before devm_hwmon_device_register_with_info
in the probe function. With the previous ordering the hwmon device was
registered and exposed to userspace before the EC initialization
completes, creating a window where sysfs reads could return invalid values.
Some buggy firmware won't initialize EC properly on boot. Before its
initialization, reading RPM will always return 0, and writing PWM will have
no effect. So move gpd_init_ec to before hwmon device register.
Fixes: 0ab88e2394 ("hwmon: add GPD devices sensor driver")
Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
Link: https://lore.kernel.org/r/4be3734b135c8013157979ab5e80c7ee51243ddd.1781055639.git.xiaopei01@kylinos.cn
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
03b4addf82
commit
a8a444917f
|
|
@ -643,6 +643,7 @@ static int gpd_fan_probe(struct platform_device *pdev)
|
|||
|
||||
dev_set_drvdata(dev, data);
|
||||
|
||||
gpd_init_ec(data);
|
||||
hwdev = devm_hwmon_device_register_with_info(dev,
|
||||
DRIVER_NAME,
|
||||
data,
|
||||
|
|
@ -651,9 +652,6 @@ static int gpd_fan_probe(struct platform_device *pdev)
|
|||
if (IS_ERR(hwdev))
|
||||
return dev_err_probe(dev, PTR_ERR(hwdev),
|
||||
"Failed to register hwmon device\n");
|
||||
|
||||
gpd_init_ec(data);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user