]> www.infradead.org Git - nvme.git/commitdiff
drm/amd/display: Check and log for function error codes
authorAlex Hung <alex.hung@amd.com>
Tue, 11 Jun 2024 16:51:31 +0000 (10:51 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 27 Jun 2024 21:10:36 +0000 (17:10 -0400)
[WHAT & HOW]
dm_dmub_hw_init and drm_dp_mst_topology_mgr_set_mst can return error
codes and errors should be reported.

This fixes 2 CHECKED_RETURN issues reported by Coverity.

Reviewed-by: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c

index c96407379224d5467596dcc059a5aa9d43105602..cefc2569a50fb49b6b4104e133566d9f672b71ef 100644 (file)
@@ -1302,6 +1302,7 @@ static void dm_dmub_hw_resume(struct amdgpu_device *adev)
        struct dmub_srv *dmub_srv = adev->dm.dmub_srv;
        enum dmub_status status;
        bool init;
+       int r;
 
        if (!dmub_srv) {
                /* DMUB isn't supported on the ASIC. */
@@ -1319,7 +1320,9 @@ static void dm_dmub_hw_resume(struct amdgpu_device *adev)
                        DRM_WARN("Wait for DMUB auto-load failed: %d\n", status);
        } else {
                /* Perform the full hardware initialization. */
-               dm_dmub_hw_init(adev);
+               r = dm_dmub_hw_init(adev);
+               if (r)
+                       DRM_ERROR("DMUB interface failed to initialize: status=%d\n", r);
        }
 }
 
index 717d97191ddad8b85960858bcd8a1258f6be5a36..62cb59f00929b8273a604fce96118b1f91a29ffa 100644 (file)
@@ -3795,6 +3795,7 @@ static int trigger_hpd_mst_set(void *data, u64 val)
        struct amdgpu_dm_connector *aconnector;
        struct drm_connector *connector;
        struct dc_link *link = NULL;
+       int ret;
 
        if (val == 1) {
                drm_connector_list_iter_begin(dev, &iter);
@@ -3806,7 +3807,9 @@ static int trigger_hpd_mst_set(void *data, u64 val)
                                dc_link_detect(aconnector->dc_link, DETECT_REASON_HPD);
                                mutex_unlock(&adev->dm.dc_lock);
 
-                               drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, true);
+                               ret = drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, true);
+                               if (ret < 0)
+                                       DRM_ERROR("DM_MST: Failed to set the device into MST mode!");
                        }
                }
        } else if (val == 0) {