Lines Matching refs:rsc
26 static void amixer_master(struct rsc *rsc)
28 rsc->conj = 0;
29 rsc->idx = container_of(rsc, struct amixer, rsc)->idx[0];
32 static void amixer_next_conj(struct rsc *rsc)
34 rsc->conj++;
37 static int amixer_index(const struct rsc *rsc)
39 return container_of(rsc, struct amixer, rsc)->idx[rsc->conj];
42 static int amixer_output_slot(const struct rsc *rsc)
44 return (amixer_index(rsc) << 4) + 0x4;
54 static int amixer_set_input(struct amixer *amixer, struct rsc *rsc)
58 hw = amixer->rsc.hw;
59 hw->amixer_set_mode(amixer->rsc.ctrl_blk, AMIXER_Y_IMMEDIATE);
60 amixer->input = rsc;
61 if (!rsc)
62 hw->amixer_set_x(amixer->rsc.ctrl_blk, BLANK_SLOT);
64 hw->amixer_set_x(amixer->rsc.ctrl_blk,
65 rsc->ops->output_slot(rsc));
75 hw = amixer->rsc.hw;
76 hw->amixer_set_y(amixer->rsc.ctrl_blk, y);
85 hw = amixer->rsc.hw;
86 hw->amixer_set_iv(amixer->rsc.ctrl_blk, iv);
95 hw = amixer->rsc.hw;
98 hw->amixer_set_se(amixer->rsc.ctrl_blk, 0);
100 hw->amixer_set_se(amixer->rsc.ctrl_blk, 1);
101 hw->amixer_set_sadr(amixer->rsc.ctrl_blk,
102 sum->rsc.ops->index(&sum->rsc));
113 struct rsc *input;
116 hw = amixer->rsc.hw;
121 amixer->rsc.ops->master(&amixer->rsc);
126 sum->rsc.ops->master(&sum->rsc);
128 for (i = 0; i < amixer->rsc.msr; i++) {
129 hw->amixer_set_dirty_all(amixer->rsc.ctrl_blk);
131 hw->amixer_set_x(amixer->rsc.ctrl_blk,
136 hw->amixer_set_sadr(amixer->rsc.ctrl_blk,
137 sum->rsc.ops->index(&sum->rsc));
138 sum->rsc.ops->next_conj(&sum->rsc);
140 index = amixer->rsc.ops->output_slot(&amixer->rsc);
141 hw->amixer_commit_write(hw, index, amixer->rsc.ctrl_blk);
142 amixer->rsc.ops->next_conj(&amixer->rsc);
144 amixer->rsc.ops->master(&amixer->rsc);
149 sum->rsc.ops->master(&sum->rsc);
159 hw = amixer->rsc.hw;
160 index = amixer->rsc.ops->output_slot(&amixer->rsc);
161 hw->amixer_commit_write(hw, index, amixer->rsc.ctrl_blk);
170 hw = amixer->rsc.hw;
171 return hw->amixer_get_y(amixer->rsc.ctrl_blk);
174 static int amixer_setup(struct amixer *amixer, struct rsc *input,
201 err = rsc_init(&amixer->rsc, amixer->idx[0],
207 amixer->rsc.ops = &amixer_basic_rsc_ops;
220 rsc_uninit(&amixer->rsc);
285 for (i = 0; i < amixer->rsc.msr; i++)
333 static void sum_master(struct rsc *rsc)
335 rsc->conj = 0;
336 rsc->idx = container_of(rsc, struct sum, rsc)->idx[0];
339 static void sum_next_conj(struct rsc *rsc)
341 rsc->conj++;
344 static int sum_index(const struct rsc *rsc)
346 return container_of(rsc, struct sum, rsc)->idx[rsc->conj];
349 static int sum_output_slot(const struct rsc *rsc)
351 return (sum_index(rsc) << 4) + 0xc;
367 err = rsc_init(&sum->rsc, sum->idx[0], SUM, desc->msr, mgr->mgr.hw);
371 sum->rsc.ops = &sum_basic_rsc_ops;
378 rsc_uninit(&sum->rsc);
439 for (i = 0; i < sum->rsc.msr; i++)