diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/pci/hda/Kconfig | 9 | ||||
-rw-r--r-- | sound/pci/hda/patch_conexant.c | 4 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 109 | ||||
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 10 |
4 files changed, 71 insertions, 61 deletions
diff --git a/sound/pci/hda/Kconfig b/sound/pci/hda/Kconfig index c710150d5065..04438f1d682d 100644 --- a/sound/pci/hda/Kconfig +++ b/sound/pci/hda/Kconfig | |||
@@ -2,7 +2,6 @@ menuconfig SND_HDA_INTEL | |||
2 | tristate "Intel HD Audio" | 2 | tristate "Intel HD Audio" |
3 | select SND_PCM | 3 | select SND_PCM |
4 | select SND_VMASTER | 4 | select SND_VMASTER |
5 | select SND_JACK if INPUT=y || INPUT=SND | ||
6 | help | 5 | help |
7 | Say Y here to include support for Intel "High Definition | 6 | Say Y here to include support for Intel "High Definition |
8 | Audio" (Azalia) and its compatible devices. | 7 | Audio" (Azalia) and its compatible devices. |
@@ -39,6 +38,14 @@ config SND_HDA_INPUT_BEEP | |||
39 | Say Y here to build a digital beep interface for HD-audio | 38 | Say Y here to build a digital beep interface for HD-audio |
40 | driver. This interface is used to generate digital beeps. | 39 | driver. This interface is used to generate digital beeps. |
41 | 40 | ||
41 | config SND_HDA_INPUT_JACK | ||
42 | bool "Support jack plugging notification via input layer" | ||
43 | depends on INPUT=y || INPUT=SND_HDA_INTEL | ||
44 | select SND_JACK | ||
45 | help | ||
46 | Say Y here to enable the jack plugging notification via | ||
47 | input layer. | ||
48 | |||
42 | config SND_HDA_CODEC_REALTEK | 49 | config SND_HDA_CODEC_REALTEK |
43 | bool "Build Realtek HD-audio codec support" | 50 | bool "Build Realtek HD-audio codec support" |
44 | default y | 51 | default y |
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 4fcbe21829ab..ac868c59f9e3 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c | |||
@@ -349,7 +349,7 @@ static int conexant_mux_enum_put(struct snd_kcontrol *kcontrol, | |||
349 | &spec->cur_mux[adc_idx]); | 349 | &spec->cur_mux[adc_idx]); |
350 | } | 350 | } |
351 | 351 | ||
352 | #ifdef CONFIG_SND_JACK | 352 | #ifdef CONFIG_SND_HDA_INPUT_JACK |
353 | static void conexant_free_jack_priv(struct snd_jack *jack) | 353 | static void conexant_free_jack_priv(struct snd_jack *jack) |
354 | { | 354 | { |
355 | struct conexant_jack *jacks = jack->private_data; | 355 | struct conexant_jack *jacks = jack->private_data; |
@@ -463,7 +463,7 @@ static int conexant_init(struct hda_codec *codec) | |||
463 | 463 | ||
464 | static void conexant_free(struct hda_codec *codec) | 464 | static void conexant_free(struct hda_codec *codec) |
465 | { | 465 | { |
466 | #ifdef CONFIG_SND_JACK | 466 | #ifdef CONFIG_SND_HDA_INPUT_JACK |
467 | struct conexant_spec *spec = codec->spec; | 467 | struct conexant_spec *spec = codec->spec; |
468 | if (spec->jacks.list) { | 468 | if (spec->jacks.list) { |
469 | struct conexant_jack *jacks = spec->jacks.list; | 469 | struct conexant_jack *jacks = spec->jacks.list; |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index bf4b78a74a8f..334533197425 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -250,13 +250,6 @@ enum { | |||
250 | ALC883_MODEL_LAST, | 250 | ALC883_MODEL_LAST, |
251 | }; | 251 | }; |
252 | 252 | ||
253 | /* styles of capture selection */ | ||
254 | enum { | ||
255 | CAPT_MUX = 0, /* only mux based */ | ||
256 | CAPT_MIX, /* only mixer based */ | ||
257 | CAPT_1MUX_MIX, /* first mux and other mixers */ | ||
258 | }; | ||
259 | |||
260 | /* for GPIO Poll */ | 253 | /* for GPIO Poll */ |
261 | #define GPIO_MASK 0x03 | 254 | #define GPIO_MASK 0x03 |
262 | 255 | ||
@@ -306,7 +299,6 @@ struct alc_spec { | |||
306 | hda_nid_t *adc_nids; | 299 | hda_nid_t *adc_nids; |
307 | hda_nid_t *capsrc_nids; | 300 | hda_nid_t *capsrc_nids; |
308 | hda_nid_t dig_in_nid; /* digital-in NID; optional */ | 301 | hda_nid_t dig_in_nid; /* digital-in NID; optional */ |
309 | int capture_style; /* capture style (CAPT_*) */ | ||
310 | 302 | ||
311 | /* capture source */ | 303 | /* capture source */ |
312 | unsigned int num_mux_defs; | 304 | unsigned int num_mux_defs; |
@@ -420,12 +412,13 @@ static int alc_mux_enum_put(struct snd_kcontrol *kcontrol, | |||
420 | unsigned int mux_idx; | 412 | unsigned int mux_idx; |
421 | hda_nid_t nid = spec->capsrc_nids ? | 413 | hda_nid_t nid = spec->capsrc_nids ? |
422 | spec->capsrc_nids[adc_idx] : spec->adc_nids[adc_idx]; | 414 | spec->capsrc_nids[adc_idx] : spec->adc_nids[adc_idx]; |
415 | unsigned int type; | ||
423 | 416 | ||
424 | mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx; | 417 | mux_idx = adc_idx >= spec->num_mux_defs ? 0 : adc_idx; |
425 | imux = &spec->input_mux[mux_idx]; | 418 | imux = &spec->input_mux[mux_idx]; |
426 | 419 | ||
427 | if (spec->capture_style && | 420 | type = (get_wcaps(codec, nid) & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; |
428 | !(spec->capture_style == CAPT_1MUX_MIX && !adc_idx)) { | 421 | if (type == AC_WID_AUD_MIX) { |
429 | /* Matrix-mixer style (e.g. ALC882) */ | 422 | /* Matrix-mixer style (e.g. ALC882) */ |
430 | unsigned int *cur_val = &spec->cur_mux[adc_idx]; | 423 | unsigned int *cur_val = &spec->cur_mux[adc_idx]; |
431 | unsigned int i, idx; | 424 | unsigned int i, idx; |
@@ -7557,7 +7550,6 @@ static int patch_alc882(struct hda_codec *codec) | |||
7557 | spec->stream_digital_playback = &alc882_pcm_digital_playback; | 7550 | spec->stream_digital_playback = &alc882_pcm_digital_playback; |
7558 | spec->stream_digital_capture = &alc882_pcm_digital_capture; | 7551 | spec->stream_digital_capture = &alc882_pcm_digital_capture; |
7559 | 7552 | ||
7560 | spec->capture_style = CAPT_MIX; /* matrix-style capture */ | ||
7561 | if (!spec->adc_nids && spec->input_mux) { | 7553 | if (!spec->adc_nids && spec->input_mux) { |
7562 | /* check whether NID 0x07 is valid */ | 7554 | /* check whether NID 0x07 is valid */ |
7563 | unsigned int wcap = get_wcaps(codec, 0x07); | 7555 | unsigned int wcap = get_wcaps(codec, 0x07); |
@@ -9781,7 +9773,6 @@ static int patch_alc883(struct hda_codec *codec) | |||
9781 | } | 9773 | } |
9782 | if (!spec->capsrc_nids) | 9774 | if (!spec->capsrc_nids) |
9783 | spec->capsrc_nids = alc883_capsrc_nids; | 9775 | spec->capsrc_nids = alc883_capsrc_nids; |
9784 | spec->capture_style = CAPT_MIX; /* matrix-style capture */ | ||
9785 | spec->init_amp = ALC_INIT_DEFAULT; /* always initialize */ | 9776 | spec->init_amp = ALC_INIT_DEFAULT; /* always initialize */ |
9786 | break; | 9777 | break; |
9787 | case 0x10ec0889: | 9778 | case 0x10ec0889: |
@@ -9791,8 +9782,6 @@ static int patch_alc883(struct hda_codec *codec) | |||
9791 | } | 9782 | } |
9792 | if (!spec->capsrc_nids) | 9783 | if (!spec->capsrc_nids) |
9793 | spec->capsrc_nids = alc889_capsrc_nids; | 9784 | spec->capsrc_nids = alc889_capsrc_nids; |
9794 | spec->capture_style = CAPT_1MUX_MIX; /* 1mux/Nmix-style | ||
9795 | capture */ | ||
9796 | break; | 9785 | break; |
9797 | default: | 9786 | default: |
9798 | if (!spec->num_adc_nids) { | 9787 | if (!spec->num_adc_nids) { |
@@ -9801,7 +9790,6 @@ static int patch_alc883(struct hda_codec *codec) | |||
9801 | } | 9790 | } |
9802 | if (!spec->capsrc_nids) | 9791 | if (!spec->capsrc_nids) |
9803 | spec->capsrc_nids = alc883_capsrc_nids; | 9792 | spec->capsrc_nids = alc883_capsrc_nids; |
9804 | spec->capture_style = CAPT_MIX; /* matrix-style capture */ | ||
9805 | break; | 9793 | break; |
9806 | } | 9794 | } |
9807 | 9795 | ||
@@ -10913,9 +10901,27 @@ static int alc262_auto_create_multi_out_ctls(struct alc_spec *spec, | |||
10913 | return 0; | 10901 | return 0; |
10914 | } | 10902 | } |
10915 | 10903 | ||
10916 | /* identical with ALC880 */ | 10904 | static int alc262_auto_create_analog_input_ctls(struct alc_spec *spec, |
10917 | #define alc262_auto_create_analog_input_ctls \ | 10905 | const struct auto_pin_cfg *cfg) |
10918 | alc880_auto_create_analog_input_ctls | 10906 | { |
10907 | int err; | ||
10908 | |||
10909 | err = alc880_auto_create_analog_input_ctls(spec, cfg); | ||
10910 | if (err < 0) | ||
10911 | return err; | ||
10912 | /* digital-mic input pin is excluded in alc880_auto_create..() | ||
10913 | * because it's under 0x18 | ||
10914 | */ | ||
10915 | if (cfg->input_pins[AUTO_PIN_MIC] == 0x12 || | ||
10916 | cfg->input_pins[AUTO_PIN_FRONT_MIC] == 0x12) { | ||
10917 | struct hda_input_mux *imux = &spec->private_imux[0]; | ||
10918 | imux->items[imux->num_items].label = "Int Mic"; | ||
10919 | imux->items[imux->num_items].index = 0x09; | ||
10920 | imux->num_items++; | ||
10921 | } | ||
10922 | return 0; | ||
10923 | } | ||
10924 | |||
10919 | 10925 | ||
10920 | /* | 10926 | /* |
10921 | * generic initialization of ADC, input mixers and output mixers | 10927 | * generic initialization of ADC, input mixers and output mixers |
@@ -11332,6 +11338,7 @@ static struct snd_pci_quirk alc262_cfg_tbl[] = { | |||
11332 | SND_PCI_QUIRK(0x104d, 0x8203, "Sony UX-90", ALC262_HIPPO), | 11338 | SND_PCI_QUIRK(0x104d, 0x8203, "Sony UX-90", ALC262_HIPPO), |
11333 | SND_PCI_QUIRK(0x104d, 0x820f, "Sony ASSAMD", ALC262_SONY_ASSAMD), | 11339 | SND_PCI_QUIRK(0x104d, 0x820f, "Sony ASSAMD", ALC262_SONY_ASSAMD), |
11334 | SND_PCI_QUIRK(0x104d, 0x9016, "Sony VAIO", ALC262_AUTO), /* dig-only */ | 11340 | SND_PCI_QUIRK(0x104d, 0x9016, "Sony VAIO", ALC262_AUTO), /* dig-only */ |
11341 | SND_PCI_QUIRK(0x104d, 0x9025, "Sony VAIO Z21MN", ALC262_TOSHIBA_S06), | ||
11335 | SND_PCI_QUIRK_MASK(0x104d, 0xff00, 0x9000, "Sony VAIO", | 11342 | SND_PCI_QUIRK_MASK(0x104d, 0xff00, 0x9000, "Sony VAIO", |
11336 | ALC262_SONY_ASSAMD), | 11343 | ALC262_SONY_ASSAMD), |
11337 | SND_PCI_QUIRK(0x1179, 0x0001, "Toshiba dynabook SS RX1", | 11344 | SND_PCI_QUIRK(0x1179, 0x0001, "Toshiba dynabook SS RX1", |
@@ -11539,6 +11546,7 @@ static struct alc_config_preset alc262_presets[] = { | |||
11539 | .capsrc_nids = alc262_dmic_capsrc_nids, | 11546 | .capsrc_nids = alc262_dmic_capsrc_nids, |
11540 | .dac_nids = alc262_dac_nids, | 11547 | .dac_nids = alc262_dac_nids, |
11541 | .adc_nids = alc262_dmic_adc_nids, /* ADC0 */ | 11548 | .adc_nids = alc262_dmic_adc_nids, /* ADC0 */ |
11549 | .num_adc_nids = 1, /* single ADC */ | ||
11542 | .dig_out_nid = ALC262_DIGOUT_NID, | 11550 | .dig_out_nid = ALC262_DIGOUT_NID, |
11543 | .num_channel_mode = ARRAY_SIZE(alc262_modes), | 11551 | .num_channel_mode = ARRAY_SIZE(alc262_modes), |
11544 | .channel_mode = alc262_modes, | 11552 | .channel_mode = alc262_modes, |
@@ -11640,21 +11648,36 @@ static int patch_alc262(struct hda_codec *codec) | |||
11640 | spec->stream_digital_playback = &alc262_pcm_digital_playback; | 11648 | spec->stream_digital_playback = &alc262_pcm_digital_playback; |
11641 | spec->stream_digital_capture = &alc262_pcm_digital_capture; | 11649 | spec->stream_digital_capture = &alc262_pcm_digital_capture; |
11642 | 11650 | ||
11643 | spec->capture_style = CAPT_MIX; | ||
11644 | if (!spec->adc_nids && spec->input_mux) { | 11651 | if (!spec->adc_nids && spec->input_mux) { |
11645 | /* check whether NID 0x07 is valid */ | 11652 | int i; |
11646 | unsigned int wcap = get_wcaps(codec, 0x07); | 11653 | /* check whether the digital-mic has to be supported */ |
11647 | 11654 | for (i = 0; i < spec->input_mux->num_items; i++) { | |
11648 | /* get type */ | 11655 | if (spec->input_mux->items[i].index >= 9) |
11649 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; | 11656 | break; |
11650 | if (wcap != AC_WID_AUD_IN) { | 11657 | } |
11651 | spec->adc_nids = alc262_adc_nids_alt; | 11658 | if (i < spec->input_mux->num_items) { |
11652 | spec->num_adc_nids = ARRAY_SIZE(alc262_adc_nids_alt); | 11659 | /* use only ADC0 */ |
11653 | spec->capsrc_nids = alc262_capsrc_nids_alt; | 11660 | spec->adc_nids = alc262_dmic_adc_nids; |
11661 | spec->num_adc_nids = 1; | ||
11662 | spec->capsrc_nids = alc262_dmic_capsrc_nids; | ||
11654 | } else { | 11663 | } else { |
11655 | spec->adc_nids = alc262_adc_nids; | 11664 | /* all analog inputs */ |
11656 | spec->num_adc_nids = ARRAY_SIZE(alc262_adc_nids); | 11665 | /* check whether NID 0x07 is valid */ |
11657 | spec->capsrc_nids = alc262_capsrc_nids; | 11666 | unsigned int wcap = get_wcaps(codec, 0x07); |
11667 | |||
11668 | /* get type */ | ||
11669 | wcap = (wcap & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT; | ||
11670 | if (wcap != AC_WID_AUD_IN) { | ||
11671 | spec->adc_nids = alc262_adc_nids_alt; | ||
11672 | spec->num_adc_nids = | ||
11673 | ARRAY_SIZE(alc262_adc_nids_alt); | ||
11674 | spec->capsrc_nids = alc262_capsrc_nids_alt; | ||
11675 | } else { | ||
11676 | spec->adc_nids = alc262_adc_nids; | ||
11677 | spec->num_adc_nids = | ||
11678 | ARRAY_SIZE(alc262_adc_nids); | ||
11679 | spec->capsrc_nids = alc262_capsrc_nids; | ||
11680 | } | ||
11658 | } | 11681 | } |
11659 | } | 11682 | } |
11660 | if (!spec->cap_mixer && !spec->no_analog) | 11683 | if (!spec->cap_mixer && !spec->no_analog) |
@@ -13244,26 +13267,8 @@ static int alc269_auto_create_multi_out_ctls(struct alc_spec *spec, | |||
13244 | return 0; | 13267 | return 0; |
13245 | } | 13268 | } |
13246 | 13269 | ||
13247 | static int alc269_auto_create_analog_input_ctls(struct alc_spec *spec, | 13270 | #define alc269_auto_create_analog_input_ctls \ |
13248 | const struct auto_pin_cfg *cfg) | 13271 | alc262_auto_create_analog_input_ctls |
13249 | { | ||
13250 | int err; | ||
13251 | |||
13252 | err = alc880_auto_create_analog_input_ctls(spec, cfg); | ||
13253 | if (err < 0) | ||
13254 | return err; | ||
13255 | /* digital-mic input pin is excluded in alc880_auto_create..() | ||
13256 | * because it's under 0x18 | ||
13257 | */ | ||
13258 | if (cfg->input_pins[AUTO_PIN_MIC] == 0x12 || | ||
13259 | cfg->input_pins[AUTO_PIN_FRONT_MIC] == 0x12) { | ||
13260 | struct hda_input_mux *imux = &spec->private_imux[0]; | ||
13261 | imux->items[imux->num_items].label = "Int Mic"; | ||
13262 | imux->items[imux->num_items].index = 0x05; | ||
13263 | imux->num_items++; | ||
13264 | } | ||
13265 | return 0; | ||
13266 | } | ||
13267 | 13272 | ||
13268 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 13273 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
13269 | #define alc269_loopbacks alc880_loopbacks | 13274 | #define alc269_loopbacks alc880_loopbacks |
@@ -15554,7 +15559,6 @@ static int patch_alc861vd(struct hda_codec *codec) | |||
15554 | spec->adc_nids = alc861vd_adc_nids; | 15559 | spec->adc_nids = alc861vd_adc_nids; |
15555 | spec->num_adc_nids = ARRAY_SIZE(alc861vd_adc_nids); | 15560 | spec->num_adc_nids = ARRAY_SIZE(alc861vd_adc_nids); |
15556 | spec->capsrc_nids = alc861vd_capsrc_nids; | 15561 | spec->capsrc_nids = alc861vd_capsrc_nids; |
15557 | spec->capture_style = CAPT_MIX; | ||
15558 | 15562 | ||
15559 | set_capture_mixer(spec); | 15563 | set_capture_mixer(spec); |
15560 | set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); | 15564 | set_beep_amp(spec, 0x0b, 0x05, HDA_INPUT); |
@@ -17474,7 +17478,6 @@ static int patch_alc662(struct hda_codec *codec) | |||
17474 | spec->adc_nids = alc662_adc_nids; | 17478 | spec->adc_nids = alc662_adc_nids; |
17475 | spec->num_adc_nids = ARRAY_SIZE(alc662_adc_nids); | 17479 | spec->num_adc_nids = ARRAY_SIZE(alc662_adc_nids); |
17476 | spec->capsrc_nids = alc662_capsrc_nids; | 17480 | spec->capsrc_nids = alc662_capsrc_nids; |
17477 | spec->capture_style = CAPT_MIX; | ||
17478 | 17481 | ||
17479 | if (!spec->cap_mixer) | 17482 | if (!spec->cap_mixer) |
17480 | set_capture_mixer(spec); | 17483 | set_capture_mixer(spec); |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 93e47c96a38b..14f3c3e0f62d 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -639,7 +639,7 @@ static int stac92xx_smux_enum_put(struct snd_kcontrol *kcontrol, | |||
639 | static unsigned int stac92xx_vref_set(struct hda_codec *codec, | 639 | static unsigned int stac92xx_vref_set(struct hda_codec *codec, |
640 | hda_nid_t nid, unsigned int new_vref) | 640 | hda_nid_t nid, unsigned int new_vref) |
641 | { | 641 | { |
642 | unsigned int error; | 642 | int error; |
643 | unsigned int pincfg; | 643 | unsigned int pincfg; |
644 | pincfg = snd_hda_codec_read(codec, nid, 0, | 644 | pincfg = snd_hda_codec_read(codec, nid, 0, |
645 | AC_VERB_GET_PIN_WIDGET_CONTROL, 0); | 645 | AC_VERB_GET_PIN_WIDGET_CONTROL, 0); |
@@ -2703,7 +2703,7 @@ static int stac92xx_dc_bias_put(struct snd_kcontrol *kcontrol, | |||
2703 | { | 2703 | { |
2704 | struct hda_codec *codec = snd_kcontrol_chip(kcontrol); | 2704 | struct hda_codec *codec = snd_kcontrol_chip(kcontrol); |
2705 | unsigned int new_vref = 0; | 2705 | unsigned int new_vref = 0; |
2706 | unsigned int error; | 2706 | int error; |
2707 | hda_nid_t nid = kcontrol->private_value; | 2707 | hda_nid_t nid = kcontrol->private_value; |
2708 | 2708 | ||
2709 | if (ucontrol->value.enumerated.item[0] == 0) | 2709 | if (ucontrol->value.enumerated.item[0] == 0) |
@@ -4035,7 +4035,7 @@ static void stac_gpio_set(struct hda_codec *codec, unsigned int mask, | |||
4035 | AC_VERB_SET_GPIO_DATA, gpiostate); /* sync */ | 4035 | AC_VERB_SET_GPIO_DATA, gpiostate); /* sync */ |
4036 | } | 4036 | } |
4037 | 4037 | ||
4038 | #ifdef CONFIG_SND_JACK | 4038 | #ifdef CONFIG_SND_HDA_INPUT_JACK |
4039 | static void stac92xx_free_jack_priv(struct snd_jack *jack) | 4039 | static void stac92xx_free_jack_priv(struct snd_jack *jack) |
4040 | { | 4040 | { |
4041 | struct sigmatel_jack *jacks = jack->private_data; | 4041 | struct sigmatel_jack *jacks = jack->private_data; |
@@ -4047,7 +4047,7 @@ static void stac92xx_free_jack_priv(struct snd_jack *jack) | |||
4047 | static int stac92xx_add_jack(struct hda_codec *codec, | 4047 | static int stac92xx_add_jack(struct hda_codec *codec, |
4048 | hda_nid_t nid, int type) | 4048 | hda_nid_t nid, int type) |
4049 | { | 4049 | { |
4050 | #ifdef CONFIG_SND_JACK | 4050 | #ifdef CONFIG_SND_HDA_INPUT_JACK |
4051 | struct sigmatel_spec *spec = codec->spec; | 4051 | struct sigmatel_spec *spec = codec->spec; |
4052 | struct sigmatel_jack *jack; | 4052 | struct sigmatel_jack *jack; |
4053 | int def_conf = snd_hda_codec_get_pincfg(codec, nid); | 4053 | int def_conf = snd_hda_codec_get_pincfg(codec, nid); |
@@ -4336,7 +4336,7 @@ static int stac92xx_init(struct hda_codec *codec) | |||
4336 | 4336 | ||
4337 | static void stac92xx_free_jacks(struct hda_codec *codec) | 4337 | static void stac92xx_free_jacks(struct hda_codec *codec) |
4338 | { | 4338 | { |
4339 | #ifdef CONFIG_SND_JACK | 4339 | #ifdef CONFIG_SND_HDA_INPUT_JACK |
4340 | /* free jack instances manually when clearing/reconfiguring */ | 4340 | /* free jack instances manually when clearing/reconfiguring */ |
4341 | struct sigmatel_spec *spec = codec->spec; | 4341 | struct sigmatel_spec *spec = codec->spec; |
4342 | if (!codec->bus->shutdown && spec->jacks.list) { | 4342 | if (!codec->bus->shutdown && spec->jacks.list) { |