forked from Minki/linux
drm/ingenic: Use standard drm_atomic_helper_commit_tail
By making the CRTC's .vblank_enable() function return an error when it is known that the hardware won't deliver a VBLANK, we can drop the ingenic_drm_atomic_helper_commit_tail() function and use the standard drm_atomic_helper_commit_tail() function instead. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20210808134526.119198-4-paul@crapouillou.net
This commit is contained in:
parent
4d3b3c93bc
commit
83326a73a1
@ -701,29 +701,6 @@ static int ingenic_drm_encoder_atomic_check(struct drm_encoder *encoder,
|
||||
}
|
||||
}
|
||||
|
||||
static void ingenic_drm_atomic_helper_commit_tail(struct drm_atomic_state *old_state)
|
||||
{
|
||||
/*
|
||||
* Just your regular drm_atomic_helper_commit_tail(), but only calls
|
||||
* drm_atomic_helper_wait_for_vblanks() if priv->no_vblank.
|
||||
*/
|
||||
struct drm_device *dev = old_state->dev;
|
||||
struct ingenic_drm *priv = drm_device_get_priv(dev);
|
||||
|
||||
drm_atomic_helper_commit_modeset_disables(dev, old_state);
|
||||
|
||||
drm_atomic_helper_commit_planes(dev, old_state, 0);
|
||||
|
||||
drm_atomic_helper_commit_modeset_enables(dev, old_state);
|
||||
|
||||
drm_atomic_helper_commit_hw_done(old_state);
|
||||
|
||||
if (!priv->no_vblank)
|
||||
drm_atomic_helper_wait_for_vblanks(dev, old_state);
|
||||
|
||||
drm_atomic_helper_cleanup_planes(dev, old_state);
|
||||
}
|
||||
|
||||
static irqreturn_t ingenic_drm_irq_handler(int irq, void *arg)
|
||||
{
|
||||
struct ingenic_drm *priv = drm_device_get_priv(arg);
|
||||
@ -744,6 +721,9 @@ static int ingenic_drm_enable_vblank(struct drm_crtc *crtc)
|
||||
{
|
||||
struct ingenic_drm *priv = drm_crtc_get_priv(crtc);
|
||||
|
||||
if (priv->no_vblank)
|
||||
return -EINVAL;
|
||||
|
||||
regmap_update_bits(priv->map, JZ_REG_LCD_CTRL,
|
||||
JZ_LCD_CTRL_EOF_IRQ, JZ_LCD_CTRL_EOF_IRQ);
|
||||
|
||||
@ -851,7 +831,7 @@ static const struct drm_mode_config_funcs ingenic_drm_mode_config_funcs = {
|
||||
};
|
||||
|
||||
static struct drm_mode_config_helper_funcs ingenic_drm_mode_config_helpers = {
|
||||
.atomic_commit_tail = ingenic_drm_atomic_helper_commit_tail,
|
||||
.atomic_commit_tail = drm_atomic_helper_commit_tail,
|
||||
};
|
||||
|
||||
static void ingenic_drm_unbind_all(void *d)
|
||||
|
Loading…
Reference in New Issue
Block a user