Lines Matching refs:hwpipe
11 struct mdp5_hw_pipe **hwpipe, in mdp5_pipe_assign() argument
27 old_state = &old_global_state->hwpipe; in mdp5_pipe_assign()
28 new_state = &new_global_state->hwpipe; in mdp5_pipe_assign()
59 if (!(*hwpipe) || (hweight_long(cur->caps & ~caps) < in mdp5_pipe_assign()
60 hweight_long((*hwpipe)->caps & ~caps))) { in mdp5_pipe_assign()
84 *hwpipe = cur; in mdp5_pipe_assign()
88 if (!(*hwpipe)) in mdp5_pipe_assign()
100 DBG("%s: alloc SMP blocks", (*hwpipe)->name); in mdp5_pipe_assign()
102 (*hwpipe)->pipe, blkcfg); in mdp5_pipe_assign()
106 (*hwpipe)->blkcfg = blkcfg; in mdp5_pipe_assign()
110 (*hwpipe)->name, plane->name, caps); in mdp5_pipe_assign()
111 new_state->hwpipe_to_plane[(*hwpipe)->idx] = plane; in mdp5_pipe_assign()
122 int mdp5_pipe_release(struct drm_atomic_state *s, struct mdp5_hw_pipe *hwpipe) in mdp5_pipe_release() argument
129 if (!hwpipe) in mdp5_pipe_release()
136 new_state = &state->hwpipe; in mdp5_pipe_release()
138 if (WARN_ON(!new_state->hwpipe_to_plane[hwpipe->idx])) in mdp5_pipe_release()
141 DBG("%s: release from plane %s", hwpipe->name, in mdp5_pipe_release()
142 new_state->hwpipe_to_plane[hwpipe->idx]->name); in mdp5_pipe_release()
145 DBG("%s: free SMP blocks", hwpipe->name); in mdp5_pipe_release()
146 mdp5_smp_release(mdp5_kms->smp, &state->smp, hwpipe->pipe); in mdp5_pipe_release()
149 new_state->hwpipe_to_plane[hwpipe->idx] = NULL; in mdp5_pipe_release()
158 struct mdp5_hw_pipe *hwpipe; in mdp5_pipe_init() local
160 hwpipe = devm_kzalloc(dev->dev, sizeof(*hwpipe), GFP_KERNEL); in mdp5_pipe_init()
161 if (!hwpipe) in mdp5_pipe_init()
164 hwpipe->name = pipe2name(pipe); in mdp5_pipe_init()
165 hwpipe->pipe = pipe; in mdp5_pipe_init()
166 hwpipe->reg_offset = reg_offset; in mdp5_pipe_init()
167 hwpipe->caps = caps; in mdp5_pipe_init()
168 hwpipe->flush_mask = mdp_ctl_flush_mask_pipe(pipe); in mdp5_pipe_init()
170 return hwpipe; in mdp5_pipe_init()