Merge tag 'drm-next-2022-01-14' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / drivers / gpu / drm / amd / display / dc / core / dc_resource.c
index de5c7d1..d4ff6cc 100644 (file)
@@ -3216,3 +3216,36 @@ struct hpo_dp_link_encoder *resource_get_hpo_dp_link_enc_for_det_lt(
        return hpo_dp_link_enc;
 }
 #endif
+
+uint8_t resource_transmitter_to_phy_idx(const struct dc *dc, enum transmitter transmitter)
+{
+       /* TODO - get transmitter to phy idx mapping from DMUB */
+       uint8_t phy_idx = transmitter - TRANSMITTER_UNIPHY_A;
+
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+       if (dc->ctx->dce_version == DCN_VERSION_3_1 &&
+                       dc->ctx->asic_id.hw_internal_rev == YELLOW_CARP_B0) {
+               switch (transmitter) {
+               case TRANSMITTER_UNIPHY_A:
+                       phy_idx = 0;
+                       break;
+               case TRANSMITTER_UNIPHY_B:
+                       phy_idx = 1;
+                       break;
+               case TRANSMITTER_UNIPHY_C:
+                       phy_idx = 5;
+                       break;
+               case TRANSMITTER_UNIPHY_D:
+                       phy_idx = 6;
+                       break;
+               case TRANSMITTER_UNIPHY_E:
+                       phy_idx = 4;
+                       break;
+               default:
+                       phy_idx = 0;
+                       break;
+               }
+       }
+#endif
+       return phy_idx;
+}