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);
|
platform_set_drvdata(pdev, fan_data);
|
||||||
mutex_init(&fan_data->lock);
|
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. */
|
/* Configure control GPIOs if available. */
|
||||||
if (fan_data->gpios && fan_data->num_gpios > 0) {
|
if (fan_data->gpios && fan_data->num_gpios > 0) {
|
||||||
if (!fan_data->speed || fan_data->num_speed <= 1)
|
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))
|
if (IS_ERR(fan_data->hwmon_dev))
|
||||||
return PTR_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 */
|
/* Optional cooling device register for Device tree platforms */
|
||||||
fan_data->cdev = devm_thermal_of_cooling_device_register(dev, np,
|
fan_data->cdev = devm_thermal_of_cooling_device_register(dev, np,
|
||||||
"gpio-fan", fan_data, &gpio_fan_cool_ops);
|
"gpio-fan", fan_data, &gpio_fan_cool_ops);
|
||||||
|
Loading…
Reference in New Issue
Block a user