diff mbox series

[3/5] thermal/drivers/acpi: Use hot and critical ops

Message ID 20201210121514.25760-3-daniel.lezcano@linaro.org (mailing list archive)
State Not Applicable, archived
Headers show
Series None | expand

Commit Message

Daniel Lezcano Dec. 10, 2020, 12:15 p.m. UTC
The acpi driver wants to do a netlink notification in case of a hot or
critical trip point. Implement the corresponding ops to be used for
the thermal zone and use them instead of the notify ops.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
 drivers/acpi/thermal.c | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

Comments

Daniel Lezcano Dec. 17, 2020, 6:28 a.m. UTC | #1
On 10/12/2020 13:15, Daniel Lezcano wrote:
> The acpi driver wants to do a netlink notification in case of a hot or
> critical trip point. Implement the corresponding ops to be used for
> the thermal zone and use them instead of the notify ops.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>

Is there any comment on this patch ?

> ---
>  drivers/acpi/thermal.c | 30 ++++++++++++++----------------
>  1 file changed, 14 insertions(+), 16 deletions(-)
> 
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 12c0ece746f0..b5e4bc9e3282 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -677,27 +677,24 @@ static int thermal_get_trend(struct thermal_zone_device *thermal,
>  	return 0;
>  }
>  
> -
> -static int thermal_notify(struct thermal_zone_device *thermal, int trip,
> -			   enum thermal_trip_type trip_type)
> +static void acpi_thermal_zone_device_hot(struct thermal_zone_device *thermal)
>  {
> -	u8 type = 0;
>  	struct acpi_thermal *tz = thermal->devdata;
>  
> -	if (trip_type == THERMAL_TRIP_CRITICAL)
> -		type = ACPI_THERMAL_NOTIFY_CRITICAL;
> -	else if (trip_type == THERMAL_TRIP_HOT)
> -		type = ACPI_THERMAL_NOTIFY_HOT;
> -	else
> -		return 0;
> -
>  	acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
> -					dev_name(&tz->device->dev), type, 1);
> +					dev_name(&tz->device->dev),
> +					ACPI_THERMAL_NOTIFY_HOT, 1);
> +}
>  
> -	if (trip_type == THERMAL_TRIP_CRITICAL && nocrt)
> -		return 1;
> +static void acpi_thermal_zone_device_critical(struct thermal_zone_device *thermal)
> +{
> +	struct acpi_thermal *tz = thermal->devdata;
>  
> -	return 0;
> +	acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
> +					dev_name(&tz->device->dev),
> +					ACPI_THERMAL_NOTIFY_CRITICAL, 1);
> +
> +	thermal_zone_device_critical(thermal);
>  }
>  
>  static int acpi_thermal_cooling_device_cb(struct thermal_zone_device *thermal,
> @@ -812,7 +809,8 @@ static struct thermal_zone_device_ops acpi_thermal_zone_ops = {
>  	.get_trip_temp = thermal_get_trip_temp,
>  	.get_crit_temp = thermal_get_crit_temp,
>  	.get_trend = thermal_get_trend,
> -	.notify = thermal_notify,
> +	.hot = acpi_thermal_zone_device_hot,
> +	.critical = acpi_thermal_zone_device_critical,
>  };
>  
>  static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)
>
srinivas pandruvada Dec. 17, 2020, 11:38 a.m. UTC | #2
On Thu, 2020-12-17 at 07:28 +0100, Daniel Lezcano wrote:
> On 10/12/2020 13:15, Daniel Lezcano wrote:
> > The acpi driver wants to do a netlink notification in case of a hot
> > or
> > critical trip point. Implement the corresponding ops to be used for
> > the thermal zone and use them instead of the notify ops.
> > 
> > Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
> 
> Is there any comment on this patch ?

Looks good to me.

Thanks,
Srinivas

> 
> > ---
> >  drivers/acpi/thermal.c | 30 ++++++++++++++----------------
> >  1 file changed, 14 insertions(+), 16 deletions(-)
> > 
> > diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> > index 12c0ece746f0..b5e4bc9e3282 100644
> > --- a/drivers/acpi/thermal.c
> > +++ b/drivers/acpi/thermal.c
> > @@ -677,27 +677,24 @@ static int thermal_get_trend(struct
> > thermal_zone_device *thermal,
> >         return 0;
> >  }
> >  
> > -
> > -static int thermal_notify(struct thermal_zone_device *thermal, int
> > trip,
> > -                          enum thermal_trip_type trip_type)
> > +static void acpi_thermal_zone_device_hot(struct
> > thermal_zone_device *thermal)
> >  {
> > -       u8 type = 0;
> >         struct acpi_thermal *tz = thermal->devdata;
> >  
> > -       if (trip_type == THERMAL_TRIP_CRITICAL)
> > -               type = ACPI_THERMAL_NOTIFY_CRITICAL;
> > -       else if (trip_type == THERMAL_TRIP_HOT)
> > -               type = ACPI_THERMAL_NOTIFY_HOT;
> > -       else
> > -               return 0;
> > -
> >         acpi_bus_generate_netlink_event(tz->device-
> > >pnp.device_class,
> > -                                       dev_name(&tz->device->dev),
> > type, 1);
> > +                                       dev_name(&tz->device->dev),
> > +                                       ACPI_THERMAL_NOTIFY_HOT,
> > 1);
> > +}
> >  
> > -       if (trip_type == THERMAL_TRIP_CRITICAL && nocrt)
> > -               return 1;
> > +static void acpi_thermal_zone_device_critical(struct
> > thermal_zone_device *thermal)
> > +{
> > +       struct acpi_thermal *tz = thermal->devdata;
> >  
> > -       return 0;
> > +       acpi_bus_generate_netlink_event(tz->device-
> > >pnp.device_class,
> > +                                       dev_name(&tz->device->dev),
> > +                                       ACPI_THERMAL_NOTIFY_CRITICA
> > L, 1);
> > +
> > +       thermal_zone_device_critical(thermal);
> >  }
> >  
> >  static int acpi_thermal_cooling_device_cb(struct
> > thermal_zone_device *thermal,
> > @@ -812,7 +809,8 @@ static struct thermal_zone_device_ops
> > acpi_thermal_zone_ops = {
> >         .get_trip_temp = thermal_get_trip_temp,
> >         .get_crit_temp = thermal_get_crit_temp,
> >         .get_trend = thermal_get_trend,
> > -       .notify = thermal_notify,
> > +       .hot = acpi_thermal_zone_device_hot,
> > +       .critical = acpi_thermal_zone_device_critical,
> >  };
> >  
> >  static int acpi_thermal_register_thermal_zone(struct acpi_thermal
> > *tz)
> > 
> 
>
Daniel Lezcano Dec. 17, 2020, 1:10 p.m. UTC | #3
On 17/12/2020 12:38, Srinivas Pandruvada wrote:
> On Thu, 2020-12-17 at 07:28 +0100, Daniel Lezcano wrote:
>> On 10/12/2020 13:15, Daniel Lezcano wrote:
>>> The acpi driver wants to do a netlink notification in case of a hot
>>> or
>>> critical trip point. Implement the corresponding ops to be used for
>>> the thermal zone and use them instead of the notify ops.
>>>
>>> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
>>
>> Is there any comment on this patch ?
> 
> Looks good to me.

Thanks for reviewing
diff mbox series

Patch

diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 12c0ece746f0..b5e4bc9e3282 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -677,27 +677,24 @@  static int thermal_get_trend(struct thermal_zone_device *thermal,
 	return 0;
 }
 
-
-static int thermal_notify(struct thermal_zone_device *thermal, int trip,
-			   enum thermal_trip_type trip_type)
+static void acpi_thermal_zone_device_hot(struct thermal_zone_device *thermal)
 {
-	u8 type = 0;
 	struct acpi_thermal *tz = thermal->devdata;
 
-	if (trip_type == THERMAL_TRIP_CRITICAL)
-		type = ACPI_THERMAL_NOTIFY_CRITICAL;
-	else if (trip_type == THERMAL_TRIP_HOT)
-		type = ACPI_THERMAL_NOTIFY_HOT;
-	else
-		return 0;
-
 	acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
-					dev_name(&tz->device->dev), type, 1);
+					dev_name(&tz->device->dev),
+					ACPI_THERMAL_NOTIFY_HOT, 1);
+}
 
-	if (trip_type == THERMAL_TRIP_CRITICAL && nocrt)
-		return 1;
+static void acpi_thermal_zone_device_critical(struct thermal_zone_device *thermal)
+{
+	struct acpi_thermal *tz = thermal->devdata;
 
-	return 0;
+	acpi_bus_generate_netlink_event(tz->device->pnp.device_class,
+					dev_name(&tz->device->dev),
+					ACPI_THERMAL_NOTIFY_CRITICAL, 1);
+
+	thermal_zone_device_critical(thermal);
 }
 
 static int acpi_thermal_cooling_device_cb(struct thermal_zone_device *thermal,
@@ -812,7 +809,8 @@  static struct thermal_zone_device_ops acpi_thermal_zone_ops = {
 	.get_trip_temp = thermal_get_trip_temp,
 	.get_crit_temp = thermal_get_crit_temp,
 	.get_trend = thermal_get_trend,
-	.notify = thermal_notify,
+	.hot = acpi_thermal_zone_device_hot,
+	.critical = acpi_thermal_zone_device_critical,
 };
 
 static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)