diff options
author | Maxime Ripard <maxime.ripard@free-electrons.com> | 2018-02-21 04:20:27 -0500 |
---|---|---|
committer | Maxime Ripard <maxime.ripard@bootlin.com> | 2018-02-26 05:57:35 -0500 |
commit | 79d103a565d16b1893d990b2ee5e0fe71767759f (patch) | |
tree | 7065fea0a82fc89ae88dbdae063bf03b5c1f6f39 | |
parent | 80b79e31c4195731464d96716f15716f38a555eb (diff) |
drm/sun4i: Protect the TCON pixel clocks
Both TCON clocks are very sensitive to clock changes, since any change
might lead to improper timings.
Make sure our rate is never changed.
Tested-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
Reviewed-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Link: https://patchwork.freedesktop.org/patch/msgid/d5224d2e81ecf73dc09f234e580ada52c00eaee3.1519204731.git-series.maxime.ripard@bootlin.com
-rw-r--r-- | drivers/gpu/drm/sun4i/sun4i_tcon.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c index 51740ddb4b32..b3960118deb9 100644 --- a/drivers/gpu/drm/sun4i/sun4i_tcon.c +++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c | |||
@@ -260,7 +260,7 @@ static void sun4i_tcon0_mode_set_common(struct sun4i_tcon *tcon, | |||
260 | const struct drm_display_mode *mode) | 260 | const struct drm_display_mode *mode) |
261 | { | 261 | { |
262 | /* Configure the dot clock */ | 262 | /* Configure the dot clock */ |
263 | clk_set_rate(tcon->dclk, mode->crtc_clock * 1000); | 263 | clk_set_rate_exclusive(tcon->dclk, mode->crtc_clock * 1000); |
264 | 264 | ||
265 | /* Set the resolution */ | 265 | /* Set the resolution */ |
266 | regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, | 266 | regmap_write(tcon->regs, SUN4I_TCON0_BASIC0_REG, |
@@ -421,7 +421,7 @@ static void sun4i_tcon1_mode_set(struct sun4i_tcon *tcon, | |||
421 | WARN_ON(!tcon->quirks->has_channel_1); | 421 | WARN_ON(!tcon->quirks->has_channel_1); |
422 | 422 | ||
423 | /* Configure the dot clock */ | 423 | /* Configure the dot clock */ |
424 | clk_set_rate(tcon->sclk1, mode->crtc_clock * 1000); | 424 | clk_set_rate_exclusive(tcon->sclk1, mode->crtc_clock * 1000); |
425 | 425 | ||
426 | /* Adjust clock delay */ | 426 | /* Adjust clock delay */ |
427 | clk_delay = sun4i_tcon_get_clk_delay(mode, 1); | 427 | clk_delay = sun4i_tcon_get_clk_delay(mode, 1); |