aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/boot/dts/at91sam9263.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9g45.dtsi4
-rw-r--r--arch/arm/boot/dts/at91sam9x5.dtsi2
-rw-r--r--include/sound/soc-dai.h1
-rw-r--r--include/sound/soc.h1
-rw-r--r--sound/pci/hda/hda_intel.c4
-rw-r--r--sound/pci/hda/patch_hdmi.c46
-rw-r--r--sound/pci/hda/patch_realtek.c5
-rw-r--r--sound/pci/hda/patch_sigmatel.c2
-rw-r--r--sound/soc/codecs/cs42l73.c116
-rw-r--r--sound/soc/codecs/sigmadsp.c2
-rw-r--r--sound/soc/codecs/tpa6130a2.c23
-rw-r--r--sound/soc/soc-compress.c2
-rw-r--r--sound/soc/soc-core.c10
-rw-r--r--sound/soc/soc-pcm.c12
-rw-r--r--sound/usb/midi.c4
-rw-r--r--sound/usb/quirks-table.h123
-rw-r--r--sound/usb/quirks.c91
-rw-r--r--sound/usb/usbaudio.h1
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
3510out_free: 3510out_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
439static int hdmi_get_channel_count(struct hda_codec *codec, hda_nid_t cvt_nid) 441static 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);