drm/msm/dp: support finding next bridge even for DP interfaces

It is possible to supply display-connector (bridge) to the DP interface,
add support for parsing it too.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Kuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20220211224006.1797846-4-dmitry.baryshkov@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
This commit is contained in:
Dmitry Baryshkov 2022-02-12 01:40:04 +03:00
parent 9aa9246880
commit d8c2f09412

View File

@ -301,17 +301,22 @@ static int dp_parser_parse(struct dp_parser *parser, int connector_type)
return rc;
/*
* Currently we support external bridges only for eDP connectors.
* External bridges are mandatory for eDP interfaces: one has to
* provide at least an eDP panel (which gets wrapped into panel-bridge).
*
* No external bridges are expected for the DisplayPort connector,
* it is physically present in a form of a DP or USB-C connector.
* For DisplayPort interfaces external bridges are optional, so
* silently ignore an error if one is not present (-ENODEV).
*/
if (connector_type == DRM_MODE_CONNECTOR_eDP) {
rc = dp_parser_find_next_bridge(parser);
if (rc) {
DRM_ERROR("DP: failed to find next bridge\n");
rc = dp_parser_find_next_bridge(parser);
if (rc == -ENODEV) {
if (connector_type == DRM_MODE_CONNECTOR_eDP) {
DRM_ERROR("eDP: next bridge is not present\n");
return rc;
}
} else if (rc) {
if (rc != -EPROBE_DEFER)
DRM_ERROR("DP: error parsing next bridge: %d\n", rc);
return rc;
}
/* Map the corresponding regulator information according to