disp: msm: dsi: reuse continuous splash path for trusted vm
Display in trusted VM works in a handover mode i.e, all display components need to be initialized by the primary VM before switching to trusted VM on the usecase boundary. That makes it a hard requirement for the trusted VM not to re-program any of the display configuration registers before it could hand the HW back to the primary VM. Also, most of the linux framework drivers including pintrl, clocks are not enabled in the trusted VM. In order to address the above two limitations and to control the probe/commit sequences, this change adapts the same path as that of continuous splash to bypass some of the critical functions which are identified to be HW intrusive. Based on the DT property read from SDE handle, dsi drivers will choose to bypass enable/disable HW state updates when executing in the vm environment. Change-Id: Ica71c924d189ab65fe3be5b0ac870633e3b749e1 Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org> Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
@@ -455,7 +455,8 @@ int dsi_ctrl_host_timing_update(struct dsi_ctrl *dsi_ctrl);
|
||||
/**
|
||||
* dsi_ctrl_host_init() - Initialize DSI host hardware.
|
||||
* @dsi_ctrl: DSI controller handle.
|
||||
* @is_splash_enabled: boolean signifying splash status.
|
||||
* @skip_op: Boolean to indicate few operations can be skipped.
|
||||
* Set during the cont-splash or trusted-vm enable case.
|
||||
*
|
||||
* Initializes DSI controller hardware with host configuration provided by
|
||||
* dsi_ctrl_update_host_config(). Initialization can be performed only during
|
||||
@@ -464,7 +465,7 @@ int dsi_ctrl_host_timing_update(struct dsi_ctrl *dsi_ctrl);
|
||||
*
|
||||
* Return: error code.
|
||||
*/
|
||||
int dsi_ctrl_host_init(struct dsi_ctrl *dsi_ctrl, bool is_splash_enabled);
|
||||
int dsi_ctrl_host_init(struct dsi_ctrl *dsi_ctrl, bool skip_op);
|
||||
|
||||
/**
|
||||
* dsi_ctrl_host_deinit() - De-Initialize DSI host hardware.
|
||||
@@ -565,17 +566,6 @@ int dsi_ctrl_cmd_transfer(struct dsi_ctrl *dsi_ctrl,
|
||||
*/
|
||||
int dsi_ctrl_cmd_tx_trigger(struct dsi_ctrl *dsi_ctrl, u32 flags);
|
||||
|
||||
/**
|
||||
* dsi_ctrl_update_host_engine_state_for_cont_splash() - update engine
|
||||
* states for cont splash usecase
|
||||
* @dsi_ctrl: DSI controller handle.
|
||||
* @state: DSI engine state
|
||||
*
|
||||
* Return: error code.
|
||||
*/
|
||||
int dsi_ctrl_update_host_engine_state_for_cont_splash(struct dsi_ctrl *dsi_ctrl,
|
||||
enum dsi_engine_state state);
|
||||
|
||||
/**
|
||||
* dsi_ctrl_set_power_state() - set power state for dsi controller
|
||||
* @dsi_ctrl: DSI controller handle.
|
||||
@@ -593,6 +583,8 @@ int dsi_ctrl_set_power_state(struct dsi_ctrl *dsi_ctrl,
|
||||
* dsi_ctrl_set_cmd_engine_state() - set command engine state
|
||||
* @dsi_ctrl: DSI Controller handle.
|
||||
* @state: Engine state.
|
||||
* @skip_op: Boolean to indicate few operations can be skipped.
|
||||
* Set during the cont-splash or trusted-vm enable case.
|
||||
*
|
||||
* Command engine state can be modified only when DSI controller power state is
|
||||
* set to DSI_CTRL_POWER_LINK_CLK_ON.
|
||||
@@ -600,7 +592,7 @@ int dsi_ctrl_set_power_state(struct dsi_ctrl *dsi_ctrl,
|
||||
* Return: error code.
|
||||
*/
|
||||
int dsi_ctrl_set_cmd_engine_state(struct dsi_ctrl *dsi_ctrl,
|
||||
enum dsi_engine_state state);
|
||||
enum dsi_engine_state state, bool skip_op);
|
||||
|
||||
/**
|
||||
* dsi_ctrl_validate_host_state() - validate DSI ctrl host state
|
||||
@@ -616,6 +608,8 @@ bool dsi_ctrl_validate_host_state(struct dsi_ctrl *dsi_ctrl);
|
||||
* dsi_ctrl_set_vid_engine_state() - set video engine state
|
||||
* @dsi_ctrl: DSI Controller handle.
|
||||
* @state: Engine state.
|
||||
* @skip_op: Boolean to indicate few operations can be skipped.
|
||||
* Set during the cont-splash or trusted-vm enable case.
|
||||
*
|
||||
* Video engine state can be modified only when DSI controller power state is
|
||||
* set to DSI_CTRL_POWER_LINK_CLK_ON.
|
||||
@@ -623,12 +617,14 @@ bool dsi_ctrl_validate_host_state(struct dsi_ctrl *dsi_ctrl);
|
||||
* Return: error code.
|
||||
*/
|
||||
int dsi_ctrl_set_vid_engine_state(struct dsi_ctrl *dsi_ctrl,
|
||||
enum dsi_engine_state state);
|
||||
enum dsi_engine_state state, bool skip_op);
|
||||
|
||||
/**
|
||||
* dsi_ctrl_set_host_engine_state() - set host engine state
|
||||
* @dsi_ctrl: DSI Controller handle.
|
||||
* @state: Engine state.
|
||||
* @skip_op: Boolean to indicate few operations can be skipped.
|
||||
* Set during the cont-splash or trusted-vm enable case.
|
||||
*
|
||||
* Host engine state can be modified only when DSI controller power state is
|
||||
* set to DSI_CTRL_POWER_LINK_CLK_ON and cmd, video engines are disabled.
|
||||
@@ -636,7 +632,7 @@ int dsi_ctrl_set_vid_engine_state(struct dsi_ctrl *dsi_ctrl,
|
||||
* Return: error code.
|
||||
*/
|
||||
int dsi_ctrl_set_host_engine_state(struct dsi_ctrl *dsi_ctrl,
|
||||
enum dsi_engine_state state);
|
||||
enum dsi_engine_state state, bool skip_op);
|
||||
|
||||
/**
|
||||
* dsi_ctrl_set_ulps() - set ULPS state for DSI lanes.
|
||||
|
Reference in New Issue
Block a user