aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-29 11:44:00 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-29 11:44:00 -0500
commitc0f4133b8f70769bc8dda977feb9a29109d6ccca (patch)
tree1d0fa7a73960cc5fb3baf87774cde27b4fe311c5
parent99642e211a789df34347c3f10f0301462837f0c5 (diff)
parent0d9ac27afa469dbb20940ad7f25502785af1cbe3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/alsa-fix-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/alsa-fix-2.6: [ALSA] intel8x0 - Add quirk for Compaq Deskpro EN [ALSA] hda-codec - Adapt eeepc p701 mixer for virtual master control [ALSA] sound: ice1712: unused structs [ALSA] ASoC: Fix WM9712 mixer_event DAPM widget function type [ALSA] ASoC: Fix DAPM widget function types in pxa machine drivers [ALSA] hda-codec - Fix mixer names of realtek codecs to adapt mater controls [ALSA] intel8x0 - Add quirk for Acer Travelmate 2310 [ALSA] hda_intel - Add model quirk for Albatron KI690-AM2 motherboard [ALSA] oxygen: add owner field [ALSA] hda-codec - Add Fujitsu Lifebook E8410 to quirk table [ALSA] hda-codec - Fix AD1988 capture elements [ALSA] sb8: fix SB 1.0 capture DMA programming [ALSA] usb-audio: add workaround for broken E-Mu frequency feedback [ALSA] ASoC: Fix TLV320AIC3X PLL divider table for 64 kHz rate [ALSA] hda-codec - Fix Master volume on HP dv8000
-rw-r--r--sound/isa/sb/sb8_main.c2
-rw-r--r--sound/pci/hda/patch_analog.c8
-rw-r--r--sound/pci/hda/patch_conexant.c5
-rw-r--r--sound/pci/hda/patch_realtek.c22
-rw-r--r--sound/pci/ice1712/phase.c2
-rw-r--r--sound/pci/ice1712/revo.c2
-rw-r--r--sound/pci/intel8x0.c12
-rw-r--r--sound/pci/oxygen/hifier.c1
-rw-r--r--sound/pci/oxygen/virtuoso.c1
-rw-r--r--sound/soc/codecs/tlv320aic3x.c4
-rw-r--r--sound/soc/codecs/wm9712.c3
-rw-r--r--sound/soc/pxa/corgi.c6
-rw-r--r--sound/soc/pxa/poodle.c3
-rw-r--r--sound/soc/pxa/spitz.c3
-rw-r--r--sound/soc/pxa/tosa.c3
-rw-r--r--sound/usb/usbaudio.c38
16 files changed, 88 insertions, 27 deletions
diff --git a/sound/isa/sb/sb8_main.c b/sound/isa/sb/sb8_main.c
index 6304c3a89ba0..fe03bb820532 100644
--- a/sound/isa/sb/sb8_main.c
+++ b/sound/isa/sb/sb8_main.c
@@ -277,7 +277,7 @@ static int snd_sb8_capture_prepare(struct snd_pcm_substream *substream)
277 } else { 277 } else {
278 snd_sbdsp_command(chip, 256 - runtime->rate_den); 278 snd_sbdsp_command(chip, 256 - runtime->rate_den);
279 } 279 }
280 if (chip->capture_format != SB_DSP_OUTPUT) { 280 if (chip->capture_format != SB_DSP_INPUT) {
281 count--; 281 count--;
282 snd_sbdsp_command(chip, SB_DSP_BLOCK_SIZE); 282 snd_sbdsp_command(chip, SB_DSP_BLOCK_SIZE);
283 snd_sbdsp_command(chip, count & 0xff); 283 snd_sbdsp_command(chip, count & 0xff);
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 19f08846d6fc..c8649282c2cf 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -1778,9 +1778,9 @@ static hda_nid_t ad1988_capsrc_nids[3] = {
1778static struct hda_input_mux ad1988_6stack_capture_source = { 1778static struct hda_input_mux ad1988_6stack_capture_source = {
1779 .num_items = 5, 1779 .num_items = 5,
1780 .items = { 1780 .items = {
1781 { "Front Mic", 0x0 }, 1781 { "Front Mic", 0x1 }, /* port-B */
1782 { "Line", 0x1 }, 1782 { "Line", 0x2 }, /* port-C */
1783 { "Mic", 0x4 }, 1783 { "Mic", 0x4 }, /* port-E */
1784 { "CD", 0x5 }, 1784 { "CD", 0x5 },
1785 { "Mix", 0x9 }, 1785 { "Mix", 0x9 },
1786 }, 1786 },
@@ -1789,7 +1789,7 @@ static struct hda_input_mux ad1988_6stack_capture_source = {
1789static struct hda_input_mux ad1988_laptop_capture_source = { 1789static struct hda_input_mux ad1988_laptop_capture_source = {
1790 .num_items = 3, 1790 .num_items = 3,
1791 .items = { 1791 .items = {
1792 { "Mic/Line", 0x0 }, 1792 { "Mic/Line", 0x1 }, /* port-B */
1793 { "CD", 0x5 }, 1793 { "CD", 0x5 },
1794 { "Mix", 0x9 }, 1794 { "Mix", 0x9 },
1795 }, 1795 },
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index f7cd3a804b11..7206b30cbf94 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -1230,6 +1230,11 @@ static struct hda_verb cxt5047_toshiba_init_verbs[] = {
1230static struct hda_verb cxt5047_hp_init_verbs[] = { 1230static struct hda_verb cxt5047_hp_init_verbs[] = {
1231 /* pin sensing on HP jack */ 1231 /* pin sensing on HP jack */
1232 {0x13, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_HP_EVENT}, 1232 {0x13, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | CONEXANT_HP_EVENT},
1233 /* 0x13 is actually shared by both HP and speaker;
1234 * setting the connection to 0 (=0x19) makes the master volume control
1235 * working mysteriouslly...
1236 */
1237 {0x13, AC_VERB_SET_CONNECT_SEL, 0x0},
1233 /* Record selector: Ext Mic */ 1238 /* Record selector: Ext Mic */
1234 {0x12, AC_VERB_SET_CONNECT_SEL,0x03}, 1239 {0x12, AC_VERB_SET_CONNECT_SEL,0x03},
1235 {0x19, AC_VERB_SET_AMP_GAIN_MUTE, 1240 {0x19, AC_VERB_SET_AMP_GAIN_MUTE,
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 777f8c01ca7a..33282f9c01c7 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3973,8 +3973,8 @@ static struct snd_kcontrol_new alc260_fujitsu_mixer[] = {
3973 ALC_PIN_MODE("Mic/Line Jack Mode", 0x12, ALC_PIN_DIR_IN), 3973 ALC_PIN_MODE("Mic/Line Jack Mode", 0x12, ALC_PIN_DIR_IN),
3974 HDA_CODEC_VOLUME("Beep Playback Volume", 0x07, 0x05, HDA_INPUT), 3974 HDA_CODEC_VOLUME("Beep Playback Volume", 0x07, 0x05, HDA_INPUT),
3975 HDA_CODEC_MUTE("Beep Playback Switch", 0x07, 0x05, HDA_INPUT), 3975 HDA_CODEC_MUTE("Beep Playback Switch", 0x07, 0x05, HDA_INPUT),
3976 HDA_CODEC_VOLUME("Internal Speaker Playback Volume", 0x09, 0x0, HDA_OUTPUT), 3976 HDA_CODEC_VOLUME("Speaker Playback Volume", 0x09, 0x0, HDA_OUTPUT),
3977 HDA_BIND_MUTE("Internal Speaker Playback Switch", 0x09, 2, HDA_INPUT), 3977 HDA_BIND_MUTE("Speaker Playback Switch", 0x09, 2, HDA_INPUT),
3978 { } /* end */ 3978 { } /* end */
3979}; 3979};
3980 3980
@@ -4005,9 +4005,9 @@ static struct snd_kcontrol_new alc260_acer_mixer[] = {
4005 HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT), 4005 HDA_CODEC_VOLUME("Master Playback Volume", 0x08, 0x0, HDA_OUTPUT),
4006 HDA_BIND_MUTE("Master Playback Switch", 0x08, 2, HDA_INPUT), 4006 HDA_BIND_MUTE("Master Playback Switch", 0x08, 2, HDA_INPUT),
4007 ALC_PIN_MODE("Headphone Jack Mode", 0x0f, ALC_PIN_DIR_INOUT), 4007 ALC_PIN_MODE("Headphone Jack Mode", 0x0f, ALC_PIN_DIR_INOUT),
4008 HDA_CODEC_VOLUME_MONO("Mono Speaker Playback Volume", 0x0a, 1, 0x0, 4008 HDA_CODEC_VOLUME_MONO("Speaker Playback Volume", 0x0a, 1, 0x0,
4009 HDA_OUTPUT), 4009 HDA_OUTPUT),
4010 HDA_BIND_MUTE_MONO("Mono Speaker Playback Switch", 0x0a, 1, 2, 4010 HDA_BIND_MUTE_MONO("Speaker Playback Switch", 0x0a, 1, 2,
4011 HDA_INPUT), 4011 HDA_INPUT),
4012 HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT), 4012 HDA_CODEC_VOLUME("CD Playback Volume", 0x07, 0x04, HDA_INPUT),
4013 HDA_CODEC_MUTE("CD Playback Switch", 0x07, 0x04, HDA_INPUT), 4013 HDA_CODEC_MUTE("CD Playback Switch", 0x07, 0x04, HDA_INPUT),
@@ -7639,6 +7639,7 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
7639 SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763), 7639 SND_PCI_QUIRK(0x17aa, 0x3bfc, "Lenovo NB0763", ALC883_LENOVO_NB0763),
7640 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763), 7640 SND_PCI_QUIRK(0x17aa, 0x3bfd, "Lenovo NB0763", ALC883_LENOVO_NB0763),
7641 SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2), 7641 SND_PCI_QUIRK(0x17c0, 0x4071, "MEDION MD2", ALC883_MEDION_MD2),
7642 SND_PCI_QUIRK(0x17f2, 0x5000, "Albatron KI690-AM2", ALC883_6ST_DIG),
7642 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66), 7643 SND_PCI_QUIRK(0x1991, 0x5625, "Haier W66", ALC883_HAIER_W66),
7643 SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC883_3ST_6ch), 7644 SND_PCI_QUIRK(0x8086, 0xd601, "D102GGC", ALC883_3ST_6ch),
7644 {} 7645 {}
@@ -8102,7 +8103,7 @@ static struct snd_kcontrol_new alc262_base_mixer[] = {
8102 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), 8103 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT),
8103 HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), 8104 HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT),
8104 /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), 8105 /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT),
8105 HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ 8106 HDA_CODEC_MUTE("PC Beep Playback Switch", 0x0b, 0x05, HDA_INPUT), */
8106 HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT), 8107 HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT),
8107 HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT), 8108 HDA_CODEC_MUTE("Headphone Playback Switch", 0x15, 0x0, HDA_OUTPUT),
8108 HDA_CODEC_VOLUME_MONO("Mono Playback Volume", 0x0e, 2, 0x0, HDA_OUTPUT), 8109 HDA_CODEC_VOLUME_MONO("Mono Playback Volume", 0x0e, 2, 0x0, HDA_OUTPUT),
@@ -8124,7 +8125,7 @@ static struct snd_kcontrol_new alc262_hippo1_mixer[] = {
8124 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), 8125 HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT),
8125 HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT), 8126 HDA_CODEC_VOLUME("Front Mic Boost", 0x19, 0, HDA_INPUT),
8126 /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), 8127 /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT),
8127 HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ 8128 HDA_CODEC_MUTE("PC Beep Playback Switch", 0x0b, 0x05, HDA_INPUT), */
8128 /*HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT),*/ 8129 /*HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT),*/
8129 HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), 8130 HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT),
8130 { } /* end */ 8131 { } /* end */
@@ -9238,6 +9239,7 @@ static struct snd_pci_quirk alc262_cfg_tbl[] = {
9238 SND_PCI_QUIRK(0x104d, 0x900e, "Sony ASSAMD", ALC262_SONY_ASSAMD), 9239 SND_PCI_QUIRK(0x104d, 0x900e, "Sony ASSAMD", ALC262_SONY_ASSAMD),
9239 SND_PCI_QUIRK(0x104d, 0x9015, "Sony 0x9015", ALC262_SONY_ASSAMD), 9240 SND_PCI_QUIRK(0x104d, 0x9015, "Sony 0x9015", ALC262_SONY_ASSAMD),
9240 SND_PCI_QUIRK(0x10cf, 0x1397, "Fujitsu", ALC262_FUJITSU), 9241 SND_PCI_QUIRK(0x10cf, 0x1397, "Fujitsu", ALC262_FUJITSU),
9242 SND_PCI_QUIRK(0x10cf, 0x142d, "Fujitsu Lifebook E8410", ALC262_FUJITSU),
9241 SND_PCI_QUIRK(0x144d, 0xc032, "Samsung Q1 Ultra", ALC262_ULTRA), 9243 SND_PCI_QUIRK(0x144d, 0xc032, "Samsung Q1 Ultra", ALC262_ULTRA),
9242 SND_PCI_QUIRK(0x17ff, 0x0560, "Benq ED8", ALC262_BENQ_ED8), 9244 SND_PCI_QUIRK(0x17ff, 0x0560, "Benq ED8", ALC262_BENQ_ED8),
9243 SND_PCI_QUIRK(0x17ff, 0x058d, "Benq T31-16", ALC262_BENQ_T31), 9245 SND_PCI_QUIRK(0x17ff, 0x058d, "Benq T31-16", ALC262_BENQ_T31),
@@ -12993,8 +12995,8 @@ static struct snd_kcontrol_new alc662_lenovo_101e_mixer[] = {
12993static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = { 12995static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = {
12994 HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT), 12996 HDA_CODEC_MUTE("Speaker Playback Switch", 0x14, 0x0, HDA_OUTPUT),
12995 12997
12996 HDA_CODEC_VOLUME("LineOut Playback Volume", 0x02, 0x0, HDA_OUTPUT), 12998 HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x02, 0x0, HDA_OUTPUT),
12997 HDA_CODEC_MUTE("LineOut Playback Switch", 0x1b, 0x0, HDA_OUTPUT), 12999 HDA_CODEC_MUTE("Line-Out Playback Switch", 0x1b, 0x0, HDA_OUTPUT),
12998 13000
12999 HDA_CODEC_VOLUME("e-Mic Boost", 0x18, 0, HDA_INPUT), 13001 HDA_CODEC_VOLUME("e-Mic Boost", 0x18, 0, HDA_INPUT),
13000 HDA_CODEC_VOLUME("e-Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), 13002 HDA_CODEC_VOLUME("e-Mic Playback Volume", 0x0b, 0x0, HDA_INPUT),
@@ -13007,8 +13009,8 @@ static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = {
13007}; 13009};
13008 13010
13009static struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = { 13011static struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = {
13010 HDA_CODEC_VOLUME("LineOut Playback Volume", 0x02, 0x0, HDA_OUTPUT), 13012 HDA_CODEC_VOLUME("Line-Out Playback Volume", 0x02, 0x0, HDA_OUTPUT),
13011 HDA_CODEC_MUTE("LineOut Playback Switch", 0x14, 0x0, HDA_OUTPUT), 13013 HDA_CODEC_MUTE("Line-Out Playback Switch", 0x14, 0x0, HDA_OUTPUT),
13012 HDA_CODEC_VOLUME("Surround Playback Volume", 0x03, 0x0, HDA_OUTPUT), 13014 HDA_CODEC_VOLUME("Surround Playback Volume", 0x03, 0x0, HDA_OUTPUT),
13013 HDA_BIND_MUTE("Surround Playback Switch", 0x03, 2, HDA_INPUT), 13015 HDA_BIND_MUTE("Surround Playback Switch", 0x03, 2, HDA_INPUT),
13014 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x04, 1, 0x0, HDA_OUTPUT), 13016 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x04, 1, 0x0, HDA_OUTPUT),
diff --git a/sound/pci/ice1712/phase.c b/sound/pci/ice1712/phase.c
index 9ab4a9f383cb..5a158b73dcaa 100644
--- a/sound/pci/ice1712/phase.c
+++ b/sound/pci/ice1712/phase.c
@@ -51,7 +51,7 @@
51struct phase28_spec { 51struct phase28_spec {
52 unsigned short master[2]; 52 unsigned short master[2];
53 unsigned short vol[8]; 53 unsigned short vol[8];
54} phase28; 54};
55 55
56/* WM8770 registers */ 56/* WM8770 registers */
57#define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */ 57#define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */
diff --git a/sound/pci/ice1712/revo.c b/sound/pci/ice1712/revo.c
index ddd5fc8d4fe1..301bf929acd9 100644
--- a/sound/pci/ice1712/revo.c
+++ b/sound/pci/ice1712/revo.c
@@ -36,7 +36,7 @@
36struct revo51_spec { 36struct revo51_spec {
37 struct snd_i2c_device *dev; 37 struct snd_i2c_device *dev;
38 struct snd_pt2258 *pt2258; 38 struct snd_pt2258 *pt2258;
39} revo51; 39};
40 40
41static void revo_i2s_mclk_changed(struct snd_ice1712 *ice) 41static void revo_i2s_mclk_changed(struct snd_ice1712 *ice)
42{ 42{
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 061072c7db03..c52abd0bf22e 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -1708,6 +1708,12 @@ static struct ac97_pcm ac97_pcm_defs[] __devinitdata = {
1708}; 1708};
1709 1709
1710static struct ac97_quirk ac97_quirks[] __devinitdata = { 1710static struct ac97_quirk ac97_quirks[] __devinitdata = {
1711 {
1712 .subvendor = 0x0e11,
1713 .subdevice = 0x000e,
1714 .name = "Compaq Deskpro EN", /* AD1885 */
1715 .type = AC97_TUNE_HP_ONLY
1716 },
1711 { 1717 {
1712 .subvendor = 0x0e11, 1718 .subvendor = 0x0e11,
1713 .subdevice = 0x008a, 1719 .subdevice = 0x008a,
@@ -1740,6 +1746,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = {
1740 }, 1746 },
1741 { 1747 {
1742 .subvendor = 0x1025, 1748 .subvendor = 0x1025,
1749 .subdevice = 0x0082,
1750 .name = "Acer Travelmate 2310",
1751 .type = AC97_TUNE_HP_ONLY
1752 },
1753 {
1754 .subvendor = 0x1025,
1743 .subdevice = 0x0083, 1755 .subdevice = 0x0083,
1744 .name = "Acer Aspire 3003LCi", 1756 .name = "Acer Aspire 3003LCi",
1745 .type = AC97_TUNE_HP_ONLY 1757 .type = AC97_TUNE_HP_ONLY
diff --git a/sound/pci/oxygen/hifier.c b/sound/pci/oxygen/hifier.c
index 3ea1f05228a1..666f69a3312e 100644
--- a/sound/pci/oxygen/hifier.c
+++ b/sound/pci/oxygen/hifier.c
@@ -150,6 +150,7 @@ static const struct oxygen_model model_hifier = {
150 .shortname = "C-Media CMI8787", 150 .shortname = "C-Media CMI8787",
151 .longname = "C-Media Oxygen HD Audio", 151 .longname = "C-Media Oxygen HD Audio",
152 .chip = "CMI8788", 152 .chip = "CMI8788",
153 .owner = THIS_MODULE,
153 .init = hifier_init, 154 .init = hifier_init,
154 .control_filter = hifier_control_filter, 155 .control_filter = hifier_control_filter,
155 .mixer_init = hifier_mixer_init, 156 .mixer_init = hifier_mixer_init,
diff --git a/sound/pci/oxygen/virtuoso.c b/sound/pci/oxygen/virtuoso.c
index 40e92f5cd69c..d163397b85cc 100644
--- a/sound/pci/oxygen/virtuoso.c
+++ b/sound/pci/oxygen/virtuoso.c
@@ -389,6 +389,7 @@ static const struct oxygen_model model_xonar = {
389 .shortname = "Asus AV200", 389 .shortname = "Asus AV200",
390 .longname = "Asus Virtuoso 200", 390 .longname = "Asus Virtuoso 200",
391 .chip = "AV200", 391 .chip = "AV200",
392 .owner = THIS_MODULE,
392 .init = xonar_init, 393 .init = xonar_init,
393 .control_filter = xonar_control_filter, 394 .control_filter = xonar_control_filter,
394 .mixer_init = xonar_mixer_init, 395 .mixer_init = xonar_mixer_init,
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index 710e0287ef8c..569ecaca0e8b 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -681,8 +681,8 @@ static const struct aic3x_rate_divs aic3x_divs[] = {
681 {22579200, 48000, 48000, 0x0, 8, 7075}, 681 {22579200, 48000, 48000, 0x0, 8, 7075},
682 {33868800, 48000, 48000, 0x0, 5, 8049}, 682 {33868800, 48000, 48000, 0x0, 5, 8049},
683 /* 64k */ 683 /* 64k */
684 {22579200, 96000, 96000, 0x1, 8, 7075}, 684 {22579200, 64000, 96000, 0x1, 8, 7075},
685 {33868800, 96000, 96000, 0x1, 5, 8049}, 685 {33868800, 64000, 96000, 0x1, 5, 8049},
686 /* 88.2k */ 686 /* 88.2k */
687 {22579200, 88200, 88200, 0x0, 8, 0}, 687 {22579200, 88200, 88200, 0x0, 8, 0},
688 {33868800, 88200, 88200, 0x0, 5, 3333}, 688 {33868800, 88200, 88200, 0x0, 5, 3333},
diff --git a/sound/soc/codecs/wm9712.c b/sound/soc/codecs/wm9712.c
index 590baea3c4c3..524f7450804f 100644
--- a/sound/soc/codecs/wm9712.c
+++ b/sound/soc/codecs/wm9712.c
@@ -176,7 +176,8 @@ static int wm9712_add_controls(struct snd_soc_codec *codec)
176 * the codec only has a single control that is shared by both channels. 176 * the codec only has a single control that is shared by both channels.
177 * This makes it impossible to determine the audio path. 177 * This makes it impossible to determine the audio path.
178 */ 178 */
179static int mixer_event (struct snd_soc_dapm_widget *w, int event) 179static int mixer_event(struct snd_soc_dapm_widget *w,
180 struct snd_kcontrol *k, int event)
180{ 181{
181 u16 l, r, beep, line, phone, mic, pcm, aux; 182 u16 l, r, beep, line, phone, mic, pcm, aux;
182 183
diff --git a/sound/soc/pxa/corgi.c b/sound/soc/pxa/corgi.c
index 3f34e531bebf..1a70a6ac98ce 100644
--- a/sound/soc/pxa/corgi.c
+++ b/sound/soc/pxa/corgi.c
@@ -215,7 +215,8 @@ static int corgi_set_spk(struct snd_kcontrol *kcontrol,
215 return 1; 215 return 1;
216} 216}
217 217
218static int corgi_amp_event(struct snd_soc_dapm_widget *w, int event) 218static int corgi_amp_event(struct snd_soc_dapm_widget *w,
219 struct snd_kcontrol *k, int event)
219{ 220{
220 if (SND_SOC_DAPM_EVENT_ON(event)) 221 if (SND_SOC_DAPM_EVENT_ON(event))
221 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON); 222 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
@@ -225,7 +226,8 @@ static int corgi_amp_event(struct snd_soc_dapm_widget *w, int event)
225 return 0; 226 return 0;
226} 227}
227 228
228static int corgi_mic_event(struct snd_soc_dapm_widget *w, int event) 229static int corgi_mic_event(struct snd_soc_dapm_widget *w,
230 struct snd_kcontrol *k, int event)
229{ 231{
230 if (SND_SOC_DAPM_EVENT_ON(event)) 232 if (SND_SOC_DAPM_EVENT_ON(event))
231 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS); 233 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS);
diff --git a/sound/soc/pxa/poodle.c b/sound/soc/pxa/poodle.c
index 5ae59bd309a3..4fbf8bba9627 100644
--- a/sound/soc/pxa/poodle.c
+++ b/sound/soc/pxa/poodle.c
@@ -196,7 +196,8 @@ static int poodle_set_spk(struct snd_kcontrol *kcontrol,
196 return 1; 196 return 1;
197} 197}
198 198
199static int poodle_amp_event(struct snd_soc_dapm_widget *w, int event) 199static int poodle_amp_event(struct snd_soc_dapm_widget *w,
200 struct snd_kcontrol *k, int event)
200{ 201{
201 if (SND_SOC_DAPM_EVENT_ON(event)) 202 if (SND_SOC_DAPM_EVENT_ON(event))
202 locomo_gpio_write(&poodle_locomo_device.dev, 203 locomo_gpio_write(&poodle_locomo_device.dev,
diff --git a/sound/soc/pxa/spitz.c b/sound/soc/pxa/spitz.c
index d56709e15435..ecca39033fcc 100644
--- a/sound/soc/pxa/spitz.c
+++ b/sound/soc/pxa/spitz.c
@@ -215,7 +215,8 @@ static int spitz_set_spk(struct snd_kcontrol *kcontrol,
215 return 1; 215 return 1;
216} 216}
217 217
218static int spitz_mic_bias(struct snd_soc_dapm_widget *w, int event) 218static int spitz_mic_bias(struct snd_soc_dapm_widget *w,
219 struct snd_kcontrol *k, int event)
219{ 220{
220 if (machine_is_borzoi() || machine_is_spitz()) { 221 if (machine_is_borzoi() || machine_is_spitz()) {
221 if (SND_SOC_DAPM_EVENT_ON(event)) 222 if (SND_SOC_DAPM_EVENT_ON(event))
diff --git a/sound/soc/pxa/tosa.c b/sound/soc/pxa/tosa.c
index e4d40b528ca4..7346d7e5d066 100644
--- a/sound/soc/pxa/tosa.c
+++ b/sound/soc/pxa/tosa.c
@@ -135,7 +135,8 @@ static int tosa_set_spk(struct snd_kcontrol *kcontrol,
135} 135}
136 136
137/* tosa dapm event handlers */ 137/* tosa dapm event handlers */
138static int tosa_hp_event(struct snd_soc_dapm_widget *w, int event) 138static int tosa_hp_event(struct snd_soc_dapm_widget *w,
139 struct snd_kcontrol *k, int event)
139{ 140{
140 if (SND_SOC_DAPM_EVENT_ON(event)) 141 if (SND_SOC_DAPM_EVENT_ON(event))
141 set_tc6393_gpio(&tc6393_device.dev,TOSA_TC6393_L_MUTE); 142 set_tc6393_gpio(&tc6393_device.dev,TOSA_TC6393_L_MUTE);
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index 8fa935665702..675672f313be 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -479,6 +479,33 @@ static int retire_playback_sync_urb_hs(struct snd_usb_substream *subs,
479 return 0; 479 return 0;
480} 480}
481 481
482/*
483 * process after E-Mu 0202/0404 high speed playback sync complete
484 *
485 * These devices return the number of samples per packet instead of the number
486 * of samples per microframe.
487 */
488static int retire_playback_sync_urb_hs_emu(struct snd_usb_substream *subs,
489 struct snd_pcm_runtime *runtime,
490 struct urb *urb)
491{
492 unsigned int f;
493 unsigned long flags;
494
495 if (urb->iso_frame_desc[0].status == 0 &&
496 urb->iso_frame_desc[0].actual_length == 4) {
497 f = combine_quad((u8*)urb->transfer_buffer) & 0x0fffffff;
498 f >>= subs->datainterval;
499 if (f >= subs->freqn - subs->freqn / 8 && f <= subs->freqmax) {
500 spin_lock_irqsave(&subs->lock, flags);
501 subs->freqm = f;
502 spin_unlock_irqrestore(&subs->lock, flags);
503 }
504 }
505
506 return 0;
507}
508
482/* determine the number of frames in the next packet */ 509/* determine the number of frames in the next packet */
483static int snd_usb_audio_next_packet_size(struct snd_usb_substream *subs) 510static int snd_usb_audio_next_packet_size(struct snd_usb_substream *subs)
484{ 511{
@@ -2219,10 +2246,17 @@ static void init_substream(struct snd_usb_stream *as, int stream, struct audiofo
2219 subs->stream = as; 2246 subs->stream = as;
2220 subs->direction = stream; 2247 subs->direction = stream;
2221 subs->dev = as->chip->dev; 2248 subs->dev = as->chip->dev;
2222 if (snd_usb_get_speed(subs->dev) == USB_SPEED_FULL) 2249 if (snd_usb_get_speed(subs->dev) == USB_SPEED_FULL) {
2223 subs->ops = audio_urb_ops[stream]; 2250 subs->ops = audio_urb_ops[stream];
2224 else 2251 } else {
2225 subs->ops = audio_urb_ops_high_speed[stream]; 2252 subs->ops = audio_urb_ops_high_speed[stream];
2253 switch (as->chip->usb_id) {
2254 case USB_ID(0x041e, 0x3f02): /* E-Mu 0202 USB */
2255 case USB_ID(0x041e, 0x3f04): /* E-Mu 0404 USB */
2256 subs->ops.retire_sync = retire_playback_sync_urb_hs_emu;
2257 break;
2258 }
2259 }
2226 snd_pcm_set_ops(as->pcm, stream, 2260 snd_pcm_set_ops(as->pcm, stream,
2227 stream == SNDRV_PCM_STREAM_PLAYBACK ? 2261 stream == SNDRV_PCM_STREAM_PLAYBACK ?
2228 &snd_usb_playback_ops : &snd_usb_capture_ops); 2262 &snd_usb_playback_ops : &snd_usb_capture_ops);