• Home
  • Raw
  • Download

Lines Matching refs:chip

154 static void ak4396_write(struct oxygen *chip, unsigned int codec,  in ak4396_write()  argument
161 struct generic_data *data = chip->model_data; in ak4396_write()
163 oxygen_write_spi(chip, OXYGEN_SPI_TRIGGER | in ak4396_write()
172 static void ak4396_write_cached(struct oxygen *chip, unsigned int codec, in ak4396_write_cached() argument
175 struct generic_data *data = chip->model_data; in ak4396_write_cached()
178 ak4396_write(chip, codec, reg, value); in ak4396_write_cached()
181 static void wm8785_write(struct oxygen *chip, u8 reg, unsigned int value) in wm8785_write() argument
183 struct generic_data *data = chip->model_data; in wm8785_write()
185 oxygen_write_spi(chip, OXYGEN_SPI_TRIGGER | in wm8785_write()
195 static void ak4396_registers_init(struct oxygen *chip) in ak4396_registers_init() argument
197 struct generic_data *data = chip->model_data; in ak4396_registers_init()
201 ak4396_write(chip, i, AK4396_CONTROL_1, in ak4396_registers_init()
203 ak4396_write(chip, i, AK4396_CONTROL_2, in ak4396_registers_init()
205 ak4396_write(chip, i, AK4396_CONTROL_3, in ak4396_registers_init()
207 ak4396_write(chip, i, AK4396_LCH_ATT, in ak4396_registers_init()
208 chip->dac_volume[i * 2]); in ak4396_registers_init()
209 ak4396_write(chip, i, AK4396_RCH_ATT, in ak4396_registers_init()
210 chip->dac_volume[i * 2 + 1]); in ak4396_registers_init()
214 static void ak4396_init(struct oxygen *chip) in ak4396_init() argument
216 struct generic_data *data = chip->model_data; in ak4396_init()
218 data->dacs = chip->model.dac_channels_pcm / 2; in ak4396_init()
221 ak4396_registers_init(chip); in ak4396_init()
222 snd_component_add(chip->card, "AK4396"); in ak4396_init()
225 static void ak5385_init(struct oxygen *chip) in ak5385_init() argument
227 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_AK5385_DFS_MASK); in ak5385_init()
228 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, GPIO_AK5385_DFS_MASK); in ak5385_init()
229 snd_component_add(chip->card, "AK5385"); in ak5385_init()
232 static void wm8785_registers_init(struct oxygen *chip) in wm8785_registers_init() argument
234 struct generic_data *data = chip->model_data; in wm8785_registers_init()
236 wm8785_write(chip, WM8785_R7, 0); in wm8785_registers_init()
237 wm8785_write(chip, WM8785_R0, data->wm8785_regs[0]); in wm8785_registers_init()
238 wm8785_write(chip, WM8785_R2, data->wm8785_regs[2]); in wm8785_registers_init()
241 static void wm8785_init(struct oxygen *chip) in wm8785_init() argument
243 struct generic_data *data = chip->model_data; in wm8785_init()
248 wm8785_registers_init(chip); in wm8785_init()
249 snd_component_add(chip->card, "WM8785"); in wm8785_init()
252 static void generic_init(struct oxygen *chip) in generic_init() argument
254 ak4396_init(chip); in generic_init()
255 wm8785_init(chip); in generic_init()
258 static void meridian_init(struct oxygen *chip) in meridian_init() argument
260 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, in meridian_init()
262 oxygen_write16_masked(chip, OXYGEN_GPIO_DATA, in meridian_init()
264 ak4396_init(chip); in meridian_init()
265 ak5385_init(chip); in meridian_init()
268 static void claro_enable_hp(struct oxygen *chip) in claro_enable_hp() argument
271 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_CLARO_HP); in claro_enable_hp()
272 oxygen_set_bits16(chip, OXYGEN_GPIO_DATA, GPIO_CLARO_HP); in claro_enable_hp()
275 static void claro_init(struct oxygen *chip) in claro_init() argument
277 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_CLARO_DIG_COAX); in claro_init()
278 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, GPIO_CLARO_DIG_COAX); in claro_init()
279 ak4396_init(chip); in claro_init()
280 wm8785_init(chip); in claro_init()
281 claro_enable_hp(chip); in claro_init()
284 static void claro_halo_init(struct oxygen *chip) in claro_halo_init() argument
286 oxygen_set_bits16(chip, OXYGEN_GPIO_CONTROL, GPIO_CLARO_DIG_COAX); in claro_halo_init()
287 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, GPIO_CLARO_DIG_COAX); in claro_halo_init()
288 ak4396_init(chip); in claro_halo_init()
289 ak5385_init(chip); in claro_halo_init()
290 claro_enable_hp(chip); in claro_halo_init()
293 static void fantasia_init(struct oxygen *chip) in fantasia_init() argument
295 ak4396_init(chip); in fantasia_init()
296 snd_component_add(chip->card, "CS5340"); in fantasia_init()
299 static void stereo_output_init(struct oxygen *chip) in stereo_output_init() argument
301 ak4396_init(chip); in stereo_output_init()
304 static void generic_cleanup(struct oxygen *chip) in generic_cleanup() argument
308 static void claro_disable_hp(struct oxygen *chip) in claro_disable_hp() argument
310 oxygen_clear_bits16(chip, OXYGEN_GPIO_DATA, GPIO_CLARO_HP); in claro_disable_hp()
313 static void claro_cleanup(struct oxygen *chip) in claro_cleanup() argument
315 claro_disable_hp(chip); in claro_cleanup()
318 static void claro_suspend(struct oxygen *chip) in claro_suspend() argument
320 claro_disable_hp(chip); in claro_suspend()
323 static void generic_resume(struct oxygen *chip) in generic_resume() argument
325 ak4396_registers_init(chip); in generic_resume()
326 wm8785_registers_init(chip); in generic_resume()
329 static void meridian_resume(struct oxygen *chip) in meridian_resume() argument
331 ak4396_registers_init(chip); in meridian_resume()
334 static void claro_resume(struct oxygen *chip) in claro_resume() argument
336 ak4396_registers_init(chip); in claro_resume()
337 claro_enable_hp(chip); in claro_resume()
340 static void stereo_resume(struct oxygen *chip) in stereo_resume() argument
342 ak4396_registers_init(chip); in stereo_resume()
345 static void set_ak4396_params(struct oxygen *chip, in set_ak4396_params() argument
348 struct generic_data *data = chip->model_data; in set_ak4396_params()
364 ak4396_write(chip, i, AK4396_CONTROL_1, in set_ak4396_params()
366 ak4396_write(chip, i, AK4396_CONTROL_2, value); in set_ak4396_params()
367 ak4396_write(chip, i, AK4396_CONTROL_1, in set_ak4396_params()
373 static void update_ak4396_volume(struct oxygen *chip) in update_ak4396_volume() argument
375 struct generic_data *data = chip->model_data; in update_ak4396_volume()
379 ak4396_write_cached(chip, i, AK4396_LCH_ATT, in update_ak4396_volume()
380 chip->dac_volume[i * 2]); in update_ak4396_volume()
381 ak4396_write_cached(chip, i, AK4396_RCH_ATT, in update_ak4396_volume()
382 chip->dac_volume[i * 2 + 1]); in update_ak4396_volume()
386 static void update_ak4396_mute(struct oxygen *chip) in update_ak4396_mute() argument
388 struct generic_data *data = chip->model_data; in update_ak4396_mute()
393 if (chip->dac_mute) in update_ak4396_mute()
396 ak4396_write_cached(chip, i, AK4396_CONTROL_2, value); in update_ak4396_mute()
399 static void set_wm8785_params(struct oxygen *chip, in set_wm8785_params() argument
402 struct generic_data *data = chip->model_data; in set_wm8785_params()
413 wm8785_write(chip, WM8785_R7, 0); in set_wm8785_params()
414 wm8785_write(chip, WM8785_R0, value); in set_wm8785_params()
415 wm8785_write(chip, WM8785_R2, data->wm8785_regs[2]); in set_wm8785_params()
419 static void set_ak5385_params(struct oxygen *chip, in set_ak5385_params() argument
430 oxygen_write16_masked(chip, OXYGEN_GPIO_DATA, in set_ak5385_params()
434 static void set_no_params(struct oxygen *chip, struct snd_pcm_hw_params *params) in set_no_params() argument
451 struct oxygen *chip = ctl->private_data; in rolloff_get() local
452 struct generic_data *data = chip->model_data; in rolloff_get()
462 struct oxygen *chip = ctl->private_data; in rolloff_put() local
463 struct generic_data *data = chip->model_data; in rolloff_put()
468 mutex_lock(&chip->mutex); in rolloff_put()
477 ak4396_write(chip, i, AK4396_CONTROL_2, reg); in rolloff_put()
479 mutex_unlock(&chip->mutex); in rolloff_put()
502 struct oxygen *chip = ctl->private_data; in hpf_get() local
503 struct generic_data *data = chip->model_data; in hpf_get()
512 struct oxygen *chip = ctl->private_data; in hpf_put() local
513 struct generic_data *data = chip->model_data; in hpf_put()
517 mutex_lock(&chip->mutex); in hpf_put()
523 wm8785_write(chip, WM8785_R2, reg); in hpf_put()
524 mutex_unlock(&chip->mutex); in hpf_put()
555 struct oxygen *chip = ctl->private_data; in meridian_dig_source_get() local
558 !!(oxygen_read16(chip, OXYGEN_GPIO_DATA) & in meridian_dig_source_get()
566 struct oxygen *chip = ctl->private_data; in claro_dig_source_get() local
569 !!(oxygen_read16(chip, OXYGEN_GPIO_DATA) & in claro_dig_source_get()
577 struct oxygen *chip = ctl->private_data; in meridian_dig_source_put() local
581 mutex_lock(&chip->mutex); in meridian_dig_source_put()
582 old_reg = oxygen_read16(chip, OXYGEN_GPIO_DATA); in meridian_dig_source_put()
590 oxygen_write16(chip, OXYGEN_GPIO_DATA, new_reg); in meridian_dig_source_put()
591 mutex_unlock(&chip->mutex); in meridian_dig_source_put()
598 struct oxygen *chip = ctl->private_data; in claro_dig_source_put() local
602 mutex_lock(&chip->mutex); in claro_dig_source_put()
603 old_reg = oxygen_read16(chip, OXYGEN_GPIO_DATA); in claro_dig_source_put()
609 oxygen_write16(chip, OXYGEN_GPIO_DATA, new_reg); in claro_dig_source_put()
610 mutex_unlock(&chip->mutex); in claro_dig_source_put()
630 static int generic_mixer_init(struct oxygen *chip) in generic_mixer_init() argument
632 return snd_ctl_add(chip->card, snd_ctl_new1(&rolloff_control, chip)); in generic_mixer_init()
635 static int generic_wm8785_mixer_init(struct oxygen *chip) in generic_wm8785_mixer_init() argument
639 err = generic_mixer_init(chip); in generic_wm8785_mixer_init()
642 err = snd_ctl_add(chip->card, snd_ctl_new1(&hpf_control, chip)); in generic_wm8785_mixer_init()
648 static int meridian_mixer_init(struct oxygen *chip) in meridian_mixer_init() argument
652 err = generic_mixer_init(chip); in meridian_mixer_init()
655 err = snd_ctl_add(chip->card, in meridian_mixer_init()
656 snd_ctl_new1(&meridian_dig_source_control, chip)); in meridian_mixer_init()
662 static int claro_mixer_init(struct oxygen *chip) in claro_mixer_init() argument
666 err = generic_wm8785_mixer_init(chip); in claro_mixer_init()
669 err = snd_ctl_add(chip->card, in claro_mixer_init()
670 snd_ctl_new1(&claro_dig_source_control, chip)); in claro_mixer_init()
676 static int claro_halo_mixer_init(struct oxygen *chip) in claro_halo_mixer_init() argument
680 err = generic_mixer_init(chip); in claro_halo_mixer_init()
683 err = snd_ctl_add(chip->card, in claro_halo_mixer_init()
684 snd_ctl_new1(&claro_dig_source_control, chip)); in claro_halo_mixer_init()
690 static void dump_ak4396_registers(struct oxygen *chip, in dump_ak4396_registers() argument
693 struct generic_data *data = chip->model_data; in dump_ak4396_registers()
704 static void dump_wm8785_registers(struct oxygen *chip, in dump_wm8785_registers() argument
707 struct generic_data *data = chip->model_data; in dump_wm8785_registers()
716 static void dump_oxygen_registers(struct oxygen *chip, in dump_oxygen_registers() argument
719 dump_ak4396_registers(chip, buffer); in dump_oxygen_registers()
720 dump_wm8785_registers(chip, buffer); in dump_oxygen_registers()
728 .chip = "CMI8788",
759 static int get_oxygen_model(struct oxygen *chip, in get_oxygen_model() argument
772 chip->model = model_generic; in get_oxygen_model()
776 chip->model.init = meridian_init; in get_oxygen_model()
777 chip->model.mixer_init = meridian_mixer_init; in get_oxygen_model()
778 chip->model.resume = meridian_resume; in get_oxygen_model()
779 chip->model.set_adc_params = set_ak5385_params; in get_oxygen_model()
780 chip->model.dump_registers = dump_ak4396_registers; in get_oxygen_model()
781 chip->model.device_config = PLAYBACK_0_TO_I2S | in get_oxygen_model()
786 chip->model.device_config |= AC97_CD_INPUT; in get_oxygen_model()
789 chip->model.init = claro_init; in get_oxygen_model()
790 chip->model.mixer_init = claro_mixer_init; in get_oxygen_model()
791 chip->model.cleanup = claro_cleanup; in get_oxygen_model()
792 chip->model.suspend = claro_suspend; in get_oxygen_model()
793 chip->model.resume = claro_resume; in get_oxygen_model()
796 chip->model.init = claro_halo_init; in get_oxygen_model()
797 chip->model.mixer_init = claro_halo_mixer_init; in get_oxygen_model()
798 chip->model.cleanup = claro_cleanup; in get_oxygen_model()
799 chip->model.suspend = claro_suspend; in get_oxygen_model()
800 chip->model.resume = claro_resume; in get_oxygen_model()
801 chip->model.set_adc_params = set_ak5385_params; in get_oxygen_model()
802 chip->model.dump_registers = dump_ak4396_registers; in get_oxygen_model()
803 chip->model.device_config = PLAYBACK_0_TO_I2S | in get_oxygen_model()
812 chip->model.shortname = "C-Media CMI8787"; in get_oxygen_model()
813 chip->model.chip = "CMI8787"; in get_oxygen_model()
815 chip->model.init = fantasia_init; in get_oxygen_model()
817 chip->model.init = stereo_output_init; in get_oxygen_model()
818 chip->model.resume = stereo_resume; in get_oxygen_model()
819 chip->model.mixer_init = generic_mixer_init; in get_oxygen_model()
820 chip->model.set_adc_params = set_no_params; in get_oxygen_model()
821 chip->model.dump_registers = dump_ak4396_registers; in get_oxygen_model()
822 chip->model.device_config = PLAYBACK_0_TO_I2S | in get_oxygen_model()
825 chip->model.device_config |= CAPTURE_0_FROM_I2S_1; in get_oxygen_model()
826 chip->model.adc_mclks = OXYGEN_MCLKS(256, 128, 128); in get_oxygen_model()
828 chip->model.dac_channels_pcm = 2; in get_oxygen_model()
829 chip->model.dac_channels_mixer = 2; in get_oxygen_model()
832 chip->model = model_xonar_dg; in get_oxygen_model()
833 chip->model.shortname = "Xonar DG"; in get_oxygen_model()
836 chip->model = model_xonar_dg; in get_oxygen_model()
837 chip->model.shortname = "Xonar DGX"; in get_oxygen_model()
843 chip->model.misc_flags = OXYGEN_MISC_MIDI; in get_oxygen_model()
844 chip->model.device_config |= MIDI_OUTPUT | MIDI_INPUT; in get_oxygen_model()
847 chip->model.shortname = names[id->driver_data]; in get_oxygen_model()