Lines Matching refs:mixer

111 	vfree(chip->mixer.array_saved);  in lola_free_mixer()
130 chip->mixer.nid = nid; in lola_init_mixer_widget()
131 chip->mixer.caps = val; in lola_init_mixer_widget()
132 chip->mixer.array = (struct lola_mixer_array __iomem *) in lola_init_mixer_widget()
136 chip->mixer.array_saved = vmalloc(sizeof(struct lola_mixer_array)); in lola_init_mixer_widget()
139 chip->mixer.src_stream_outs = chip->pcm[PLAY].num_streams; in lola_init_mixer_widget()
140 chip->mixer.src_phys_ins = chip->pin[CAPT].num_pins; in lola_init_mixer_widget()
143 chip->mixer.dest_stream_ins = chip->pcm[CAPT].num_streams; in lola_init_mixer_widget()
144 chip->mixer.dest_phys_outs = chip->pin[PLAY].num_pins; in lola_init_mixer_widget()
149 chip->mixer.src_stream_out_ofs = chip->mixer.src_phys_ins + in lola_init_mixer_widget()
151 chip->mixer.dest_phys_out_ofs = chip->mixer.dest_stream_ins + in lola_init_mixer_widget()
202 if (chip->mixer.src_stream_out_ofs > MAX_AUDIO_INOUT_COUNT || in lola_init_mixer_widget()
203 chip->mixer.dest_phys_out_ofs > MAX_STREAM_IN_COUNT) { in lola_init_mixer_widget()
208 chip->mixer.src_mask = ((1U << chip->mixer.src_phys_ins) - 1) | in lola_init_mixer_widget()
209 (((1U << chip->mixer.src_stream_outs) - 1) in lola_init_mixer_widget()
210 << chip->mixer.src_stream_out_ofs); in lola_init_mixer_widget()
211 chip->mixer.dest_mask = ((1U << chip->mixer.dest_stream_ins) - 1) | in lola_init_mixer_widget()
212 (((1U << chip->mixer.dest_phys_outs) - 1) in lola_init_mixer_widget()
213 << chip->mixer.dest_phys_out_ofs); in lola_init_mixer_widget()
216 chip->mixer.src_mask, chip->mixer.dest_mask); in lola_init_mixer_widget()
226 if (!(chip->mixer.src_mask & (1 << id))) in lola_mixer_set_src_gain()
228 oldval = val = readl(&chip->mixer.array->src_gain_enable); in lola_mixer_set_src_gain()
235 (gain == readw(&chip->mixer.array->src_gain[id]))) in lola_mixer_set_src_gain()
241 writew(gain, &chip->mixer.array->src_gain[id]); in lola_mixer_set_src_gain()
242 writel(val, &chip->mixer.array->src_gain_enable); in lola_mixer_set_src_gain()
245 return lola_codec_write(chip, chip->mixer.nid, in lola_mixer_set_src_gain()
255 if ((chip->mixer.src_mask & mask) != mask)
259 writew(*gains, &chip->mixer.array->src_gain[i]);
263 writel(mask, &chip->mixer.array->src_gain_enable);
265 if (chip->mixer.caps & LOLA_PEAK_METER_CAN_AGC_MASK) {
267 return lola_codec_write(chip, chip->mixer.nid,
273 lola_codec_write(chip, chip->mixer.nid,
287 if (!(chip->mixer.src_mask & (1 << src)) || in lola_mixer_set_mapping_gain()
288 !(chip->mixer.dest_mask & (1 << dest))) in lola_mixer_set_mapping_gain()
291 writew(gain, &chip->mixer.array->dest_mix_gain[dest][src]); in lola_mixer_set_mapping_gain()
292 val = readl(&chip->mixer.array->dest_mix_gain_enable[dest]); in lola_mixer_set_mapping_gain()
297 writel(val, &chip->mixer.array->dest_mix_gain_enable[dest]); in lola_mixer_set_mapping_gain()
299 return lola_codec_write(chip, chip->mixer.nid, LOLA_VERB_SET_MIX_GAIN, in lola_mixer_set_mapping_gain()
309 if (!(chip->mixer.dest_mask & (1 << id)) ||
310 (chip->mixer.src_mask & mask) != mask)
314 writew(*gains, &chip->mixer.array->dest_mix_gain[id][i]);
318 writel(mask, &chip->mixer.array->dest_mix_gain_enable[id]);
321 return lola_codec_write(chip, chip->mixer.nid,
353 if (chip->mixer.array_saved) { in lola_save_mixer()
355 memcpy_fromio(chip->mixer.array_saved, chip->mixer.array, in lola_save_mixer()
356 sizeof(*chip->mixer.array)); in lola_save_mixer()
366 if (chip->mixer.array_saved) { in lola_restore_mixer()
368 memcpy_toio(chip->mixer.array, chip->mixer.array_saved, in lola_restore_mixer()
369 sizeof(*chip->mixer.array)); in lola_restore_mixer()
373 for (i = 0; i < chip->mixer.src_phys_ins; i++) in lola_restore_mixer()
374 lola_codec_write(chip, chip->mixer.nid, in lola_restore_mixer()
377 for (i = 0; i < chip->mixer.src_stream_outs; i++) in lola_restore_mixer()
378 lola_codec_write(chip, chip->mixer.nid, in lola_restore_mixer()
380 chip->mixer.src_stream_out_ofs + i, 0); in lola_restore_mixer()
381 for (i = 0; i < chip->mixer.dest_stream_ins; i++) in lola_restore_mixer()
382 lola_codec_write(chip, chip->mixer.nid, in lola_restore_mixer()
385 for (i = 0; i < chip->mixer.dest_phys_outs; i++) in lola_restore_mixer()
386 lola_codec_write(chip, chip->mixer.nid, in lola_restore_mixer()
388 chip->mixer.dest_phys_out_ofs + i, 0); in lola_restore_mixer()
470 memset_io(chip->mixer.array, 0, sizeof(*chip->mixer.array)); in init_mixer_values()
472 for (i = 0; i < chip->mixer.dest_stream_ins; i++) in init_mixer_values()
473 lola_codec_write(chip, chip->mixer.nid, in init_mixer_values()
477 for (i = 0; i < chip->mixer.dest_phys_outs; i++) in init_mixer_values()
478 lola_codec_write(chip, chip->mixer.nid, in init_mixer_values()
480 chip->mixer.dest_phys_out_ofs + i, 0); in init_mixer_values()
483 for (i = 0; i < chip->mixer.src_phys_ins; i++) in init_mixer_values()
487 for (i = 0; i < chip->mixer.src_stream_outs; i++) in init_mixer_values()
489 i + chip->mixer.src_stream_out_ofs, in init_mixer_values()
492 for (i = 0; i < chip->mixer.dest_stream_ins; i++) { in init_mixer_values()
493 int src = i % chip->mixer.src_phys_ins; in init_mixer_values()
500 for (i = 0; i < chip->mixer.src_stream_outs; i++) { in init_mixer_values()
501 int src = chip->mixer.src_stream_out_ofs + i; in init_mixer_values()
502 int dst = chip->mixer.dest_phys_out_ofs + in init_mixer_values()
503 i % chip->mixer.dest_phys_outs; in init_mixer_values()
692 mask = readl(&chip->mixer.array->src_gain_enable); in lola_src_gain_get()
696 if (!(chip->mixer.src_mask & (1 << idx))) in lola_src_gain_get()
699 val = readw(&chip->mixer.array->src_gain[idx]) + 1; in lola_src_gain_get()
775 mask = readl(&chip->mixer.array->dest_mix_gain_enable[dst]);
779 if (!(chip->mixer.src_mask & (1 << src)))
782 val = readw(&chip->mixer.array->dest_mix_gain[dst][src]) + 1;
855 err = create_src_gain_mixer(chip, chip->mixer.src_phys_ins, 0, in lola_create_mixer()
859 err = create_src_gain_mixer(chip, chip->mixer.src_stream_outs, in lola_create_mixer()
860 chip->mixer.src_stream_out_ofs, in lola_create_mixer()
867 chip->mixer.src_phys_ins, 0, in lola_create_mixer()
868 chip->mixer.dest_stream_ins, 0, in lola_create_mixer()
873 chip->mixer.src_stream_outs, in lola_create_mixer()
874 chip->mixer.src_stream_out_ofs, in lola_create_mixer()
875 chip->mixer.dest_stream_ins, 0, in lola_create_mixer()
880 chip->mixer.src_phys_ins, 0, in lola_create_mixer()
881 chip->mixer.dest_phys_outs, in lola_create_mixer()
882 chip->mixer.dest_phys_out_ofs, in lola_create_mixer()
887 chip->mixer.src_stream_outs, in lola_create_mixer()
888 chip->mixer.src_stream_out_ofs, in lola_create_mixer()
889 chip->mixer.dest_phys_outs, in lola_create_mixer()
890 chip->mixer.dest_phys_out_ofs, in lola_create_mixer()