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

Commit a6b7ebaa authored by Jyri Sarha's avatar Jyri Sarha
Browse files

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: default avatarJyri Sarha <jsarha@ti.com>
Reviewed-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent c5665385
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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);
		}
	}