Lines Matching +full:multi +full:- +full:master

1 // SPDX-License-Identifier: GPL-2.0-only
38 hw = src->rsc.hw; in src_set_state()
39 hw->src_set_state(src->rsc.ctrl_blk, state); in src_set_state()
48 hw = src->rsc.hw; in src_set_bm()
49 hw->src_set_bm(src->rsc.ctrl_blk, bm); in src_set_bm()
58 hw = src->rsc.hw; in src_set_sf()
59 hw->src_set_sf(src->rsc.ctrl_blk, sf); in src_set_sf()
68 hw = src->rsc.hw; in src_set_pm()
69 hw->src_set_pm(src->rsc.ctrl_blk, pm); in src_set_pm()
78 hw = src->rsc.hw; in src_set_rom()
79 hw->src_set_rom(src->rsc.ctrl_blk, rom); in src_set_rom()
88 hw = src->rsc.hw; in src_set_vo()
89 hw->src_set_vo(src->rsc.ctrl_blk, vo); in src_set_vo()
98 hw = src->rsc.hw; in src_set_st()
99 hw->src_set_st(src->rsc.ctrl_blk, st); in src_set_st()
108 hw = src->rsc.hw; in src_set_bp()
109 hw->src_set_bp(src->rsc.ctrl_blk, bp); in src_set_bp()
118 hw = src->rsc.hw; in src_set_cisz()
119 hw->src_set_cisz(src->rsc.ctrl_blk, cisz); in src_set_cisz()
128 hw = src->rsc.hw; in src_set_ca()
129 hw->src_set_ca(src->rsc.ctrl_blk, ca); in src_set_ca()
138 hw = src->rsc.hw; in src_set_sa()
139 hw->src_set_sa(src->rsc.ctrl_blk, sa); in src_set_sa()
148 hw = src->rsc.hw; in src_set_la()
149 hw->src_set_la(src->rsc.ctrl_blk, la); in src_set_la()
158 hw = src->rsc.hw; in src_set_pitch()
159 hw->src_set_pitch(src->rsc.ctrl_blk, pitch); in src_set_pitch()
168 hw = src->rsc.hw; in src_set_clear_zbufs()
169 hw->src_set_clear_zbufs(src->rsc.ctrl_blk, 1); in src_set_clear_zbufs()
180 hw = src->rsc.hw; in src_commit_write()
181 src->rsc.ops->master(&src->rsc); in src_commit_write()
182 if (src->rsc.msr > 1) { in src_commit_write()
184 dirty = hw->src_get_dirty(src->rsc.ctrl_blk) & conj_mask; in src_commit_write()
186 hw->src_commit_write(hw, src->rsc.ops->index(&src->rsc), in src_commit_write()
187 src->rsc.ctrl_blk); in src_commit_write()
190 if (MEMWR == src->mode) in src_commit_write()
193 for (i = 1; i < src->rsc.msr; i++) { in src_commit_write()
194 src->rsc.ops->next_conj(&src->rsc); in src_commit_write()
195 hw->src_set_dirty(src->rsc.ctrl_blk, dirty); in src_commit_write()
196 hw->src_commit_write(hw, src->rsc.ops->index(&src->rsc), in src_commit_write()
197 src->rsc.ctrl_blk); in src_commit_write()
199 src->rsc.ops->master(&src->rsc); in src_commit_write()
208 hw = src->rsc.hw; in src_get_ca()
209 return hw->src_get_ca(hw, src->rsc.ops->index(&src->rsc), in src_get_ca()
210 src->rsc.ctrl_blk); in src_get_ca()
215 src_default_config[src->mode](src); in src_init()
222 return src->intlv; in src_next_interleave()
227 struct hw *hw = src->rsc.hw; in src_default_config_memrd()
230 hw->src_set_state(src->rsc.ctrl_blk, SRC_STATE_OFF); in src_default_config_memrd()
231 hw->src_set_bm(src->rsc.ctrl_blk, 1); in src_default_config_memrd()
232 for (rsr = 0, msr = src->rsc.msr; msr > 1; msr >>= 1) in src_default_config_memrd()
235 hw->src_set_rsr(src->rsc.ctrl_blk, rsr); in src_default_config_memrd()
236 hw->src_set_sf(src->rsc.ctrl_blk, SRC_SF_S16); in src_default_config_memrd()
237 hw->src_set_wr(src->rsc.ctrl_blk, 0); in src_default_config_memrd()
238 hw->src_set_pm(src->rsc.ctrl_blk, 0); in src_default_config_memrd()
239 hw->src_set_rom(src->rsc.ctrl_blk, 0); in src_default_config_memrd()
240 hw->src_set_vo(src->rsc.ctrl_blk, 0); in src_default_config_memrd()
241 hw->src_set_st(src->rsc.ctrl_blk, 0); in src_default_config_memrd()
242 hw->src_set_ilsz(src->rsc.ctrl_blk, src->multi - 1); in src_default_config_memrd()
243 hw->src_set_cisz(src->rsc.ctrl_blk, 0x80); in src_default_config_memrd()
244 hw->src_set_sa(src->rsc.ctrl_blk, 0x0); in src_default_config_memrd()
245 hw->src_set_la(src->rsc.ctrl_blk, 0x1000); in src_default_config_memrd()
246 hw->src_set_ca(src->rsc.ctrl_blk, 0x80); in src_default_config_memrd()
247 hw->src_set_pitch(src->rsc.ctrl_blk, 0x1000000); in src_default_config_memrd()
248 hw->src_set_clear_zbufs(src->rsc.ctrl_blk, 1); in src_default_config_memrd()
250 src->rsc.ops->master(&src->rsc); in src_default_config_memrd()
251 hw->src_commit_write(hw, src->rsc.ops->index(&src->rsc), in src_default_config_memrd()
252 src->rsc.ctrl_blk); in src_default_config_memrd()
254 for (msr = 1; msr < src->rsc.msr; msr++) { in src_default_config_memrd()
255 src->rsc.ops->next_conj(&src->rsc); in src_default_config_memrd()
256 hw->src_set_pitch(src->rsc.ctrl_blk, 0x1000000); in src_default_config_memrd()
257 hw->src_commit_write(hw, src->rsc.ops->index(&src->rsc), in src_default_config_memrd()
258 src->rsc.ctrl_blk); in src_default_config_memrd()
260 src->rsc.ops->master(&src->rsc); in src_default_config_memrd()
267 struct hw *hw = src->rsc.hw; in src_default_config_memwr()
269 hw->src_set_state(src->rsc.ctrl_blk, SRC_STATE_OFF); in src_default_config_memwr()
270 hw->src_set_bm(src->rsc.ctrl_blk, 1); in src_default_config_memwr()
271 hw->src_set_rsr(src->rsc.ctrl_blk, 0); in src_default_config_memwr()
272 hw->src_set_sf(src->rsc.ctrl_blk, SRC_SF_S16); in src_default_config_memwr()
273 hw->src_set_wr(src->rsc.ctrl_blk, 1); in src_default_config_memwr()
274 hw->src_set_pm(src->rsc.ctrl_blk, 0); in src_default_config_memwr()
275 hw->src_set_rom(src->rsc.ctrl_blk, 0); in src_default_config_memwr()
276 hw->src_set_vo(src->rsc.ctrl_blk, 0); in src_default_config_memwr()
277 hw->src_set_st(src->rsc.ctrl_blk, 0); in src_default_config_memwr()
278 hw->src_set_ilsz(src->rsc.ctrl_blk, 0); in src_default_config_memwr()
279 hw->src_set_cisz(src->rsc.ctrl_blk, 0x80); in src_default_config_memwr()
280 hw->src_set_sa(src->rsc.ctrl_blk, 0x0); in src_default_config_memwr()
281 hw->src_set_la(src->rsc.ctrl_blk, 0x1000); in src_default_config_memwr()
282 hw->src_set_ca(src->rsc.ctrl_blk, 0x80); in src_default_config_memwr()
283 hw->src_set_pitch(src->rsc.ctrl_blk, 0x1000000); in src_default_config_memwr()
284 hw->src_set_clear_zbufs(src->rsc.ctrl_blk, 1); in src_default_config_memwr()
286 src->rsc.ops->master(&src->rsc); in src_default_config_memwr()
287 hw->src_commit_write(hw, src->rsc.ops->index(&src->rsc), in src_default_config_memwr()
288 src->rsc.ctrl_blk); in src_default_config_memwr()
295 struct hw *hw = src->rsc.hw; in src_default_config_arcrw()
299 hw->src_set_state(src->rsc.ctrl_blk, SRC_STATE_OFF); in src_default_config_arcrw()
300 hw->src_set_bm(src->rsc.ctrl_blk, 0); in src_default_config_arcrw()
301 for (rsr = 0, msr = src->rsc.msr; msr > 1; msr >>= 1) in src_default_config_arcrw()
304 hw->src_set_rsr(src->rsc.ctrl_blk, rsr); in src_default_config_arcrw()
305 hw->src_set_sf(src->rsc.ctrl_blk, SRC_SF_F32); in src_default_config_arcrw()
306 hw->src_set_wr(src->rsc.ctrl_blk, 0); in src_default_config_arcrw()
307 hw->src_set_pm(src->rsc.ctrl_blk, 0); in src_default_config_arcrw()
308 hw->src_set_rom(src->rsc.ctrl_blk, 0); in src_default_config_arcrw()
309 hw->src_set_vo(src->rsc.ctrl_blk, 0); in src_default_config_arcrw()
310 hw->src_set_st(src->rsc.ctrl_blk, 0); in src_default_config_arcrw()
311 hw->src_set_ilsz(src->rsc.ctrl_blk, 0); in src_default_config_arcrw()
312 hw->src_set_cisz(src->rsc.ctrl_blk, 0x80); in src_default_config_arcrw()
313 hw->src_set_sa(src->rsc.ctrl_blk, 0x0); in src_default_config_arcrw()
314 /*hw->src_set_sa(src->rsc.ctrl_blk, 0x100);*/ in src_default_config_arcrw()
315 hw->src_set_la(src->rsc.ctrl_blk, 0x1000); in src_default_config_arcrw()
316 /*hw->src_set_la(src->rsc.ctrl_blk, 0x03ffffe0);*/ in src_default_config_arcrw()
317 hw->src_set_ca(src->rsc.ctrl_blk, 0x80); in src_default_config_arcrw()
318 hw->src_set_pitch(src->rsc.ctrl_blk, 0x1000000); in src_default_config_arcrw()
319 hw->src_set_clear_zbufs(src->rsc.ctrl_blk, 1); in src_default_config_arcrw()
321 dirty = hw->src_get_dirty(src->rsc.ctrl_blk); in src_default_config_arcrw()
322 src->rsc.ops->master(&src->rsc); in src_default_config_arcrw()
323 for (msr = 0; msr < src->rsc.msr; msr++) { in src_default_config_arcrw()
324 hw->src_set_dirty(src->rsc.ctrl_blk, dirty); in src_default_config_arcrw()
325 hw->src_commit_write(hw, src->rsc.ops->index(&src->rsc), in src_default_config_arcrw()
326 src->rsc.ctrl_blk); in src_default_config_arcrw()
327 src->rsc.ops->next_conj(&src->rsc); in src_default_config_arcrw()
329 src->rsc.ops->master(&src->rsc); in src_default_config_arcrw()
363 n = (MEMRD == desc->mode) ? desc->multi : 1; in src_rsc_init()
365 err = rsc_init(&p->rsc, idx + i, SRC, desc->msr, mgr->mgr.hw); in src_rsc_init()
370 p->ops = &src_rsc_ops; in src_rsc_init()
371 p->multi = (0 == i) ? desc->multi : 1; in src_rsc_init()
372 p->mode = desc->mode; in src_rsc_init()
373 src_default_config[desc->mode](p); in src_rsc_init()
374 mgr->src_enable(mgr, p); in src_rsc_init()
375 p->intlv = p + 1; in src_rsc_init()
377 (--p)->intlv = NULL; /* Set @intlv of the last SRC to NULL */ in src_rsc_init()
379 mgr->commit_write(mgr); in src_rsc_init()
384 for (i--, p--; i >= 0; i--, p--) { in src_rsc_init()
385 mgr->src_disable(mgr, p); in src_rsc_init()
386 rsc_uninit(&p->rsc); in src_rsc_init()
388 mgr->commit_write(mgr); in src_rsc_init()
397 n = (MEMRD == src->mode) ? src->multi : 1; in src_rsc_uninit()
399 mgr->src_disable(mgr, p); in src_rsc_uninit()
400 rsc_uninit(&p->rsc); in src_rsc_uninit()
401 p->multi = 0; in src_rsc_uninit()
402 p->ops = NULL; in src_rsc_uninit()
403 p->mode = NUM_SRCMODES; in src_rsc_uninit()
404 p->intlv = NULL; in src_rsc_uninit()
406 mgr->commit_write(mgr); in src_rsc_uninit()
422 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_src_rsc()
423 if (MEMRD == desc->mode) in get_src_rsc()
424 err = mgr_get_resource(&mgr->mgr, desc->multi, &idx); in get_src_rsc()
426 err = mgr_get_resource(&mgr->mgr, 1, &idx); in get_src_rsc()
428 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_src_rsc()
430 dev_err(mgr->card->dev, in get_src_rsc()
435 /* Allocate mem for master src resource */ in get_src_rsc()
436 if (MEMRD == desc->mode) in get_src_rsc()
437 src = kcalloc(desc->multi, sizeof(*src), GFP_KERNEL); in get_src_rsc()
442 err = -ENOMEM; in get_src_rsc()
457 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_src_rsc()
458 if (MEMRD == desc->mode) in get_src_rsc()
459 mgr_put_resource(&mgr->mgr, desc->multi, idx); in get_src_rsc()
461 mgr_put_resource(&mgr->mgr, 1, idx); in get_src_rsc()
463 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_src_rsc()
471 spin_lock_irqsave(&mgr->mgr_lock, flags); in put_src_rsc()
472 src->rsc.ops->master(&src->rsc); in put_src_rsc()
473 if (MEMRD == src->mode) in put_src_rsc()
474 mgr_put_resource(&mgr->mgr, src->multi, in put_src_rsc()
475 src->rsc.ops->index(&src->rsc)); in put_src_rsc()
477 mgr_put_resource(&mgr->mgr, 1, src->rsc.ops->index(&src->rsc)); in put_src_rsc()
479 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in put_src_rsc()
488 struct hw *hw = mgr->mgr.hw; in src_enable_s()
491 src->rsc.ops->master(&src->rsc); in src_enable_s()
492 for (i = 0; i < src->rsc.msr; i++) { in src_enable_s()
493 hw->src_mgr_enbs_src(mgr->mgr.ctrl_blk, in src_enable_s()
494 src->rsc.ops->index(&src->rsc)); in src_enable_s()
495 src->rsc.ops->next_conj(&src->rsc); in src_enable_s()
497 src->rsc.ops->master(&src->rsc); in src_enable_s()
504 struct hw *hw = mgr->mgr.hw; in src_enable()
507 src->rsc.ops->master(&src->rsc); in src_enable()
508 for (i = 0; i < src->rsc.msr; i++) { in src_enable()
509 hw->src_mgr_enb_src(mgr->mgr.ctrl_blk, in src_enable()
510 src->rsc.ops->index(&src->rsc)); in src_enable()
511 src->rsc.ops->next_conj(&src->rsc); in src_enable()
513 src->rsc.ops->master(&src->rsc); in src_enable()
520 struct hw *hw = mgr->mgr.hw; in src_disable()
523 src->rsc.ops->master(&src->rsc); in src_disable()
524 for (i = 0; i < src->rsc.msr; i++) { in src_disable()
525 hw->src_mgr_dsb_src(mgr->mgr.ctrl_blk, in src_disable()
526 src->rsc.ops->index(&src->rsc)); in src_disable()
527 src->rsc.ops->next_conj(&src->rsc); in src_disable()
529 src->rsc.ops->master(&src->rsc); in src_disable()
536 struct hw *hw = mgr->mgr.hw; in src_mgr_commit_write()
538 hw->src_mgr_commit_write(hw, mgr->mgr.ctrl_blk); in src_mgr_commit_write()
551 return -ENOMEM; in src_mgr_create()
553 err = rsc_mgr_init(&src_mgr->mgr, SRC, SRC_RESOURCE_NUM, hw); in src_mgr_create()
557 spin_lock_init(&src_mgr->mgr_lock); in src_mgr_create()
558 conj_mask = hw->src_dirty_conj_mask(); in src_mgr_create()
560 src_mgr->get_src = get_src_rsc; in src_mgr_create()
561 src_mgr->put_src = put_src_rsc; in src_mgr_create()
562 src_mgr->src_enable_s = src_enable_s; in src_mgr_create()
563 src_mgr->src_enable = src_enable; in src_mgr_create()
564 src_mgr->src_disable = src_disable; in src_mgr_create()
565 src_mgr->commit_write = src_mgr_commit_write; in src_mgr_create()
566 src_mgr->card = hw->card; in src_mgr_create()
570 hw->src_mgr_dsb_src(src_mgr->mgr.ctrl_blk, i); in src_mgr_create()
572 hw->src_mgr_commit_write(hw, src_mgr->mgr.ctrl_blk); in src_mgr_create()
585 rsc_mgr_uninit(&src_mgr->mgr); in src_mgr_destroy()
595 rsc->conj = 0; in srcimp_master()
596 rsc->idx = container_of(rsc, struct srcimp, rsc)->idx[0]; in srcimp_master()
601 rsc->conj++; in srcimp_next_conj()
606 return container_of(rsc, struct srcimp, rsc)->idx[rsc->conj]; in srcimp_index()
610 .master = srcimp_master,
621 srcimp->rsc.ops->master(&srcimp->rsc); in srcimp_map()
622 src->rsc.ops->master(&src->rsc); in srcimp_map()
623 input->ops->master(input); in srcimp_map()
625 /* Program master and conjugate resources */ in srcimp_map()
626 for (i = 0; i < srcimp->rsc.msr; i++) { in srcimp_map()
627 entry = &srcimp->imappers[i]; in srcimp_map()
628 entry->slot = input->ops->output_slot(input); in srcimp_map()
629 entry->user = src->rsc.ops->index(&src->rsc); in srcimp_map()
630 entry->addr = srcimp->rsc.ops->index(&srcimp->rsc); in srcimp_map()
631 srcimp->mgr->imap_add(srcimp->mgr, entry); in srcimp_map()
632 srcimp->mapped |= (0x1 << i); in srcimp_map()
634 srcimp->rsc.ops->next_conj(&srcimp->rsc); in srcimp_map()
635 input->ops->next_conj(input); in srcimp_map()
638 srcimp->rsc.ops->master(&srcimp->rsc); in srcimp_map()
639 input->ops->master(input); in srcimp_map()
648 /* Program master and conjugate resources */ in srcimp_unmap()
649 for (i = 0; i < srcimp->rsc.msr; i++) { in srcimp_unmap()
650 if (srcimp->mapped & (0x1 << i)) { in srcimp_unmap()
651 srcimp->mgr->imap_delete(srcimp->mgr, in srcimp_unmap()
652 &srcimp->imappers[i]); in srcimp_unmap()
653 srcimp->mapped &= ~(0x1 << i); in srcimp_unmap()
671 err = rsc_init(&srcimp->rsc, srcimp->idx[0], in srcimp_rsc_init()
672 SRCIMP, desc->msr, mgr->mgr.hw); in srcimp_rsc_init()
677 srcimp->imappers = kcalloc(desc->msr, sizeof(struct imapper), in srcimp_rsc_init()
679 if (!srcimp->imappers) { in srcimp_rsc_init()
680 err = -ENOMEM; in srcimp_rsc_init()
685 srcimp->rsc.ops = &srcimp_basic_rsc_ops; in srcimp_rsc_init()
686 srcimp->ops = &srcimp_ops; in srcimp_rsc_init()
687 srcimp->mgr = mgr; in srcimp_rsc_init()
689 srcimp->rsc.ops->master(&srcimp->rsc); in srcimp_rsc_init()
694 rsc_uninit(&srcimp->rsc); in srcimp_rsc_init()
700 kfree(srcimp->imappers); in srcimp_rsc_uninit()
701 srcimp->imappers = NULL; in srcimp_rsc_uninit()
702 srcimp->ops = NULL; in srcimp_rsc_uninit()
703 srcimp->mgr = NULL; in srcimp_rsc_uninit()
704 rsc_uninit(&srcimp->rsc); in srcimp_rsc_uninit()
723 return -ENOMEM; in get_srcimp_rsc()
727 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_srcimp_rsc()
728 for (i = 0; i < desc->msr; i++) { in get_srcimp_rsc()
729 err = mgr_get_resource(&mgr->mgr, 1, &idx); in get_srcimp_rsc()
733 srcimp->idx[i] = idx; in get_srcimp_rsc()
735 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_srcimp_rsc()
737 dev_err(mgr->card->dev, in get_srcimp_rsc()
751 spin_lock_irqsave(&mgr->mgr_lock, flags); in get_srcimp_rsc()
752 for (i--; i >= 0; i--) in get_srcimp_rsc()
753 mgr_put_resource(&mgr->mgr, 1, srcimp->idx[i]); in get_srcimp_rsc()
755 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in get_srcimp_rsc()
765 spin_lock_irqsave(&mgr->mgr_lock, flags); in put_srcimp_rsc()
766 for (i = 0; i < srcimp->rsc.msr; i++) in put_srcimp_rsc()
767 mgr_put_resource(&mgr->mgr, 1, srcimp->idx[i]); in put_srcimp_rsc()
769 spin_unlock_irqrestore(&mgr->mgr_lock, flags); in put_srcimp_rsc()
778 struct rsc_mgr *mgr = &((struct srcimp_mgr *)data)->mgr; in srcimp_map_op()
779 struct hw *hw = mgr->hw; in srcimp_map_op()
781 hw->srcimp_mgr_set_imaparc(mgr->ctrl_blk, entry->slot); in srcimp_map_op()
782 hw->srcimp_mgr_set_imapuser(mgr->ctrl_blk, entry->user); in srcimp_map_op()
783 hw->srcimp_mgr_set_imapnxt(mgr->ctrl_blk, entry->next); in srcimp_map_op()
784 hw->srcimp_mgr_set_imapaddr(mgr->ctrl_blk, entry->addr); in srcimp_map_op()
785 hw->srcimp_mgr_commit_write(mgr->hw, mgr->ctrl_blk); in srcimp_map_op()
795 spin_lock_irqsave(&mgr->imap_lock, flags); in srcimp_imap_add()
796 if ((0 == entry->addr) && (mgr->init_imap_added)) { in srcimp_imap_add()
797 input_mapper_delete(&mgr->imappers, in srcimp_imap_add()
798 mgr->init_imap, srcimp_map_op, mgr); in srcimp_imap_add()
799 mgr->init_imap_added = 0; in srcimp_imap_add()
801 err = input_mapper_add(&mgr->imappers, entry, srcimp_map_op, mgr); in srcimp_imap_add()
802 spin_unlock_irqrestore(&mgr->imap_lock, flags); in srcimp_imap_add()
812 spin_lock_irqsave(&mgr->imap_lock, flags); in srcimp_imap_delete()
813 err = input_mapper_delete(&mgr->imappers, entry, srcimp_map_op, mgr); in srcimp_imap_delete()
814 if (list_empty(&mgr->imappers)) { in srcimp_imap_delete()
815 input_mapper_add(&mgr->imappers, mgr->init_imap, in srcimp_imap_delete()
817 mgr->init_imap_added = 1; in srcimp_imap_delete()
819 spin_unlock_irqrestore(&mgr->imap_lock, flags); in srcimp_imap_delete()
833 return -ENOMEM; in srcimp_mgr_create()
835 err = rsc_mgr_init(&srcimp_mgr->mgr, SRCIMP, SRCIMP_RESOURCE_NUM, hw); in srcimp_mgr_create()
839 spin_lock_init(&srcimp_mgr->mgr_lock); in srcimp_mgr_create()
840 spin_lock_init(&srcimp_mgr->imap_lock); in srcimp_mgr_create()
841 INIT_LIST_HEAD(&srcimp_mgr->imappers); in srcimp_mgr_create()
844 err = -ENOMEM; in srcimp_mgr_create()
847 entry->slot = entry->addr = entry->next = entry->user = 0; in srcimp_mgr_create()
848 list_add(&entry->list, &srcimp_mgr->imappers); in srcimp_mgr_create()
849 srcimp_mgr->init_imap = entry; in srcimp_mgr_create()
850 srcimp_mgr->init_imap_added = 1; in srcimp_mgr_create()
852 srcimp_mgr->get_srcimp = get_srcimp_rsc; in srcimp_mgr_create()
853 srcimp_mgr->put_srcimp = put_srcimp_rsc; in srcimp_mgr_create()
854 srcimp_mgr->imap_add = srcimp_imap_add; in srcimp_mgr_create()
855 srcimp_mgr->imap_delete = srcimp_imap_delete; in srcimp_mgr_create()
856 srcimp_mgr->card = hw->card; in srcimp_mgr_create()
863 rsc_mgr_uninit(&srcimp_mgr->mgr); in srcimp_mgr_create()
874 spin_lock_irqsave(&srcimp_mgr->imap_lock, flags); in srcimp_mgr_destroy()
875 free_input_mapper_list(&srcimp_mgr->imappers); in srcimp_mgr_destroy()
876 spin_unlock_irqrestore(&srcimp_mgr->imap_lock, flags); in srcimp_mgr_destroy()
878 rsc_mgr_uninit(&srcimp_mgr->mgr); in srcimp_mgr_destroy()