void dc_plane_destruct(struct dc_plane_state *plane_state)
{ // no more pointers to free within dc_plane_state
}
/* dc_state is passed in separately since it may differ from the current dc state accessible from plane_state e.g. *ifthedriverisdoinganupdatefromanoldcontexttoanewoneandthecallerwantsthepipemaskforthenew *contextratherthantheexistingone
*/
uint8_t dc_plane_get_pipe_mask(struct dc_state *dc_state, conststruct dc_plane_state *plane_state)
{
uint8_t pipe_mask = 0; int i;
for (i = 0; i < plane_state->ctx->dc->res_pool->pipe_count; i++) { struct pipe_ctx *pipe_ctx = &dc_state->res_ctx.pipe_ctx[i];
/* ***************************************************************************** *Function:dc_plane_get_status * *@brief *Looksupthepipecontextofplane_stateandupdatesthependingstatus *ofthepipecontext.Thenreturnsplane_state->status * *@param[in]plane_state:pointertotheplane_statetogetthestatusof *****************************************************************************
*/ conststruct dc_plane_status *dc_plane_get_status( conststruct dc_plane_state *plane_state, union dc_plane_status_update_flags flags)
{ conststruct dc_plane_status *plane_status; struct dc *dc; int i;
if (!plane_state ||
!plane_state->ctx ||
!plane_state->ctx->dc) {
ASSERT(0); return NULL; /* remove this if above assert never hit */
}
plane_status = &plane_state->status;
dc = plane_state->ctx->dc;
if (dc->current_state == NULL) return NULL;
/* Find the current plane state and set its pending bit to false */ for (i = 0; i < dc->res_pool->pipe_count; i++) { struct pipe_ctx *pipe_ctx =
&dc->current_state->res_ctx.pipe_ctx[i];
if (pipe_ctx->plane_state != plane_state) continue;
if (pipe_ctx->plane_state && flags.bits.address)
pipe_ctx->plane_state->status.is_flip_pending = false;
break;
}
dc_exit_ips_for_hw_access(dc);
for (i = 0; i < dc->res_pool->pipe_count; i++) { struct pipe_ctx *pipe_ctx =
&dc->current_state->res_ctx.pipe_ctx[i];
if (pipe_ctx->plane_state != plane_state) continue;
if (flags.bits.address)
dc->hwss.update_pending_status(pipe_ctx);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.