On 2/7/26 00:58, Hamza Mahfooz wrote:
> We now have a means to respond to page flip timeouts. So, hook up
> support for the new page_flip_timeout() callback.
>
> Signed-off-by: Hamza Mahfooz <[email protected]>
> ---
> v2: send a wedged event instead of attempting a GPU reset.
> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> index 697e232acebf..1faf39b7a1b4 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c
> @@ -23,6 +23,7 @@
> * Authors: AMD
> *
> */
> +#include <drm/drm_drv.h>
> #include <drm/drm_vblank.h>
> #include <drm/drm_atomic_helper.h>
>
> @@ -578,12 +579,19 @@ amdgpu_dm_atomic_crtc_get_property(struct drm_crtc
> *crtc,
> }
> #endif
>
> +static void amdgpu_dm_crtc_handle_timeout(struct drm_crtc *crtc)
> +{
> + drm_dev_wedged_event(crtc->dev, DRM_WEDGE_RECOVERY_REBIND |
> + DRM_WEDGE_RECOVERY_BUS_RESET, NULL);
Well that might work but is even worse than a GPU reset.
Have you tried to just signal the page flip as done?
Regards,
Christian.
> +}
> +
> /* Implemented only the options currently available for the driver */
> static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
> .reset = amdgpu_dm_crtc_reset_state,
> .destroy = amdgpu_dm_crtc_destroy,
> .set_config = drm_atomic_helper_set_config,
> .page_flip = drm_atomic_helper_page_flip,
> + .page_flip_timeout = amdgpu_dm_crtc_handle_timeout,
> .atomic_duplicate_state = amdgpu_dm_crtc_duplicate_state,
> .atomic_destroy_state = amdgpu_dm_crtc_destroy_state,
> .set_crc_source = amdgpu_dm_crtc_set_crc_source,