summaryrefslogtreecommitdiff
path: root/include/linux/scmi_protocol.h
diff options
context:
space:
mode:
authorCristian Marussi <cristian.marussi@arm.com>2020-07-10 14:39:19 +0100
committerSudeep Holla <sudeep.holla@arm.com>2020-07-13 09:40:21 +0100
commit72a5eb9d9c319c99c11cfd9cfb486380dd136840 (patch)
tree0cef497bf77845196d7332a860e45b937d4ec6c0 /include/linux/scmi_protocol.h
parent33ee97f823cc5b3d03c9910c1b8dbe193a21056b (diff)
firmware: arm_scmi: Remove fixed size fields from reports/scmi_event_header
Event reports are used to convey information describing events to the registered user-callbacks: they are necessarily derived from the underlying raw SCMI events' messages but they are not meant to expose or directly mirror any of those messages data layout, which belong to the protocol layer. Using fixed size types for report fields, mirroring messages structure, is at odd with this: get rid of them using more generic, equivalent, typing. Substitute scmi_event_header fixed size fields with generic types too and shuffle around fields definitions to minimize implicit padding while adapting involved functions. Link: https://lore.kernel.org/r/20200710133919.39792-3-cristian.marussi@arm.com Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Diffstat (limited to 'include/linux/scmi_protocol.h')
-rw-r--r--include/linux/scmi_protocol.h52
1 files changed, 26 insertions, 26 deletions
diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
index 7d4348fb7330..7e5dd7d1e221 100644
--- a/include/linux/scmi_protocol.h
+++ b/include/linux/scmi_protocol.h
@@ -381,47 +381,47 @@ enum scmi_notification_events {
};
struct scmi_power_state_changed_report {
- u64 timestamp;
- u32 agent_id;
- u32 domain_id;
- u32 power_state;
+ ktime_t timestamp;
+ unsigned int agent_id;
+ unsigned int domain_id;
+ unsigned int power_state;
};
struct scmi_perf_limits_report {
- u64 timestamp;
- u32 agent_id;
- u32 domain_id;
- u32 range_max;
- u32 range_min;
+ ktime_t timestamp;
+ unsigned int agent_id;
+ unsigned int domain_id;
+ unsigned int range_max;
+ unsigned int range_min;
};
struct scmi_perf_level_report {
- u64 timestamp;
- u32 agent_id;
- u32 domain_id;
- u32 performance_level;
+ ktime_t timestamp;
+ unsigned int agent_id;
+ unsigned int domain_id;
+ unsigned int performance_level;
};
struct scmi_sensor_trip_point_report {
- u64 timestamp;
- u32 agent_id;
- u32 sensor_id;
- u32 trip_point_desc;
+ ktime_t timestamp;
+ unsigned int agent_id;
+ unsigned int sensor_id;
+ unsigned int trip_point_desc;
};
struct scmi_reset_issued_report {
- u64 timestamp;
- u32 agent_id;
- u32 domain_id;
- u32 reset_state;
+ ktime_t timestamp;
+ unsigned int agent_id;
+ unsigned int domain_id;
+ unsigned int reset_state;
};
struct scmi_base_error_report {
- u64 timestamp;
- u32 agent_id;
- bool fatal;
- u16 cmd_count;
- u64 reports[];
+ ktime_t timestamp;
+ unsigned int agent_id;
+ bool fatal;
+ unsigned int cmd_count;
+ unsigned long long reports[];
};
#endif /* _LINUX_SCMI_PROTOCOL_H */