This is a note to let you know that I've just added the patch titled drm/amdgpu/gmc11: implement get_vbios_fb_size() to the 6.3-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drm-amdgpu-gmc11-implement-get_vbios_fb_size.patch and it can be found in the queue-6.3 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 68518294d00da6a2433357af75a63abc6030676e Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexander.deucher@xxxxxxx> Date: Thu, 11 May 2023 10:40:03 -0400 Subject: drm/amdgpu/gmc11: implement get_vbios_fb_size() From: Alex Deucher <alexander.deucher@xxxxxxx> commit 68518294d00da6a2433357af75a63abc6030676e upstream. Implement get_vbios_fb_size() so we can properly reserve the vbios splash screen to avoid potential artifacts on the screen during the transition from the pre-OS console to the OS console. Acked-by: Sunil Khatri <sunil.khatri@xxxxxxx> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> Cc: stable@xxxxxxxxxxxxxxx # 6.1.x Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c @@ -31,6 +31,8 @@ #include "umc_v8_10.h" #include "athub/athub_3_0_0_sh_mask.h" #include "athub/athub_3_0_0_offset.h" +#include "dcn/dcn_3_2_0_offset.h" +#include "dcn/dcn_3_2_0_sh_mask.h" #include "oss/osssys_6_0_0_offset.h" #include "ivsrcid/vmc/irqsrcs_vmc_1_0.h" #include "navi10_enum.h" @@ -542,7 +544,24 @@ static void gmc_v11_0_get_vm_pte(struct static unsigned gmc_v11_0_get_vbios_fb_size(struct amdgpu_device *adev) { - return 0; + u32 d1vga_control = RREG32_SOC15(DCE, 0, regD1VGA_CONTROL); + unsigned size; + + if (REG_GET_FIELD(d1vga_control, D1VGA_CONTROL, D1VGA_MODE_ENABLE)) { + size = AMDGPU_VBIOS_VGA_ALLOCATION; + } else { + u32 viewport; + u32 pitch; + + viewport = RREG32_SOC15(DCE, 0, regHUBP0_DCSURF_PRI_VIEWPORT_DIMENSION); + pitch = RREG32_SOC15(DCE, 0, regHUBPREQ0_DCSURF_SURFACE_PITCH); + size = (REG_GET_FIELD(viewport, + HUBP0_DCSURF_PRI_VIEWPORT_DIMENSION, PRI_VIEWPORT_HEIGHT) * + REG_GET_FIELD(pitch, HUBPREQ0_DCSURF_SURFACE_PITCH, PITCH) * + 4); + } + + return size; } static const struct amdgpu_gmc_funcs gmc_v11_0_gmc_funcs = { Patches currently in stable-queue which might be from alexander.deucher@xxxxxxx are queue-6.3/drm-amdgpu-gfx11-update-gpu_clock_counter-logic.patch queue-6.3/drm-amdgpu-gfx10-disable-gfxoff-before-disabling-powergating.patch queue-6.3/drm-amd-pm-fix-possible-power-mode-mismatch-between-driver-and-pmfw.patch queue-6.3/drm-amdgpu-refine-get-gpu-clock-counter-method.patch queue-6.3/drm-amd-display-use-dc_log_dc-in-the-trasform-pixel-.patch queue-6.3/drm-amdgpu-enable-ih-retry-cam-on-gfx9.patch queue-6.3/drm-amd-display-reallocate-det-for-dual-displays-wit.patch queue-6.3/drm-amdgpu-gfx11-adjust-gfxoff-before-powergating-on-gfx11-as-well.patch queue-6.3/drm-amd-display-enable-hostvm-based-on-riommu-active.patch queue-6.3/drm-amd-display-populate-subvp-cmd-info-only-for-the.patch queue-6.3/drm-amd-display-correct-dml-calculation-to-follow-hw.patch queue-6.3/drm-amd-fix-an-out-of-bounds-error-in-bios-parser.patch queue-6.3/drm-amdgpu-fix-sdma-v4-sw-fini-error.patch queue-6.3/drm-amd-display-correct-dml-calculation-to-align-hw-.patch queue-6.3/drm-amd-display-fixed-dcn30-underflow-issue.patch queue-6.3/drm-amdgpu-gmc11-implement-get_vbios_fb_size.patch queue-6.3/drm-amd-display-enable-dpg-when-disabling-plane-for-.patch