Skip to content

Commit

Permalink
firmware: arm_scmi: fetch and store sensor scale
Browse files Browse the repository at this point in the history
In preparation for dealing with scales within the SCMI HWMON driver,
fetch and store the sensor unit scale into the scmi_sensor_info
structure. In order to simplify computations for upper layer, take care
of sign extending the scale to a full 8-bit signed value.

Reviewed-by: Guenter Roeck <[email protected]>
Signed-off-by: Florian Fainelli <[email protected]>
[sudeep.holla: update bitfield values as per specification]
Signed-off-by: Sudeep Holla <[email protected]>
  • Loading branch information
ffainelli authored and sudeep-holla committed Jun 12, 2019
1 parent c0759b9 commit 0b673b6
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 0 deletions.
6 changes: 6 additions & 0 deletions drivers/firmware/arm_scmi/sensors.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ struct scmi_msg_resp_sensor_description {
__le32 attributes_high;
#define SENSOR_TYPE(x) ((x) & 0xff)
#define SENSOR_SCALE(x) (((x) >> 11) & 0x1f)
#define SENSOR_SCALE_SIGN BIT(4)
#define SENSOR_SCALE_EXTEND GENMASK(7, 5)
#define SENSOR_UPDATE_SCALE(x) (((x) >> 22) & 0x1f)
#define SENSOR_UPDATE_BASE(x) (((x) >> 27) & 0x1f)
u8 name[SCMI_MAX_STR_SIZE];
Expand Down Expand Up @@ -140,6 +142,10 @@ static int scmi_sensor_description_get(const struct scmi_handle *handle,
s = &si->sensors[desc_index + cnt];
s->id = le32_to_cpu(buf->desc[cnt].id);
s->type = SENSOR_TYPE(attrh);
s->scale = SENSOR_SCALE(attrh);
/* Sign extend to a full s8 */
if (s->scale & SENSOR_SCALE_SIGN)
s->scale |= SENSOR_SCALE_EXTEND;
strlcpy(s->name, buf->desc[cnt].name, SCMI_MAX_STR_SIZE);
}

Expand Down
1 change: 1 addition & 0 deletions include/linux/scmi_protocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ struct scmi_power_ops {
struct scmi_sensor_info {
u32 id;
u8 type;
s8 scale;
char name[SCMI_MAX_STR_SIZE];
};

Expand Down

0 comments on commit 0b673b6

Please sign in to comment.