Procházet zdrojové kódy

Merge "disp: msm: sde: fix kw issues in sde driver" into display-kernel.lnx.5.4

Linux Build Service Account před 5 roky
rodič
revize
026b9de2e2
3 změnil soubory, kde provedl 10 přidání a 5 odebrání
  1. 6 1
      msm/sde/sde_crtc.c
  2. 2 2
      msm/sde/sde_encoder.c
  3. 2 2
      msm/sde/sde_rm.c

+ 6 - 1
msm/sde/sde_crtc.c

@@ -3506,10 +3506,15 @@ static void _sde_crtc_schedule_idle_notify(struct drm_crtc *crtc,
 	struct sde_crtc *sde_crtc = to_sde_crtc(crtc);
 	struct sde_crtc_state *cstate = to_sde_crtc_state(old_state);
 	struct sde_kms *sde_kms = _sde_crtc_get_kms(crtc);
-	struct msm_drm_private *priv = sde_kms->dev->dev_private;
+	struct msm_drm_private *priv;
 	struct msm_drm_thread *event_thread;
 	int idle_time = 0;
 
+	if (!sde_kms || !sde_kms->dev || !sde_kms->dev->dev_private)
+		return;
+
+	priv = sde_kms->dev->dev_private;
+
 	idle_time = sde_crtc_get_property(cstate, CRTC_PROP_IDLE_TIMEOUT);
 
 	if (!idle_time ||

+ 2 - 2
msm/sde/sde_encoder.c

@@ -2618,7 +2618,7 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
 	struct drm_display_mode *cur_mode = NULL;
 	struct msm_display_info *disp_info;
 
-	if (!drm_enc) {
+	if (!drm_enc || !drm_enc->crtc) {
 		SDE_ERROR("invalid encoder\n");
 		return;
 	}
@@ -2630,7 +2630,7 @@ static void sde_encoder_virt_enable(struct drm_encoder *drm_enc)
 		return;
 	}
 
-	if (drm_enc->crtc && !sde_enc->crtc)
+	if (!sde_enc->crtc)
 		sde_enc->crtc = drm_enc->crtc;
 
 	comp_info = &sde_enc->mode_info.comp_info;

+ 2 - 2
msm/sde/sde_rm.c

@@ -2286,8 +2286,8 @@ void sde_rm_release(struct sde_rm *rm, struct drm_encoder *enc, bool nxt)
 	if (!conn) {
 		SDE_EVT32(enc->base.id, 0x0, 0xffffffff);
 		_sde_rm_release_rsvp(rm, rsvp, conn);
-		SDE_DEBUG("failed to get conn for enc %d nxt %d rsvp[s%de%d]\n",
-				enc->base.id, nxt, rsvp->seq, rsvp->enc_id);
+		SDE_DEBUG("failed to get conn for enc %d nxt %d\n",
+				enc->base.id, nxt);
 		goto end;
 	}