drm/amd/display: Add support for USBC connector
authorSamson Tam <Samson.Tam@amd.com>
Wed, 16 Mar 2022 05:06:42 +0000 (01:06 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 1 Apr 2022 03:05:53 +0000 (23:05 -0400)
[Why]
Add support for CONNECTOR_ID_USBC

Reviewed-by: Alvin Lee <Alvin.Lee2@amd.com>
Acked-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Samson Tam <Samson.Tam@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/bios/bios_parser_common.c
drivers/gpu/drm/amd/display/dc/bios/command_table.c
drivers/gpu/drm/amd/display/dc/core/dc_link.c
drivers/gpu/drm/amd/display/include/grph_object_id.h

index a8cb039d25721dea7152aeba85ab1be69bf3b550..34e3a64f556e7e111373db148bac7b8912d50783 100644 (file)
@@ -213,6 +213,9 @@ static enum connector_id connector_id_from_bios_object_id(
        case CONNECTOR_OBJECT_ID_MXM:
                id = CONNECTOR_ID_MXM;
                break;
+       case CONNECTOR_OBJECT_ID_USBC:
+               id = CONNECTOR_ID_USBC;
+               break;
        default:
                id = CONNECTOR_ID_UNKNOWN;
                break;
index 0e36cd800fc90a728b9370c230481bd6e4d76d9e..32efa92422e8926ae96c7febe3bd230f9c15fcb8 100644 (file)
@@ -522,7 +522,8 @@ static enum bp_result transmitter_control_v2(
                 */
                params.acConfig.ucEncoderSel = 1;
 
-       if (CONNECTOR_ID_DISPLAY_PORT == connector_id)
+       if (CONNECTOR_ID_DISPLAY_PORT == connector_id
+               || CONNECTOR_ID_USBC == connector_id)
                /* Bit4: DP connector flag
                 * =0 connector is none-DP connector
                 * =1 connector is DP connector
index c7c4d9867c5292929e0ee7cda15c7badd3d7190d..7aede6495e5e8a3e25a3d034c2972fdcaa894711 100644 (file)
@@ -345,6 +345,7 @@ static enum signal_type get_basic_signal_type(struct graphics_object_id encoder,
                case CONNECTOR_ID_LVDS:
                        return SIGNAL_TYPE_LVDS;
                case CONNECTOR_ID_DISPLAY_PORT:
+               case CONNECTOR_ID_USBC:
                        return SIGNAL_TYPE_DISPLAY_PORT;
                case CONNECTOR_ID_EDP:
                        return SIGNAL_TYPE_EDP;
@@ -380,7 +381,8 @@ bool dc_link_is_dp_sink_present(struct dc_link *link)
 
        bool present =
                ((connector_id == CONNECTOR_ID_DISPLAY_PORT) ||
-               (connector_id == CONNECTOR_ID_EDP));
+               (connector_id == CONNECTOR_ID_EDP) ||
+               (connector_id == CONNECTOR_ID_USBC));
 
        ddc = dal_ddc_service_get_ddc_pin(link->ddc);
 
@@ -476,7 +478,8 @@ static enum signal_type link_detect_sink(struct dc_link *link,
                                result = SIGNAL_TYPE_DVI_SINGLE_LINK;
        }
        break;
-       case CONNECTOR_ID_DISPLAY_PORT: {
+       case CONNECTOR_ID_DISPLAY_PORT:
+       case CONNECTOR_ID_USBC: {
                /* DP HPD short pulse. Passive DP dongle will not
                 * have short pulse
                 */
@@ -1591,6 +1594,7 @@ static bool dc_link_construct_legacy(struct dc_link *link,
                link->connector_signal = SIGNAL_TYPE_DVI_DUAL_LINK;
                break;
        case CONNECTOR_ID_DISPLAY_PORT:
+       case CONNECTOR_ID_USBC:
                link->connector_signal = SIGNAL_TYPE_DISPLAY_PORT;
 
                if (link->hpd_gpio)
index fed1edc038d8328e8c553c0332a0a848e827b9fd..c6bbd262f1ac3a86886fc111a57a0b172edd4208 100644 (file)
@@ -162,6 +162,7 @@ enum connector_id {
        CONNECTOR_ID_MXM = 21,
        CONNECTOR_ID_WIRELESS = 22,
        CONNECTOR_ID_MIRACAST = 23,
+       CONNECTOR_ID_USBC = 24,
 
        CONNECTOR_ID_VIRTUAL = 100
 };