From: Christian Schneider Date: Tue, 2 Jul 2019 13:23:37 +0000 (+0200) Subject: hwmon: (gpio-fan) move fan_alarm_init after devm_hwmon_device_register_with_groups X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=f2173fa2246e906602c6286c7dade68109d68976;p=linux.git 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 Signed-off-by: Guenter Roeck --- diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c index 54c27e683ee10..5f9b406134b5f 100644 --- a/drivers/hwmon/gpio-fan.c +++ b/drivers/hwmon/gpio-fan.c @@ -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);