diff options
| -rw-r--r-- | arch/arm/boot/dts/at91sam9263.dtsi | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/at91sam9g45.dtsi | 4 | ||||
| -rw-r--r-- | arch/arm/boot/dts/at91sam9x5.dtsi | 2 | ||||
| -rw-r--r-- | include/sound/soc-dai.h | 1 | ||||
| -rw-r--r-- | include/sound/soc.h | 1 | ||||
| -rw-r--r-- | sound/pci/hda/hda_intel.c | 4 | ||||
| -rw-r--r-- | sound/pci/hda/patch_hdmi.c | 46 | ||||
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 5 | ||||
| -rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 2 | ||||
| -rw-r--r-- | sound/soc/codecs/cs42l73.c | 116 | ||||
| -rw-r--r-- | sound/soc/codecs/sigmadsp.c | 2 | ||||
| -rw-r--r-- | sound/soc/codecs/tpa6130a2.c | 23 | ||||
| -rw-r--r-- | sound/soc/soc-compress.c | 2 | ||||
| -rw-r--r-- | sound/soc/soc-core.c | 10 | ||||
| -rw-r--r-- | sound/soc/soc-pcm.c | 12 | ||||
| -rw-r--r-- | sound/usb/midi.c | 4 | ||||
| -rw-r--r-- | sound/usb/quirks-table.h | 123 | ||||
| -rw-r--r-- | sound/usb/quirks.c | 91 | ||||
| -rw-r--r-- | sound/usb/usbaudio.h | 1 |
19 files changed, 371 insertions, 82 deletions
diff --git a/arch/arm/boot/dts/at91sam9263.dtsi b/arch/arm/boot/dts/at91sam9263.dtsi index 8e6251f1f7a3..32ec62cf5385 100644 --- a/arch/arm/boot/dts/at91sam9263.dtsi +++ b/arch/arm/boot/dts/at91sam9263.dtsi | |||
| @@ -368,14 +368,14 @@ | |||
| 368 | compatible = "atmel,at91rm9200-ssc"; | 368 | compatible = "atmel,at91rm9200-ssc"; |
| 369 | reg = <0xfff98000 0x4000>; | 369 | reg = <0xfff98000 0x4000>; |
| 370 | interrupts = <16 4 5>; | 370 | interrupts = <16 4 5>; |
| 371 | status = "disable"; | 371 | status = "disabled"; |
| 372 | }; | 372 | }; |
| 373 | 373 | ||
| 374 | ssc1: ssc@fff9c000 { | 374 | ssc1: ssc@fff9c000 { |
| 375 | compatible = "atmel,at91rm9200-ssc"; | 375 | compatible = "atmel,at91rm9200-ssc"; |
| 376 | reg = <0xfff9c000 0x4000>; | 376 | reg = <0xfff9c000 0x4000>; |
| 377 | interrupts = <17 4 5>; | 377 | interrupts = <17 4 5>; |
| 378 | status = "disable"; | 378 | status = "disabled"; |
| 379 | }; | 379 | }; |
| 380 | 380 | ||
| 381 | macb0: ethernet@fffbc000 { | 381 | macb0: ethernet@fffbc000 { |
diff --git a/arch/arm/boot/dts/at91sam9g45.dtsi b/arch/arm/boot/dts/at91sam9g45.dtsi index fa1ae0c5479c..231858ffd850 100644 --- a/arch/arm/boot/dts/at91sam9g45.dtsi +++ b/arch/arm/boot/dts/at91sam9g45.dtsi | |||
| @@ -425,14 +425,14 @@ | |||
| 425 | compatible = "atmel,at91sam9g45-ssc"; | 425 | compatible = "atmel,at91sam9g45-ssc"; |
| 426 | reg = <0xfff9c000 0x4000>; | 426 | reg = <0xfff9c000 0x4000>; |
| 427 | interrupts = <16 4 5>; | 427 | interrupts = <16 4 5>; |
| 428 | status = "disable"; | 428 | status = "disabled"; |
| 429 | }; | 429 | }; |
| 430 | 430 | ||
| 431 | ssc1: ssc@fffa0000 { | 431 | ssc1: ssc@fffa0000 { |
| 432 | compatible = "atmel,at91sam9g45-ssc"; | 432 | compatible = "atmel,at91sam9g45-ssc"; |
| 433 | reg = <0xfffa0000 0x4000>; | 433 | reg = <0xfffa0000 0x4000>; |
| 434 | interrupts = <17 4 5>; | 434 | interrupts = <17 4 5>; |
| 435 | status = "disable"; | 435 | status = "disabled"; |
| 436 | }; | 436 | }; |
| 437 | 437 | ||
| 438 | adc0: adc@fffb0000 { | 438 | adc0: adc@fffb0000 { |
diff --git a/arch/arm/boot/dts/at91sam9x5.dtsi b/arch/arm/boot/dts/at91sam9x5.dtsi index 617ede541ca2..40ac3a4eb1ab 100644 --- a/arch/arm/boot/dts/at91sam9x5.dtsi +++ b/arch/arm/boot/dts/at91sam9x5.dtsi | |||
| @@ -92,7 +92,7 @@ | |||
| 92 | compatible = "atmel,at91sam9g45-ssc"; | 92 | compatible = "atmel,at91sam9g45-ssc"; |
| 93 | reg = <0xf0010000 0x4000>; | 93 | reg = <0xf0010000 0x4000>; |
| 94 | interrupts = <28 4 5>; | 94 | interrupts = <28 4 5>; |
| 95 | status = "disable"; | 95 | status = "disabled"; |
| 96 | }; | 96 | }; |
| 97 | 97 | ||
| 98 | tcb0: timer@f8008000 { | 98 | tcb0: timer@f8008000 { |
diff --git a/include/sound/soc-dai.h b/include/sound/soc-dai.h index 628db7bca4fd..3953cea0ecfb 100644 --- a/include/sound/soc-dai.h +++ b/include/sound/soc-dai.h | |||
| @@ -242,7 +242,6 @@ struct snd_soc_dai { | |||
| 242 | unsigned int symmetric_rates:1; | 242 | unsigned int symmetric_rates:1; |
| 243 | struct snd_pcm_runtime *runtime; | 243 | struct snd_pcm_runtime *runtime; |
| 244 | unsigned int active; | 244 | unsigned int active; |
| 245 | unsigned char pop_wait:1; | ||
| 246 | unsigned char probed:1; | 245 | unsigned char probed:1; |
| 247 | 246 | ||
| 248 | struct snd_soc_dapm_widget *playback_widget; | 247 | struct snd_soc_dapm_widget *playback_widget; |
diff --git a/include/sound/soc.h b/include/sound/soc.h index 91244a096c19..769e27c774a3 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h | |||
| @@ -1039,6 +1039,7 @@ struct snd_soc_pcm_runtime { | |||
| 1039 | struct snd_soc_dpcm_runtime dpcm[2]; | 1039 | struct snd_soc_dpcm_runtime dpcm[2]; |
| 1040 | 1040 | ||
| 1041 | long pmdown_time; | 1041 | long pmdown_time; |
| 1042 | unsigned char pop_wait:1; | ||
| 1042 | 1043 | ||
| 1043 | /* runtime devices */ | 1044 | /* runtime devices */ |
| 1044 | struct snd_pcm *pcm; | 1045 | struct snd_pcm *pcm; |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 0f3d3db0df71..cca87277baf0 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
| @@ -2876,7 +2876,7 @@ static int azx_free(struct azx *chip) | |||
| 2876 | azx_notifier_unregister(chip); | 2876 | azx_notifier_unregister(chip); |
| 2877 | 2877 | ||
| 2878 | chip->init_failed = 1; /* to be sure */ | 2878 | chip->init_failed = 1; /* to be sure */ |
| 2879 | complete(&chip->probe_wait); | 2879 | complete_all(&chip->probe_wait); |
| 2880 | 2880 | ||
| 2881 | if (use_vga_switcheroo(chip)) { | 2881 | if (use_vga_switcheroo(chip)) { |
| 2882 | if (chip->disabled && chip->bus) | 2882 | if (chip->disabled && chip->bus) |
| @@ -3504,7 +3504,7 @@ static int azx_probe(struct pci_dev *pci, | |||
| 3504 | pm_runtime_put_noidle(&pci->dev); | 3504 | pm_runtime_put_noidle(&pci->dev); |
| 3505 | 3505 | ||
| 3506 | dev++; | 3506 | dev++; |
| 3507 | complete(&chip->probe_wait); | 3507 | complete_all(&chip->probe_wait); |
| 3508 | return 0; | 3508 | return 0; |
| 3509 | 3509 | ||
| 3510 | out_free: | 3510 | out_free: |
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 0fcfa6f406b8..b6c21ea187ca 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c | |||
| @@ -431,9 +431,11 @@ static void hdmi_init_pin(struct hda_codec *codec, hda_nid_t pin_nid) | |||
| 431 | if (get_wcaps(codec, pin_nid) & AC_WCAP_OUT_AMP) | 431 | if (get_wcaps(codec, pin_nid) & AC_WCAP_OUT_AMP) |
| 432 | snd_hda_codec_write(codec, pin_nid, 0, | 432 | snd_hda_codec_write(codec, pin_nid, 0, |
| 433 | AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); | 433 | AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE); |
| 434 | /* Disable pin out until stream is active*/ | 434 | /* Enable pin out: some machines with GM965 gets broken output when |
| 435 | * the pin is disabled or changed while using with HDMI | ||
| 436 | */ | ||
| 435 | snd_hda_codec_write(codec, pin_nid, 0, | 437 | snd_hda_codec_write(codec, pin_nid, 0, |
| 436 | AC_VERB_SET_PIN_WIDGET_CONTROL, 0); | 438 | AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT); |
| 437 | } | 439 | } |
| 438 | 440 | ||
| 439 | static int hdmi_get_channel_count(struct hda_codec *codec, hda_nid_t cvt_nid) | 441 | static int hdmi_get_channel_count(struct hda_codec *codec, hda_nid_t cvt_nid) |
| @@ -1341,7 +1343,6 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo, | |||
| 1341 | struct hdmi_spec *spec = codec->spec; | 1343 | struct hdmi_spec *spec = codec->spec; |
| 1342 | int pin_idx = hinfo_to_pin_index(spec, hinfo); | 1344 | int pin_idx = hinfo_to_pin_index(spec, hinfo); |
| 1343 | hda_nid_t pin_nid = spec->pins[pin_idx].pin_nid; | 1345 | hda_nid_t pin_nid = spec->pins[pin_idx].pin_nid; |
| 1344 | int pinctl; | ||
| 1345 | bool non_pcm; | 1346 | bool non_pcm; |
| 1346 | 1347 | ||
| 1347 | non_pcm = check_non_pcm_per_cvt(codec, cvt_nid); | 1348 | non_pcm = check_non_pcm_per_cvt(codec, cvt_nid); |
| @@ -1350,11 +1351,6 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo, | |||
| 1350 | 1351 | ||
| 1351 | hdmi_setup_audio_infoframe(codec, pin_idx, non_pcm, substream); | 1352 | hdmi_setup_audio_infoframe(codec, pin_idx, non_pcm, substream); |
| 1352 | 1353 | ||
| 1353 | pinctl = snd_hda_codec_read(codec, pin_nid, 0, | ||
| 1354 | AC_VERB_GET_PIN_WIDGET_CONTROL, 0); | ||
| 1355 | snd_hda_codec_write(codec, pin_nid, 0, | ||
| 1356 | AC_VERB_SET_PIN_WIDGET_CONTROL, pinctl | PIN_OUT); | ||
| 1357 | |||
| 1358 | return hdmi_setup_stream(codec, cvt_nid, pin_nid, stream_tag, format); | 1354 | return hdmi_setup_stream(codec, cvt_nid, pin_nid, stream_tag, format); |
| 1359 | } | 1355 | } |
| 1360 | 1356 | ||
| @@ -1374,7 +1370,6 @@ static int hdmi_pcm_close(struct hda_pcm_stream *hinfo, | |||
| 1374 | int cvt_idx, pin_idx; | 1370 | int cvt_idx, pin_idx; |
| 1375 | struct hdmi_spec_per_cvt *per_cvt; | 1371 | struct hdmi_spec_per_cvt *per_cvt; |
| 1376 | struct hdmi_spec_per_pin *per_pin; | 1372 | struct hdmi_spec_per_pin *per_pin; |
| 1377 | int pinctl; | ||
| 1378 | 1373 | ||
| 1379 | if (hinfo->nid) { | 1374 | if (hinfo->nid) { |
| 1380 | cvt_idx = cvt_nid_to_cvt_index(spec, hinfo->nid); | ||
