Lines Matching refs:output
184 static void stm_output_claim(struct stm_device *stm, struct stm_output *output) in stm_output_claim() argument
186 struct stp_master *master = stm_master(stm, output->master); in stm_output_claim()
188 if (WARN_ON_ONCE(master->nr_free < output->nr_chans)) in stm_output_claim()
191 bitmap_allocate_region(&master->chan_map[0], output->channel, in stm_output_claim()
192 ilog2(output->nr_chans)); in stm_output_claim()
194 master->nr_free -= output->nr_chans; in stm_output_claim()
198 stm_output_disclaim(struct stm_device *stm, struct stm_output *output) in stm_output_disclaim() argument
200 struct stp_master *master = stm_master(stm, output->master); in stm_output_disclaim()
202 bitmap_release_region(&master->chan_map[0], output->channel, in stm_output_disclaim()
203 ilog2(output->nr_chans)); in stm_output_disclaim()
205 output->nr_chans = 0; in stm_output_disclaim()
206 master->nr_free += output->nr_chans; in stm_output_disclaim()
272 struct stm_output *output) in stm_output_assign() argument
292 if (WARN_ON_ONCE(output->nr_chans)) in stm_output_assign()
299 output->master = midx; in stm_output_assign()
300 output->channel = cidx; in stm_output_assign()
301 output->nr_chans = width; in stm_output_assign()
302 stm_output_claim(stm, output); in stm_output_assign()
312 static void stm_output_free(struct stm_device *stm, struct stm_output *output) in stm_output_free() argument
315 if (output->nr_chans) in stm_output_free()
316 stm_output_disclaim(stm, output); in stm_output_free()
361 stm_output_free(stmf->stm, &stmf->output); in stm_char_release()
375 ret = stm_output_assign(stm, width, stmf->policy_node, &stmf->output); in stm_file_assign()
413 if (!stmf->output.nr_chans) { in stm_char_write()
433 stm_write(stm->data, stmf->output.master, stmf->output.channel, kbuf, in stm_char_write()
455 if (stmf->output.nr_chans * stm->data->sw_mmiosz != size) in stm_char_mmap()
458 phys = stm->data->mmio_addr(stm->data, stmf->output.master, in stm_char_mmap()
459 stmf->output.channel, in stm_char_mmap()
460 stmf->output.nr_chans); in stm_char_mmap()
479 if (stmf->output.nr_chans) in stm_char_policy_set_ioctl()
515 ret = stm->data->link(stm->data, stmf->output.master, in stm_char_policy_set_ioctl()
516 stmf->output.channel); in stm_char_policy_set_ioctl()
519 stm_output_free(stmf->stm, &stmf->output); in stm_char_policy_set_ioctl()
533 .master = stmf->output.master, in stm_char_policy_get_ioctl()
534 .channel = stmf->output.channel, in stm_char_policy_get_ioctl()
535 .width = stmf->output.nr_chans, in stm_char_policy_get_ioctl()
568 stmf->output.master, in stm_char_ioctl()
569 stmf->output.channel, in stm_char_ioctl()
570 stmf->output.nr_chans, in stm_char_ioctl()
732 src->policy_node, &src->output); in stm_source_link_add()
742 err = stm->data->link(stm->data, src->output.master, in stm_source_link_add()
743 src->output.channel); in stm_source_link_add()
755 stm_output_free(stm, &src->output); in stm_source_link_add()
793 stm_output_free(link, &src->output); in __stm_source_link_drop()
966 if (!src->output.nr_chans) in stm_source_write()
969 if (chan >= src->output.nr_chans) in stm_source_write()
976 stm_write(stm->data, src->output.master, in stm_source_write()
977 src->output.channel + chan, in stm_source_write()