Lines Matching defs:daio

152 		daio_device_index(dao->daio.type, dao->hw), dao->ctrl_blk);
159 struct daio *daio = &dao->daio;
162 entry = kzalloc((sizeof(*entry) * daio->rscl.msr), GFP_KERNEL);
169 daio->rscl.ops->master(&daio->rscl);
170 for (i = 0; i < daio->rscl.msr; i++, entry++) {
172 entry->user = entry->addr = daio->rscl.ops->index(&daio->rscl);
177 daio->rscl.ops->next_conj(&daio->rscl);
180 daio->rscl.ops->master(&daio->rscl);
188 struct daio *daio = &dao->daio;
191 entry = kzalloc((sizeof(*entry) * daio->rscr.msr), GFP_KERNEL);
198 daio->rscr.ops->master(&daio->rscr);
199 for (i = 0; i < daio->rscr.msr; i++, entry++) {
201 entry->user = entry->addr = daio->rscr.ops->index(&daio->rscr);
203 dao->imappers[daio->rscl.msr + i] = entry;
206 daio->rscr.ops->next_conj(&daio->rscr);
209 daio->rscr.ops->master(&daio->rscr);
217 struct daio *daio = &dao->daio;
226 for (i = 1; i < daio->rscl.msr; i++) {
241 struct daio *daio = &dao->daio;
244 if (!dao->imappers[daio->rscl.msr])
247 entry = dao->imappers[daio->rscl.msr];
250 for (i = 1; i < daio->rscr.msr; i++) {
251 entry = dao->imappers[daio->rscl.msr + i];
253 dao->imappers[daio->rscl.msr + i] = NULL;
256 kfree(dao->imappers[daio->rscl.msr]);
257 dao->imappers[daio->rscl.msr] = NULL;
313 daio_device_index(dai->daio.type, dai->hw), dai->ctrl_blk);
326 static int daio_rsc_init(struct daio *daio,
345 err = rsc_init(&daio->rscl, idx_l, DAIO, desc->msr, hw);
349 err = rsc_init(&daio->rscr, idx_r, DAIO, desc->msr, hw);
353 /* Set daio->rscl/r->ops to daio specific ones */
355 daio->rscl.ops = daio->rscr.ops = &daio_out_rsc_ops;
359 daio->rscl.ops = daio->rscr.ops = &daio_in_rsc_ops_20k1;
362 daio->rscl.ops = daio->rscr.ops = &daio_in_rsc_ops_20k2;
368 daio->type = desc->type;
373 rsc_uninit(&daio->rscl);
377 static int daio_rsc_uninit(struct daio *daio)
379 rsc_uninit(&daio->rscl);
380 rsc_uninit(&daio->rscr);
393 err = daio_rsc_init(&dao->daio, desc, mgr->mgr.hw);
411 daio_device_index(dao->daio.type, hw));
416 daio_device_index(dao->daio.type, hw), conf);
418 daio_device_index(dao->daio.type, hw));
427 daio_rsc_uninit(&dao->daio);
437 if (dao->imappers[dao->daio.rscl.msr])
445 daio_rsc_uninit(&dao->daio);
455 dsc.type = dao->daio.type;
470 err = daio_rsc_init(&dai->daio, desc, mgr->mgr.hw);
489 daio_device_index(dai->daio.type, dai->hw), dai->ctrl_blk);
494 daio_rsc_uninit(&dai->daio);
502 daio_rsc_uninit(&dai->daio);
525 struct daio **rdaio)
532 /* Check whether there are sufficient daio resources to meet request. */
543 /* Allocate mem for daio resource */
555 *rdaio = &dao->daio;
567 *rdaio = &dai->daio;
582 static int put_daio_rsc(struct daio_mgr *mgr, struct daio *daio)
586 mgr->daio_disable(mgr, daio);
590 daio_mgr_put_rsc(&mgr->mgr, daio->type);
593 if (daio->type <= DAIO_OUT_MAX) {
594 dao_rsc_uninit(container_of(daio, struct dao, daio));
595 kfree(container_of(daio, struct dao, daio));
597 dai_rsc_uninit(container_of(daio, struct dai, daio));
598 kfree(container_of(daio, struct dai, daio));
604 static int daio_mgr_enb_daio(struct daio_mgr *mgr, struct daio *daio)
608 if (DAIO_OUT_MAX >= daio->type) {
610 daio_device_index(daio->type, hw));
613 daio_device_index(daio->type, hw));
618 static int daio_mgr_dsb_daio(struct daio_mgr *mgr, struct daio *daio)
622 if (DAIO_OUT_MAX >= daio->type) {
624 daio_device_index(daio->type, hw));
627 daio_device_index(daio->type, hw));
745 /* free daio input mapper list */