drm/tegra: Fixes for v3.18-rc5
This is a single patch that fixes the VBLANK machinery after:7ffd7a6851
drm: Always reject drm_vblank_get() after drm_vblank_off() -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABAgAGBQJUZK8FAAoJEN0jrNd/PrOh4nYP/jmwr7NEyXTLe1KK+Q1oynRf hh0UtInwq8Y6EffORBlues3wwutXS6dgPwaHuwkytefYBpYmQyWBjQwQoutG7ZQ8 rnwca+bF9M3RvGe4J+hfPIFacIMY2HRatk34vGrNQqy5jlgXxlEo3PRMgGscK/P1 ZQla039fioszgk3MAQRJZKQRXFqJmw51hIJPorAtM4m7rj0NlTpgW4kO/xdo684C ZDKJGjihWuVTexsSN5H+Q6J73oAnoSXMCnev/bfMXEUr6M4ybij+iGmvELxTxE29 zf0rjO57H4ir9Y6n+rm30492GiipEO1Z+yYJi551Fh86ItOXmF8uyP5GEr5qWxw2 SHXvKp7PieMalsYiXwWpxvg82XTywkbi2f8JWRTQ6zjhmpKcIbUYgyUk3GZl9n/E dd2ikOyWaGw+UNKy9UqZ0DhJUdigIoxn7AK5MsqbM9HkiFVX35g2Bf3IE10D7kxR gdU4j4gbCB+7nnWpo+ZaUFueOYHMnXb3pwi9A6CJN8QXIfgKZCfp2mEEFX1Bd/A8 hGxtv0yuhN1MzF2J7A2/1QMLTVXunLjQ8dtQwkJPZKUuJqouAKA8rG8CqlhDlxG2 Gj8SBDhsbTl/hQ+E+BpPONTioqrGUsYr7DDaMTpfHt/OV/XNYmpr+N1tcdEXmgP1 siv74ApcdBvC97zbcjkl =oKTG -----END PGP SIGNATURE----- Merge tag 'drm/tegra/for-3.18-rc5' of git://people.freedesktop.org/~tagr/linux into drm-fixes drm/tegra: Fixes for v3.18-rc5 This is a single patch that fixes the VBLANK machinery after:7ffd7a6851
drm: Always reject drm_vblank_get() after drm_vblank_off() * tag 'drm/tegra/for-3.18-rc5' of git://people.freedesktop.org/~tagr/linux: drm/tegra: dc: Add missing call to drm_vblank_on()
This commit is contained in:
commit
bcfef97398
|
@ -736,7 +736,6 @@ static const struct drm_crtc_funcs tegra_crtc_funcs = {
|
|||
|
||||
static void tegra_crtc_disable(struct drm_crtc *crtc)
|
||||
{
|
||||
struct tegra_dc *dc = to_tegra_dc(crtc);
|
||||
struct drm_device *drm = crtc->dev;
|
||||
struct drm_plane *plane;
|
||||
|
||||
|
@ -752,7 +751,7 @@ static void tegra_crtc_disable(struct drm_crtc *crtc)
|
|||
}
|
||||
}
|
||||
|
||||
drm_vblank_off(drm, dc->pipe);
|
||||
drm_crtc_vblank_off(crtc);
|
||||
}
|
||||
|
||||
static bool tegra_crtc_mode_fixup(struct drm_crtc *crtc,
|
||||
|
@ -841,8 +840,6 @@ static int tegra_crtc_mode_set(struct drm_crtc *crtc,
|
|||
u32 value;
|
||||
int err;
|
||||
|
||||
drm_vblank_pre_modeset(crtc->dev, dc->pipe);
|
||||
|
||||
err = tegra_crtc_setup_clk(crtc, mode);
|
||||
if (err) {
|
||||
dev_err(dc->dev, "failed to setup clock for CRTC: %d\n", err);
|
||||
|
@ -896,6 +893,8 @@ static void tegra_crtc_prepare(struct drm_crtc *crtc)
|
|||
unsigned int syncpt;
|
||||
unsigned long value;
|
||||
|
||||
drm_crtc_vblank_off(crtc);
|
||||
|
||||
/* hardware initialization */
|
||||
reset_control_deassert(dc->rst);
|
||||
usleep_range(10000, 20000);
|
||||
|
@ -943,7 +942,7 @@ static void tegra_crtc_commit(struct drm_crtc *crtc)
|
|||
value = GENERAL_ACT_REQ | WIN_A_ACT_REQ;
|
||||
tegra_dc_writel(dc, value, DC_CMD_STATE_CONTROL);
|
||||
|
||||
drm_vblank_post_modeset(crtc->dev, dc->pipe);
|
||||
drm_crtc_vblank_on(crtc);
|
||||
}
|
||||
|
||||
static void tegra_crtc_load_lut(struct drm_crtc *crtc)
|
||||
|
|
Loading…
Reference in a new issue