Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f11da41a authored by Lei Chen's avatar Lei Chen Committed by Gerrit - the friendly Code Review server
Browse files

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: default avatarLei Chen <chenlei@codeaurora.org>
parent 98040314
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -2403,7 +2403,8 @@ static void _sde_encoder_input_handler_register(
	struct sde_encoder_virt *sde_enc = to_sde_encoder_virt(drm_enc);
	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;

	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);

	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;

	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))
		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);
	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;
	}

	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);
		if (ret)
			SDE_ERROR(
+1 −0
Original line number Diff line number Diff line
@@ -232,6 +232,7 @@ struct sde_encoder_virt {
	u32 misr_frame_count;

	bool idle_pc_enabled;
	bool input_event_enabled;
	struct mutex rc_lock;
	enum sde_enc_rc_states rc_state;
	struct kthread_delayed_work delayed_off_work;
+5 −0
Original line number Diff line number Diff line
@@ -194,6 +194,7 @@ enum sde_prop {
	DIM_LAYER,
	SMART_DMA_REV,
	IDLE_PC,
	WAKEUP_WITH_TOUCH,
	DEST_SCALER,
	SMART_PANEL_ALIGN_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},
	{SMART_DMA_REV, "qcom,sde-smart-dma-rev", false, PROP_TYPE_STRING},
	{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},
	{SMART_PANEL_ALIGN_MODE, "qcom,sde-smart-panel-align-mode",
			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_dim_layer = PROP_VALUE_ACCESS(props->values, DIM_LAYER, 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,
			PIPE_ORDER_VERSION, 0);
	cfg->has_base_layer = PROP_VALUE_ACCESS(props->values, BASE_LAYER, 0);
+2 −0
Original line number Diff line number Diff line
@@ -1396,6 +1396,7 @@ struct sde_perf_cfg {
 * @ubwc_version       UBWC feature version (0x0 for not supported)
 * @ubwc_bw_calc_version indicate how UBWC BW has to be calculated
 * @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_plus       HDR10+ feature support
 * @dma_formats        Supported formats for dma pipe
@@ -1474,6 +1475,7 @@ struct sde_mdss_cfg {
	u32 ubwc_version;
	u32 ubwc_bw_calc_version;
	bool has_idle_pc;
	bool wakeup_with_touch;
	u32 vbif_qos_nlvl;
	u32 ts_prefill_rev;
	u32 true_inline_rot_rev;