| /Linux-v5.4/sound/core/ |
| D | jack.c | 35 struct snd_jack *jack = device->device_data; in snd_jack_dev_disconnect() local 37 if (!jack->input_dev) in snd_jack_dev_disconnect() 42 if (jack->registered) in snd_jack_dev_disconnect() 43 input_unregister_device(jack->input_dev); in snd_jack_dev_disconnect() 45 input_free_device(jack->input_dev); in snd_jack_dev_disconnect() 46 jack->input_dev = NULL; in snd_jack_dev_disconnect() 53 struct snd_jack *jack = device->device_data; in snd_jack_dev_free() local 57 list_for_each_entry_safe(jack_kctl, tmp_jack_kctl, &jack->kctl_list, list) { in snd_jack_dev_free() 61 if (jack->private_free) in snd_jack_dev_free() 62 jack->private_free(jack); in snd_jack_dev_free() [all …]
|
| /Linux-v5.4/sound/pci/hda/ |
| D | hda_jack.c | 72 struct hda_jack_tbl *jack = codec->jacktbl.list; in snd_hda_jack_tbl_get() local 75 if (!nid || !jack) in snd_hda_jack_tbl_get() 77 for (i = 0; i < codec->jacktbl.used; i++, jack++) in snd_hda_jack_tbl_get() 78 if (jack->nid == nid) in snd_hda_jack_tbl_get() 79 return jack; in snd_hda_jack_tbl_get() 92 struct hda_jack_tbl *jack = codec->jacktbl.list; in snd_hda_jack_tbl_get_from_tag() local 95 if (!tag || !jack) in snd_hda_jack_tbl_get_from_tag() 97 for (i = 0; i < codec->jacktbl.used; i++, jack++) in snd_hda_jack_tbl_get_from_tag() 98 if (jack->tag == tag) in snd_hda_jack_tbl_get_from_tag() 99 return jack; in snd_hda_jack_tbl_get_from_tag() [all …]
|
| /Linux-v5.4/sound/soc/ |
| D | soc-jack.c | 22 struct snd_soc_jack *jack; member 42 struct snd_soc_jack *jack, struct snd_soc_jack_pin *pins, in snd_soc_card_jack_new() argument 47 mutex_init(&jack->mutex); in snd_soc_card_jack_new() 48 jack->card = card; in snd_soc_card_jack_new() 49 INIT_LIST_HEAD(&jack->pins); in snd_soc_card_jack_new() 50 INIT_LIST_HEAD(&jack->jack_zones); in snd_soc_card_jack_new() 51 BLOCKING_INIT_NOTIFIER_HEAD(&jack->notifier); in snd_soc_card_jack_new() 53 ret = snd_jack_new(card->snd_card, id, type, &jack->jack, false, false); in snd_soc_card_jack_new() 58 return snd_soc_jack_add_pins(jack, num_pins, pins); in snd_soc_card_jack_new() 78 void snd_soc_jack_report(struct snd_soc_jack *jack, int status, int mask) in snd_soc_jack_report() argument [all …]
|
| /Linux-v5.4/Documentation/sound/soc/ |
| 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-v5.4/Documentation/sound/designs/ |
| 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 …]
|
| /Linux-v5.4/include/sound/ |
| D | jack.h | 77 struct snd_jack **jack, bool initial_kctl, bool phantom_jack); 78 int snd_jack_add_new_kctl(struct snd_jack *jack, const char * name, int mask); 80 void snd_jack_set_parent(struct snd_jack *jack, struct device *parent); 81 int snd_jack_set_key(struct snd_jack *jack, enum snd_jack_types type, 84 void snd_jack_report(struct snd_jack *jack, int status); 88 struct snd_jack **jack, bool initial_kctl, bool phantom_jack) in snd_jack_new() argument 93 static inline int snd_jack_add_new_kctl(struct snd_jack *jack, const char * name, int mask) in snd_jack_add_new_kctl() argument 98 static inline void snd_jack_report(struct snd_jack *jack, int status) in snd_jack_report() argument 105 static inline void snd_jack_set_parent(struct snd_jack *jack, in snd_jack_set_parent() argument 110 static inline int snd_jack_set_key(struct snd_jack *jack, in snd_jack_set_key() argument
|
| /Linux-v5.4/Documentation/devicetree/bindings/sound/ |
| D | rt5640.txt | 35 - realtek,jack-detect-source 37 0: jack-detect is not used 38 1: Use GPIO1 for jack-detect 39 2: Use JD1_IN4P for jack-detect 40 3: Use JD2_IN4N for jack-detect 41 4: Use GPIO2 for jack-detect 42 5: Use GPIO3 for jack-detect 43 6: Use GPIO4 for jack-detect 45 - realtek,jack-detect-not-inverted 46 bool. Normal jack-detect switches give an inverted signal, set this bool [all …]
|
| D | rt5651.txt | 19 - realtek,jack-detect-source 21 1: Use JD1_1 pin for jack-detect 22 2: Use JD1_2 pin for jack-detect 23 3: Use JD2 pin for jack-detect 25 - realtek,jack-detect-not-inverted 26 bool. Normal jack-detect switches give an inverted (active-low) signal, 27 set this bool in the rare case you've a jack-detect switch which is not
|
| D | da7218.txt | 56 - dlg,jack-rate-us : Time between jack detect measurements (us) 58 - dlg,jack-debounce : Number of debounce measurements taken for jack detect 60 - dlg,jack-threshold-pct : Threshold level for jack detection (% of VDD) 64 - dlg,discharge : Boolean flag, auto discharge of Mic Bias on jack removal 97 dlg,jack-rate-us = <40>; 98 dlg,jack-debounce = <2>; 99 dlg,jack-threshold-pct = <84>;
|
| D | da7219.txt | 49 - dlg,btn-cfg : Periodic button press measurements for 4-pole jack (ms) 53 - dlg,jack-ins-deb : Debounce time for jack insertion (ms) 55 - dlg,jack-det-rate: Jack type detection latency (3/4 pole) 57 - dlg,jack-rem-deb : Debounce time for jack removal (ms) 100 dlg,jack-ins-deb = <20>; 101 dlg,jack-det-rate = "32ms_64ms"; 102 dlg,jack-rem-deb = <1>;
|
| D | qcom,msm8916-wcd-analog.txt | 16 "mbhc_ins_rem_det1" - jack insert removal detect interrupt 1. 19 "mbhc_ins_rem_det" - jack insert removal detect interrupt. 42 - qcom,hphl-jack-type-normally-open: boolean, present if hphl pin on jack is a 44 its assumed that hphl pin on jack is NC 46 - qcom,gnd-jack-type-normally-open: boolean, present if gnd pin on jack is 48 its assumed that gnd pin on jack is NC
|
| /Linux-v5.4/sound/soc/intel/boards/ |
| D | cht_bsw_nau8824.c | 27 struct snd_soc_jack jack; member 98 struct snd_soc_jack *jack = &ctx->jack; in cht_codec_init() local 118 ret = snd_soc_card_jack_new(runtime->card, "Headset", jack_type, jack, in cht_codec_init() 125 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_MEDIA); in cht_codec_init() 126 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in cht_codec_init() 127 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in cht_codec_init() 128 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in cht_codec_init() 130 nau8824_enable_jack_detect(component, jack); in cht_codec_init()
|
| D | cht_bsw_max98090_ti.c | 37 struct snd_soc_jack jack; member 132 struct snd_soc_jack *jack = (struct snd_soc_jack *)data; in cht_ti_jack_event() local 133 struct snd_soc_dapm_context *dapm = &jack->card->dapm; in cht_ti_jack_event() 191 struct snd_soc_jack *jack = &ctx->jack; in cht_codec_init() local 198 snd_soc_jack_notifier_register(jack, &cht_jack_nb); in cht_codec_init() 205 jack_type, jack, in cht_codec_init() 212 ret = snd_soc_jack_add_gpiods(runtime->card->dev->parent, jack, in cht_codec_init() 294 struct snd_soc_jack *jack = &ctx->jack; in cht_max98090_headset_init() local 310 jack, NULL, 0); in cht_max98090_headset_init() 316 return ts3a227e_enable_jack_detect(component, jack); in cht_max98090_headset_init()
|
| D | byt-max98090.c | 22 struct snd_soc_jack jack; member 88 struct snd_soc_jack *jack = &drv->jack; in byt_max98090_init() local 102 SND_JACK_LINEOUT | SND_JACK_HEADSET, jack, in byt_max98090_init() 107 return snd_soc_jack_add_gpiods(card->dev->parent, jack, in byt_max98090_init()
|
| D | glk_rt5682_max98357a.c | 139 struct snd_soc_jack *jack; in geminilake_rt5682_codec_init() local 168 jack = &ctx->geminilake_headset; in geminilake_rt5682_codec_init() 170 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in geminilake_rt5682_codec_init() 171 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in geminilake_rt5682_codec_init() 172 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in geminilake_rt5682_codec_init() 173 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in geminilake_rt5682_codec_init() 175 ret = snd_soc_component_set_jack(component, jack, NULL); in geminilake_rt5682_codec_init()
|
| D | kbl_da7219_max98357a.c | 164 struct snd_soc_jack *jack; in kabylake_da7219_codec_init() local 188 jack = &ctx->kabylake_headset; in kabylake_da7219_codec_init() 190 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in kabylake_da7219_codec_init() 191 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); in kabylake_da7219_codec_init() 192 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); in kabylake_da7219_codec_init() 193 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); in kabylake_da7219_codec_init()
|
| /Linux-v5.4/sound/soc/qcom/ |
| D | sdm845.c | 29 struct snd_soc_jack jack; member 161 static void sdm845_jack_free(struct snd_jack *jack) in sdm845_jack_free() argument 163 struct snd_soc_component *component = jack->private_data; in sdm845_jack_free() 175 struct snd_jack *jack; in sdm845_dai_init() local 184 &pdata->jack, NULL, 0); in sdm845_dai_init() 191 jack = pdata->jack.jack; in sdm845_dai_init() 193 snd_jack_set_key(jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in sdm845_dai_init() 194 snd_jack_set_key(jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in sdm845_dai_init() 195 snd_jack_set_key(jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in sdm845_dai_init() 196 snd_jack_set_key(jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in sdm845_dai_init() [all …]
|
| D | apq8016_sbc.c | 23 struct snd_soc_jack jack; member 69 struct snd_jack *jack; in apq8016_sbc_dai_init() local 77 &pdata->jack, NULL, 0); in apq8016_sbc_dai_init() 84 jack = pdata->jack.jack; in apq8016_sbc_dai_init() 86 snd_jack_set_key(jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in apq8016_sbc_dai_init() 87 snd_jack_set_key(jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in apq8016_sbc_dai_init() 88 snd_jack_set_key(jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in apq8016_sbc_dai_init() 89 snd_jack_set_key(jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in apq8016_sbc_dai_init() 104 rval = snd_soc_component_set_jack(component, &pdata->jack, NULL); in apq8016_sbc_dai_init()
|
| /Linux-v5.4/sound/soc/codecs/ |
| D | ts3a227e.c | 26 struct snd_soc_jack *jack; member 152 if (!ts3a227e->jack) in ts3a227e_jack_report() 163 snd_soc_jack_report(ts3a227e->jack, report, TS3A227E_JACK_MASK); in ts3a227e_jack_report() 237 struct snd_soc_jack *jack) in ts3a227e_enable_jack_detect() argument 241 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in ts3a227e_enable_jack_detect() 242 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in ts3a227e_enable_jack_detect() 243 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in ts3a227e_enable_jack_detect() 244 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in ts3a227e_enable_jack_detect() 246 ts3a227e->jack = jack; in ts3a227e_enable_jack_detect()
|
| D | es8316.c | 40 struct snd_soc_jack *jack; member 589 if (!es8316->jack) in es8316_irq() 598 if (es8316->jack->status & SND_JACK_MICROPHONE) in es8316_irq() 601 if (es8316->jack->status & SND_JACK_HEADPHONE) { in es8316_irq() 602 snd_soc_jack_report(es8316->jack, 0, in es8316_irq() 606 } else if (!(es8316->jack->status & SND_JACK_HEADPHONE)) { in es8316_irq() 618 snd_soc_jack_report(es8316->jack, in es8316_irq() 624 snd_soc_jack_report(es8316->jack, in es8316_irq() 630 } else if (es8316->jack->status & SND_JACK_MICROPHONE) { in es8316_irq() 634 snd_soc_jack_report(es8316->jack, 0, SND_JACK_BTN_0); in es8316_irq() [all …]
|
| /Linux-v5.4/include/trace/events/ |
| D | asoc.h | 229 TP_PROTO(struct snd_soc_jack *jack, int mask, int val), 231 TP_ARGS(jack, mask, val), 234 __string( name, jack->jack->id ) 240 __assign_str(name, jack->jack->id); 251 TP_PROTO(struct snd_soc_jack *jack, int val), 253 TP_ARGS(jack, val), 256 __string( name, jack->jack->id ) 261 __assign_str(name, jack->jack->id);
|
| /Linux-v5.4/Documentation/sound/hd-audio/ |
| 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 …]
|
| D | controls.rst | 16 jack-retasking of multi-I/O jacks. 25 automatically when a jack is plugged. 29 speaker-only is chosen, plugging into a headphone or a line-out jack 31 selected, plugging to a headphone jack mutes both speakers and 56 These enum controls the direction and the bias of the input jack 57 pins. Depending on the jack type, it can set as "Mic In" and "Line 59 when the pin is a multi-I/O jack for surround channels. 87 This control determines whether the dynamic power-control per jack 89 (D0/D3) are changed dynamically depending on the jack plugging 91 doesn't provide a proper jack-detection, this won't work; in such a [all …]
|
| D | dp-mst.rst | 53 impact on jack handling too much. 69 Will not use hda_jack but use snd_jack in spec->pcm_rec[pcm_idx].jack directly. 73 Use hda_jack and assign spec->pcm_rec[pcm_idx].jack = jack->jack statically. 88 Use directly snd_jack_report() on spec->pcm_rec[pcm_idx].jack for 96 Use directly snd_jack_report() on spec->pcm_rec[pcm_idx].jack for dyn_pcm_assign. 97 Use hda_jack mechanism to handle jack events.
|
| /Linux-v5.4/drivers/staging/greybus/ |
| D | audio_codec.c | 749 ret = snd_jack_set_key(module->button_jack.jack, SND_JACK_BTN_0, in gbaudio_init_jack() 758 ret = snd_jack_set_key(module->button_jack.jack, SND_JACK_BTN_1, in gbaudio_init_jack() 767 ret = snd_jack_set_key(module->button_jack.jack, SND_JACK_BTN_2, in gbaudio_init_jack() 776 ret = snd_jack_set_key(module->button_jack.jack, SND_JACK_BTN_3, in gbaudio_init_jack() 798 struct snd_soc_jack *jack = NULL; in gbaudio_register_module() local 843 list_for_each_entry(jack, &codec->jack_list, list) { in gbaudio_register_module() 844 if ((jack == &module->headset_jack) || in gbaudio_register_module() 845 (jack == &module->button_jack)) in gbaudio_register_module() 847 jack->jack); in gbaudio_register_module() 931 struct snd_soc_jack *jack, *next_j; in gbaudio_unregister_module() local [all …]
|