Lines Matching refs:amixer

33 	return rsc->idx = container_of(rsc, struct amixer, rsc)->idx[0];  in amixer_master()
39 return container_of(rsc, struct amixer, rsc)->idx[rsc->conj]; in amixer_next_conj()
44 return container_of(rsc, struct amixer, rsc)->idx[rsc->conj]; in amixer_index()
59 static int amixer_set_input(struct amixer *amixer, struct rsc *rsc) in amixer_set_input() argument
63 hw = amixer->rsc.hw; in amixer_set_input()
64 hw->amixer_set_mode(amixer->rsc.ctrl_blk, AMIXER_Y_IMMEDIATE); in amixer_set_input()
65 amixer->input = rsc; in amixer_set_input()
67 hw->amixer_set_x(amixer->rsc.ctrl_blk, BLANK_SLOT); in amixer_set_input()
69 hw->amixer_set_x(amixer->rsc.ctrl_blk, in amixer_set_input()
76 static int amixer_set_y(struct amixer *amixer, unsigned int y) in amixer_set_y() argument
80 hw = amixer->rsc.hw; in amixer_set_y()
81 hw->amixer_set_y(amixer->rsc.ctrl_blk, y); in amixer_set_y()
86 static int amixer_set_invalid_squash(struct amixer *amixer, unsigned int iv) in amixer_set_invalid_squash() argument
90 hw = amixer->rsc.hw; in amixer_set_invalid_squash()
91 hw->amixer_set_iv(amixer->rsc.ctrl_blk, iv); in amixer_set_invalid_squash()
96 static int amixer_set_sum(struct amixer *amixer, struct sum *sum) in amixer_set_sum() argument
100 hw = amixer->rsc.hw; in amixer_set_sum()
101 amixer->sum = sum; in amixer_set_sum()
103 hw->amixer_set_se(amixer->rsc.ctrl_blk, 0); in amixer_set_sum()
105 hw->amixer_set_se(amixer->rsc.ctrl_blk, 1); in amixer_set_sum()
106 hw->amixer_set_sadr(amixer->rsc.ctrl_blk, in amixer_set_sum()
113 static int amixer_commit_write(struct amixer *amixer) in amixer_commit_write() argument
121 hw = amixer->rsc.hw; in amixer_commit_write()
122 input = amixer->input; in amixer_commit_write()
123 sum = amixer->sum; in amixer_commit_write()
126 amixer->rsc.ops->master(&amixer->rsc); in amixer_commit_write()
133 for (i = 0; i < amixer->rsc.msr; i++) { in amixer_commit_write()
134 hw->amixer_set_dirty_all(amixer->rsc.ctrl_blk); in amixer_commit_write()
136 hw->amixer_set_x(amixer->rsc.ctrl_blk, in amixer_commit_write()
141 hw->amixer_set_sadr(amixer->rsc.ctrl_blk, in amixer_commit_write()
145 index = amixer->rsc.ops->output_slot(&amixer->rsc); in amixer_commit_write()
146 hw->amixer_commit_write(hw, index, amixer->rsc.ctrl_blk); in amixer_commit_write()
147 amixer->rsc.ops->next_conj(&amixer->rsc); in amixer_commit_write()
149 amixer->rsc.ops->master(&amixer->rsc); in amixer_commit_write()
159 static int amixer_commit_raw_write(struct amixer *amixer) in amixer_commit_raw_write() argument
164 hw = amixer->rsc.hw; in amixer_commit_raw_write()
165 index = amixer->rsc.ops->output_slot(&amixer->rsc); in amixer_commit_raw_write()
166 hw->amixer_commit_write(hw, index, amixer->rsc.ctrl_blk); in amixer_commit_raw_write()
171 static int amixer_get_y(struct amixer *amixer) in amixer_get_y() argument
175 hw = amixer->rsc.hw; in amixer_get_y()
176 return hw->amixer_get_y(amixer->rsc.ctrl_blk); in amixer_get_y()
179 static int amixer_setup(struct amixer *amixer, struct rsc *input, in amixer_setup() argument
182 amixer_set_input(amixer, input); in amixer_setup()
183 amixer_set_y(amixer, scale); in amixer_setup()
184 amixer_set_sum(amixer, sum); in amixer_setup()
185 amixer_commit_write(amixer); in amixer_setup()
200 static int amixer_rsc_init(struct amixer *amixer, in amixer_rsc_init() argument
206 err = rsc_init(&amixer->rsc, amixer->idx[0], in amixer_rsc_init()
212 amixer->rsc.ops = &amixer_basic_rsc_ops; in amixer_rsc_init()
213 amixer->ops = &amixer_ops; in amixer_rsc_init()
214 amixer->input = NULL; in amixer_rsc_init()
215 amixer->sum = NULL; in amixer_rsc_init()
217 amixer_setup(amixer, NULL, 0, NULL); in amixer_rsc_init()
222 static int amixer_rsc_uninit(struct amixer *amixer) in amixer_rsc_uninit() argument
224 amixer_setup(amixer, NULL, 0, NULL); in amixer_rsc_uninit()
225 rsc_uninit(&amixer->rsc); in amixer_rsc_uninit()
226 amixer->ops = NULL; in amixer_rsc_uninit()
227 amixer->input = NULL; in amixer_rsc_uninit()
228 amixer->sum = NULL; in amixer_rsc_uninit()
234 struct amixer **ramixer) in get_amixer_rsc()
238 struct amixer *amixer; in get_amixer_rsc() local
244 amixer = kzalloc(sizeof(*amixer), GFP_KERNEL); in get_amixer_rsc()
245 if (!amixer) in get_amixer_rsc()
257 amixer->idx[i] = idx; in get_amixer_rsc()
266 err = amixer_rsc_init(amixer, desc, mgr); in get_amixer_rsc()
270 *ramixer = amixer; in get_amixer_rsc()
277 mgr_put_resource(&mgr->mgr, 1, amixer->idx[i]); in get_amixer_rsc()
280 kfree(amixer); in get_amixer_rsc()
284 static int put_amixer_rsc(struct amixer_mgr *mgr, struct amixer *amixer) in put_amixer_rsc() argument
290 for (i = 0; i < amixer->rsc.msr; i++) in put_amixer_rsc()
291 mgr_put_resource(&mgr->mgr, 1, amixer->idx[i]); in put_amixer_rsc()
294 amixer_rsc_uninit(amixer); in put_amixer_rsc()
295 kfree(amixer); in put_amixer_rsc()