Sfoglia il codice sorgente

drm/tilcdc: Take crtc modeset lock while updating the crtc clock rate

Take crtc modeset lock while updating the crtc clock rate. To avoid a
race in tilcdc_crtc_update_clk(), we do not want crtc mode to change
while we update crtc clock.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Jyri Sarha 9 anni fa
parent
commit
a6b7ebaadb
1 ha cambiato i file con 3 aggiunte e 0 eliminazioni
  1. 3 0
      drivers/gpu/drm/tilcdc/tilcdc_drv.c

+ 3 - 0
drivers/gpu/drm/tilcdc/tilcdc_drv.c

@@ -184,10 +184,13 @@ static int cpufreq_transition(struct notifier_block *nb,
 {
 	struct tilcdc_drm_private *priv = container_of(nb,
 			struct tilcdc_drm_private, freq_transition);
+
 	if (val == CPUFREQ_POSTCHANGE) {
 		if (priv->lcd_fck_rate != clk_get_rate(priv->clk)) {
+			drm_modeset_lock_crtc(priv->crtc, NULL);
 			priv->lcd_fck_rate = clk_get_rate(priv->clk);
 			tilcdc_crtc_update_clk(priv->crtc);
+			drm_modeset_unlock_crtc(priv->crtc);
 		}
 	}