aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/arm/aaci.c6
-rw-r--r--sound/core/oss/pcm_oss.c2
-rw-r--r--sound/pci/hda/hda_codec.c9
-rw-r--r--sound/pci/hda/hda_codec.h1
-rw-r--r--sound/pci/hda/hda_proc.c3
-rw-r--r--sound/pci/hda/patch_realtek.c5
-rw-r--r--sound/pci/hda/patch_sigmatel.c2
-rw-r--r--sound/pci/intel8x0.c2
-rw-r--r--sound/soc/atmel/atmel_ssc_dai.c2
-rw-r--r--sound/soc/atmel/atmel_ssc_dai.h2
-rw-r--r--sound/soc/codecs/wm8350.c2
-rw-r--r--sound/soc/codecs/wm8990.c3
-rw-r--r--sound/soc/omap/omap-pcm.c5
-rw-r--r--sound/usb/usbaudio.c1
14 files changed, 28 insertions, 17 deletions
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index 89096e811a4b..772901e41ecb 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -90,7 +90,7 @@ static void aaci_ac97_write(struct snd_ac97 *ac97, unsigned short reg,
90 */ 90 */
91 do { 91 do {
92 v = readl(aaci->base + AACI_SLFR); 92 v = readl(aaci->base + AACI_SLFR);
93 } while ((v & (SLFR_1TXB|SLFR_2TXB)) && timeout--); 93 } while ((v & (SLFR_1TXB|SLFR_2TXB)) && --timeout);
94 94
95 if (!timeout) 95 if (!timeout)
96 dev_err(&aaci->dev->dev, 96 dev_err(&aaci->dev->dev,
@@ -126,7 +126,7 @@ static unsigned short aaci_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
126 */ 126 */
127 do { 127 do {
128 v = readl(aaci->base + AACI_SLFR); 128 v = readl(aaci->base + AACI_SLFR);
129 } while ((v & SLFR_1TXB) && timeout--); 129 } while ((v & SLFR_1TXB) && --timeout);
130 130
131 if (!timeout) { 131 if (!timeout) {
132 dev_err(&aaci->dev->dev, "timeout on slot 1 TX busy\n"); 132 dev_err(&aaci->dev->dev, "timeout on slot 1 TX busy\n");
@@ -147,7 +147,7 @@ static unsigned short aaci_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
147 do { 147 do {
148 cond_resched(); 148 cond_resched();
149 v = readl(aaci->base + AACI_SLFR) & (SLFR_1RXV|SLFR_2RXV); 149 v = readl(aaci->base + AACI_SLFR) & (SLFR_1RXV|SLFR_2RXV);
150 } while ((v != (SLFR_1RXV|SLFR_2RXV)) && timeout--); 150 } while ((v != (SLFR_1RXV|SLFR_2RXV)) && --timeout);
151 151
152 if (!timeout) { 152 if (!timeout) {
153 dev_err(&aaci->dev->dev, "timeout on RX valid\n"); 153 dev_err(&aaci->dev->dev, "timeout on RX valid\n");
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index e17836680f49..0a1798eafb0b 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -1767,7 +1767,7 @@ static int snd_pcm_oss_get_formats(struct snd_pcm_oss_file *pcm_oss_file)
1767 AFMT_S8 | AFMT_U16_LE | 1767 AFMT_S8 | AFMT_U16_LE |
1768 AFMT_U16_BE | 1768 AFMT_U16_BE |
1769 AFMT_S32_LE | AFMT_S32_BE | 1769 AFMT_S32_LE | AFMT_S32_BE |
1770 AFMT_S24_LE | AFMT_S24_LE | 1770 AFMT_S24_LE | AFMT_S24_BE |
1771 AFMT_S24_PACKED; 1771 AFMT_S24_PACKED;
1772 params = kmalloc(sizeof(*params), GFP_KERNEL); 1772 params = kmalloc(sizeof(*params), GFP_KERNEL);
1773 if (!params) 1773 if (!params)
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index b7bba7dc7cf1..0b708134d12f 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -487,7 +487,6 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
487{ 487{
488 struct hda_bus *bus; 488 struct hda_bus *bus;
489 int err; 489 int err;
490 char qname[8];
491 static struct snd_device_ops dev_ops = { 490 static struct snd_device_ops dev_ops = {
492 .dev_register = snd_hda_bus_dev_register, 491 .dev_register = snd_hda_bus_dev_register,
493 .dev_free = snd_hda_bus_dev_free, 492 .dev_free = snd_hda_bus_dev_free,
@@ -517,10 +516,12 @@ int /*__devinit*/ snd_hda_bus_new(struct snd_card *card,
517 mutex_init(&bus->cmd_mutex); 516 mutex_init(&bus->cmd_mutex);
518 INIT_LIST_HEAD(&bus->codec_list); 517 INIT_LIST_HEAD(&bus->codec_list);
519 518
520 snprintf(qname, sizeof(qname), "hda%d", card->number); 519 snprintf(bus->workq_name, sizeof(bus->workq_name),
521 bus->workq = create_workqueue(qname); 520 "hd-audio%d", card->number);
521 bus->workq = create_singlethread_workqueue(bus->workq_name);
522 if (!bus->workq) { 522 if (!bus->workq) {
523 snd_printk(KERN_ERR "cannot create workqueue %s\n", qname); 523 snd_printk(KERN_ERR "cannot create workqueue %s\n",
524 bus->workq_name);
524 kfree(bus); 525 kfree(bus);
525 return -ENOMEM; 526 return -ENOMEM;
526 } 527 }
diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
index 5810ef588402..09a332ada0c6 100644
--- a/sound/pci/hda/hda_codec.h
+++ b/sound/pci/hda/hda_codec.h
@@ -614,6 +614,7 @@ struct hda_bus {
614 614
615 /* unsolicited event queue */ 615 /* unsolicited event queue */
616 struct hda_bus_unsolicited *unsol; 616 struct hda_bus_unsolicited *unsol;
617 char workq_name[16];
617 struct workqueue_struct *workq; /* common workqueue for codecs */ 618 struct workqueue_struct *workq; /* common workqueue for codecs */
618 619
619 /* assigned PCMs */ 620 /* assigned PCMs */
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index 7ca66d654148..144b85276d5a 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -399,7 +399,8 @@ static void print_conn_list(struct snd_info_buffer *buffer,
399{ 399{
400 int c, curr = -1; 400 int c, curr = -1;
401 401
402 if (conn_len > 1 && wid_type != AC_WID_AUD_MIX) 402 if (conn_len > 1 && wid_type != AC_WID_AUD_MIX &&
403 wid_type != AC_WID_VOL_KNB)
403 curr = snd_hda_codec_read(codec, nid, 0, 404 curr = snd_hda_codec_read(codec, nid, 0,
404 AC_VERB_GET_CONNECT_SEL, 0); 405 AC_VERB_GET_CONNECT_SEL, 0);
405 snd_iprintf(buffer, " Connection: %d\n", conn_len); 406 snd_iprintf(buffer, " Connection: %d\n", conn_len);
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 7884a4e07061..ae5c8a0d1479 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1037,6 +1037,7 @@ do_sku:
1037 case 0x10ec0267: 1037 case 0x10ec0267:
1038 case 0x10ec0268: 1038 case 0x10ec0268:
1039 case 0x10ec0269: 1039 case 0x10ec0269:
1040 case 0x10ec0272:
1040 case 0x10ec0660: 1041 case 0x10ec0660:
1041 case 0x10ec0662: 1042 case 0x10ec0662:
1042 case 0x10ec0663: 1043 case 0x10ec0663:
@@ -1065,6 +1066,7 @@ do_sku:
1065 case 0x10ec0882: 1066 case 0x10ec0882:
1066 case 0x10ec0883: 1067 case 0x10ec0883:
1067 case 0x10ec0885: 1068 case 0x10ec0885:
1069 case 0x10ec0887:
1068 case 0x10ec0889: 1070 case 0x10ec0889:
1069 snd_hda_codec_write(codec, 0x20, 0, 1071 snd_hda_codec_write(codec, 0x20, 0,
1070 AC_VERB_SET_COEF_INDEX, 7); 1072 AC_VERB_SET_COEF_INDEX, 7);
@@ -7012,6 +7014,7 @@ static int patch_alc882(struct hda_codec *codec)
7012 break; 7014 break;
7013 case 0x106b1000: /* iMac 24 */ 7015 case 0x106b1000: /* iMac 24 */
7014 case 0x106b2800: /* AppleTV */ 7016 case 0x106b2800: /* AppleTV */
7017 case 0x106b3e00: /* iMac 24 Aluminium */
7015 board_config = ALC885_IMAC24; 7018 board_config = ALC885_IMAC24;
7016 break; 7019 break;
7017 case 0x106b00a1: /* Macbook (might be wrong - PCI SSID?) */ 7020 case 0x106b00a1: /* Macbook (might be wrong - PCI SSID?) */
@@ -8514,6 +8517,8 @@ static struct snd_pci_quirk alc883_cfg_tbl[] = {
8514 SND_PCI_QUIRK(0x1558, 0, "Clevo laptop", ALC883_LAPTOP_EAPD), 8517 SND_PCI_QUIRK(0x1558, 0, "Clevo laptop", ALC883_LAPTOP_EAPD),
8515 SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch), 8518 SND_PCI_QUIRK(0x15d9, 0x8780, "Supermicro PDSBA", ALC883_3ST_6ch),
8516 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION), 8519 SND_PCI_QUIRK(0x161f, 0x2054, "Medion laptop", ALC883_MEDION),
8520 SND_PCI_QUIRK(0x1734, 0x1107, "FSC AMILO Xi2550",
8521 ALC883_FUJITSU_PI2515),
8517 SND_PCI_QUIRK(0x1734, 0x1108, "Fujitsu AMILO Pi2515", ALC883_FUJITSU_PI2515), 8522 SND_PCI_QUIRK(0x1734, 0x1108, "Fujitsu AMILO Pi2515", ALC883_FUJITSU_PI2515),
8518 SND_PCI_QUIRK(0x1734, 0x113d, "Fujitsu AMILO Xa3530", 8523 SND_PCI_QUIRK(0x1734, 0x113d, "Fujitsu AMILO Xa3530",
8519 ALC888_FUJITSU_XA3530), 8524 ALC888_FUJITSU_XA3530),
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index b787b3cc096f..38428e22428f 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -1804,6 +1804,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = {
1804 "HP dv4", STAC_HP_DV5), 1804 "HP dv4", STAC_HP_DV5),
1805 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fc, 1805 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x30fc,
1806 "HP dv7", STAC_HP_M4), 1806 "HP dv7", STAC_HP_M4),
1807 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3600,
1808 "HP dv5", STAC_HP_DV5),
1807 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3603, 1809 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x3603,
1808 "HP dv5", STAC_HP_DV5), 1810 "HP dv5", STAC_HP_DV5),
1809 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x361a, 1811 SND_PCI_QUIRK(PCI_VENDOR_ID_HP, 0x361a,
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 19d3391e229f..e900cdc84849 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -617,7 +617,7 @@ static int snd_intel8x0_ali_codec_semaphore(struct intel8x0 *chip)
617 int time = 100; 617 int time = 100;
618 if (chip->buggy_semaphore) 618 if (chip->buggy_semaphore)
619 return 0; /* just ignore ... */ 619 return 0; /* just ignore ... */
620 while (time-- && (igetdword(chip, ICHREG(ALI_CAS)) & ALI_CAS_SEM_BUSY)) 620 while (--time && (igetdword(chip, ICHREG(ALI_CAS)) & ALI_CAS_SEM_BUSY))
621 udelay(1); 621 udelay(1);
622 if (! time && ! chip->in_ac97_init) 622 if (! time && ! chip->in_ac97_init)
623 snd_printk(KERN_WARNING "ali_codec_semaphore timeout\n"); 623 snd_printk(KERN_WARNING "ali_codec_semaphore timeout\n");
diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c
index c5d67900d666..ff0054b76502 100644
--- a/sound/soc/atmel/atmel_ssc_dai.c
+++ b/sound/soc/atmel/atmel_ssc_dai.c
@@ -10,7 +10,7 @@
10 * Based on at91-ssc.c by 10 * Based on at91-ssc.c by
11 * Frank Mandarino <fmandarino@endrelia.com> 11 * Frank Mandarino <fmandarino@endrelia.com>
12 * Based on pxa2xx Platform drivers by 12 * Based on pxa2xx Platform drivers by
13 * Liam Girdwood <liam.girdwood@wolfsonmicro.com> 13 * Liam Girdwood <lrg@slimlogic.co.uk>
14 * 14 *
15 * This program is free software; you can redistribute it and/or modify 15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by 16 * it under the terms of the GNU General Public License as published by
diff --git a/sound/soc/atmel/atmel_ssc_dai.h b/sound/soc/atmel/atmel_ssc_dai.h
index a828746e8a2f..391135f9c6c1 100644
--- a/sound/soc/atmel/atmel_ssc_dai.h
+++ b/sound/soc/atmel/atmel_ssc_dai.h
@@ -10,7 +10,7 @@
10 * Based on at91-ssc.c by 10 * Based on at91-ssc.c by
11 * Frank Mandarino <fmandarino@endrelia.com> 11 * Frank Mandarino <fmandarino@endrelia.com>
12 * Based on pxa2xx Platform drivers by 12 * Based on pxa2xx Platform drivers by
13 * Liam Girdwood <liam.girdwood@wolfsonmicro.com> 13 * Liam Girdwood <lrg@slimlogic.co.uk>
14 * 14 *
15 * This program is free software; you can redistribute it and/or modify 15 * This program is free software; you can redistribute it and/or modify
16 * it under the terms of the GNU General Public License as published by 16 * it under the terms of the GNU General Public License as published by
diff --git a/sound/soc/codecs/wm8350.c b/sound/soc/codecs/wm8350.c
index e3989d406f54..35d99750c383 100644
--- a/sound/soc/codecs/wm8350.c
+++ b/sound/soc/codecs/wm8350.c
@@ -3,7 +3,7 @@
3 * 3 *
4 * Copyright (C) 2007, 2008 Wolfson Microelectronics PLC. 4 * Copyright (C) 2007, 2008 Wolfson Microelectronics PLC.
5 * 5 *
6 * Author: Liam Girdwood <lg@opensource.wolfsonmicro.com> 6 * Author: Liam Girdwood <lrg@slimlogic.co.uk>
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as 9 * it under the terms of the GNU General Public License version 2 as
diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c
index 5b5afc144478..1cbb7b9b51ce 100644
--- a/sound/soc/codecs/wm8990.c
+++ b/sound/soc/codecs/wm8990.c
@@ -2,8 +2,7 @@
2 * wm8990.c -- WM8990 ALSA Soc Audio driver 2 * wm8990.c -- WM8990 ALSA Soc Audio driver
3 * 3 *
4 * Copyright 2008 Wolfson Microelectronics PLC. 4 * Copyright 2008 Wolfson Microelectronics PLC.
5 * Author: Liam Girdwood 5 * Author: Liam Girdwood <lrg@slimlogic.co.uk>
6 * lg@opensource.wolfsonmicro.com or linux@wolfsonmicro.com
7 * 6 *
8 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
index b0362dfd5b71..dd3bb2933762 100644
--- a/sound/soc/omap/omap-pcm.c
+++ b/sound/soc/omap/omap-pcm.c
@@ -175,9 +175,10 @@ static int omap_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
175{ 175{
176 struct snd_pcm_runtime *runtime = substream->runtime; 176 struct snd_pcm_runtime *runtime = substream->runtime;
177 struct omap_runtime_data *prtd = runtime->private_data; 177 struct omap_runtime_data *prtd = runtime->private_data;
178 unsigned long flags;
178 int ret = 0; 179 int ret = 0;
179 180
180 spin_lock_irq(&prtd->lock); 181 spin_lock_irqsave(&prtd->lock, flags);
181 switch (cmd) { 182 switch (cmd) {
182 case SNDRV_PCM_TRIGGER_START: 183 case SNDRV_PCM_TRIGGER_START:
183 case SNDRV_PCM_TRIGGER_RESUME: 184 case SNDRV_PCM_TRIGGER_RESUME:
@@ -195,7 +196,7 @@ static int omap_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
195 default: 196 default:
196 ret = -EINVAL; 197 ret = -EINVAL;
197 } 198 }
198 spin_unlock_irq(&prtd->lock); 199 spin_unlock_irqrestore(&prtd->lock, flags);
199 200
200 return ret; 201 return ret;
201} 202}
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index c709b9563226..2ab83129d9b0 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -2966,6 +2966,7 @@ static int create_fixed_stream_quirk(struct snd_usb_audio *chip,
2966 return -EINVAL; 2966 return -EINVAL;
2967 } 2967 }
2968 alts = &iface->altsetting[fp->altset_idx]; 2968 alts = &iface->altsetting[fp->altset_idx];
2969 fp->maxpacksize = le16_to_cpu(get_endpoint(alts, 0)->wMaxPacketSize);
2969 usb_set_interface(chip->dev, fp->iface, 0); 2970 usb_set_interface(chip->dev, fp->iface, 0);
2970 init_usb_pitch(chip->dev, fp->iface, alts, fp); 2971 init_usb_pitch(chip->dev, fp->iface, alts, fp);
2971 init_usb_sample_rate(chip->dev, fp->iface, alts, fp, fp->rate_max); 2972 init_usb_sample_rate(chip->dev, fp->iface, alts, fp, fp->rate_max);