diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-29 11:44:00 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-29 11:44:00 -0500 |
commit | c0f4133b8f70769bc8dda977feb9a29109d6ccca (patch) | |
tree | 1d0fa7a73960cc5fb3baf87774cde27b4fe311c5 | |
parent | 99642e211a789df34347c3f10f0301462837f0c5 (diff) | |
parent | 0d9ac27afa469dbb20940ad7f25502785af1cbe3 (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.c | 2 | ||||
-rw-r--r-- | sound/pci/hda/patch_analog.c | 8 | ||||
-rw-r--r-- | sound/pci/hda/patch_conexant.c | 5 | ||||
-rw-r--r-- | sound/pci/hda/patch_realtek.c | 22 | ||||
-rw-r--r-- | sound/pci/ice1712/phase.c | 2 | ||||
-rw-r--r-- | sound/pci/ice1712/revo.c | 2 | ||||
-rw-r--r-- | sound/pci/intel8x0.c | 12 | ||||
-rw-r--r-- | sound/pci/oxygen/hifier.c | 1 | ||||
-rw-r--r-- | sound/pci/oxygen/virtuoso.c | 1 | ||||
-rw-r--r-- | sound/soc/codecs/tlv320aic3x.c | 4 | ||||
-rw-r--r-- | sound/soc/codecs/wm9712.c | 3 | ||||
-rw-r--r-- | sound/soc/pxa/corgi.c | 6 | ||||
-rw-r--r-- | sound/soc/pxa/poodle.c | 3 | ||||
-rw-r--r-- | sound/soc/pxa/spitz.c | 3 | ||||
-rw-r--r-- | sound/soc/pxa/tosa.c | 3 | ||||
-rw-r--r-- | sound/usb/usbaudio.c | 38 |
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] = { | |||
1778 | static struct hda_input_mux ad1988_6stack_capture_source = { | 1778 | static 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 = { | |||
1789 | static struct hda_input_mux ad1988_laptop_capture_source = { | 1789 | static 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[] = { | |||
1230 | static struct hda_verb cxt5047_hp_init_verbs[] = { | 1230 | static 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[] = { | |||
12993 | static struct snd_kcontrol_new alc662_eeepc_p701_mixer[] = { | 12995 | static 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 | ||
13009 | static struct snd_kcontrol_new alc662_eeepc_ep20_mixer[] = { | 13011 | static 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 @@ | |||
51 | struct phase28_spec { | 51 | struct 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 @@ | |||
36 | struct revo51_spec { | 36 | struct 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 | ||
41 | static void revo_i2s_mclk_changed(struct snd_ice1712 *ice) | 41 | static 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 | ||
1710 | static struct ac97_quirk ac97_quirks[] __devinitdata = { | 1710 | static 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 | */ |
179 | static int mixer_event (struct snd_soc_dapm_widget *w, int event) | 179 | static 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 | ||
218 | static int corgi_amp_event(struct snd_soc_dapm_widget *w, int event) | 218 | static 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 | ||
228 | static int corgi_mic_event(struct snd_soc_dapm_widget *w, int event) | 229 | static 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 | ||
199 | static int poodle_amp_event(struct snd_soc_dapm_widget *w, int event) | 199 | static 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 | ||
218 | static int spitz_mic_bias(struct snd_soc_dapm_widget *w, int event) | 218 | static 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 */ |
138 | static int tosa_hp_event(struct snd_soc_dapm_widget *w, int event) | 138 | static 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 | */ | ||
488 | static 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 */ |
483 | static int snd_usb_audio_next_packet_size(struct snd_usb_substream *subs) | 510 | static 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); |