diff options
| author | Ingo Molnar <mingo@elte.hu> | 2009-10-13 03:24:51 -0400 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-10-13 03:24:59 -0400 | 
| commit | 2c96c142e941041973faab20ca3b82d57f435c5e (patch) | |
| tree | 45188f0ecb3f4bb7408a7219f8fcd041d500235a /sound/pci/hda/patch_sigmatel.c | |
| parent | 3c355863fb32070a2800f41106519c5c3038623a (diff) | |
| parent | 8ad807318fcd62aba0e18c7c7fbfcc1af3fcdbab (diff) | |
Merge branch 'tracing/urgent' into tracing/core
Merge reason: Pick up tracing/filters fix from the urgent queue,
              we will queue up dependent patches.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'sound/pci/hda/patch_sigmatel.c')
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 20 | 
1 files changed, 14 insertions, 6 deletions
| diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 826137ec3002..a9b26828a651 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
| @@ -182,8 +182,8 @@ struct sigmatel_jack { | |||
| 182 | 182 | ||
| 183 | struct sigmatel_mic_route { | 183 | struct sigmatel_mic_route { | 
| 184 | hda_nid_t pin; | 184 | hda_nid_t pin; | 
| 185 | unsigned char mux_idx; | 185 | signed char mux_idx; | 
| 186 | unsigned char dmux_idx; | 186 | signed char dmux_idx; | 
| 187 | }; | 187 | }; | 
| 188 | 188 | ||
| 189 | struct sigmatel_spec { | 189 | struct sigmatel_spec { | 
| @@ -3469,18 +3469,26 @@ static int set_mic_route(struct hda_codec *codec, | |||
| 3469 | break; | 3469 | break; | 
| 3470 | if (i <= AUTO_PIN_FRONT_MIC) { | 3470 | if (i <= AUTO_PIN_FRONT_MIC) { | 
| 3471 | /* analog pin */ | 3471 | /* analog pin */ | 
| 3472 | mic->dmux_idx = 0; | ||
| 3473 | i = get_connection_index(codec, spec->mux_nids[0], pin); | 3472 | i = get_connection_index(codec, spec->mux_nids[0], pin); | 
| 3474 | if (i < 0) | 3473 | if (i < 0) | 
| 3475 | return -1; | 3474 | return -1; | 
| 3476 | mic->mux_idx = i; | 3475 | mic->mux_idx = i; | 
| 3476 | mic->dmux_idx = -1; | ||
| 3477 | if (spec->dmux_nids) | ||
| 3478 | mic->dmux_idx = get_connection_index(codec, | ||
| 3479 | spec->dmux_nids[0], | ||
| 3480 | spec->mux_nids[0]); | ||
| 3477 | } else if (spec->dmux_nids) { | 3481 | } else if (spec->dmux_nids) { | 
| 3478 | /* digital pin */ | 3482 | /* digital pin */ | 
| 3479 | mic->mux_idx = 0; | ||
| 3480 | i = get_connection_index(codec, spec->dmux_nids[0], pin); | 3483 | i = get_connection_index(codec, spec->dmux_nids[0], pin); | 
| 3481 | if (i < 0) | 3484 | if (i < 0) | 
| 3482 | return -1; | 3485 | return -1; | 
| 3483 | mic->dmux_idx = i; | 3486 | mic->dmux_idx = i; | 
| 3487 | mic->mux_idx = -1; | ||
| 3488 | if (spec->mux_nids) | ||
| 3489 | mic->mux_idx = get_connection_index(codec, | ||
| 3490 | spec->mux_nids[0], | ||
| 3491 | spec->dmux_nids[0]); | ||
| 3484 | } | 3492 | } | 
| 3485 | return 0; | 3493 | return 0; | 
| 3486 | } | 3494 | } | 
| @@ -4557,11 +4565,11 @@ static void stac92xx_mic_detect(struct hda_codec *codec) | |||
| 4557 | mic = &spec->ext_mic; | 4565 | mic = &spec->ext_mic; | 
| 4558 | else | 4566 | else | 
| 4559 | mic = &spec->int_mic; | 4567 | mic = &spec->int_mic; | 
| 4560 | if (mic->dmux_idx) | 4568 | if (mic->dmux_idx >= 0) | 
| 4561 | snd_hda_codec_write_cache(codec, spec->dmux_nids[0], 0, | 4569 | snd_hda_codec_write_cache(codec, spec->dmux_nids[0], 0, | 
| 4562 | AC_VERB_SET_CONNECT_SEL, | 4570 | AC_VERB_SET_CONNECT_SEL, | 
| 4563 | mic->dmux_idx); | 4571 | mic->dmux_idx); | 
| 4564 | else | 4572 | if (mic->mux_idx >= 0) | 
| 4565 | snd_hda_codec_write_cache(codec, spec->mux_nids[0], 0, | 4573 | snd_hda_codec_write_cache(codec, spec->mux_nids[0], 0, | 
| 4566 | AC_VERB_SET_CONNECT_SEL, | 4574 | AC_VERB_SET_CONNECT_SEL, | 
| 4567 | mic->mux_idx); | 4575 | mic->mux_idx); | 
