drm/amdgpu: register a dirty framebuffer callback for fbcon
authorHamza Mahfooz <hamza.mahfooz@amd.com>
Tue, 15 Aug 2023 13:13:37 +0000 (09:13 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 31 Aug 2023 22:03:48 +0000 (18:03 -0400)
commit0a611560f53bfd489e33f4a718c915f1a6123d03
tree6ce65db46eced4083d910c6267b9b7c49eac8550
parent7b9f62353024fbf69e1df45f2df87d3cfe0806e9
drm/amdgpu: register a dirty framebuffer callback for fbcon

fbcon requires that we implement &drm_framebuffer_funcs.dirty.
Otherwise, the framebuffer might take a while to flush (which would
manifest as noticeable lag). However, we can't enable this callback for
non-fbcon cases since it may cause too many atomic commits to be made at
once. So, implement amdgpu_dirtyfb() and only enable it for fbcon
framebuffers (we can use the "struct drm_file file" parameter in the
callback to check for this since it is only NULL when called by fbcon,
at least in the mainline kernel) on devices that support atomic KMS.

Cc: Aurabindo Pillai <aurabindo.pillai@amd.com>
Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: stable@vger.kernel.org # 6.1+
Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2519
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c