/linux/sound/pci/hda/ |
H A D | hda_jack.c | 167 if (!codec->bus->shutdown && jack->jack) in snd_hda_jack_tbl_disconnect() 181 if (!codec->bus->shutdown && jack->jack) in snd_hda_jack_tbl_clear() 279 if (jack && jack->phantom_jack) in snd_hda_jack_detect_state_mst() 486 if (!jack->jack || jack->block_report) in snd_hda_jack_report_sync() 491 snd_jack_report(jack->jack, state); in snd_hda_jack_report_sync() 493 snd_jack_report(jack->jack, in snd_hda_jack_report_sync() 552 if (jack->jack) in snd_hda_jack_add_kctl_mst() 572 jack->jack->private_data = jack; in snd_hda_jack_add_kctl_mst() 580 snd_jack_report(jack->jack, state ? jack->type : 0); in snd_hda_jack_add_kctl_mst() 690 cb->jack = jack; in call_jack_callback() [all …]
|
/linux/sound/core/ |
H A D | jack.c | 76 jack->private_free(jack); in snd_jack_dev_free() 80 kfree(jack->id); in snd_jack_dev_free() 81 kfree(jack); in snd_jack_dev_free() 93 snprintf(jack->name, sizeof(jack->name), "%s %s", in snd_jack_dev_register() 100 jack->input_dev->name = jack->name; in snd_jack_dev_register() 116 input_set_capability(jack->input_dev, EV_KEY, jack->key[i]); in snd_jack_dev_register() 137 jack = jack_kctl->jack; in snd_jack_inject_report() 151 input_report_key(jack->input_dev, jack->key[i], in snd_jack_inject_report() 422 jack_kctl->jack = jack; in snd_jack_kctl_add() 571 kfree(jack); in snd_jack_new() [all …]
|
/linux/sound/soc/ |
H A D | soc-jack.c | 39 if (!jack || !jack->jack) 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() 68 blocking_notifier_call_chain(&jack->notifier, jack->status, jack); in snd_soc_jack_report() 73 snd_jack_report(jack->jack, jack->status); in snd_soc_jack_report() 155 snd_jack_add_new_kctl(jack->jack, pins[i].pin, pins[i].mask); in snd_soc_jack_add_pins() 212 struct snd_soc_jack *jack = gpio->jack; in snd_soc_jack_gpio_detect() local 289 gpios[i].jack = NULL; in jack_free_gpios() 319 tbl->jack = jack; in snd_soc_jack_add_gpios() [all …]
|
H A D | soc-card.c | 53 struct snd_soc_jack *jack, bool initial_kctl) in jack_new() argument 55 mutex_init(&jack->mutex); in jack_new() 56 jack->card = card; in jack_new() 57 INIT_LIST_HEAD(&jack->pins); in jack_new() 58 INIT_LIST_HEAD(&jack->jack_zones); in jack_new() 59 BLOCKING_INIT_NOTIFIER_HEAD(&jack->notifier); in jack_new() 61 return snd_jack_new(card->snd_card, id, type, &jack->jack, initial_kctl, false); in jack_new() 80 struct snd_soc_jack *jack) in snd_soc_card_jack_new() argument 103 int type, struct snd_soc_jack *jack, in snd_soc_card_jack_new_pins() argument 109 ret = jack_new(card, id, type, jack, false); in snd_soc_card_jack_new_pins() [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, 102 int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count, 105 struct snd_soc_jack *jack, 107 void snd_soc_jack_free_gpios(struct snd_soc_jack *jack, int count, [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/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 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 21 code providing jack reporting mechanisms. 27 headphone when the headphone jack status changes. 29 The jack - struct snd_soc_jack 34 machine driver and updated by jack detection methods. 47 connected via a jack). 61 CODEC integrated jack detection can be see in the WM8350 driver. [all …]
|
/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 23 for this jack. The jack injection is implemented based on the 29 plugout events via ``jackin_inject`` and check the jack state via 30 ``status``, after we finish our test, we need to disable the jack 39 jack injection interface will be created as below: 141 - to enable jack injection: [all …]
|
/linux/sound/soc/intel/boards/ |
H A D | sof_sdw_rt5682.c | 48 struct snd_soc_jack *jack; in rt5682_rtd_init() local 83 jack = &ctx->sdw_headset; in rt5682_rtd_init() 85 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in rt5682_rtd_init() 86 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in rt5682_rtd_init() 87 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in rt5682_rtd_init() 88 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in rt5682_rtd_init() 90 ret = snd_soc_component_set_jack(component, jack, NULL); in rt5682_rtd_init()
|
H A D | sof_sdw_rt700.c | 46 struct snd_soc_jack *jack; in rt700_rtd_init() local 81 jack = &ctx->sdw_headset; in rt700_rtd_init() 83 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in rt700_rtd_init() 84 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in rt700_rtd_init() 85 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in rt700_rtd_init() 86 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in rt700_rtd_init() 88 ret = snd_soc_component_set_jack(component, jack, NULL); in rt700_rtd_init()
|
H A D | sof_sdw_cs42l42.c | 49 struct snd_soc_jack *jack; in cs42l42_rtd_init() local 84 jack = &ctx->sdw_headset; in cs42l42_rtd_init() 86 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in cs42l42_rtd_init() 87 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP); in cs42l42_rtd_init() 88 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN); in cs42l42_rtd_init() 89 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND); in cs42l42_rtd_init() 91 ret = snd_soc_component_set_jack(component, jack, NULL); in cs42l42_rtd_init()
|
H A D | sof_sdw_rt711.c | 72 struct snd_soc_jack *jack; in rt711_rtd_init() local 107 jack = &ctx->sdw_headset; in rt711_rtd_init() 109 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in rt711_rtd_init() 110 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in rt711_rtd_init() 111 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in rt711_rtd_init() 112 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in rt711_rtd_init() 114 ret = snd_soc_component_set_jack(component, jack, NULL); in rt711_rtd_init()
|
H A D | sof_sdw_cs42l43.c | 55 struct snd_soc_jack *jack = &ctx->sdw_headset; in cs42l43_hs_rtd_init() local 76 jack, sof_jack_pins, in cs42l43_hs_rtd_init() 83 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in cs42l43_hs_rtd_init() 84 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in cs42l43_hs_rtd_init() 85 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in cs42l43_hs_rtd_init() 86 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in cs42l43_hs_rtd_init() 88 ret = snd_soc_component_set_jack(component, jack, NULL); in cs42l43_hs_rtd_init()
|
H A D | sof_sdw_rt_sdca_jack_common.c | 96 struct snd_soc_jack *jack; in rt_sdca_jack_rtd_init() local 157 jack = &ctx->sdw_headset; in rt_sdca_jack_rtd_init() 159 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in rt_sdca_jack_rtd_init() 160 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in rt_sdca_jack_rtd_init() 161 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in rt_sdca_jack_rtd_init() 162 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in rt_sdca_jack_rtd_init() 164 ret = snd_soc_component_set_jack(component, jack, NULL); in rt_sdca_jack_rtd_init()
|
H A 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 112 jack, cht_bsw_jack_pins, ARRAY_SIZE(cht_bsw_jack_pins)); in cht_codec_init() 118 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in cht_codec_init() 119 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in cht_codec_init() 120 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in cht_codec_init() 121 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in cht_codec_init() 123 nau8824_enable_jack_detect(component, jack); in cht_codec_init()
|
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()
|
/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() 234 struct snd_soc_jack *jack; in avs_da7219_probe() local 252 jack = devm_kzalloc(dev, sizeof(*jack), GFP_KERNEL); in avs_da7219_probe() 254 if (!jack || !card) in avs_da7219_probe() [all …]
|
H A D | rt5682.c | 99 struct snd_soc_jack *jack; in avs_rt5682_codec_init() local 102 jack = snd_soc_card_get_drvdata(card); in avs_rt5682_codec_init() 125 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in avs_rt5682_codec_init() 126 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in avs_rt5682_codec_init() 127 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in avs_rt5682_codec_init() 128 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in avs_rt5682_codec_init() 130 ret = snd_soc_component_set_jack(component, jack, NULL); in avs_rt5682_codec_init() 273 struct snd_soc_jack *jack; in avs_rt5682_probe() local 297 jack = devm_kzalloc(dev, sizeof(*jack), GFP_KERNEL); in avs_rt5682_probe() 299 if (!jack || !card) in avs_rt5682_probe() [all …]
|
H A D | nau8825.c | 85 struct snd_soc_jack *jack; in avs_nau8825_codec_init() local 88 jack = snd_soc_card_get_drvdata(card); in avs_nau8825_codec_init() 101 jack, pins, num_pins); in avs_nau8825_codec_init() 105 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in avs_nau8825_codec_init() 106 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in avs_nau8825_codec_init() 107 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in avs_nau8825_codec_init() 108 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in avs_nau8825_codec_init() 251 struct snd_soc_jack *jack; in avs_nau8825_probe() local 269 jack = devm_kzalloc(dev, sizeof(*jack), GFP_KERNEL); in avs_nau8825_probe() 271 if (!jack || !card) in avs_nau8825_probe() [all …]
|
H A D | rt5663.c | 23 struct snd_soc_jack jack; member 62 struct snd_soc_jack *jack; in avs_rt5663_codec_init() local 65 jack = &priv->jack; in avs_rt5663_codec_init() 73 SND_JACK_BTN_1 | SND_JACK_BTN_2 | SND_JACK_BTN_3, jack, in avs_rt5663_codec_init() 78 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in avs_rt5663_codec_init() 79 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in avs_rt5663_codec_init() 80 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in avs_rt5663_codec_init() 81 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in avs_rt5663_codec_init() 83 snd_soc_component_set_jack(snd_soc_rtd_to_codec(runtime, 0)->component, jack, NULL); in avs_rt5663_codec_init() 193 struct snd_soc_jack *jack = snd_soc_card_get_drvdata(card); in avs_card_resume_post() local [all …]
|
/linux/sound/soc/codecs/ |
H A D | ts3a227e.c | 26 struct snd_soc_jack *jack; member 160 if (!ts3a227e->jack) in ts3a227e_jack_report() 245 struct snd_soc_jack *jack) in ts3a227e_enable_jack_detect() argument 249 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE); in ts3a227e_enable_jack_detect() 250 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in ts3a227e_enable_jack_detect() 251 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in ts3a227e_enable_jack_detect() 252 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in ts3a227e_enable_jack_detect() 254 ts3a227e->jack = jack; in ts3a227e_enable_jack_detect() 262 struct snd_soc_jack *jack, void *data) in ts3a227e_set_jack() argument 264 if (jack == NULL) in ts3a227e_set_jack() [all …]
|
/linux/Documentation/devicetree/bindings/sound/ |
H A D | rt5640.txt | 38 - realtek,jack-detect-source 40 0: jack-detect is not used 41 1: Use GPIO1 for jack-detect 42 2: Use JD1_IN4P for jack-detect 43 3: Use JD2_IN4N for jack-detect 44 4: Use GPIO2 for jack-detect 45 5: Use GPIO3 for jack-detect 46 6: Use GPIO4 for jack-detect 48 - realtek,jack-detect-not-inverted 49 bool. Normal jack-detect switches give an inverted signal, set this bool [all …]
|
/linux/sound/soc/qcom/ |
H A D | common.c | 190 struct snd_soc_jack *jack, bool *jack_setup) in qcom_snd_wcd_jack_setup() argument 204 jack, qcom_headset_jack_pins, in qcom_snd_wcd_jack_setup() 212 snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_MEDIA); in qcom_snd_wcd_jack_setup() 213 snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND); in qcom_snd_wcd_jack_setup() 214 snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in qcom_snd_wcd_jack_setup() 215 snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN); in qcom_snd_wcd_jack_setup() 226 jack, NULL); in qcom_snd_wcd_jack_setup()
|
H A D | sc7280.c | 41 static void sc7280_jack_free(struct snd_jack *jack) in sc7280_jack_free() argument 43 struct snd_soc_component *component = jack->private_data; in sc7280_jack_free() 66 struct snd_jack *jack; in sc7280_headset_init() local 85 jack = pdata->hs_jack.jack; in sc7280_headset_init() 89 snd_jack_set_key(jack, SND_JACK_BTN_2, KEY_VOLUMEUP); in sc7280_headset_init() 92 jack->private_data = component; in sc7280_headset_init() 93 jack->private_free = sc7280_jack_free; in sc7280_headset_init() 122 struct snd_jack *jack; in sc7280_hdmi_init() local 133 jack = pdata->hdmi_jack.jack; in sc7280_hdmi_init() 134 jack->private_data = component; in sc7280_hdmi_init() [all …]
|