Move creation of CGS device node and the DAL allocation list from
amdgpu_dm_init() to dm_sw_init() which runs before dmub's sw init hook.

This is required for communicating with the VBIOS DMUB image from the
VBIOS that was loaded for early pre-os boot.

Signed-off-by: Aurabindo Pillai <aurabindo.pil...@amd.com>
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 20 ++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

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 1e263b357c13..bb4573603479 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -1662,13 +1662,7 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
 
        init_data.driver = adev;
 
-       adev->dm.cgs_device = amdgpu_cgs_create_device(adev);
-
-       if (!adev->dm.cgs_device) {
-               DRM_ERROR("amdgpu: failed to create cgs device.\n");
-               goto error;
-       }
-
+       /* cgs_device was created in dm_sw_init() */
        init_data.cgs_device = adev->dm.cgs_device;
 
        init_data.dce_environment = DCE_ENV_PRODUCTION_DRV;
@@ -1752,8 +1746,6 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
        if (amdgpu_ip_version(adev, DCE_HWIP, 0) >= IP_VERSION(3, 0, 0))
                init_data.num_virtual_links = 1;
 
-       INIT_LIST_HEAD(&adev->dm.da_list);
-
        retrieve_dmi_info(&adev->dm);
 
        /* Display Core create. */
@@ -2321,6 +2313,16 @@ static int dm_sw_init(void *handle)
        struct amdgpu_device *adev = (struct amdgpu_device *)handle;
        int r;
 
+       adev->dm.cgs_device = amdgpu_cgs_create_device(adev);
+
+       if (!adev->dm.cgs_device) {
+               DRM_ERROR("amdgpu: failed to create cgs device.\n");
+               return -EINVAL;
+       }
+
+       /* Moved from dm init since we need to use allocations for storing 
bounding box data */
+       INIT_LIST_HEAD(&adev->dm.da_list);
+
        r = dm_dmub_sw_init(adev);
        if (r)
                return r;
-- 
2.39.2

Reply via email to