mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:38:03 +00:00
drm/mgag200: Fix VBLANK interrupt handling
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:89c6ea2006
("drm/mgag200: Add vblank support") Fixes:d5070c9b29
("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 Acked-by: Sui Jingfeng <sui.jingfeng@linux.dev> Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20240731071004.519566-1-tzimmermann@suse.de
This commit is contained in:
parent
a755947e05
commit
6c9e14ee9f
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
@ -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 = {
|
||||
|
Loading…
Reference in New Issue
Block a user