thermal/drivers/qcom: Switch to new of API
authorDaniel Lezcano <daniel.lezcano@linexp.org>
Thu, 4 Aug 2022 22:43:27 +0000 (00:43 +0200)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Wed, 17 Aug 2022 12:09:38 +0000 (14:09 +0200)
The thermal OF code has a new API allowing to migrate the OF
initialization to a simpler approach. The ops are no longer device
tree specific and are the generic ones provided by the core code.

Convert the ops to the thermal_zone_device_ops format and use the new
API to register the thermal zone with these generic ops.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linexp.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20220804224349.1926752-12-daniel.lezcano@linexp.org
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/thermal/qcom/qcom-spmi-adc-tm5.c
drivers/thermal/qcom/qcom-spmi-temp-alarm.c
drivers/thermal/qcom/tsens.c

index 073943cbcc2bea777b5e7665fc91c984d40968f0..add6f40e5e2af62b9fa85daa4692cfe5ea8d5541 100644 (file)
@@ -357,9 +357,9 @@ static irqreturn_t adc_tm5_gen2_isr(int irq, void *data)
        return IRQ_HANDLED;
 }
 
-static int adc_tm5_get_temp(void *data, int *temp)
+static int adc_tm5_get_temp(struct thermal_zone_device *tz, int *temp)
 {
-       struct adc_tm5_channel *channel = data;
+       struct adc_tm5_channel *channel = tz->devdata;
        int ret;
 
        if (!channel || !channel->iio)
@@ -639,9 +639,9 @@ config_fail:
        return ret;
 }
 
-static int adc_tm5_set_trips(void *data, int low, int high)
+static int adc_tm5_set_trips(struct thermal_zone_device *tz, int low, int high)
 {
-       struct adc_tm5_channel *channel = data;
+       struct adc_tm5_channel *channel = tz->devdata;
        struct adc_tm5_chip *chip;
        int ret;
 
@@ -660,7 +660,7 @@ static int adc_tm5_set_trips(void *data, int low, int high)
        return ret;
 }
 
-static struct thermal_zone_of_device_ops adc_tm5_thermal_ops = {
+static const struct thermal_zone_device_ops adc_tm5_thermal_ops = {
        .get_temp = adc_tm5_get_temp,
        .set_trips = adc_tm5_set_trips,
 };
@@ -672,11 +672,10 @@ static int adc_tm5_register_tzd(struct adc_tm5_chip *adc_tm)
 
        for (i = 0; i < adc_tm->nchannels; i++) {
                adc_tm->channels[i].chip = adc_tm;
-
-               tzd = devm_thermal_zone_of_sensor_register(adc_tm->dev,
-                                                          adc_tm->channels[i].channel,
-                                                          &adc_tm->channels[i],
-                                                          &adc_tm5_thermal_ops);
+               tzd = devm_thermal_of_zone_register(adc_tm->dev,
+                                                   adc_tm->channels[i].channel,
+                                                   &adc_tm->channels[i],
+                                                   &adc_tm5_thermal_ops);
                if (IS_ERR(tzd)) {
                        if (PTR_ERR(tzd) == -ENODEV) {
                                dev_warn(adc_tm->dev, "thermal sensor on channel %d is not used\n",
index 770f82cc9bca8130cd93af772cb2a84186649d0c..be785ab37e53d5f877212980b166605e7afba62e 100644 (file)
@@ -186,9 +186,9 @@ static int qpnp_tm_update_temp_no_adc(struct qpnp_tm_chip *chip)
        return 0;
 }
 
-static int qpnp_tm_get_temp(void *data, int *temp)
+static int qpnp_tm_get_temp(struct thermal_zone_device *tz, int *temp)
 {
-       struct qpnp_tm_chip *chip = data;
+       struct qpnp_tm_chip *chip = tz->devdata;
        int ret, mili_celsius;
 
        if (!temp)
@@ -263,9 +263,9 @@ skip:
        return qpnp_tm_write(chip, QPNP_TM_REG_SHUTDOWN_CTRL1, reg);
 }
 
-static int qpnp_tm_set_trip_temp(void *data, int trip, int temp)
+static int qpnp_tm_set_trip_temp(struct thermal_zone_device *tz, int trip, int temp)
 {
-       struct qpnp_tm_chip *chip = data;
+       struct qpnp_tm_chip *chip = tz->devdata;
        const struct thermal_trip *trip_points;
        int ret;
 
@@ -283,7 +283,7 @@ static int qpnp_tm_set_trip_temp(void *data, int trip, int temp)
        return ret;
 }
 
-static const struct thermal_zone_of_device_ops qpnp_tm_sensor_ops = {
+static const struct thermal_zone_device_ops qpnp_tm_sensor_ops = {
        .get_temp = qpnp_tm_get_temp,
        .set_trip_temp = qpnp_tm_set_trip_temp,
 };
@@ -446,7 +446,7 @@ static int qpnp_tm_probe(struct platform_device *pdev)
         * read the trip points. get_temp() returns the default temperature
         * before the hardware initialization is completed.
         */
-       chip->tz_dev = devm_thermal_zone_of_sensor_register(
+       chip->tz_dev = devm_thermal_of_zone_register(
                &pdev->dev, 0, chip, &qpnp_tm_sensor_ops);
        if (IS_ERR(chip->tz_dev)) {
                dev_err(&pdev->dev, "failed to register sensor\n");
index e49f58e8351375c0c55f9d7733e9706d601af1f7..b1b10005fb286e81833f0d52df9e58d7289c3b7d 100644 (file)
@@ -532,9 +532,9 @@ static irqreturn_t tsens_irq_thread(int irq, void *data)
        return IRQ_HANDLED;
 }
 
-static int tsens_set_trips(void *_sensor, int low, int high)
+static int tsens_set_trips(struct thermal_zone_device *tz, int low, int high)
 {
-       struct tsens_sensor *s = _sensor;
+       struct tsens_sensor *s = tz->devdata;
        struct tsens_priv *priv = s->priv;
        struct device *dev = priv->dev;
        struct tsens_irq_data d;
@@ -925,9 +925,9 @@ err_put_device:
        return ret;
 }
 
-static int tsens_get_temp(void *data, int *temp)
+static int tsens_get_temp(struct thermal_zone_device *tz, int *temp)
 {
-       struct tsens_sensor *s = data;
+       struct tsens_sensor *s = tz->devdata;
        struct tsens_priv *priv = s->priv;
 
        return priv->ops->get_temp(s, temp);
@@ -991,7 +991,7 @@ static const struct of_device_id tsens_table[] = {
 };
 MODULE_DEVICE_TABLE(of, tsens_table);
 
-static const struct thermal_zone_of_device_ops tsens_of_ops = {
+static const struct thermal_zone_device_ops tsens_of_ops = {
        .get_temp = tsens_get_temp,
        .set_trips = tsens_set_trips,
 };
@@ -1044,9 +1044,9 @@ static int tsens_register(struct tsens_priv *priv)
 
        for (i = 0;  i < priv->num_sensors; i++) {
                priv->sensor[i].priv = priv;
-               tzd = devm_thermal_zone_of_sensor_register(priv->dev, priv->sensor[i].hw_id,
-                                                          &priv->sensor[i],
-                                                          &tsens_of_ops);
+               tzd = devm_thermal_of_zone_register(priv->dev, priv->sensor[i].hw_id,
+                                                   &priv->sensor[i],
+                                                   &tsens_of_ops);
                if (IS_ERR(tzd))
                        continue;
                priv->sensor[i].tzd = tzd;