disp: msm: sde: add a property to control display input touch event
Display input touch event is replaced with IOCTL in performance HAL to early wake up DSI clock. Add a property to enable/disable display input touch event for backward compatibility. Change-Id: Ib6b9123d726e79a2927b05d1ef77c343f01d0c5e Signed-off-by: Lei Chen <chenlei@codeaurora.org>
This commit is contained in:

committed by
Gerrit - the friendly Code Review server

parent
9804031438
commit
f11da41a6e
@@ -2403,7 +2403,8 @@ static void _sde_encoder_input_handler_register(
|
|||||||
struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc);
|
struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc);
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
if (!sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE))
|
if (!sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE) ||
|
||||||
|
!sde_enc->input_event_enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (sde_enc->input_handler && !sde_enc->input_handler->private) {
|
if (sde_enc->input_handler && !sde_enc->input_handler->private) {
|
||||||
@@ -2424,7 +2425,8 @@ static void _sde_encoder_input_handler_unregister(
|
|||||||
{
|
{
|
||||||
struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc);
|
struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc);
|
||||||
|
|
||||||
if (!sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE))
|
if (!sde_encoder_check_curr_mode(drm_enc, MSM_DISPLAY_CMD_MODE) ||
|
||||||
|
!sde_enc->input_event_enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (sde_enc->input_handler && sde_enc->input_handler->private) {
|
if (sde_enc->input_handler && sde_enc->input_handler->private) {
|
||||||
@@ -4677,6 +4679,8 @@ static int sde_encoder_setup_display(struct sde_encoder_virt *sde_enc,
|
|||||||
(disp_info->capabilities & MSM_DISPLAY_CAP_VID_MODE))
|
(disp_info->capabilities & MSM_DISPLAY_CAP_VID_MODE))
|
||||||
sde_enc->idle_pc_enabled = sde_kms->catalog->has_idle_pc;
|
sde_enc->idle_pc_enabled = sde_kms->catalog->has_idle_pc;
|
||||||
|
|
||||||
|
sde_enc->input_event_enabled = sde_kms->catalog->wakeup_with_touch;
|
||||||
|
|
||||||
mutex_lock(&sde_enc->enc_lock);
|
mutex_lock(&sde_enc->enc_lock);
|
||||||
for (i = 0; i < disp_info->num_of_h_tiles && !ret; i++) {
|
for (i = 0; i < disp_info->num_of_h_tiles && !ret; i++) {
|
||||||
/*
|
/*
|
||||||
@@ -4843,7 +4847,8 @@ struct drm_encoder *sde_encoder_init_with_ops(
|
|||||||
sde_enc->rsc_client = NULL;
|
sde_enc->rsc_client = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (disp_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE) {
|
if (disp_info->capabilities & MSM_DISPLAY_CAP_CMD_MODE &&
|
||||||
|
sde_enc->input_event_enabled) {
|
||||||
ret = _sde_encoder_input_handler(sde_enc);
|
ret = _sde_encoder_input_handler(sde_enc);
|
||||||
if (ret)
|
if (ret)
|
||||||
SDE_ERROR(
|
SDE_ERROR(
|
||||||
|
@@ -232,6 +232,7 @@ struct sde_encoder_virt {
|
|||||||
u32 misr_frame_count;
|
u32 misr_frame_count;
|
||||||
|
|
||||||
bool idle_pc_enabled;
|
bool idle_pc_enabled;
|
||||||
|
bool input_event_enabled;
|
||||||
struct mutex rc_lock;
|
struct mutex rc_lock;
|
||||||
enum sde_enc_rc_states rc_state;
|
enum sde_enc_rc_states rc_state;
|
||||||
struct kthread_delayed_work delayed_off_work;
|
struct kthread_delayed_work delayed_off_work;
|
||||||
|
@@ -194,6 +194,7 @@ enum sde_prop {
|
|||||||
DIM_LAYER,
|
DIM_LAYER,
|
||||||
SMART_DMA_REV,
|
SMART_DMA_REV,
|
||||||
IDLE_PC,
|
IDLE_PC,
|
||||||
|
WAKEUP_WITH_TOUCH,
|
||||||
DEST_SCALER,
|
DEST_SCALER,
|
||||||
SMART_PANEL_ALIGN_MODE,
|
SMART_PANEL_ALIGN_MODE,
|
||||||
MACROTILE_MODE,
|
MACROTILE_MODE,
|
||||||
@@ -560,6 +561,8 @@ static struct sde_prop_type sde_prop[] = {
|
|||||||
{DIM_LAYER, "qcom,sde-has-dim-layer", false, PROP_TYPE_BOOL},
|
{DIM_LAYER, "qcom,sde-has-dim-layer", false, PROP_TYPE_BOOL},
|
||||||
{SMART_DMA_REV, "qcom,sde-smart-dma-rev", false, PROP_TYPE_STRING},
|
{SMART_DMA_REV, "qcom,sde-smart-dma-rev", false, PROP_TYPE_STRING},
|
||||||
{IDLE_PC, "qcom,sde-has-idle-pc", false, PROP_TYPE_BOOL},
|
{IDLE_PC, "qcom,sde-has-idle-pc", false, PROP_TYPE_BOOL},
|
||||||
|
{WAKEUP_WITH_TOUCH, "qcom,sde-wakeup-with-touch", false,
|
||||||
|
PROP_TYPE_BOOL},
|
||||||
{DEST_SCALER, "qcom,sde-has-dest-scaler", false, PROP_TYPE_BOOL},
|
{DEST_SCALER, "qcom,sde-has-dest-scaler", false, PROP_TYPE_BOOL},
|
||||||
{SMART_PANEL_ALIGN_MODE, "qcom,sde-smart-panel-align-mode",
|
{SMART_PANEL_ALIGN_MODE, "qcom,sde-smart-panel-align-mode",
|
||||||
false, PROP_TYPE_U32},
|
false, PROP_TYPE_U32},
|
||||||
@@ -3741,6 +3744,8 @@ static void _sde_top_parse_dt_helper(struct sde_mdss_cfg *cfg,
|
|||||||
cfg->has_src_split = PROP_VALUE_ACCESS(props->values, SRC_SPLIT, 0);
|
cfg->has_src_split = PROP_VALUE_ACCESS(props->values, SRC_SPLIT, 0);
|
||||||
cfg->has_dim_layer = PROP_VALUE_ACCESS(props->values, DIM_LAYER, 0);
|
cfg->has_dim_layer = PROP_VALUE_ACCESS(props->values, DIM_LAYER, 0);
|
||||||
cfg->has_idle_pc = PROP_VALUE_ACCESS(props->values, IDLE_PC, 0);
|
cfg->has_idle_pc = PROP_VALUE_ACCESS(props->values, IDLE_PC, 0);
|
||||||
|
cfg->wakeup_with_touch = PROP_VALUE_ACCESS(props->values,
|
||||||
|
WAKEUP_WITH_TOUCH, 0);
|
||||||
cfg->pipe_order_type = PROP_VALUE_ACCESS(props->values,
|
cfg->pipe_order_type = PROP_VALUE_ACCESS(props->values,
|
||||||
PIPE_ORDER_VERSION, 0);
|
PIPE_ORDER_VERSION, 0);
|
||||||
cfg->has_base_layer = PROP_VALUE_ACCESS(props->values, BASE_LAYER, 0);
|
cfg->has_base_layer = PROP_VALUE_ACCESS(props->values, BASE_LAYER, 0);
|
||||||
|
@@ -1396,6 +1396,7 @@ struct sde_perf_cfg {
|
|||||||
* @ubwc_version UBWC feature version (0x0 for not supported)
|
* @ubwc_version UBWC feature version (0x0 for not supported)
|
||||||
* @ubwc_bw_calc_version indicate how UBWC BW has to be calculated
|
* @ubwc_bw_calc_version indicate how UBWC BW has to be calculated
|
||||||
* @has_idle_pc indicate if idle power collapse feature is supported
|
* @has_idle_pc indicate if idle power collapse feature is supported
|
||||||
|
* @wakeup_with_touch indicate early wake up display with input touch event
|
||||||
* @has_hdr HDR feature support
|
* @has_hdr HDR feature support
|
||||||
* @has_hdr_plus HDR10+ feature support
|
* @has_hdr_plus HDR10+ feature support
|
||||||
* @dma_formats Supported formats for dma pipe
|
* @dma_formats Supported formats for dma pipe
|
||||||
@@ -1474,6 +1475,7 @@ struct sde_mdss_cfg {
|
|||||||
u32 ubwc_version;
|
u32 ubwc_version;
|
||||||
u32 ubwc_bw_calc_version;
|
u32 ubwc_bw_calc_version;
|
||||||
bool has_idle_pc;
|
bool has_idle_pc;
|
||||||
|
bool wakeup_with_touch;
|
||||||
u32 vbif_qos_nlvl;
|
u32 vbif_qos_nlvl;
|
||||||
u32 ts_prefill_rev;
|
u32 ts_prefill_rev;
|
||||||
u32 true_inline_rot_rev;
|
u32 true_inline_rot_rev;
|
||||||
|
Reference in New Issue
Block a user