drm/amdgpu: only set DP subconnector type on DP and eDP connectors
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 17 Dec 2020 17:11:36 +0000 (12:11 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 23 Dec 2020 20:03:08 +0000 (15:03 -0500)
Fixes a crash in drm_object_property_set_value() because the property
is not set for internal DP ports that connect to a bridge chips
(e.g., DP to VGA or DP to LVDS).

Bug: https://bugzilla.kernel.org/show_bug.cgi?id=210739
Fixes: 65bf2cf95d3ade ("drm/amdgpu: utilize subconnector property for DP through atombios")
Tested-By: Kris Karas <bugs-a17@moonlit-rail.com>
Cc: Oleg Vasilev <oleg.vasilev@intel.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org # 5.10.x
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c

index 65d1b23..b9c11c2 100644 (file)
@@ -1414,10 +1414,12 @@ out:
                pm_runtime_put_autosuspend(connector->dev->dev);
        }
 
-       drm_dp_set_subconnector_property(&amdgpu_connector->base,
-                                        ret,
-                                        amdgpu_dig_connector->dpcd,
-                                        amdgpu_dig_connector->downstream_ports);
+       if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
+           connector->connector_type == DRM_MODE_CONNECTOR_eDP)
+               drm_dp_set_subconnector_property(&amdgpu_connector->base,
+                                                ret,
+                                                amdgpu_dig_connector->dpcd,
+                                                amdgpu_dig_connector->downstream_ports);
        return ret;
 }