return hpo_dp_link_enc;
}
#endif
-void reset_syncd_pipes_from_disabled_pipes(struct dc *dc,
- struct dc_state *context)
-{
- int i, j;
- struct pipe_ctx *pipe_ctx_old, *pipe_ctx, *pipe_ctx_syncd;
-
- /* If pipe backend is reset, need to reset pipe syncd status */
- for (i = 0; i < dc->res_pool->pipe_count; i++) {
- pipe_ctx_old = &dc->current_state->res_ctx.pipe_ctx[i];
- pipe_ctx = &context->res_ctx.pipe_ctx[i];
-
- if (!pipe_ctx_old->stream)
- continue;
-
- if (pipe_ctx_old->top_pipe || pipe_ctx_old->prev_odm_pipe)
- continue;
-
- if (!pipe_ctx->stream ||
- pipe_need_reprogram(pipe_ctx_old, pipe_ctx)) {
-
- /* Reset all the syncd pipes from the disabled pipe */
- for (j = 0; j < dc->res_pool->pipe_count; j++) {
- pipe_ctx_syncd = &context->res_ctx.pipe_ctx[j];
- if ((GET_PIPE_SYNCD_FROM_PIPE(pipe_ctx_syncd) == pipe_ctx_old->pipe_idx) ||
- !IS_PIPE_SYNCD_VALID(pipe_ctx_syncd))
- SET_PIPE_SYNCD_TO_PIPE(pipe_ctx_syncd, j);
- }
- }
- }
-}
-
-void check_syncd_pipes_for_disabled_master_pipe(struct dc *dc,
- struct dc_state *context,
- uint8_t disabled_master_pipe_idx)
-{
- int i;
- struct pipe_ctx *pipe_ctx, *pipe_ctx_check;
-
- pipe_ctx = &context->res_ctx.pipe_ctx[disabled_master_pipe_idx];
- if ((GET_PIPE_SYNCD_FROM_PIPE(pipe_ctx) != disabled_master_pipe_idx) ||
- !IS_PIPE_SYNCD_VALID(pipe_ctx))
- SET_PIPE_SYNCD_TO_PIPE(pipe_ctx, disabled_master_pipe_idx);
-
- /* for the pipe disabled, check if any slave pipe exists and assert */
- for (i = 0; i < dc->res_pool->pipe_count; i++) {
- pipe_ctx_check = &context->res_ctx.pipe_ctx[i];
-
- if ((GET_PIPE_SYNCD_FROM_PIPE(pipe_ctx_check) == disabled_master_pipe_idx) &&
- IS_PIPE_SYNCD_VALID(pipe_ctx_check) && (i != disabled_master_pipe_idx))
- DC_ERR("DC: Failure: pipe_idx[%d] syncd with disabled master pipe_idx[%d]\n",
- i, disabled_master_pipe_idx);
- }
-}
-
+
+ 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;
+ }