On Mon, Jul 08, 2019 at 04:47:27PM +0100, Sudeep Holla wrote:
> SENSOR_DESCRIPTION_GET provides attributes to indicate if the sensor
> supports asynchronous read. Ideally we should be able to read that flag
> and use asynchronous reads for any sensors with that attribute set.
> 
> In order to add that support, let's drop the async flag passed to
> sensor_ops->reading_get and dynamically switch between sync and async
> flags based on the attributes as provided by the firmware.
> 
> Cc: Guenter Roeck <[email protected]>
> Cc: [email protected]
> Signed-off-by: Sudeep Holla <[email protected]>

For hwmon:

Acked-by: Guenter Roeck <[email protected]>

Guenter

> ---
>  drivers/firmware/arm_scmi/sensors.c | 4 ++--
>  drivers/hwmon/scmi-hwmon.c          | 2 +-
>  include/linux/scmi_protocol.h       | 2 +-
>  3 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/firmware/arm_scmi/sensors.c 
> b/drivers/firmware/arm_scmi/sensors.c
> index 17dbabd8a94a..1b5757c77a35 100644
> --- a/drivers/firmware/arm_scmi/sensors.c
> +++ b/drivers/firmware/arm_scmi/sensors.c
> @@ -211,7 +211,7 @@ scmi_sensor_trip_point_config(const struct scmi_handle 
> *handle, u32 sensor_id,
>  }
>  
>  static int scmi_sensor_reading_get(const struct scmi_handle *handle,
> -                                u32 sensor_id, bool async, u64 *value)
> +                                u32 sensor_id, u64 *value)
>  {
>       int ret;
>       struct scmi_xfer *t;
> @@ -225,7 +225,7 @@ static int scmi_sensor_reading_get(const struct 
> scmi_handle *handle,
>  
>       sensor = t->tx.buf;
>       sensor->id = cpu_to_le32(sensor_id);
> -     sensor->flags = cpu_to_le32(async ? SENSOR_READ_ASYNC : 0);
> +     sensor->flags = cpu_to_le32(0);
>  
>       ret = scmi_do_xfer(handle, t);
>       if (!ret) {
> diff --git a/drivers/hwmon/scmi-hwmon.c b/drivers/hwmon/scmi-hwmon.c
> index 0c93fc5ca762..8a7732c0bef3 100644
> --- a/drivers/hwmon/scmi-hwmon.c
> +++ b/drivers/hwmon/scmi-hwmon.c
> @@ -72,7 +72,7 @@ static int scmi_hwmon_read(struct device *dev, enum 
> hwmon_sensor_types type,
>       const struct scmi_handle *h = scmi_sensors->handle;
>  
>       sensor = *(scmi_sensors->info[type] + channel);
> -     ret = h->sensor_ops->reading_get(h, sensor->id, false, &value);
> +     ret = h->sensor_ops->reading_get(h, sensor->id, &value);
>       if (ret)
>               return ret;
>  
> diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
> index ea6b72018752..697e30fb9004 100644
> --- a/include/linux/scmi_protocol.h
> +++ b/include/linux/scmi_protocol.h
> @@ -182,7 +182,7 @@ struct scmi_sensor_ops {
>       int (*trip_point_config)(const struct scmi_handle *handle,
>                                u32 sensor_id, u8 trip_id, u64 trip_value);
>       int (*reading_get)(const struct scmi_handle *handle, u32 sensor_id,
> -                        bool async, u64 *value);
> +                        u64 *value);
>  };
>  
>  /**
> -- 
> 2.17.1
> 

Reply via email to