Lines Matching defs:pipe

640 	const struct pipe_ctx *pipe)
649 (dc_is_dp_signal(pipe->stream->signal) &&
651 pipe->stream)))
655 && dc_is_dual_link_signal(pipe->stream->signal))
658 if (dc_is_hdmi_signal(pipe->stream->signal)
663 pipe_with_clk_src->stream, pipe->stream))
982 * clip, ODM slice associated with the pipe context and stream destination rec.
1078 * with respect to the ODM slice0. This is called the recout of the pipe
1193 * ratios and recout for pixel perfect pipe combine.
1598 DC_LOG_SCALER("%s pipe %d:\nViewport: height:%d width:%d x:%d y:%d Recout: height:%d width:%d x:%d y:%d HACTIVE:%d VACTIVE:%d\n"
1657 * We add a preferred pipe mapping to avoid the chance that
1662 * Display A on, no surface, top pipe = 0
1663 * Display B on, no surface, top pipe = 1
1666 * Display A on, no surface, top pipe = 0
1667 * Display B on, surface enable, top pipe = 1, bottom pipe = 5
1670 * Display A on, surface enable, top pipe = 0, bottom pipe = 5
1671 * Display B on, surface enable, top pipe = 1, bottom pipe = 4
1676 * However, with the preferred pipe logic, state 2 would look like:
1679 * Display A on, no surface, top pipe = 0
1680 * Display B on, surface enable, top pipe = 1, bottom pipe = 4
1693 * search backwards for the second pipe to keep pipe
1739 /* find a free pipe used in current opp blend tree,
1740 * this is to avoid MPO pipe switching to different opp blending
1923 struct pipe_ctx *pipe = &res_ctx->pipe_ctx[opp_head->pipe_idx];
1930 while (pipe && resource_is_pipe_type(pipe, DPP_PIPE)) {
1932 dpp_pipes[i++] = pipe;
1933 pipe = pipe->bottom_pipe;
1943 struct pipe_ctx *pipe;
1946 pipe = &res_ctx->pipe_ctx[j];
1947 if (pipe->plane_state == plane && pipe->prev_odm_pipe == NULL) {
1948 if (resource_is_pipe_type(pipe, OPP_HEAD) ||
1949 pipe->top_pipe->plane_state != plane)
1955 if (pipe->next_odm_pipe)
1956 while (pipe) {
1957 dpp_pipes[i++] = pipe;
1958 pipe = pipe->next_odm_pipe;
1961 while (pipe && pipe->plane_state == plane) {
1962 dpp_pipes[i++] = pipe;
1963 pipe = pipe->bottom_pipe;
2015 int resource_get_mpc_slice_count(const struct pipe_ctx *pipe)
2018 const struct pipe_ctx *other_pipe = pipe->bottom_pipe;
2020 while (other_pipe && other_pipe->plane_state == pipe->plane_state) {
2024 other_pipe = pipe->top_pipe;
2025 while (other_pipe && other_pipe->plane_state == pipe->plane_state) {
2033 int resource_get_odm_slice_count(const struct pipe_ctx *pipe)
2037 pipe = resource_get_otg_master(pipe);
2039 while (pipe->next_odm_pipe) {
2041 pipe = pipe->next_odm_pipe;
2133 * pipe topology update
2136 * |DPP0----OPP0----OTG0----| <--- case 0 (OTG master pipe with plane)
2138 * |DPP1----| | | <--- case 5 (DPP pipe not in last slice)
2140 * |DPP2----OPP2----| | <--- case 2 (OPP head pipe with plane)
2142 * |DPP3----| | <--- case 4 (DPP pipe in last slice)
2144 * |DPG4----OPP4----OTG4----| <--- case 1 (OTG master pipe without plane)
2146 * |DPG5----OPP5----| | <--- case 3 (OPP head pipe without plane)
2150 static void resource_log_pipe(struct dc *dc, struct pipe_ctx *pipe,
2157 /* case 0 (OTG master pipe with plane) */
2161 pipe->plane_res.dpp->inst,
2162 pipe->stream_res.opp->inst,
2163 pipe->stream_res.tg->inst);
2165 /* case 1 (OTG master pipe without plane) */
2169 pipe->stream_res.opp->inst,
2170 pipe->stream_res.opp->inst,
2171 pipe->stream_res.tg->inst);
2173 /* case 2 (OPP head pipe with plane) */
2177 pipe->plane_res.dpp->inst,
2178 pipe->stream_res.opp->inst);
2180 /* case 3 (OPP head pipe without plane) */
2183 pipe->plane_res.dpp->inst,
2184 pipe->stream_res.opp->inst);
2186 /* case 4 (DPP pipe in last slice) */
2189 pipe->plane_res.dpp->inst);
2191 /* case 5 (DPP pipe not in last slice) */
2194 pipe->plane_res.dpp->inst);
2262 DC_LOG_DC(" pipe topology update");
2326 struct pipe_ctx *pipe;
2330 pipe = &context->res_ctx.pipe_ctx[i];
2331 if (pipe->stream == otg_master->stream && pipe->plane_state)
2332 result = resource_build_scaling_params(pipe);
2349 struct pipe_ctx *pipe;
2353 pipe = &context->res_ctx.pipe_ctx[i];
2354 if (pipe->plane_state == plane)
2355 result = resource_build_scaling_params(pipe);
2570 * Inter-pipe Relation (Before Adding Plane)
2579 * Inter-pipe Relation (After Adding Plane)
2606 /* For each OPP head of an OTG master, acquire a secondary DPP pipe and add
2608 * master pipe in the bottom layer.
2612 * hardware to render the plane 1 by acquiring a new pipe for each ODM slice and
2615 * Inter-pipe Relation (Before Adding Plane)
2624 * Inter-pipe Relation (After Acquiring and Adding Plane)
2673 /* establish pipe relationship */
2726 /* Second condition is to avoid setting NULL to top pipe
2727 * of tail pipe making it look like head pipe in subsequent
2734 * For head pipe detach surfaces from pipe for tail
2735 * pipe just zero it out
2756 * Inter-pipe Relation (Before Acquiring and Adding ODM Slice)
2765 * Inter-pipe Relation (After Acquiring and Adding ODM Slice)
2834 * pipe 3 and OPP head pipe 2.
2836 * Inter-pipe Relation (Before Releasing and Removing ODM Slice)
2849 * Inter-pipe Relation (After Releasing and Removing ODM Slice)
2887 * Increase MPC slice count by 1 by acquiring a new DPP pipe and add it as the
2894 * new_ctx. To do so we pass pipe 0 as dpp_pipe. The function acquires a new DPP
2895 * pipe 2 for plane 0 as the bottom most pipe for plane 0.
2897 * Inter-pipe Relation (Before Acquiring and Adding MPC Slice)
2906 * Inter-pipe Relation (After Acquiring and Adding MPC Slice)
2948 * Reduce MPC slice count by 1 by releasing the bottom DPP pipe in MPCC combine
2953 * removed and last DPP pipe in MPCC combine with dpp_pipe is released.
2957 * context. To do so we pass pipe 0 as dpp_pipe. The function releases pipe 1 as
2958 * it is the last pipe for plane 0.
2960 * Inter-pipe Relation (Before Releasing and Removing MPC Slice)
2971 * Inter-pipe Relation (After Releasing and Removing MPC Slice)
3415 * Acquire a pipe as OTG master and assign to the stream in new dc context.
3416 * return - true if OTG master pipe is acquired and new dc context is updated.
3417 * false if it fails to acquire an OTG master pipe for this stream.
3419 * In the example below, we acquired pipe 0 as OTG master pipe for the stream.
3420 * After the function its Inter-pipe Relation is represented by the diagram
3423 * Inter-pipe Relation
3457 * optimal because resetting an enabled OTG master pipe for a new stream
3459 * and eDP assumptions that rely on reusing the same OTG master pipe
3465 * Try to acquire a pipe not used in current resource context to avoid
3466 * pipe swapping.
3472 * If pipe swapping is unavoidable, try to acquire pipe used as
3473 * secondary DPP pipe in current state as we prioritize to support more
3841 /* Swap seamless boot stream to pipe 0 (if needed) to ensure pipe_ctx
4817 /* If pipe backend is reset, need to reset pipe syncd status */
4828 /* Reset all the syncd pipes from the disabled pipe */
4851 /* for the pipe disabled, check if any slave pipe exists and assert */
4861 /* When ODM combine is enabled, this case is expected. If the disabled pipe
4880 /* reset the otg sync context for the pipe and its slave pipes if any */
4980 * new interfaces. These two interfaces encapsulate pipe selection priority
4983 * of a pipe topology.