diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4332-drm-amd-display-Register-DMUB-service-with-DC.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4332-drm-amd-display-Register-DMUB-service-with-DC.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4332-drm-amd-display-Register-DMUB-service-with-DC.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4332-drm-amd-display-Register-DMUB-service-with-DC.patch new file mode 100644 index 00000000..40b9de21 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4332-drm-amd-display-Register-DMUB-service-with-DC.patch @@ -0,0 +1,61 @@ +From 5f8b8c91bfa83debf11fe47831bc49973942349f Mon Sep 17 00:00:00 2001 +From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> +Date: Mon, 28 Oct 2019 09:07:30 -0400 +Subject: [PATCH 4332/4736] drm/amd/display: Register DMUB service with DC + +[Why] +DC can utilize the DMUB server to send commands to the DMUB but it's +the DM responsibility to pass it the service to use. + +[How] +Create the dc_dmub_srv after we finish initializing the dmub_srv. +Cleanup the dc_dmub_srv before destroying the dmub_srv or dc. + +Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> +Reviewed-by: Hersen Wu <hersenxs.wu@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +Signed-off-by: Rahul Kumar <rahul.kumar1@amd.com> +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index e226e526c4df..f47761a2ec9b 100755 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -34,6 +34,7 @@ + #include "dmub/inc/dmub_srv.h" + #include "dc/inc/hw/dmcu.h" + #include "dc/inc/hw/abm.h" ++#include "dc/dc_dmub_srv.h" + #endif + + #include "vid.h" +@@ -801,6 +802,12 @@ static int dm_dmub_hw_init(struct amdgpu_device *adev) + abm->dmcu_is_running = dmcu->funcs->is_dmcu_initialized(dmcu); + } + ++ adev->dm.dc->ctx->dmub_srv = dc_dmub_srv_create(adev->dm.dc, dmub_srv); ++ if (!adev->dm.dc->ctx->dmub_srv) { ++ DRM_ERROR("Couldn't allocate DC DMUB server!\n"); ++ return -ENOMEM; ++ } ++ + DRM_INFO("DMUB hardware initialized: version=0x%08X\n", + adev->dm.dmcub_fw_version); + +@@ -939,6 +946,11 @@ static int amdgpu_dm_init(struct amdgpu_device *adev) + DRM_ERROR("amdgpu: failed initialize dtn debugfs support.\n"); + #endif + #ifdef CONFIG_DRM_AMD_DC_DMUB ++ if (adev->dm.dc->ctx->dmub_srv) { ++ dc_dmub_srv_destroy(&adev->dm.dc->ctx->dmub_srv); ++ adev->dm.dc->ctx->dmub_srv = NULL; ++ } ++ + if (adev->dm.dmub_bo) + amdgpu_bo_free_kernel(&adev->dm.dmub_bo, + &adev->dm.dmub_bo_gpu_addr, +-- +2.17.1 + |