hwmon: (gpio-fan) move fan_alarm_init after devm_hwmon_device_register_with_groups
This makes it possible to use the hwmon_dev in fan_alarm_notify(). Otherwise it would be possible, that a interupt arrives and fan_alarm_notify() is executed, before hwmon_dev is initialized. Signed-off-by: Christian Schneider <cschneider@radiodata.biz> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
7a1d220ccb
commit
f2173fa224
|
@ -510,13 +510,6 @@ static int gpio_fan_probe(struct platform_device *pdev)
|
|||
platform_set_drvdata(pdev, fan_data);
|
||||
mutex_init(&fan_data->lock);
|
||||
|
||||
/* Configure alarm GPIO if available. */
|
||||
if (fan_data->alarm_gpio) {
|
||||
err = fan_alarm_init(fan_data);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Configure control GPIOs if available. */
|
||||
if (fan_data->gpios && fan_data->num_gpios > 0) {
|
||||
if (!fan_data->speed || fan_data->num_speed <= 1)
|
||||
|
@ -537,6 +530,13 @@ static int gpio_fan_probe(struct platform_device *pdev)
|
|||
if (IS_ERR(fan_data->hwmon_dev))
|
||||
return PTR_ERR(fan_data->hwmon_dev);
|
||||
|
||||
/* Configure alarm GPIO if available. */
|
||||
if (fan_data->alarm_gpio) {
|
||||
err = fan_alarm_init(fan_data);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
|
||||
/* Optional cooling device register for Device tree platforms */
|
||||
fan_data->cdev = devm_thermal_of_cooling_device_register(dev, np,
|
||||
"gpio-fan", fan_data, &gpio_fan_cool_ops);
|
||||
|
|
Loading…
Reference in New Issue
Block a user