Commit 2c2ee1d1 authored by Alex Hung's avatar Alex Hung Committed by Alex Deucher

drm/amd/display: Check and log for function error codes

[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: default avatarRodrigo Siqueira <rodrigo.siqueira@amd.com>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent a171cce5
...@@ -1302,6 +1302,7 @@ static void dm_dmub_hw_resume(struct amdgpu_device *adev) ...@@ -1302,6 +1302,7 @@ static void dm_dmub_hw_resume(struct amdgpu_device *adev)
struct dmub_srv *dmub_srv = adev->dm.dmub_srv; struct dmub_srv *dmub_srv = adev->dm.dmub_srv;
enum dmub_status status; enum dmub_status status;
bool init; bool init;
int r;
if (!dmub_srv) { if (!dmub_srv) {
/* DMUB isn't supported on the ASIC. */ /* DMUB isn't supported on the ASIC. */
...@@ -1319,7 +1320,9 @@ static void dm_dmub_hw_resume(struct amdgpu_device *adev) ...@@ -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); DRM_WARN("Wait for DMUB auto-load failed: %d\n", status);
} else { } else {
/* Perform the full hardware initialization. */ /* 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);
} }
} }
......
...@@ -3795,6 +3795,7 @@ static int trigger_hpd_mst_set(void *data, u64 val) ...@@ -3795,6 +3795,7 @@ static int trigger_hpd_mst_set(void *data, u64 val)
struct amdgpu_dm_connector *aconnector; struct amdgpu_dm_connector *aconnector;
struct drm_connector *connector; struct drm_connector *connector;
struct dc_link *link = NULL; struct dc_link *link = NULL;
int ret;
if (val == 1) { if (val == 1) {
drm_connector_list_iter_begin(dev, &iter); drm_connector_list_iter_begin(dev, &iter);
...@@ -3806,7 +3807,9 @@ static int trigger_hpd_mst_set(void *data, u64 val) ...@@ -3806,7 +3807,9 @@ static int trigger_hpd_mst_set(void *data, u64 val)
dc_link_detect(aconnector->dc_link, DETECT_REASON_HPD); dc_link_detect(aconnector->dc_link, DETECT_REASON_HPD);
mutex_unlock(&adev->dm.dc_lock); 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) { } else if (val == 0) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment