aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/qcom/iris/iris_platform_common.h
diff options
context:
space:
mode:
authorDikshita Agarwal <quic_dikshita@quicinc.com>2025-02-07 13:24:48 +0530
committerHans Verkuil <hverkuil@xs4all.nl>2025-02-07 11:51:18 +0100
commitbb8a95aa038e099f5ec82c466e996b006e05abd7 (patch)
treed8808355ae7f8a6db92d81b9cf3a0e1a1dfe390d /drivers/media/platform/qcom/iris/iris_platform_common.h
parentmedia: iris: introduce host firmware interface with necessary hooks (diff)
downloadlinux-bb8a95aa038e099f5ec82c466e996b006e05abd7.tar.gz
linux-bb8a95aa038e099f5ec82c466e996b006e05abd7.zip
media: iris: implement power management
Implement runtime power management for iris, including a platform specific power on/off sequence. Tested-by: Stefan Schmidt <stefan.schmidt@linaro.org> # x1e80100 (Dell XPS 13 9345) Reviewed-by: Stefan Schmidt <stefan.schmidt@linaro.org> Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-QRD Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on SM8550-HDK Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'drivers/media/platform/qcom/iris/iris_platform_common.h')
-rw-r--r--drivers/media/platform/qcom/iris/iris_platform_common.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/media/platform/qcom/iris/iris_platform_common.h b/drivers/media/platform/qcom/iris/iris_platform_common.h
index adf639d1a109..69c0a8b3d12d 100644
--- a/drivers/media/platform/qcom/iris/iris_platform_common.h
+++ b/drivers/media/platform/qcom/iris/iris_platform_common.h
@@ -10,6 +10,7 @@ struct iris_core;
#define IRIS_PAS_ID 9
#define HW_RESPONSE_TIMEOUT_VALUE (1000) /* milliseconds */
+#define AUTOSUSPEND_DELAY_VALUE (HW_RESPONSE_TIMEOUT_VALUE + 500) /* milliseconds */
extern struct iris_platform_data sm8550_data;
@@ -41,10 +42,22 @@ struct ubwc_config_data {
u32 bank_spreading;
};
+struct iris_core_power {
+ u64 clk_freq;
+ u64 icc_bw;
+};
+
+enum platform_pm_domain_type {
+ IRIS_CTRL_POWER_DOMAIN,
+ IRIS_HW_POWER_DOMAIN,
+};
+
struct iris_platform_data {
void (*init_hfi_command_ops)(struct iris_core *core);
void (*init_hfi_response_ops)(struct iris_core *core);
struct iris_inst *(*get_instance)(void);
+ const struct vpu_ops *vpu_ops;
+ void (*set_preset_registers)(struct iris_core *core);
const struct icc_info *icc_tbl;
unsigned int icc_tbl_size;
const char * const *pmdomain_tbl;
@@ -62,6 +75,7 @@ struct iris_platform_data {
u32 core_arch;
u32 hw_response_timeout;
struct ubwc_config_data *ubwc_config;
+ u32 num_vpp_pipe;
};
#endif