Searched refs:tas (Results 1 - 13 of 13) sorted by relevance

/linux-4.4.14/sound/aoa/codecs/
H A DMakefile2 snd-aoa-codec-tas-objs := tas.o
6 obj-$(CONFIG_SND_AOA_TAS) += snd-aoa-codec-tas.o
H A Dtas.c2 * Apple Onboard Audio driver for tas codec
27 * audacity, or recording the tas output via cable
73 MODULE_DESCRIPTION("tas codec driver for snd-aoa");
75 #include "tas.h"
76 #include "tas-gain-table.h"
77 #include "tas-basstreble.h"
81 #define PFX "snd-aoa-codec-tas: "
84 struct tas { struct
102 static int tas_reset_init(struct tas *tas);
104 static struct tas *codec_to_tas(struct aoa_codec *codec) codec_to_tas()
106 return container_of(codec, struct tas, codec); codec_to_tas()
109 static inline int tas_write_reg(struct tas *tas, u8 reg, u8 len, u8 *data) tas_write_reg() argument
112 return i2c_smbus_write_byte_data(tas->i2c, reg, *data); tas_write_reg()
114 return i2c_smbus_write_i2c_block_data(tas->i2c, reg, len, data); tas_write_reg()
117 static void tas3004_set_drc(struct tas *tas) tas3004_set_drc() argument
121 if (tas->drc_enabled) tas3004_set_drc()
126 if (tas->drc_range > 0xef) tas3004_set_drc()
128 else if (tas->drc_range < 0) tas3004_set_drc()
131 val[2] = tas->drc_range; tas3004_set_drc()
136 tas_write_reg(tas, TAS_REG_DRC, 6, val); tas3004_set_drc()
139 static void tas_set_treble(struct tas *tas) tas_set_treble() argument
143 tmp = tas3004_treble(tas->treble); tas_set_treble()
144 tas_write_reg(tas, TAS_REG_TREBLE, 1, &tmp); tas_set_treble()
147 static void tas_set_bass(struct tas *tas) tas_set_bass() argument
151 tmp = tas3004_bass(tas->bass); tas_set_bass()
152 tas_write_reg(tas, TAS_REG_BASS, 1, &tmp); tas_set_bass()
155 static void tas_set_volume(struct tas *tas) tas_set_volume() argument
161 left = tas->cached_volume_l; tas_set_volume()
162 right = tas->cached_volume_r; tas_set_volume()
167 if (tas->mute_l) left = 0; tas_set_volume()
168 if (tas->mute_r) right = 0; tas_set_volume()
184 tas_write_reg(tas, TAS_REG_VOL, 6, block); tas_set_volume()
187 static void tas_set_mixer(struct tas *tas) tas_set_mixer() argument
194 val = tas->mixer_l[i]; tas_set_mixer()
201 tas_write_reg(tas, TAS_REG_LMIX, 9, block); tas_set_mixer()
204 val = tas->mixer_r[i]; tas_set_mixer()
211 tas_write_reg(tas, TAS_REG_RMIX, 9, block); tas_set_mixer()
238 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_vol_get() local
240 mutex_lock(&tas->mtx); tas_snd_vol_get()
241 ucontrol->value.integer.value[0] = tas->cached_volume_l; tas_snd_vol_get()
242 ucontrol->value.integer.value[1] = tas->cached_volume_r; tas_snd_vol_get()
243 mutex_unlock(&tas->mtx); tas_snd_vol_get()
250 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_vol_put() local
259 mutex_lock(&tas->mtx); tas_snd_vol_put()
260 if (tas->cached_volume_l == ucontrol->value.integer.value[0] tas_snd_vol_put()
261 && tas->cached_volume_r == ucontrol->value.integer.value[1]) { tas_snd_vol_put()
262 mutex_unlock(&tas->mtx); tas_snd_vol_put()
266 tas->cached_volume_l = ucontrol->value.integer.value[0]; tas_snd_vol_put()
267 tas->cached_volume_r = ucontrol->value.integer.value[1]; tas_snd_vol_put()
268 if (tas->hw_enabled) tas_snd_vol_put()
269 tas_set_volume(tas); tas_snd_vol_put()
270 mutex_unlock(&tas->mtx); tas_snd_vol_put()
288 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_mute_get() local
290 mutex_lock(&tas->mtx); tas_snd_mute_get()
291 ucontrol->value.integer.value[0] = !tas->mute_l; tas_snd_mute_get()
292 ucontrol->value.integer.value[1] = !tas->mute_r; tas_snd_mute_get()
293 mutex_unlock(&tas->mtx); tas_snd_mute_get()
300 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_mute_put() local
302 mutex_lock(&tas->mtx); tas_snd_mute_put()
303 if (tas->mute_l == !ucontrol->value.integer.value[0] tas_snd_mute_put()
304 && tas->mute_r == !ucontrol->value.integer.value[1]) { tas_snd_mute_put()
305 mutex_unlock(&tas->mtx); tas_snd_mute_put()
309 tas->mute_l = !ucontrol->value.integer.value[0]; tas_snd_mute_put()
310 tas->mute_r = !ucontrol->value.integer.value[1]; tas_snd_mute_put()
311 if (tas->hw_enabled) tas_snd_mute_put()
312 tas_set_volume(tas); tas_snd_mute_put()
313 mutex_unlock(&tas->mtx); tas_snd_mute_put()
339 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_mixer_get() local
342 mutex_lock(&tas->mtx); tas_snd_mixer_get()
343 ucontrol->value.integer.value[0] = tas->mixer_l[idx]; tas_snd_mixer_get()
344 ucontrol->value.integer.value[1] = tas->mixer_r[idx]; tas_snd_mixer_get()
345 mutex_unlock(&tas->mtx); tas_snd_mixer_get()
353 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_mixer_put() local
356 mutex_lock(&tas->mtx); tas_snd_mixer_put()
357 if (tas->mixer_l[idx] == ucontrol->value.integer.value[0] tas_snd_mixer_put()
358 && tas->mixer_r[idx] == ucontrol->value.integer.value[1]) { tas_snd_mixer_put()
359 mutex_unlock(&tas->mtx); tas_snd_mixer_put()
363 tas->mixer_l[idx] = ucontrol->value.integer.value[0]; tas_snd_mixer_put()
364 tas->mixer_r[idx] = ucontrol->value.integer.value[1]; tas_snd_mixer_put()
366 if (tas->hw_enabled) tas_snd_mixer_put()
367 tas_set_mixer(tas); tas_snd_mixer_put()
368 mutex_unlock(&tas->mtx); tas_snd_mixer_put()
399 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_drc_range_get() local
401 mutex_lock(&tas->mtx); tas_snd_drc_range_get()
402 ucontrol->value.integer.value[0] = tas->drc_range; tas_snd_drc_range_get()
403 mutex_unlock(&tas->mtx); tas_snd_drc_range_get()
410 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_drc_range_put() local
416 mutex_lock(&tas->mtx); tas_snd_drc_range_put()
417 if (tas->drc_range == ucontrol->value.integer.value[0]) { tas_snd_drc_range_put()
418 mutex_unlock(&tas->mtx); tas_snd_drc_range_put()
422 tas->drc_range = ucontrol->value.integer.value[0]; tas_snd_drc_range_put()
423 if (tas->hw_enabled) tas_snd_drc_range_put()
424 tas3004_set_drc(tas); tas_snd_drc_range_put()
425 mutex_unlock(&tas->mtx); tas_snd_drc_range_put()
443 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_drc_switch_get() local
445 mutex_lock(&tas->mtx); tas_snd_drc_switch_get()
446 ucontrol->value.integer.value[0] = tas->drc_enabled; tas_snd_drc_switch_get()
447 mutex_unlock(&tas->mtx); tas_snd_drc_switch_get()
454 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_drc_switch_put() local
456 mutex_lock(&tas->mtx); tas_snd_drc_switch_put()
457 if (tas->drc_enabled == ucontrol->value.integer.value[0]) { tas_snd_drc_switch_put()
458 mutex_unlock(&tas->mtx); tas_snd_drc_switch_put()
462 tas->drc_enabled = !!ucontrol->value.integer.value[0]; tas_snd_drc_switch_put()
463 if (tas->hw_enabled) tas_snd_drc_switch_put()
464 tas3004_set_drc(tas); tas_snd_drc_switch_put()
465 mutex_unlock(&tas->mtx); tas_snd_drc_switch_put()
489 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_capture_source_get() local
491 mutex_lock(&tas->mtx); tas_snd_capture_source_get()
492 ucontrol->value.enumerated.item[0] = !!(tas->acr & TAS_ACR_INPUT_B); tas_snd_capture_source_get()
493 mutex_unlock(&tas->mtx); tas_snd_capture_source_get()
500 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_capture_source_put() local
505 mutex_lock(&tas->mtx); tas_snd_capture_source_put()
506 oldacr = tas->acr; tas_snd_capture_source_put()
513 tas->acr &= ~(TAS_ACR_INPUT_B | TAS_ACR_B_MONAUREAL); tas_snd_capture_source_put()
515 tas->acr |= TAS_ACR_INPUT_B | TAS_ACR_B_MONAUREAL | tas_snd_capture_source_put()
517 if (oldacr == tas->acr) { tas_snd_capture_source_put()
518 mutex_unlock(&tas->mtx); tas_snd_capture_source_put()
521 if (tas->hw_enabled) tas_snd_capture_source_put()
522 tas_write_reg(tas, TAS_REG_ACR, 1, &tas->acr); tas_snd_capture_source_put()
523 mutex_unlock(&tas->mtx); tas_snd_capture_source_put()
560 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_treble_get() local
562 mutex_lock(&tas->mtx); tas_snd_treble_get()
563 ucontrol->value.integer.value[0] = tas->treble; tas_snd_treble_get()
564 mutex_unlock(&tas->mtx); tas_snd_treble_get()
571 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_treble_put() local
576 mutex_lock(&tas->mtx); tas_snd_treble_put()
577 if (tas->treble == ucontrol->value.integer.value[0]) { tas_snd_treble_put()
578 mutex_unlock(&tas->mtx); tas_snd_treble_put()
582 tas->treble = ucontrol->value.integer.value[0]; tas_snd_treble_put()
583 if (tas->hw_enabled) tas_snd_treble_put()
584 tas_set_treble(tas); tas_snd_treble_put()
585 mutex_unlock(&tas->mtx); tas_snd_treble_put()
611 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_bass_get() local
613 mutex_lock(&tas->mtx); tas_snd_bass_get()
614 ucontrol->value.integer.value[0] = tas->bass; tas_snd_bass_get()
615 mutex_unlock(&tas->mtx); tas_snd_bass_get()
622 struct tas *tas = snd_kcontrol_chip(kcontrol); tas_snd_bass_put() local
627 mutex_lock(&tas->mtx); tas_snd_bass_put()
628 if (tas->bass == ucontrol->value.integer.value[0]) { tas_snd_bass_put()
629 mutex_unlock(&tas->mtx); tas_snd_bass_put()
633 tas->bass = ucontrol->value.integer.value[0]; tas_snd_bass_put()
634 if (tas->hw_enabled) tas_snd_bass_put()
635 tas_set_bass(tas); tas_snd_bass_put()
636 mutex_unlock(&tas->mtx); tas_snd_bass_put()
672 static int tas_reset_init(struct tas *tas) tas_reset_init() argument
676 tas->codec.gpio->methods->all_amps_off(tas->codec.gpio); tas_reset_init()
678 tas->codec.gpio->methods->set_hw_reset(tas->codec.gpio, 0); tas_reset_init()
680 tas->codec.gpio->methods->set_hw_reset(tas->codec.gpio, 1); tas_reset_init()
682 tas->codec.gpio->methods->set_hw_reset(tas->codec.gpio, 0); tas_reset_init()
684 tas->codec.gpio->methods->all_amps_restore(tas->codec.gpio); tas_reset_init()
687 if (tas_write_reg(tas, TAS_REG_MCS, 1, &tmp)) tas_reset_init()
690 tas->acr |= TAS_ACR_ANALOG_PDOWN; tas_reset_init()
691 if (tas_write_reg(tas, TAS_REG_ACR, 1, &tas->acr)) tas_reset_init()
695 if (tas_write_reg(tas, TAS_REG_MCS2, 1, &tmp)) tas_reset_init()
698 tas3004_set_drc(tas); tas_reset_init()
701 tas->treble = TAS3004_TREBLE_ZERO; tas_reset_init()
702 tas->bass = TAS3004_BASS_ZERO; tas_reset_init()
703 tas_set_treble(tas); tas_reset_init()
704 tas_set_bass(tas); tas_reset_init()
706 tas->acr &= ~TAS_ACR_ANALOG_PDOWN; tas_reset_init()
707 if (tas_write_reg(tas, TAS_REG_ACR, 1, &tas->acr)) tas_reset_init()
717 struct tas *tas = cii->codec_data; tas_switch_clock() local
722 tas->codec.gpio->methods->all_amps_off(tas->codec.gpio); tas_switch_clock()
723 tas->hw_enabled = 0; tas_switch_clock()
727 mutex_lock(&tas->mtx); tas_switch_clock()
728 tas_reset_init(tas); tas_switch_clock()
729 tas_set_volume(tas); tas_switch_clock()
730 tas_set_mixer(tas); tas_switch_clock()
731 tas->hw_enabled = 1; tas_switch_clock()
732 tas->codec.gpio->methods->all_amps_restore(tas->codec.gpio); tas_switch_clock()
733 mutex_unlock(&tas->mtx); tas_switch_clock()
746 static int tas_suspend(struct tas *tas) tas_suspend() argument
748 mutex_lock(&tas->mtx); tas_suspend()
749 tas->hw_enabled = 0; tas_suspend()
750 tas->acr |= TAS_ACR_ANALOG_PDOWN; tas_suspend()
751 tas_write_reg(tas, TAS_REG_ACR, 1, &tas->acr); tas_suspend()
752 mutex_unlock(&tas->mtx); tas_suspend()
756 static int tas_resume(struct tas *tas) tas_resume() argument
759 mutex_lock(&tas->mtx); tas_resume()
760 tas_reset_init(tas); tas_resume()
761 tas_set_volume(tas); tas_resume()
762 tas_set_mixer(tas); tas_resume()
763 tas->hw_enabled = 1; tas_resume()
764 mutex_unlock(&tas->mtx); tas_resume()
799 struct tas *tas = codec_to_tas(codec); tas_init_codec() local
802 if (!tas->codec.gpio || !tas->codec.gpio->methods) { tas_init_codec()
807 mutex_lock(&tas->mtx); tas_init_codec()
808 if (tas_reset_init(tas)) { tas_init_codec()
809 printk(KERN_ERR PFX "tas failed to initialise\n"); tas_init_codec()
810 mutex_unlock(&tas->mtx); tas_init_codec()
813 tas->hw_enabled = 1; tas_init_codec()
814 mutex_unlock(&tas->mtx); tas_init_codec()
816 if (tas->codec.soundbus_dev->attach_codec(tas->codec.soundbus_dev, tas_init_codec()
818 &tas_codec_info, tas)) { tas_init_codec()
819 printk(KERN_ERR PFX "error attaching tas to soundbus\n"); tas_init_codec()
823 if (aoa_snd_device_new(SNDRV_DEV_CODEC, tas, &ops)) { tas_init_codec()
824 printk(KERN_ERR PFX "failed to create tas snd device!\n"); tas_init_codec()
827 err = aoa_snd_ctl_add(snd_ctl_new1(&volume_control, tas)); tas_init_codec()
831 err = aoa_snd_ctl_add(snd_ctl_new1(&mute_control, tas)); tas_init_codec()
835 err = aoa_snd_ctl_add(snd_ctl_new1(&pcm1_control, tas)); tas_init_codec()
839 err = aoa_snd_ctl_add(snd_ctl_new1(&monitor_control, tas)); tas_init_codec()
843 err = aoa_snd_ctl_add(snd_ctl_new1(&capture_source_control, tas)); tas_init_codec()
847 err = aoa_snd_ctl_add(snd_ctl_new1(&drc_range_control, tas)); tas_init_codec()
851 err = aoa_snd_ctl_add(snd_ctl_new1(&drc_switch_control, tas)); tas_init_codec()
855 err = aoa_snd_ctl_add(snd_ctl_new1(&treble_control, tas)); tas_init_codec()
859 err = aoa_snd_ctl_add(snd_ctl_new1(&bass_control, tas)); tas_init_codec()
865 tas->codec.soundbus_dev->detach_codec(tas->codec.soundbus_dev, tas); tas_init_codec()
866 snd_device_free(aoa_get_card(), tas); tas_init_codec() local
872 struct tas *tas = codec_to_tas(codec); tas_exit_codec() local
874 if (!tas->codec.soundbus_dev) tas_exit_codec()
876 tas->codec.soundbus_dev->detach_codec(tas->codec.soundbus_dev, tas); tas_exit_codec()
884 struct tas *tas; tas_i2c_probe() local
886 tas = kzalloc(sizeof(struct tas), GFP_KERNEL); tas_i2c_probe()
888 if (!tas) tas_i2c_probe()
891 mutex_init(&tas->mtx); tas_i2c_probe()
892 tas->i2c = client; tas_i2c_probe()
893 i2c_set_clientdata(client, tas); tas_i2c_probe()
896 tas->drc_range = TAS3004_DRC_MAX / 2; tas_i2c_probe()
898 strlcpy(tas->codec.name, "tas", MAX_CODEC_NAME_LEN); tas_i2c_probe()
899 tas->codec.owner = THIS_MODULE; tas_i2c_probe()
900 tas->codec.init = tas_init_codec; tas_i2c_probe()
901 tas->codec.exit = tas_exit_codec; tas_i2c_probe()
902 tas->codec.node = of_node_get(node); tas_i2c_probe()
904 if (aoa_codec_register(&tas->codec)) { tas_i2c_probe()
908 "snd-aoa-codec-tas: tas found, addr 0x%02x on %s\n", tas_i2c_probe()
912 mutex_destroy(&tas->mtx); tas_i2c_probe()
913 kfree(tas); tas_i2c_probe()
919 struct tas *tas = i2c_get_clientdata(client); tas_i2c_remove() local
922 aoa_codec_unregister(&tas->codec); tas_i2c_remove()
923 of_node_put(tas->codec.node); tas_i2c_remove()
926 tas_write_reg(tas, TAS_REG_ACR, 1, &tmp); tas_i2c_remove()
928 mutex_destroy(&tas->mtx); tas_i2c_remove()
929 kfree(tas); tas_i2c_remove()
H A Dtas.h2 * Apple Onboard Audio driver for tas codec (header)
/linux-4.4.14/drivers/target/
H A Dtarget_core_tmr.c78 static void core_tmr_handle_tas_abort(struct se_cmd *cmd, int tas) core_tmr_handle_tas_abort() argument
113 struct se_session *tmr_sess, int tas) __target_check_io_state()
144 if ((tmr_sess != se_cmd->se_sess) && tas) __target_check_io_state()
298 int tas, core_tmr_drain_state_list()
349 rc = __target_check_io_state(cmd, tmr_sess, tas); core_tmr_drain_state_list()
388 core_tmr_handle_tas_abort(cmd, tas); core_tmr_drain_state_list()
402 int tas; core_tmr_lun_reset() local
414 tas = dev->dev_attrib.emulate_tas; core_tmr_lun_reset()
430 pr_debug("LUN_RESET: %s starting for [%s], tas: %d\n", core_tmr_lun_reset()
432 dev->transport->name, tas); core_tmr_lun_reset()
435 core_tmr_drain_state_list(dev, prout_cmd, tmr_sess, tas, core_tmr_lun_reset()
112 __target_check_io_state(struct se_cmd *se_cmd, struct se_session *tmr_sess, int tas) __target_check_io_state() argument
294 core_tmr_drain_state_list( struct se_device *dev, struct se_cmd *prout_cmd, struct se_session *tmr_sess, int tas, struct list_head *preempt_and_abort_list) core_tmr_drain_state_list() argument
H A Dtarget_core_transport.c2431 static void target_wait_free_cmd(struct se_cmd *cmd, bool *aborted, bool *tas) target_wait_free_cmd() argument
2436 __transport_wait_for_tasks(cmd, true, aborted, tas, &flags); target_wait_free_cmd()
2443 bool aborted = false, tas = false; transport_generic_free_cmd() local
2447 target_wait_free_cmd(cmd, &aborted, &tas); transport_generic_free_cmd()
2449 if (!aborted || tas) transport_generic_free_cmd()
2453 target_wait_free_cmd(cmd, &aborted, &tas); transport_generic_free_cmd()
2465 if (!aborted || tas) transport_generic_free_cmd()
2617 bool tas; target_wait_for_sess_cmds() local
2626 tas = (se_cmd->transport_state & CMD_T_TAS); target_wait_for_sess_cmds()
2630 if (tas) target_wait_for_sess_cmds()
2657 bool *aborted, bool *tas, unsigned long *flags)
2672 *tas = true;
2717 bool ret, aborted = false, tas = false; transport_wait_for_tasks() local
2720 ret = __transport_wait_for_tasks(cmd, false, &aborted, &tas, &flags); transport_wait_for_tasks()
/linux-4.4.14/sound/aoa/fabrics/
H A Dlayout.c176 /* tas on machines without line out */
193 /* tas on machines with neither line out nor line in */
206 /* tas on machines without microphone */
219 /* tas on machines with everything connected */
354 .name = "tas",
361 .name = "tas",
368 .name = "tas",
375 .name = "tas",
382 .name = "tas",
400 .name = "tas",
421 .name = "tas",
427 .name = "tas",
495 .name = "tas",
505 .name = "tas",
535 .name = "tas",
542 .name = "tas",
549 .name = "tas",
/linux-4.4.14/arch/c6x/include/asm/
H A Dcmpxchg.h50 #define tas(ptr) xchg((ptr), 1) macro
/linux-4.4.14/arch/tile/include/asm/
H A Dcmpxchg.h130 #define tas(ptr) xchg((ptr), 1) macro
/linux-4.4.14/arch/frv/include/asm/
H A Dcmpxchg.h72 #define tas(ptr) (xchg((ptr), 1)) macro
/linux-4.4.14/arch/blackfin/include/asm/
H A Dcmpxchg.h131 #define tas(ptr) ((void)xchg((ptr), 1)) macro
/linux-4.4.14/arch/sh/kernel/
H A Ddisassemble.c219 {"tas.b",{A_IND_N},{HEX_4,REG_N,HEX_1,HEX_B}},
/linux-4.4.14/arch/m68k/kernel/
H A Dhead.S2958 tas %a1@
/linux-4.4.14/drivers/media/usb/gspca/
H A Dtopro.c1138 reg_w(gspca_dev, TP6800_R12_SIF_ADDR_S, 0x11); /* tas??? / hv??? */ probe_6810()

Completed in 768 milliseconds