[Freedreno] [PATCH v4 14/22] drm/stm: Convert to struct drm_crtc_helper_funcs.get_scanout_position()
Philippe CORNU
philippe.cornu at st.com
Fri Jan 24 10:42:43 UTC 2020
Dear Thomas,
Thank you for your patch,
For this stm part,
Acked-by: Philippe Cornu <philippe.cornu at st.com>
Philippe :-)
On 1/23/20 2:59 PM, Thomas Zimmermann wrote:
> The callback struct drm_driver.get_scanout_position() is deprecated in
> favor of struct drm_crtc_helper_funcs.get_scanout_position(). Convert stm
> over.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> Tested-by: Yannick Fertré <yannick.fertre at st.com>
> ---
> drivers/gpu/drm/stm/drv.c | 1 -
> drivers/gpu/drm/stm/ltdc.c | 65 ++++++++++++++++++++------------------
> drivers/gpu/drm/stm/ltdc.h | 5 ---
> 3 files changed, 34 insertions(+), 37 deletions(-)
>
> diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
> index 5a9f9aca8bc2..486985604109 100644
> --- a/drivers/gpu/drm/stm/drv.c
> +++ b/drivers/gpu/drm/stm/drv.c
> @@ -72,7 +72,6 @@ static struct drm_driver drv_driver = {
> .gem_prime_vmap = drm_gem_cma_prime_vmap,
> .gem_prime_vunmap = drm_gem_cma_prime_vunmap,
> .gem_prime_mmap = drm_gem_cma_prime_mmap,
> - .get_scanout_position = ltdc_crtc_scanoutpos,
> .get_vblank_timestamp = drm_calc_vbltimestamp_from_scanoutpos,
> };
>
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index c2815e8ae1da..8b6d1a2252e3 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -636,38 +636,13 @@ static void ltdc_crtc_atomic_flush(struct drm_crtc *crtc,
> }
> }
>
> -static const struct drm_crtc_helper_funcs ltdc_crtc_helper_funcs = {
> - .mode_valid = ltdc_crtc_mode_valid,
> - .mode_fixup = ltdc_crtc_mode_fixup,
> - .mode_set_nofb = ltdc_crtc_mode_set_nofb,
> - .atomic_flush = ltdc_crtc_atomic_flush,
> - .atomic_enable = ltdc_crtc_atomic_enable,
> - .atomic_disable = ltdc_crtc_atomic_disable,
> -};
> -
> -static int ltdc_crtc_enable_vblank(struct drm_crtc *crtc)
> -{
> - struct ltdc_device *ldev = crtc_to_ltdc(crtc);
> -
> - DRM_DEBUG_DRIVER("\n");
> - reg_set(ldev->regs, LTDC_IER, IER_LIE);
> -
> - return 0;
> -}
> -
> -static void ltdc_crtc_disable_vblank(struct drm_crtc *crtc)
> -{
> - struct ltdc_device *ldev = crtc_to_ltdc(crtc);
> -
> - DRM_DEBUG_DRIVER("\n");
> - reg_clear(ldev->regs, LTDC_IER, IER_LIE);
> -}
> -
> -bool ltdc_crtc_scanoutpos(struct drm_device *ddev, unsigned int pipe,
> - bool in_vblank_irq, int *vpos, int *hpos,
> - ktime_t *stime, ktime_t *etime,
> - const struct drm_display_mode *mode)
> +static bool ltdc_crtc_get_scanout_position(struct drm_crtc *crtc,
> + bool in_vblank_irq,
> + int *vpos, int *hpos,
> + ktime_t *stime, ktime_t *etime,
> + const struct drm_display_mode *mode)
> {
> + struct drm_device *ddev = crtc->dev;
> struct ltdc_device *ldev = ddev->dev_private;
> int line, vactive_start, vactive_end, vtotal;
>
> @@ -710,6 +685,34 @@ bool ltdc_crtc_scanoutpos(struct drm_device *ddev, unsigned int pipe,
> return true;
> }
>
> +static const struct drm_crtc_helper_funcs ltdc_crtc_helper_funcs = {
> + .mode_valid = ltdc_crtc_mode_valid,
> + .mode_fixup = ltdc_crtc_mode_fixup,
> + .mode_set_nofb = ltdc_crtc_mode_set_nofb,
> + .atomic_flush = ltdc_crtc_atomic_flush,
> + .atomic_enable = ltdc_crtc_atomic_enable,
> + .atomic_disable = ltdc_crtc_atomic_disable,
> + .get_scanout_position = ltdc_crtc_get_scanout_position,
> +};
> +
> +static int ltdc_crtc_enable_vblank(struct drm_crtc *crtc)
> +{
> + struct ltdc_device *ldev = crtc_to_ltdc(crtc);
> +
> + DRM_DEBUG_DRIVER("\n");
> + reg_set(ldev->regs, LTDC_IER, IER_LIE);
> +
> + return 0;
> +}
> +
> +static void ltdc_crtc_disable_vblank(struct drm_crtc *crtc)
> +{
> + struct ltdc_device *ldev = crtc_to_ltdc(crtc);
> +
> + DRM_DEBUG_DRIVER("\n");
> + reg_clear(ldev->regs, LTDC_IER, IER_LIE);
> +}
> +
> static const struct drm_crtc_funcs ltdc_crtc_funcs = {
> .destroy = drm_crtc_cleanup,
> .set_config = drm_atomic_helper_set_config,
> diff --git a/drivers/gpu/drm/stm/ltdc.h b/drivers/gpu/drm/stm/ltdc.h
> index a1ad0ae3b006..c5467d74e707 100644
> --- a/drivers/gpu/drm/stm/ltdc.h
> +++ b/drivers/gpu/drm/stm/ltdc.h
> @@ -39,11 +39,6 @@ struct ltdc_device {
> struct drm_atomic_state *suspend_state;
> };
>
> -bool ltdc_crtc_scanoutpos(struct drm_device *dev, unsigned int pipe,
> - bool in_vblank_irq, int *vpos, int *hpos,
> - ktime_t *stime, ktime_t *etime,
> - const struct drm_display_mode *mode);
> -
> int ltdc_load(struct drm_device *ddev);
> void ltdc_unload(struct drm_device *ddev);
> void ltdc_suspend(struct drm_device *ddev);
>
More information about the Freedreno
mailing list