Преглед изворни кода

disp: msm: sde: expose api to control encoder irq

Expose an API in encoder to control display irq's
when the VM enters and exits TUI use case.

Change-Id: Ic2386dcebfd8a9dd2ce06f068c6daf066a3e885f
Signed-off-by: Jeykumar Sankaran <[email protected]>
Jeykumar Sankaran пре 5 година
родитељ
комит
53db678726
2 измењених фајлова са 15 додато и 8 уклоњено
  1. 8 8
      msm/sde/sde_encoder.c
  2. 7 0
      msm/sde/sde_encoder.h

+ 8 - 8
msm/sde/sde_encoder.c

@@ -1341,7 +1341,7 @@ static int _sde_encoder_update_rsc_client(
 	return ret;
 }
 
-static void _sde_encoder_irq_control(struct drm_encoder *drm_enc, bool enable)
+void sde_encoder_irq_control(struct drm_encoder *drm_enc, bool enable)
 {
 	struct sde_encoder_virt *sde_enc;
 	int i;
@@ -1451,7 +1451,7 @@ static int _sde_encoder_resource_control_helper(struct drm_encoder *drm_enc,
 		}
 
 		/* enable all the irq */
-		_sde_encoder_irq_control(drm_enc, true);
+		sde_encoder_irq_control(drm_enc, true);
 
 		_sde_encoder_pm_qos_add_request(drm_enc);
 
@@ -1459,7 +1459,7 @@ static int _sde_encoder_resource_control_helper(struct drm_encoder *drm_enc,
 		_sde_encoder_pm_qos_remove_request(drm_enc);
 
 		/* disable all the irq */
-		_sde_encoder_irq_control(drm_enc, false);
+		sde_encoder_irq_control(drm_enc, false);
 
 		/* disable DSI clks */
 		sde_connector_clk_ctrl(sde_enc->cur_master->connector, false);
@@ -1626,7 +1626,7 @@ static int _sde_encoder_rc_kickoff(struct drm_encoder *drm_enc,
 	}
 
 	if (is_vid_mode && sde_enc->rc_state == SDE_ENC_RC_STATE_IDLE) {
-		_sde_encoder_irq_control(drm_enc, true);
+		sde_encoder_irq_control(drm_enc, true);
 	} else {
 		/* enable all the clks and resources */
 		ret = _sde_encoder_resource_control_helper(drm_enc,
@@ -1663,7 +1663,7 @@ static int _sde_encoder_rc_pre_stop(struct drm_encoder *drm_enc,
 
 	if (is_vid_mode &&
 		  sde_enc->rc_state == SDE_ENC_RC_STATE_IDLE) {
-		_sde_encoder_irq_control(drm_enc, true);
+		sde_encoder_irq_control(drm_enc, true);
 	}
 	/* skip if is already OFF or IDLE, resources are off already */
 	else if (sde_enc->rc_state == SDE_ENC_RC_STATE_OFF ||
@@ -1780,7 +1780,7 @@ static int _sde_encoder_rc_pre_modeset(struct drm_encoder *drm_enc,
 		goto end;
 	}
 
-	_sde_encoder_irq_control(drm_enc, false);
+	sde_encoder_irq_control(drm_enc, false);
 	_sde_encoder_modeset_helper_locked(drm_enc, sw_event);
 
 	SDE_EVT32(DRMID(drm_enc), sw_event, sde_enc->rc_state,
@@ -1818,7 +1818,7 @@ static int _sde_encoder_rc_post_modeset(struct drm_encoder *drm_enc,
 	}
 
 	_sde_encoder_modeset_helper_locked(drm_enc, sw_event);
-	_sde_encoder_irq_control(drm_enc, true);
+	sde_encoder_irq_control(drm_enc, true);
 
 	_sde_encoder_update_rsc_client(drm_enc, true);
 
@@ -1862,7 +1862,7 @@ static int _sde_encoder_rc_idle(struct drm_encoder *drm_enc,
 	}
 
 	if (is_vid_mode) {
-		_sde_encoder_irq_control(drm_enc, false);
+		sde_encoder_irq_control(drm_enc, false);
 	} else {
 		/* disable all the clks and resources */
 		_sde_encoder_update_rsc_client(drm_enc, false);

+ 7 - 0
msm/sde/sde_encoder.h

@@ -525,6 +525,13 @@ void sde_encoder_needs_hw_reset(struct drm_encoder *enc);
  */
 void sde_encoder_uidle_enable(struct drm_encoder *drm_enc, bool enable);
 
+/**
+ * sde_encoder_irq_control - control enable/disable of IRQ's
+ * @drm_enc:	Pointer to drm encoder structure
+ * @enable: enable/disable flag
+ */
+void sde_encoder_irq_control(struct drm_encoder *drm_enc, bool enable);
+
 /**
  * sde_encoder_get_kms - retrieve the kms from encoder
  * @drm_enc:    Pointer to drm encoder structure