diff options
| -rw-r--r-- | sound/firewire/isight.c | 1 | ||||
| -rw-r--r-- | sound/pci/emu10k1/emu10k1_main.c | 8 | ||||
| -rw-r--r-- | sound/pci/hda/hda_beep.h | 9 | ||||
| -rw-r--r-- | sound/pci/hda/patch_realtek.c | 3 | ||||
| -rw-r--r-- | sound/pci/hda/patch_via.c | 11 | ||||
| -rw-r--r-- | sound/pci/lola/lola.c | 2 | ||||
| -rw-r--r-- | sound/pci/rme9652/hdspm.c | 8 | ||||
| -rw-r--r-- | sound/usb/6fire/firmware.c | 1 | ||||
| -rw-r--r-- | sound/usb/6fire/pcm.c | 4 |
9 files changed, 33 insertions, 14 deletions
diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c index 86ee16ca365e..440030818db7 100644 --- a/sound/firewire/isight.c +++ b/sound/firewire/isight.c | |||
| @@ -209,6 +209,7 @@ static void isight_packet(struct fw_iso_context *context, u32 cycle, | |||
| 209 | isight->packet_index = -1; | 209 | isight->packet_index = -1; |
| 210 | return; | 210 | return; |
| 211 | } | 211 | } |
| 212 | fw_iso_context_queue_flush(isight->context); | ||
| 212 | 213 | ||
| 213 | if (++index >= QUEUE_LENGTH) | 214 | if (++index >= QUEUE_LENGTH) |
| 214 | index = 0; | 215 | index = 0; |
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c index 5e619a84da06..15f0161ce4a2 100644 --- a/sound/pci/emu10k1/emu10k1_main.c +++ b/sound/pci/emu10k1/emu10k1_main.c | |||
| @@ -1440,6 +1440,14 @@ static struct snd_emu_chip_details emu_chip_details[] = { | |||
| 1440 | .ca0102_chip = 1, | 1440 | .ca0102_chip = 1, |
| 1441 | .spk71 = 1, | 1441 | .spk71 = 1, |
| 1442 | .emu_model = EMU_MODEL_EMU0404}, /* EMU 0404 */ | 1442 | .emu_model = EMU_MODEL_EMU0404}, /* EMU 0404 */ |
| 1443 | /* EMU0404 PCIe */ | ||
| 1444 | {.vendor = 0x1102, .device = 0x0008, .subsystem = 0x40051102, | ||
| 1445 | .driver = "Audigy2", .name = "E-mu 0404 PCIe [MAEM8984]", | ||
| 1446 | .id = "EMU0404", | ||
| 1447 | .emu10k2_chip = 1, | ||
| 1448 | .ca0108_chip = 1, | ||
| 1449 | .spk71 = 1, | ||
| 1450 | .emu_model = EMU_MODEL_EMU0404}, /* EMU 0404 PCIe ver_03 */ | ||
| 1443 | /* Note that all E-mu cards require kernel 2.6 or newer. */ | 1451 | /* Note that all E-mu cards require kernel 2.6 or newer. */ |
| 1444 | {.vendor = 0x1102, .device = 0x0008, | 1452 | {.vendor = 0x1102, .device = 0x0008, |
| 1445 | .driver = "Audigy2", .name = "SB Audigy 2 Value [Unknown]", | 1453 | .driver = "Audigy2", .name = "SB Audigy 2 Value [Unknown]", |
diff --git a/sound/pci/hda/hda_beep.h b/sound/pci/hda/hda_beep.h index f1de1bac042c..55f0647458c7 100644 --- a/sound/pci/hda/hda_beep.h +++ b/sound/pci/hda/hda_beep.h | |||
| @@ -50,7 +50,12 @@ int snd_hda_enable_beep_device(struct hda_codec *codec, int enable); | |||
| 50 | int snd_hda_attach_beep_device(struct hda_codec *codec, int nid); | 50 | int snd_hda_attach_beep_device(struct hda_codec *codec, int nid); |
| 51 | void snd_hda_detach_beep_device(struct hda_codec *codec); | 51 | void snd_hda_detach_beep_device(struct hda_codec *codec); |
| 52 | #else | 52 | #else |
| 53 | #define snd_hda_attach_beep_device(...) 0 | 53 | static inline int snd_hda_attach_beep_device(struct hda_codec *codec, int nid) |
| 54 | #define snd_hda_detach_beep_device(...) | 54 | { |
| 55 | return 0; | ||
| 56 | } | ||
| 57 | static inline void snd_hda_detach_beep_device(struct hda_codec *codec) | ||
| 58 | { | ||
| 59 | } | ||
| 55 | #endif | 60 | #endif |
| 56 | #endif | 61 | #endif |
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 43fcfbd32847..61a774b3d3cb 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
| @@ -13316,9 +13316,8 @@ static void alc268_acer_lc_setup(struct hda_codec *codec) | |||
| 13316 | struct alc_spec *spec = codec->spec; | 13316 | struct alc_spec *spec = codec->spec; |
| 13317 | spec->autocfg.hp_pins[0] = 0x15; | 13317 | spec->autocfg.hp_pins[0] = 0x15; |
| 13318 | spec->autocfg.speaker_pins[0] = 0x14; | 13318 | spec->autocfg.speaker_pins[0] = 0x14; |
| 13319 | spec->automute_mixer_nid[0] = 0x0f; | ||
| 13320 | spec->automute = 1; | 13319 | spec->automute = 1; |
| 13321 | spec->automute_mode = ALC_AUTOMUTE_MIXER; | 13320 | spec->automute_mode = ALC_AUTOMUTE_AMP; |
| 13322 | spec->ext_mic.pin = 0x18; | 13321 | spec->ext_mic.pin = 0x18; |
| 13323 | spec->ext_mic.mux_idx = 0; | 13322 | spec->ext_mic.mux_idx = 0; |
| 13324 | spec->int_mic.pin = 0x12; | 13323 | spec->int_mic.pin = 0x12; |
diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 605c99e1e520..c952582fb218 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c | |||
| @@ -832,10 +832,13 @@ static int via_hp_build(struct hda_codec *codec) | |||
| 832 | knew->subdevice = HDA_SUBDEV_NID_FLAG | nid; | 832 | knew->subdevice = HDA_SUBDEV_NID_FLAG | nid; |
| 833 | knew->private_value = nid; | 833 | knew->private_value = nid; |
| 834 | 834 | ||
| 835 | knew = via_clone_control(spec, &via_hp_mixer[1]); | 835 | nid = side_mute_channel(spec); |
| 836 | if (knew == NULL) | 836 | if (nid) { |
| 837 | return -ENOMEM; | 837 | knew = via_clone_control(spec, &via_hp_mixer[1]); |
| 838 | knew->subdevice = side_mute_channel(spec); | 838 | if (knew == NULL) |
| 839 | return -ENOMEM; | ||
| 840 | knew->subdevice = nid; | ||
| 841 | } | ||
| 839 | 842 | ||
| 840 | return 0; | 843 | return 0; |
| 841 | } | 844 | } |
diff --git a/sound/pci/lola/lola.c b/sound/pci/lola/lola.c index 34b24286d279..2692e5ae5f2d 100644 --- a/sound/pci/lola/lola.c +++ b/sound/pci/lola/lola.c | |||
| @@ -445,7 +445,7 @@ static void lola_reset_setups(struct lola *chip) | |||
| 445 | lola_setup_all_analog_gains(chip, PLAY, false); /* output, update */ | 445 | lola_setup_all_analog_gains(chip, PLAY, false); /* output, update */ |
| 446 | } | 446 | } |
| 447 | 447 | ||
| 448 | static int lola_parse_tree(struct lola *chip) | 448 | static int __devinit lola_parse_tree(struct lola *chip) |
| 449 | { | 449 | { |
| 450 | unsigned int val; | 450 | unsigned int val; |
| 451 | int nid, err; | 451 | int nid, err; |
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c index 949691a876d3..3f08afc0f0d3 100644 --- a/sound/pci/rme9652/hdspm.c +++ b/sound/pci/rme9652/hdspm.c | |||
| @@ -521,6 +521,7 @@ MODULE_SUPPORTED_DEVICE("{{RME HDSPM-MADI}}"); | |||
| 521 | #define HDSPM_DMA_AREA_KILOBYTES (HDSPM_DMA_AREA_BYTES/1024) | 521 | #define HDSPM_DMA_AREA_KILOBYTES (HDSPM_DMA_AREA_BYTES/1024) |
| 522 | 522 | ||
| 523 | /* revisions >= 230 indicate AES32 card */ | 523 | /* revisions >= 230 indicate AES32 card */ |
| 524 | #define HDSPM_MADI_OLD_REV 207 | ||
| 524 | #define HDSPM_MADI_REV 210 | 525 | #define HDSPM_MADI_REV 210 |
| 525 | #define HDSPM_RAYDAT_REV 211 | 526 | #define HDSPM_RAYDAT_REV 211 |
| 526 | #define HDSPM_AIO_REV 212 | 527 | #define HDSPM_AIO_REV 212 |
| @@ -1143,7 +1144,7 @@ static int hdspm_external_sample_rate(struct hdspm *hdspm) | |||
| 1143 | 1144 | ||
| 1144 | /* if wordclock has synced freq and wordclock is valid */ | 1145 | /* if wordclock has synced freq and wordclock is valid */ |
| 1145 | if ((status2 & HDSPM_wcLock) != 0 && | 1146 | if ((status2 & HDSPM_wcLock) != 0 && |
| 1146 | (status & HDSPM_SelSyncRef0) == 0) { | 1147 | (status2 & HDSPM_SelSyncRef0) == 0) { |
| 1147 | 1148 | ||
| 1148 | rate_bits = status2 & HDSPM_wcFreqMask; | 1149 | rate_bits = status2 & HDSPM_wcFreqMask; |
| 1149 | 1150 | ||
| @@ -1639,12 +1640,14 @@ static int snd_hdspm_midi_input_read (struct hdspm_midi *hmidi) | |||
| 1639 | } | 1640 | } |
| 1640 | } | 1641 | } |
| 1641 | hmidi->pending = 0; | 1642 | hmidi->pending = 0; |
| 1643 | spin_unlock_irqrestore(&hmidi->lock, flags); | ||
| 1642 | 1644 | ||
| 1645 | spin_lock_irqsave(&hmidi->hdspm->lock, flags); | ||
| 1643 | hmidi->hdspm->control_register |= hmidi->ie; | 1646 | hmidi->hdspm->control_register |= hmidi->ie; |
| 1644 | hdspm_write(hmidi->hdspm, HDSPM_controlRegister, | 1647 | hdspm_write(hmidi->hdspm, HDSPM_controlRegister, |
| 1645 | hmidi->hdspm->control_register); | 1648 | hmidi->hdspm->control_register); |
| 1649 | spin_unlock_irqrestore(&hmidi->hdspm->lock, flags); | ||
| 1646 | 1650 | ||
| 1647 | spin_unlock_irqrestore (&hmidi->lock, flags); | ||
| 1648 | return snd_hdspm_midi_output_write (hmidi); | 1651 | return snd_hdspm_midi_output_write (hmidi); |
| 1649 | } | 1652 | } |
| 1650 | 1653 | ||
| @@ -6377,6 +6380,7 @@ static int __devinit snd_hdspm_create(struct snd_card *card, | |||
| 6377 | 6380 | ||
| 6378 | switch (hdspm->firmware_rev) { | 6381 | switch (hdspm->firmware_rev) { |
| 6379 | case HDSPM_MADI_REV: | 6382 | case HDSPM_MADI_REV: |
| 6383 | case HDSPM_MADI_OLD_REV: | ||
| 6380 | hdspm->io_type = MADI; | 6384 | hdspm->io_type = MADI; |
| 6381 | hdspm->card_name = "RME MADI"; | 6385 | hdspm->card_name = "RME MADI"; |
| 6382 | hdspm->midiPorts = 3; | 6386 | hdspm->midiPorts = 3; |
diff --git a/sound/usb/6fire/firmware.c b/sound/usb/6fire/firmware.c index a91719d5918b..1e3ae3327dd3 100644 --- a/sound/usb/6fire/firmware.c +++ b/sound/usb/6fire/firmware.c | |||
| @@ -270,7 +270,6 @@ static int usb6fire_fw_ezusb_upload( | |||
| 270 | data = 0x00; /* resume ezusb cpu */ | 270 | data = 0x00; /* resume ezusb cpu */ |
| 271 | ret = usb6fire_fw_ezusb_write(device, 0xa0, 0xe600, &data, 1); | 271 | ret = usb6fire_fw_ezusb_write(device, 0xa0, 0xe600, &data, 1); |
| 272 | if (ret < 0) { | 272 | if (ret < 0) { |
| 273 | release_firmware(fw); | ||
| 274 | snd_printk(KERN_ERR PREFIX "unable to upload ezusb " | 273 | snd_printk(KERN_ERR PREFIX "unable to upload ezusb " |
| 275 | "firmware %s: end message.\n", fwname); | 274 | "firmware %s: end message.\n", fwname); |
| 276 | return ret; | 275 | return ret; |
diff --git a/sound/usb/6fire/pcm.c b/sound/usb/6fire/pcm.c index b137b25865cc..d144cdb2f159 100644 --- a/sound/usb/6fire/pcm.c +++ b/sound/usb/6fire/pcm.c | |||
| @@ -395,12 +395,12 @@ static int usb6fire_pcm_open(struct snd_pcm_substream *alsa_sub) | |||
| 395 | alsa_rt->hw = pcm_hw; | 395 | alsa_rt->hw = pcm_hw; |
| 396 | 396 | ||
| 397 | if (alsa_sub->stream == SNDRV_PCM_STREAM_PLAYBACK) { | 397 | if (alsa_sub->stream == SNDRV_PCM_STREAM_PLAYBACK) { |
| 398 | if (rt->rate >= 0) | 398 | if (rt->rate < ARRAY_SIZE(rates)) |
| 399 | alsa_rt->hw.rates = rates_alsaid[rt->rate]; | 399 | alsa_rt->hw.rates = rates_alsaid[rt->rate]; |
| 400 | alsa_rt->hw.channels_max = OUT_N_CHANNELS; | 400 | alsa_rt->hw.channels_max = OUT_N_CHANNELS; |
| 401 | sub = &rt->playback; | 401 | sub = &rt->playback; |
| 402 | } else if (alsa_sub->stream == SNDRV_PCM_STREAM_CAPTURE) { | 402 | } else if (alsa_sub->stream == SNDRV_PCM_STREAM_CAPTURE) { |
| 403 | if (rt->rate >= 0) | 403 | if (rt->rate < ARRAY_SIZE(rates)) |
| 404 | alsa_rt->hw.rates = rates_alsaid[rt->rate]; | 404 | alsa_rt->hw.rates = rates_alsaid[rt->rate]; |
| 405 | alsa_rt->hw.channels_max = IN_N_CHANNELS; | 405 | alsa_rt->hw.channels_max = IN_N_CHANNELS; |
| 406 | sub = &rt->capture; | 406 | sub = &rt->capture; |
