Re: [PATCH 08/11] firmware: arm_scmi: Drop async flag in sensor_ops->reading_get

Guenter Roeck
2019-07-08T16:05:25Z

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 <linux@roeck-us.net>
> Cc: linux-hwmon@vger.kernel.org
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

For hwmon:

Acked-by: Guenter Roeck <linux@roeck-us.net>

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
>