diff mbox series

drm/mgag200: Fix VBLANK interrupt handling

Message ID 20240731071004.519566-1-tzimmermann@suse.de (mailing list archive)
State New, archived
Headers show
Series drm/mgag200: Fix VBLANK interrupt handling | expand

Commit Message

Thomas Zimmermann July 31, 2024, 7:09 a.m. UTC
Fix support for VBLANK interrupts on G200ER, G200EV and G200SE, which
use a slightly different implementation than the others. The original
commits forgot to update the custom helpers when adding interrupt
handling for VBLANK events.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Fixes: 89c6ea2006e2 ("drm/mgag200: Add vblank support")
Fixes: d5070c9b2944 ("drm/mgag200: Implement struct drm_crtc_funcs.get_vblank_timestamp")
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Jocelyn Falempe <jfalempe@redhat.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Dave Airlie <airlied@redhat.com>
Cc: dri-devel@lists.freedesktop.org
---
 drivers/gpu/drm/mgag200/mgag200_g200er.c | 5 ++++-
 drivers/gpu/drm/mgag200/mgag200_g200ev.c | 5 ++++-
 drivers/gpu/drm/mgag200/mgag200_g200se.c | 5 ++++-
 3 files changed, 12 insertions(+), 3 deletions(-)

Comments

Sui Jingfeng July 31, 2024, 11:29 a.m. UTC | #1
Hi,


On 2024/7/31 15:09, Thomas Zimmermann wrote:
> Fix support for VBLANK interrupts on G200ER, G200EV and G200SE, which
> use a slightly different implementation than the others. The original
> commits forgot to update the custom helpers when adding interrupt
> handling for VBLANK events.
>
> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>


LGTM,


Acked-by: sui.jingfeng@linux.dev
Thomas Zimmermann July 31, 2024, 11:43 a.m. UTC | #2
Am 31.07.24 um 13:29 schrieb Sui Jingfeng:
> Hi,
>
>
> On 2024/7/31 15:09, Thomas Zimmermann wrote:
>> Fix support for VBLANK interrupts on G200ER, G200EV and G200SE, which
>> use a slightly different implementation than the others. The original
>> commits forgot to update the custom helpers when adding interrupt
>> handling for VBLANK events.
>>
>> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
>
>
> LGTM,
>
>
> Acked-by: sui.jingfeng@linux.dev
>

Thanks!
Jocelyn Falempe July 31, 2024, 5:04 p.m. UTC | #3
On 31/07/2024 09:09, Thomas Zimmermann wrote:
> Fix support for VBLANK interrupts on G200ER, G200EV and G200SE, which
> use a slightly different implementation than the others. The original
> commits forgot to update the custom helpers when adding interrupt
> handling for VBLANK events.

Thanks, it looks good to me.
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>

> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
> Fixes: 89c6ea2006e2 ("drm/mgag200: Add vblank support")
> Fixes: d5070c9b2944 ("drm/mgag200: Implement struct drm_crtc_funcs.get_vblank_timestamp")
> Cc: Thomas Zimmermann <tzimmermann@suse.de>
> Cc: Jocelyn Falempe <jfalempe@redhat.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Cc: Sam Ravnborg <sam@ravnborg.org>
> Cc: Dave Airlie <airlied@redhat.com>
> Cc: dri-devel@lists.freedesktop.org
> ---
>   drivers/gpu/drm/mgag200/mgag200_g200er.c | 5 ++++-
>   drivers/gpu/drm/mgag200/mgag200_g200ev.c | 5 ++++-
>   drivers/gpu/drm/mgag200/mgag200_g200se.c | 5 ++++-
>   3 files changed, 12 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/mgag200/mgag200_g200er.c b/drivers/gpu/drm/mgag200/mgag200_g200er.c
> index 6d727ab1a7aa..e65d59173939 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_g200er.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_g200er.c
> @@ -209,6 +209,8 @@ static void mgag200_g200er_crtc_helper_atomic_enable(struct drm_crtc *crtc,
>   
>   	if (mdev->info->sync_bmc)
>   		mgag200_bmc_start_scanout(mdev);
> +
> +	drm_crtc_vblank_on(crtc);
>   }
>   
>   static const struct drm_crtc_helper_funcs mgag200_g200er_crtc_helper_funcs = {
> @@ -216,7 +218,8 @@ static const struct drm_crtc_helper_funcs mgag200_g200er_crtc_helper_funcs = {
>   	.atomic_check = mgag200_crtc_helper_atomic_check,
>   	.atomic_flush = mgag200_crtc_helper_atomic_flush,
>   	.atomic_enable = mgag200_g200er_crtc_helper_atomic_enable,
> -	.atomic_disable = mgag200_crtc_helper_atomic_disable
> +	.atomic_disable = mgag200_crtc_helper_atomic_disable,
> +	.get_scanout_position = mgag200_crtc_helper_get_scanout_position,
>   };
>   
>   static const struct drm_crtc_funcs mgag200_g200er_crtc_funcs = {
> diff --git a/drivers/gpu/drm/mgag200/mgag200_g200ev.c b/drivers/gpu/drm/mgag200/mgag200_g200ev.c
> index e6c9ba61bf97..a4890b496050 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_g200ev.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_g200ev.c
> @@ -210,6 +210,8 @@ static void mgag200_g200ev_crtc_helper_atomic_enable(struct drm_crtc *crtc,
>   
>   	if (mdev->info->sync_bmc)
>   		mgag200_bmc_start_scanout(mdev);
> +
> +	drm_crtc_vblank_on(crtc);
>   }
>   
>   static const struct drm_crtc_helper_funcs mgag200_g200ev_crtc_helper_funcs = {
> @@ -217,7 +219,8 @@ static const struct drm_crtc_helper_funcs mgag200_g200ev_crtc_helper_funcs = {
>   	.atomic_check = mgag200_crtc_helper_atomic_check,
>   	.atomic_flush = mgag200_crtc_helper_atomic_flush,
>   	.atomic_enable = mgag200_g200ev_crtc_helper_atomic_enable,
> -	.atomic_disable = mgag200_crtc_helper_atomic_disable
> +	.atomic_disable = mgag200_crtc_helper_atomic_disable,
> +	.get_scanout_position = mgag200_crtc_helper_get_scanout_position,
>   };
>   
>   static const struct drm_crtc_funcs mgag200_g200ev_crtc_funcs = {
> diff --git a/drivers/gpu/drm/mgag200/mgag200_g200se.c b/drivers/gpu/drm/mgag200/mgag200_g200se.c
> index 2a53ebf41539..fcb97e4253c4 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_g200se.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_g200se.c
> @@ -341,6 +341,8 @@ static void mgag200_g200se_crtc_helper_atomic_enable(struct drm_crtc *crtc,
>   
>   	if (mdev->info->sync_bmc)
>   		mgag200_bmc_start_scanout(mdev);
> +
> +	drm_crtc_vblank_on(crtc);
>   }
>   
>   static const struct drm_crtc_helper_funcs mgag200_g200se_crtc_helper_funcs = {
> @@ -348,7 +350,8 @@ static const struct drm_crtc_helper_funcs mgag200_g200se_crtc_helper_funcs = {
>   	.atomic_check = mgag200_crtc_helper_atomic_check,
>   	.atomic_flush = mgag200_crtc_helper_atomic_flush,
>   	.atomic_enable = mgag200_g200se_crtc_helper_atomic_enable,
> -	.atomic_disable = mgag200_crtc_helper_atomic_disable
> +	.atomic_disable = mgag200_crtc_helper_atomic_disable,
> +	.get_scanout_position = mgag200_crtc_helper_get_scanout_position,
>   };
>   
>   static const struct drm_crtc_funcs mgag200_g200se_crtc_funcs = {
diff mbox series

Patch

diff --git a/drivers/gpu/drm/mgag200/mgag200_g200er.c b/drivers/gpu/drm/mgag200/mgag200_g200er.c
index 6d727ab1a7aa..e65d59173939 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200er.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200er.c
@@ -209,6 +209,8 @@  static void mgag200_g200er_crtc_helper_atomic_enable(struct drm_crtc *crtc,
 
 	if (mdev->info->sync_bmc)
 		mgag200_bmc_start_scanout(mdev);
+
+	drm_crtc_vblank_on(crtc);
 }
 
 static const struct drm_crtc_helper_funcs mgag200_g200er_crtc_helper_funcs = {
@@ -216,7 +218,8 @@  static const struct drm_crtc_helper_funcs mgag200_g200er_crtc_helper_funcs = {
 	.atomic_check = mgag200_crtc_helper_atomic_check,
 	.atomic_flush = mgag200_crtc_helper_atomic_flush,
 	.atomic_enable = mgag200_g200er_crtc_helper_atomic_enable,
-	.atomic_disable = mgag200_crtc_helper_atomic_disable
+	.atomic_disable = mgag200_crtc_helper_atomic_disable,
+	.get_scanout_position = mgag200_crtc_helper_get_scanout_position,
 };
 
 static const struct drm_crtc_funcs mgag200_g200er_crtc_funcs = {
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200ev.c b/drivers/gpu/drm/mgag200/mgag200_g200ev.c
index e6c9ba61bf97..a4890b496050 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200ev.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200ev.c
@@ -210,6 +210,8 @@  static void mgag200_g200ev_crtc_helper_atomic_enable(struct drm_crtc *crtc,
 
 	if (mdev->info->sync_bmc)
 		mgag200_bmc_start_scanout(mdev);
+
+	drm_crtc_vblank_on(crtc);
 }
 
 static const struct drm_crtc_helper_funcs mgag200_g200ev_crtc_helper_funcs = {
@@ -217,7 +219,8 @@  static const struct drm_crtc_helper_funcs mgag200_g200ev_crtc_helper_funcs = {
 	.atomic_check = mgag200_crtc_helper_atomic_check,
 	.atomic_flush = mgag200_crtc_helper_atomic_flush,
 	.atomic_enable = mgag200_g200ev_crtc_helper_atomic_enable,
-	.atomic_disable = mgag200_crtc_helper_atomic_disable
+	.atomic_disable = mgag200_crtc_helper_atomic_disable,
+	.get_scanout_position = mgag200_crtc_helper_get_scanout_position,
 };
 
 static const struct drm_crtc_funcs mgag200_g200ev_crtc_funcs = {
diff --git a/drivers/gpu/drm/mgag200/mgag200_g200se.c b/drivers/gpu/drm/mgag200/mgag200_g200se.c
index 2a53ebf41539..fcb97e4253c4 100644
--- a/drivers/gpu/drm/mgag200/mgag200_g200se.c
+++ b/drivers/gpu/drm/mgag200/mgag200_g200se.c
@@ -341,6 +341,8 @@  static void mgag200_g200se_crtc_helper_atomic_enable(struct drm_crtc *crtc,
 
 	if (mdev->info->sync_bmc)
 		mgag200_bmc_start_scanout(mdev);
+
+	drm_crtc_vblank_on(crtc);
 }
 
 static const struct drm_crtc_helper_funcs mgag200_g200se_crtc_helper_funcs = {
@@ -348,7 +350,8 @@  static const struct drm_crtc_helper_funcs mgag200_g200se_crtc_helper_funcs = {
 	.atomic_check = mgag200_crtc_helper_atomic_check,
 	.atomic_flush = mgag200_crtc_helper_atomic_flush,
 	.atomic_enable = mgag200_g200se_crtc_helper_atomic_enable,
-	.atomic_disable = mgag200_crtc_helper_atomic_disable
+	.atomic_disable = mgag200_crtc_helper_atomic_disable,
+	.get_scanout_position = mgag200_crtc_helper_get_scanout_position,
 };
 
 static const struct drm_crtc_funcs mgag200_g200se_crtc_funcs = {