summaryrefslogtreecommitdiff
path: root/include/linux/scmi_protocol.h
diff options
context:
space:
mode:
authorSudeep Holla <sudeep.holla@arm.com>2017-07-21 13:42:24 +0300
committerSudeep Holla <sudeep.holla@arm.com>2018-02-28 19:37:57 +0300
commit5c4ba3cc85296398855d621bf90b78866ea80444 (patch)
tree327682b15c2d4d18659b4215efa5781b0a767f96 /include/linux/scmi_protocol.h
parentd4c3751a8de2deeaae546b97650f895b62bbd1b4 (diff)
downloadlinux-5c4ba3cc85296398855d621bf90b78866ea80444.tar.xz
firmware: arm_scmi: add option for polling based performance domain operations
In order to implement fast CPU DVFS switching, we need to perform all DVFS operations atomically. Since SCMI transfer already provide option to choose between pooling vs interrupt driven(default), we can opt for polling based transfers for set,get performance domain operations. This patch adds option to choose between polling vs interrupt driven SCMI transfers for set,get performance level operations. Cc: Arnd Bergmann <arnd@arndb.de> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Diffstat (limited to 'include/linux/scmi_protocol.h')
-rw-r--r--include/linux/scmi_protocol.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h
index 5d63da9435ba..b458c87b866c 100644
--- a/include/linux/scmi_protocol.h
+++ b/include/linux/scmi_protocol.h
@@ -98,18 +98,18 @@ struct scmi_perf_ops {
int (*limits_get)(const struct scmi_handle *handle, u32 domain,
u32 *max_perf, u32 *min_perf);
int (*level_set)(const struct scmi_handle *handle, u32 domain,
- u32 level);
+ u32 level, bool poll);
int (*level_get)(const struct scmi_handle *handle, u32 domain,
- u32 *level);
+ u32 *level, bool poll);
int (*device_domain_id)(struct device *dev);
int (*get_transition_latency)(const struct scmi_handle *handle,
struct device *dev);
int (*add_opps_to_device)(const struct scmi_handle *handle,
struct device *dev);
int (*freq_set)(const struct scmi_handle *handle, u32 domain,
- unsigned long rate);
+ unsigned long rate, bool poll);
int (*freq_get)(const struct scmi_handle *handle, u32 domain,
- unsigned long *rate);
+ unsigned long *rate, bool poll);
};
/**