/linux/sound/pci/hda/ |
H A D | hda_jack.c | 73 struct hda_jack_tbl *jack = codec->jacktbl.list; in snd_hda_jack_tbl_get_mst() local 76 if (!nid || !jack) in snd_hda_jack_tbl_get_mst() 78 for (i = 0; i < codec->jacktbl.used; i++, jack++) in snd_hda_jack_tbl_get_mst() 79 if (jack->nid == nid && jack->dev_id == dev_id) in snd_hda_jack_tbl_get_mst() 80 return jack; in snd_hda_jack_tbl_get_mst() 95 struct hda_jack_tbl *jack = codec->jacktbl.list; in snd_hda_jack_tbl_get_from_tag() local 98 if (!tag || !jack) in snd_hda_jack_tbl_get_from_tag() 100 for (i = 0; i < codec->jacktbl.used; i++, jack++) in snd_hda_jack_tbl_get_from_tag() 101 if (jack->tag == tag && jack->dev_id == dev_id) in snd_hda_jack_tbl_get_from_tag() 102 return jack; in snd_hda_jack_tbl_get_from_tag() [all …]
|
/linux/sound/core/ |
H A D | jack.c | 14 #include <sound/jack.h> 20 struct list_head list; /* list of controls belong to the same jack */ 22 struct snd_jack *jack; /* pointer to struct snd_jack */ member 40 static void snd_jack_remove_debugfs(struct snd_jack *jack); in snd_jack_dev_disconnect() 44 struct snd_jack *jack = device->device_data; in snd_jack_dev_disconnect() 46 snd_jack_remove_debugfs(jack); in snd_jack_dev_disconnect() 49 guard(mutex)(&jack->input_dev_lock); in snd_jack_dev_disconnect() 50 if (!jack->input_dev) in snd_jack_dev_disconnect() 55 if (jack->registered) in snd_jack_dev_disconnect() 56 input_unregister_device(jack in snd_jack_dev_disconnect() 43 struct snd_jack *jack = device->device_data; snd_jack_dev_disconnect() local 62 struct snd_jack *jack = device->device_data; snd_jack_dev_free() local 85 struct snd_jack *jack = device->device_data; snd_jack_dev_register() local 126 struct snd_jack *jack; snd_jack_inject_report() local 340 snd_jack_debugfs_add_inject_node(struct snd_jack * jack,struct snd_jack_kctl * jack_kctl) snd_jack_debugfs_add_inject_node() argument 390 snd_jack_debugfs_add_inject_node(struct snd_jack * jack,struct snd_jack_kctl * jack_kctl) snd_jack_debugfs_add_inject_node() argument 413 snd_jack_kctl_add(struct snd_jack * jack,struct snd_jack_kctl * jack_kctl) snd_jack_kctl_add() argument 462 snd_jack_add_new_kctl(struct snd_jack * jack,const char * name,int mask) snd_jack_add_new_kctl() argument 493 struct snd_jack *jack; snd_jack_new() local 580 snd_jack_set_parent(struct snd_jack * jack,struct device * parent) snd_jack_set_parent() argument 614 snd_jack_set_key(struct snd_jack * jack,enum snd_jack_types type,int keytype) snd_jack_set_key() argument 639 snd_jack_report(struct snd_jack * jack,int status) snd_jack_report() argument [all...] |
/linux/sound/soc/ |
H A D | soc-jack.c | 33 void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask) in snd_soc_jack_report() argument 39 if (!jack || !jack->jack) in snd_soc_jack_report() 41 trace_snd_soc_jack_report(jack, mask, status); in snd_soc_jack_report() 43 dapm = &jack->card->dapm; in snd_soc_jack_report() 45 mutex_lock(&jack->mutex); in snd_soc_jack_report() 47 jack->status &= ~mask; in snd_soc_jack_report() 48 jack->status |= status & mask; in snd_soc_jack_report() 50 trace_snd_soc_jack_notify(jack, status); in snd_soc_jack_report() 52 list_for_each_entry(pin, &jack->pins, list) { in snd_soc_jack_report() 53 int enable = pin->mask & jack->status; in snd_soc_jack_report() [all …]
|
H A D | soc-card.c | 12 #include <sound/jack.h> 43 struct snd_soc_jack *jack, bool initial_kctl) in jack_new() argument 45 mutex_init(&jack->mutex); in jack_new() 46 jack->card = card; in jack_new() 47 INIT_LIST_HEAD(&jack->pins); in jack_new() 48 INIT_LIST_HEAD(&jack->jack_zones); in jack_new() 49 BLOCKING_INIT_NOTIFIER_HEAD(&jack->notifier); in jack_new() 51 return snd_jack_new(card->snd_card, id, type, &jack->jack, initial_kctl, false); in jack_new() 55 * snd_soc_card_jack_new - Create a new jack withou 70 snd_soc_card_jack_new(struct snd_soc_card * card,const char * id,int type,struct snd_soc_jack * jack) snd_soc_card_jack_new() argument 93 snd_soc_card_jack_new_pins(struct snd_soc_card * card,const char * id,int type,struct snd_soc_jack * jack,struct snd_soc_jack_pin * pins,unsigned int num_pins) snd_soc_card_jack_new_pins() argument [all...] |
/linux/Documentation/sound/soc/ |
H A D | jack.rst | 2 ASoC jack detection 6 the kernel side of which can be seen in include/sound/jack.h. ASoC 9 - It allows more than one jack detection method to work together on one 10 user visible jack. In embedded systems it is common for multiple 11 to be present on a single jack but handled by separate bits of 15 automatically based on the detected jack status (eg, turning off the 19 together: the jack itself represented by a struct snd_soc_jack, sets of 21 code providing jack reporting mechanisms. 23 For example, a system may have a stereo headset jack with two reporting 27 headphone when the headphone jack status changes. [all …]
|
/linux/include/sound/ |
H A D | soc-jack.h | 70 struct snd_soc_jack *jack; member 82 struct snd_jack *jack; member 91 void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask); 92 int snd_soc_jack_add_pins(struct snd_soc_jack *jack, int count, 94 void snd_soc_jack_notifier_register(struct snd_soc_jack *jack, 96 void snd_soc_jack_notifier_unregister(struct snd_soc_jack *jack, 98 int snd_soc_jack_add_zones(struct snd_soc_jack *jack, int count, 100 int snd_soc_jack_get_type(struct snd_soc_jack *jack, int micbias_voltage); 102 int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, 105 struct snd_soc_jack *jack, [all …]
|
H A D | jack.h | 79 struct snd_jack **jack, bool initial_kctl, bool phantom_jack); 80 int snd_jack_add_new_kctl(struct snd_jack *jack, const char * name, int mask); 82 void snd_jack_set_parent(struct snd_jack *jack, struct device *parent); 83 int snd_jack_set_key(struct snd_jack *jack, enum snd_jack_types type, 86 void snd_jack_report(struct snd_jack *jack, int status); 90 struct snd_jack **jack, bool initial_kctl, bool phantom_jack) in snd_jack_new() argument 95 static inline int snd_jack_add_new_kctl(struct snd_jack *jack, const char * name, int mask) in snd_jack_add_new_kctl() argument 100 static inline void snd_jack_report(struct snd_jack *jack, int status) in snd_jack_report() argument 107 static inline void snd_jack_set_parent(struct snd_jack *jack, in snd_jack_set_parent() argument 112 static inline int snd_jack_set_key(struct snd_jack *jack, in snd_jack_set_key() argument
|
/linux/Documentation/sound/designs/ |
H A D | jack-controls.rst | 13 The old ALSA jack code only created input devices for each registered 14 jack. These jack input devices are not readable by userspace devices 17 The new jack code creates embedded jack kcontrols for each jack that 21 intelligently based on jack insertion or removal events. 26 Each jack will have a kcontrol list, so that we can create a kcontrol 27 and attach it to the jack, at jack creation stage. We can also add a 28 kcontrol to an existing jack, at anytime when required. 32 How to use jack kcontrols 39 if true, create a kcontrol and add it to the jack list. 44 jack and set initial_kctl to true to create an initial kcontrol with [all …]
|
H A D | jack-injection.rst | 8 Here jack injection means users could inject plugin or plugout events 14 jack or to some audio jacks, we don't need to physically access the 15 machine and plug/unplug physical devices to the audio jack. 17 In this design, an audio jack doesn't equal to a physical audio jack. 18 Sometimes a physical audio jack contains multi functions, and the 20 ``snd_jack`` represents a physical audio jack and the ``jack_kctl`` 21 represents a function, for example a physical jack has two functions: 23 for this jack. The jack injection is implemented based on the 26 To inject events to audio jacks, we need to enable the jack injection 27 via ``sw_inject_enable`` first, once it is enabled, this jack will not [all …]
|
/linux/sound/soc/sdw_utils/ |
H A D | soc_sdw_rt700.c | 43 struct snd_soc_jack *jack; in asoc_sdw_rt700_rtd_init() local 74 jack = &ctx->sdw_headset; in asoc_sdw_rt700_rtd_init() 76 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in asoc_sdw_rt700_rtd_init() 77 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in asoc_sdw_rt700_rtd_init() 78 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in asoc_sdw_rt700_rtd_init() 79 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in asoc_sdw_rt700_rtd_init() 81 ret = snd_soc_component_set_jack(component, jack, NULL); in asoc_sdw_rt700_rtd_init()
|
H A D | soc_sdw_rt5682.c | 45 struct snd_soc_jack *jack; in asoc_sdw_rt5682_rtd_init() local 76 jack = &ctx->sdw_headset; in asoc_sdw_rt5682_rtd_init() 78 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in asoc_sdw_rt5682_rtd_init() 79 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in asoc_sdw_rt5682_rtd_init() 80 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in asoc_sdw_rt5682_rtd_init() 81 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in asoc_sdw_rt5682_rtd_init() 83 ret = snd_soc_component_set_jack(component, jack, NULL); in asoc_sdw_rt5682_rtd_init()
|
H A D | soc_sdw_cs42l42.c | 45 struct snd_soc_jack *jack; in asoc_sdw_cs42l42_rtd_init() local 76 jack = &ctx->sdw_headset; in asoc_sdw_cs42l42_rtd_init() 78 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in asoc_sdw_cs42l42_rtd_init() 79 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); in asoc_sdw_cs42l42_rtd_init() 80 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); in asoc_sdw_cs42l42_rtd_init() 81 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); in asoc_sdw_cs42l42_rtd_init() 83 ret = snd_soc_component_set_jack(component, jack, NULL); in asoc_sdw_cs42l42_rtd_init()
|
H A D | soc_sdw_rt711.c | 69 struct snd_soc_jack *jack; in asoc_sdw_rt711_rtd_init() local 100 jack = &ctx->sdw_headset; in asoc_sdw_rt711_rtd_init() 102 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in asoc_sdw_rt711_rtd_init() 103 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in asoc_sdw_rt711_rtd_init() 104 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in asoc_sdw_rt711_rtd_init() 105 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in asoc_sdw_rt711_rtd_init() 107 ret = snd_soc_component_set_jack(component, jack, NULL); in asoc_sdw_rt711_rtd_init()
|
H A D | soc_sdw_cs42l43.c | 57 struct snd_soc_jack *jack = &ctx->sdw_headset; in asoc_sdw_cs42l43_hs_rtd_init() local 78 jack, soc_jack_pins, in asoc_sdw_cs42l43_hs_rtd_init() 85 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in asoc_sdw_cs42l43_hs_rtd_init() 86 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in asoc_sdw_cs42l43_hs_rtd_init() 87 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in asoc_sdw_cs42l43_hs_rtd_init() 88 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in asoc_sdw_cs42l43_hs_rtd_init() 90 ret = snd_soc_component_set_jack(component, jack, NULL); in asoc_sdw_cs42l43_hs_rtd_init()
|
H A D | soc_sdw_rt_sdca_jack_common.c | 98 struct snd_soc_jack *jack; in asoc_sdw_rt_sdca_jack_rtd_init() local 158 jack = &ctx->sdw_headset; in asoc_sdw_rt_sdca_jack_rtd_init() 160 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in asoc_sdw_rt_sdca_jack_rtd_init() 161 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in asoc_sdw_rt_sdca_jack_rtd_init() 162 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in asoc_sdw_rt_sdca_jack_rtd_init() 163 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in asoc_sdw_rt_sdca_jack_rtd_init() 165 ret = snd_soc_component_set_jack(component, jack, NULL); in asoc_sdw_rt_sdca_jack_rtd_init()
|
/linux/sound/soc/intel/avs/boards/ |
H A D | da7219.c | 98 struct snd_soc_jack *jack; in avs_da7219_codec_init() local 103 jack = snd_soc_card_get_drvdata(card); in avs_da7219_codec_init() 128 jack, pins, num_pins); in avs_da7219_codec_init() 134 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in avs_da7219_codec_init() 135 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); in avs_da7219_codec_init() 136 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); in avs_da7219_codec_init() 137 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); in avs_da7219_codec_init() 139 return snd_soc_component_set_jack(component, jack, NULL); in avs_da7219_codec_init() 217 struct snd_soc_jack *jack; in avs_da7219_probe() local 235 jack = devm_kzalloc(dev, sizeof(*jack), GFP_KERNEL); in avs_da7219_probe() [all …]
|
/linux/sound/soc/codecs/ |
H A D | ts3a227e.c | 25 struct snd_soc_jack *jack; member 159 if (!ts3a227e->jack) in ts3a227e_jack_report() 170 snd_soc_jack_report(ts3a227e->jack, report, TS3A227E_JACK_MASK); in ts3a227e_jack_report() 244 struct snd_soc_jack *jack) in ts3a227e_enable_jack_detect() argument 248 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in ts3a227e_enable_jack_detect() 249 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in ts3a227e_enable_jack_detect() 250 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in ts3a227e_enable_jack_detect() 251 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in ts3a227e_enable_jack_detect() 253 ts3a227e->jack = jack; in ts3a227e_enable_jack_detect() 261 struct snd_soc_jack *jack, void *data) in ts3a227e_set_jack() argument [all …]
|
H A D | es8316.c | 39 struct snd_soc_jack *jack; member 631 if (!es8316->jack) in es8316_irq() 640 if (es8316->jack->status & SND_JACK_MICROPHONE) in es8316_irq() 643 if (es8316->jack->status & SND_JACK_HEADPHONE) { in es8316_irq() 644 snd_soc_jack_report(es8316->jack, 0, in es8316_irq() 648 } else if (!(es8316->jack->status & SND_JACK_HEADPHONE)) { in es8316_irq() 660 snd_soc_jack_report(es8316->jack, in es8316_irq() 666 snd_soc_jack_report(es8316->jack, in es8316_irq() 672 } else if (es8316->jack->status & SND_JACK_MICROPHONE) { in es8316_irq() 676 snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0); in es8316_irq() [all …]
|
/linux/sound/soc/intel/boards/ |
H A D | sof_cs42l42.c | 44 struct snd_soc_jack *jack = &ctx->headset_jack; in sof_cs42l42_init() local 55 jack, in sof_cs42l42_init() 63 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in sof_cs42l42_init() 64 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); in sof_cs42l42_init() 65 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); in sof_cs42l42_init() 66 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); in sof_cs42l42_init() 68 ret = snd_soc_component_set_jack(component, jack, NULL); in sof_cs42l42_init()
|
H A D | sof_nau8825.c | 45 struct snd_soc_jack *jack = &ctx->headset_jack; in sof_nau8825_codec_init() local 56 jack, in sof_nau8825_codec_init() 64 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in sof_nau8825_codec_init() 65 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in sof_nau8825_codec_init() 66 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in sof_nau8825_codec_init() 67 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in sof_nau8825_codec_init() 69 ret = snd_soc_component_set_jack(component, jack, NULL); in sof_nau8825_codec_init()
|
/linux/sound/soc/qcom/ |
H A D | sc7280.c | 42 static void sc7280_jack_free(struct snd_jack *jack) in sc7280_jack_free() argument 44 struct snd_soc_component *component = jack->private_data; in sc7280_jack_free() 67 struct snd_jack *jack; in sc7280_headset_init() local 86 jack = pdata->hs_jack.jack; in sc7280_headset_init() 88 snd_jack_set_key(jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in sc7280_headset_init() 89 snd_jack_set_key(jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in sc7280_headset_init() 90 snd_jack_set_key(jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in sc7280_headset_init() 91 snd_jack_set_key(jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in sc7280_headset_init() 93 jack->private_data = component; in sc7280_headset_init() 94 jack->private_free = sc7280_jack_free; in sc7280_headset_init() [all …]
|
H A D | sdm845.c | 12 #include <sound/jack.h> 35 struct snd_soc_jack jack; member 227 static void sdm845_jack_free(struct snd_jack *jack) in sdm845_jack_free() 229 struct snd_soc_component *component = jack->private_data; in sdm845_jack_free() 242 struct snd_jack *jack; in sdm845_dai_init() 263 &pdata->jack, in sdm845_dai_init() 272 jack = pdata->jack.jack; in sdm845_dai_init() 274 snd_jack_set_key(jack, SND_JACK_BTN_ in sdm845_dai_init() 226 sdm845_jack_free(struct snd_jack * jack) sdm845_jack_free() argument 241 struct snd_jack *jack; sdm845_dai_init() local [all...] |
H A D | common.c | 7 #include <sound/jack.h> 199 struct snd_soc_jack *jack, bool *jack_setup) in qcom_snd_wcd_jack_setup() argument 213 jack, qcom_headset_jack_pins, in qcom_snd_wcd_jack_setup() 221 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_MEDIA); in qcom_snd_wcd_jack_setup() 222 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in qcom_snd_wcd_jack_setup() 223 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in qcom_snd_wcd_jack_setup() 224 snd_jack_set_key(jack in qcom_snd_wcd_jack_setup() [all...] |
/linux/drivers/staging/greybus/ |
H A D | audio_codec.c | 694 struct gbaudio_jack *jack, *n; in gbaudio_init_jack() local 711 &module->headset.jack, headset, 1); in gbaudio_init_jack() 735 &module->button.jack, in gbaudio_init_jack() 754 ret = snd_jack_set_key(module->button.jack.jack, SND_JACK_BTN_0, in gbaudio_init_jack() 763 ret = snd_jack_set_key(module->button.jack.jack, SND_JACK_BTN_1, in gbaudio_init_jack() 772 ret = snd_jack_set_key(module->button.jack.jack, SND_JACK_BTN_2, in gbaudio_init_jack() 781 ret = snd_jack_set_key(module->button.jack.jack, SND_JACK_BTN_3, in gbaudio_init_jack() 798 list_for_each_entry_safe(jack, n, &module->jack_list, list) { in gbaudio_init_jack() 799 snd_device_free(card->snd_card, jack->jack.jack); in gbaudio_init_jack() 800 list_del(&jack->list); in gbaudio_init_jack() [all …]
|
/linux/Documentation/sound/hd-audio/ |
H A D | models.rst | 8 3-jack in back and a headphone out 10 3-jack in back, a HP out and a SPDIF out 12 5-jack in back, 2-jack in front 14 5-jack in back, 2-jack in front, a SPDIF out 16 6-jack in back, 2-jack in front 18 6-jack with a SPDIF out 20 6-jack with headphone jack detection 31 Quirk for FSC S7020 with jack modes and HP mic support 76 Indicates a combined headset (headphone+mic) jack 88 Headset jack, which can also be used as mic-in [all …]
|