aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
Diffstat (limited to 'sound')
-rw-r--r--sound/aoa/codecs/tas.c2
-rw-r--r--sound/arm/pxa2xx-pcm-lib.c3
-rw-r--r--sound/core/pcm_lib.c4
-rw-r--r--sound/core/pcm_memory.c6
-rw-r--r--sound/core/pcm_native.c2
-rw-r--r--sound/core/seq/seq_dummy.c2
-rw-r--r--sound/core/vmaster.c2
-rw-r--r--sound/drivers/pcm-indirect2.c4
-rw-r--r--sound/drivers/vx/vx_pcm.c2
-rw-r--r--sound/firewire/speakers.c3
-rw-r--r--sound/isa/sb/emu8000.c2
-rw-r--r--sound/isa/wavefront/wavefront_midi.c2
-rw-r--r--sound/isa/wss/wss_lib.c2
-rw-r--r--sound/oss/ac97_codec.c6
-rw-r--r--sound/oss/audio.c4
-rw-r--r--sound/oss/dmasound/dmasound_core.c2
-rw-r--r--sound/oss/midibuf.c2
-rw-r--r--sound/oss/sb_card.c2
-rw-r--r--sound/oss/sb_ess.c2
-rw-r--r--sound/oss/swarm_cs4297a.c2
-rw-r--r--sound/oss/vidc.c2
-rw-r--r--sound/pci/ad1889.c2
-rw-r--r--sound/pci/asihpi/asihpi.c2
-rw-r--r--sound/pci/asihpi/hpi.h2
-rw-r--r--sound/pci/asihpi/hpi6000.c2
-rw-r--r--sound/pci/asihpi/hpi6205.c2
-rw-r--r--sound/pci/asihpi/hpi_internal.h2
-rw-r--r--sound/pci/asihpi/hpimsgx.c2
-rw-r--r--sound/pci/au88x0/au88x0.h2
-rw-r--r--sound/pci/au88x0/au88x0_a3d.c4
-rw-r--r--sound/pci/au88x0/au88x0_pcm.c2
-rw-r--r--sound/pci/azt3328.c2
-rw-r--r--sound/pci/ca0106/ca0106.h6
-rw-r--r--sound/pci/ca0106/ca0106_main.c2
-rw-r--r--sound/pci/ca0106/ca0106_mixer.c2
-rw-r--r--sound/pci/ca0106/ca0106_proc.c2
-rw-r--r--sound/pci/cmipci.c8
-rw-r--r--sound/pci/ctxfi/ctatc.c2
-rw-r--r--sound/pci/ctxfi/cthw20k1.c2
-rw-r--r--sound/pci/emu10k1/memory.c2
-rw-r--r--sound/pci/emu10k1/p16v.c2
-rw-r--r--sound/pci/emu10k1/p16v.h4
-rw-r--r--sound/pci/ens1370.c23
-rw-r--r--sound/pci/hda/hda_codec.c4
-rw-r--r--sound/pci/hda/patch_conexant.c2
-rw-r--r--sound/pci/hda/patch_hdmi.c70
-rw-r--r--sound/pci/hda/patch_realtek.c27
-rw-r--r--sound/pci/hda/patch_sigmatel.c5
-rw-r--r--sound/pci/ice1712/aureon.c4
-rw-r--r--sound/pci/ice1712/ice1712.c4
-rw-r--r--sound/pci/ice1712/pontis.c2
-rw-r--r--sound/pci/ice1712/prodigy_hifi.c4
-rw-r--r--sound/pci/intel8x0.c2
-rw-r--r--sound/pci/intel8x0m.c2
-rw-r--r--sound/pci/mixart/mixart_core.c4
-rw-r--r--sound/pci/pcxhr/pcxhr_core.c12
-rw-r--r--sound/pci/rme96.c2
-rw-r--r--sound/pci/rme9652/hdspm.c4
-rw-r--r--sound/pci/sis7019.c6
-rw-r--r--sound/ppc/snd_ps3.c2
-rw-r--r--sound/ppc/snd_ps3_reg.h14
-rw-r--r--sound/soc/atmel/atmel_ssc_dai.c2
-rw-r--r--sound/soc/codecs/alc5623.c2
-rw-r--r--sound/soc/codecs/lm4857.c2
-rw-r--r--sound/soc/codecs/sn95031.c2
-rw-r--r--sound/soc/codecs/tlv320aic26.h4
-rw-r--r--sound/soc/codecs/tlv320aic3x.c2
-rw-r--r--sound/soc/codecs/tlv320dac33.c34
-rw-r--r--sound/soc/codecs/twl4030.c6
-rw-r--r--sound/soc/codecs/twl6040.c4
-rw-r--r--sound/soc/codecs/wm8580.c2
-rw-r--r--sound/soc/codecs/wm8753.c2
-rw-r--r--sound/soc/codecs/wm8904.c2
-rw-r--r--sound/soc/codecs/wm8955.c2
-rw-r--r--sound/soc/codecs/wm8962.c2
-rw-r--r--sound/soc/codecs/wm8991.c2
-rw-r--r--sound/soc/codecs/wm8993.c2
-rw-r--r--sound/soc/codecs/wm8994.c6
-rw-r--r--sound/soc/codecs/wm9081.c4
-rw-r--r--sound/soc/imx/imx-pcm-dma-mx2.c9
-rw-r--r--sound/soc/imx/imx-ssi.c2
-rw-r--r--sound/soc/imx/imx-ssi.h3
-rw-r--r--sound/soc/kirkwood/kirkwood-dma.c4
-rw-r--r--sound/soc/mid-x86/sst_platform.c4
-rw-r--r--sound/soc/omap/ams-delta.c6
-rw-r--r--sound/soc/pxa/corgi.c2
-rw-r--r--sound/soc/pxa/pxa2xx-pcm.c1
-rw-r--r--sound/soc/pxa/zylonite.c6
-rw-r--r--sound/soc/samsung/neo1973_wm8753.c4
-rw-r--r--sound/soc/soc-core.c8
-rw-r--r--sound/soc/soc-jack.c2
-rw-r--r--sound/usb/6fire/firmware.c4
-rw-r--r--sound/usb/midi.c1
-rw-r--r--sound/usb/mixer.c2
-rw-r--r--sound/usb/quirks.c2
-rw-r--r--sound/usb/usx2y/usx2yhwdeppcm.c4
96 files changed, 263 insertions, 190 deletions
diff --git a/sound/aoa/codecs/tas.c b/sound/aoa/codecs/tas.c
index fd2188c3df2b..58804c7acfcf 100644
--- a/sound/aoa/codecs/tas.c
+++ b/sound/aoa/codecs/tas.c
@@ -170,7 +170,7 @@ static void tas_set_volume(struct tas *tas)
170 /* analysing the volume and mixer tables shows 170 /* analysing the volume and mixer tables shows
171 * that they are similar enough when we shift 171 * that they are similar enough when we shift
172 * the mixer table down by 4 bits. The error 172 * the mixer table down by 4 bits. The error
173 * is miniscule, in just one item the error 173 * is minuscule, in just one item the error
174 * is 1, at a value of 0x07f17b (mixer table 174 * is 1, at a value of 0x07f17b (mixer table
175 * value is 0x07f17a) */ 175 * value is 0x07f17a) */
176 tmp = tas_gaintable[left]; 176 tmp = tas_gaintable[left];
diff --git a/sound/arm/pxa2xx-pcm-lib.c b/sound/arm/pxa2xx-pcm-lib.c
index 8808b82311b1..76e0d5695075 100644
--- a/sound/arm/pxa2xx-pcm-lib.c
+++ b/sound/arm/pxa2xx-pcm-lib.c
@@ -140,6 +140,9 @@ int __pxa2xx_pcm_prepare(struct snd_pcm_substream *substream)
140 if (!prtd || !prtd->params) 140 if (!prtd || !prtd->params)
141 return 0; 141 return 0;
142 142
143 if (prtd->dma_ch == -1)
144 return -EINVAL;
145
143 DCSR(prtd->dma_ch) &= ~DCSR_RUN; 146 DCSR(prtd->dma_ch) &= ~DCSR_RUN;
144 DCSR(prtd->dma_ch) = 0; 147 DCSR(prtd->dma_ch) = 0;
145 DCMD(prtd->dma_ch) = 0; 148 DCMD(prtd->dma_ch) = 0;
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index a82e3756a72d..64449cb8f873 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -375,6 +375,7 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
375 } 375 }
376 376
377 if (runtime->no_period_wakeup) { 377 if (runtime->no_period_wakeup) {
378 snd_pcm_sframes_t xrun_threshold;
378 /* 379 /*
379 * Without regular period interrupts, we have to check 380 * Without regular period interrupts, we have to check
380 * the elapsed time to detect xruns. 381 * the elapsed time to detect xruns.
@@ -383,7 +384,8 @@ static int snd_pcm_update_hw_ptr0(struct snd_pcm_substream *substream,
383 if (jdelta < runtime->hw_ptr_buffer_jiffies / 2) 384 if (jdelta < runtime->hw_ptr_buffer_jiffies / 2)
384 goto no_delta_check; 385 goto no_delta_check;
385 hdelta = jdelta - delta * HZ / runtime->rate; 386 hdelta = jdelta - delta * HZ / runtime->rate;
386 while (hdelta > runtime->hw_ptr_buffer_jiffies / 2 + 1) { 387 xrun_threshold = runtime->hw_ptr_buffer_jiffies / 2 + 1;
388 while (hdelta > xrun_threshold) {
387 delta += runtime->buffer_size; 389 delta += runtime->buffer_size;
388 hw_base += runtime->buffer_size; 390 hw_base += runtime->buffer_size;
389 if (hw_base >= runtime->boundary) 391 if (hw_base >= runtime->boundary)
diff --git a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c
index 917e4055ee30..150cb7edffee 100644
--- a/sound/core/pcm_memory.c
+++ b/sound/core/pcm_memory.c
@@ -253,7 +253,7 @@ static int snd_pcm_lib_preallocate_pages1(struct snd_pcm_substream *substream,
253 * snd_pcm_lib_preallocate_pages - pre-allocation for the given DMA type 253 * snd_pcm_lib_preallocate_pages - pre-allocation for the given DMA type
254 * @substream: the pcm substream instance 254 * @substream: the pcm substream instance
255 * @type: DMA type (SNDRV_DMA_TYPE_*) 255 * @type: DMA type (SNDRV_DMA_TYPE_*)
256 * @data: DMA type dependant data 256 * @data: DMA type dependent data
257 * @size: the requested pre-allocation size in bytes 257 * @size: the requested pre-allocation size in bytes
258 * @max: the max. allowed pre-allocation size 258 * @max: the max. allowed pre-allocation size
259 * 259 *
@@ -278,10 +278,10 @@ int snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream,
278EXPORT_SYMBOL(snd_pcm_lib_preallocate_pages); 278EXPORT_SYMBOL(snd_pcm_lib_preallocate_pages);
279 279
280/** 280/**
281 * snd_pcm_lib_preallocate_pages_for_all - pre-allocation for continous memory type (all substreams) 281 * snd_pcm_lib_preallocate_pages_for_all - pre-allocation for continuous memory type (all substreams)
282 * @pcm: the pcm instance 282 * @pcm: the pcm instance
283 * @type: DMA type (SNDRV_DMA_TYPE_*) 283 * @type: DMA type (SNDRV_DMA_TYPE_*)
284 * @data: DMA type dependant data 284 * @data: DMA type dependent data
285 * @size: the requested pre-allocation size in bytes 285 * @size: the requested pre-allocation size in bytes
286 * @max: the max. allowed pre-allocation size 286 * @max: the max. allowed pre-allocation size
287 * 287 *
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index fe5c8036beba..1a07750f3836 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -460,7 +460,7 @@ static int snd_pcm_hw_params(struct snd_pcm_substream *substream,
460 PM_QOS_CPU_DMA_LATENCY, usecs); 460 PM_QOS_CPU_DMA_LATENCY, usecs);
461 return 0; 461 return 0;
462 _error: 462 _error:
463 /* hardware might be unuseable from this time, 463 /* hardware might be unusable from this time,
464 so we force application to retry to set 464 so we force application to retry to set
465 the correct hardware parameter settings */ 465 the correct hardware parameter settings */
466 runtime->status->state = SNDRV_PCM_STATE_OPEN; 466 runtime->status->state = SNDRV_PCM_STATE_OPEN;
diff --git a/sound/core/seq/seq_dummy.c b/sound/core/seq/seq_dummy.c
index f3bdc54b429a..1d7d90ca455e 100644
--- a/sound/core/seq/seq_dummy.c
+++ b/sound/core/seq/seq_dummy.c
@@ -50,7 +50,7 @@
50 50
51 option snd-seq-dummy ports=4 51 option snd-seq-dummy ports=4
52 52
53 The modle option "duplex=1" enables duplex operation to the port. 53 The model option "duplex=1" enables duplex operation to the port.
54 In duplex mode, a pair of ports are created instead of single port, 54 In duplex mode, a pair of ports are created instead of single port,
55 and events are tunneled between pair-ports. For example, input to 55 and events are tunneled between pair-ports. For example, input to
56 port A is sent to output port of another port B and vice versa. 56 port A is sent to output port of another port B and vice versa.
diff --git a/sound/core/vmaster.c b/sound/core/vmaster.c
index a89948ae9e8d..a39d3d8c2f9c 100644
--- a/sound/core/vmaster.c
+++ b/sound/core/vmaster.c
@@ -233,7 +233,7 @@ static void slave_free(struct snd_kcontrol *kcontrol)
233 * Add a slave control to the group with the given master control 233 * Add a slave control to the group with the given master control
234 * 234 *
235 * All slaves must be the same type (returning the same information 235 * All slaves must be the same type (returning the same information
236 * via info callback). The fucntion doesn't check it, so it's your 236 * via info callback). The function doesn't check it, so it's your
237 * responsibility. 237 * responsibility.
238 * 238 *
239 * Also, some additional limitations: 239 * Also, some additional limitations:
diff --git a/sound/drivers/pcm-indirect2.c b/sound/drivers/pcm-indirect2.c
index 3c93c23e4883..e73fafd761b3 100644
--- a/sound/drivers/pcm-indirect2.c
+++ b/sound/drivers/pcm-indirect2.c
@@ -264,7 +264,7 @@ snd_pcm_indirect2_playback_transfer(struct snd_pcm_substream *substream,
264 if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2)) 264 if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
265 diff += runtime->boundary; 265 diff += runtime->boundary;
266 /* number of bytes "added" by ALSA increases the number of 266 /* number of bytes "added" by ALSA increases the number of
267 * bytes which are ready to "be transfered to HW"/"played" 267 * bytes which are ready to "be transferred to HW"/"played"
268 * Then, set rec->appl_ptr to not count bytes twice next time. 268 * Then, set rec->appl_ptr to not count bytes twice next time.
269 */ 269 */
270 rec->sw_ready += (int)frames_to_bytes(runtime, diff); 270 rec->sw_ready += (int)frames_to_bytes(runtime, diff);
@@ -330,7 +330,7 @@ snd_pcm_indirect2_playback_transfer(struct snd_pcm_substream *substream,
330 /* copy bytes from intermediate buffer position sw_data to the 330 /* copy bytes from intermediate buffer position sw_data to the
331 * HW and return number of bytes actually written 331 * HW and return number of bytes actually written
332 * Furthermore, set hw_ready to 0, if the fifo isn't empty 332 * Furthermore, set hw_ready to 0, if the fifo isn't empty
333 * now => more could be transfered to fifo 333 * now => more could be transferred to fifo
334 */ 334 */
335 bytes = copy(substream, rec, bytes); 335 bytes = copy(substream, rec, bytes);
336 rec->bytes2hw += bytes; 336 rec->bytes2hw += bytes;
diff --git a/sound/drivers/vx/vx_pcm.c b/sound/drivers/vx/vx_pcm.c
index 35a2f71a6af5..5e897b236cec 100644
--- a/sound/drivers/vx/vx_pcm.c
+++ b/sound/drivers/vx/vx_pcm.c
@@ -1189,7 +1189,7 @@ void vx_pcm_update_intr(struct vx_core *chip, unsigned int events)
1189 1189
1190 1190
1191/* 1191/*
1192 * vx_init_audio_io - check the availabe audio i/o and allocate pipe arrays 1192 * vx_init_audio_io - check the available audio i/o and allocate pipe arrays
1193 */ 1193 */
1194static int vx_init_audio_io(struct vx_core *chip) 1194static int vx_init_audio_io(struct vx_core *chip)
1195{ 1195{
diff --git a/sound/firewire/speakers.c b/sound/firewire/speakers.c
index 0fce9218abb1..5466de8527bd 100644
--- a/sound/firewire/speakers.c
+++ b/sound/firewire/speakers.c
@@ -778,10 +778,9 @@ static int __devexit fwspk_remove(struct device *dev)
778{ 778{
779 struct fwspk *fwspk = dev_get_drvdata(dev); 779 struct fwspk *fwspk = dev_get_drvdata(dev);
780 780
781 snd_card_disconnect(fwspk->card);
782
783 mutex_lock(&fwspk->mutex); 781 mutex_lock(&fwspk->mutex);
784 amdtp_out_stream_pcm_abort(&fwspk->stream); 782 amdtp_out_stream_pcm_abort(&fwspk->stream);
783 snd_card_disconnect(fwspk->card);
785 fwspk_stop_stream(fwspk); 784 fwspk_stop_stream(fwspk);
786 mutex_unlock(&fwspk->mutex); 785 mutex_unlock(&fwspk->mutex);
787 786
diff --git a/sound/isa/sb/emu8000.c b/sound/isa/sb/emu8000.c
index 0c40951b6523..5d61f5a29130 100644
--- a/sound/isa/sb/emu8000.c
+++ b/sound/isa/sb/emu8000.c
@@ -370,7 +370,7 @@ init_arrays(struct snd_emu8000 *emu)
370 370
371/* 371/*
372 * Size the onboard memory. 372 * Size the onboard memory.
373 * This is written so as not to need arbitary delays after the write. It 373 * This is written so as not to need arbitrary delays after the write. It
374 * seems that the only way to do this is to use the one channel and keep 374 * seems that the only way to do this is to use the one channel and keep
375 * reallocating between read and write. 375 * reallocating between read and write.
376 */ 376 */
diff --git a/sound/isa/wavefront/wavefront_midi.c b/sound/isa/wavefront/wavefront_midi.c
index f14a7c0b6998..65329f3abc30 100644
--- a/sound/isa/wavefront/wavefront_midi.c
+++ b/sound/isa/wavefront/wavefront_midi.c
@@ -537,7 +537,7 @@ snd_wavefront_midi_start (snd_wavefront_card_t *card)
537 } 537 }
538 538
539 /* Turn on Virtual MIDI, but first *always* turn it off, 539 /* Turn on Virtual MIDI, but first *always* turn it off,
540 since otherwise consectutive reloads of the driver will 540 since otherwise consecutive reloads of the driver will
541 never cause the hardware to generate the initial "internal" or 541 never cause the hardware to generate the initial "internal" or
542 "external" source bytes in the MIDI data stream. This 542 "external" source bytes in the MIDI data stream. This
543 is pretty important, since the internal hardware generally will 543 is pretty important, since the internal hardware generally will
diff --git a/sound/isa/wss/wss_lib.c b/sound/isa/wss/wss_lib.c
index 9191b32d9130..2a42cc377957 100644
--- a/sound/isa/wss/wss_lib.c
+++ b/sound/isa/wss/wss_lib.c
@@ -424,7 +424,7 @@ void snd_wss_mce_down(struct snd_wss *chip)
424 424
425 /* 425 /*
426 * Wait for (possible -- during init auto-calibration may not be set) 426 * Wait for (possible -- during init auto-calibration may not be set)
427 * calibration process to start. Needs upto 5 sample periods on AD1848 427 * calibration process to start. Needs up to 5 sample periods on AD1848
428 * which at the slowest possible rate of 5.5125 kHz means 907 us. 428 * which at the slowest possible rate of 5.5125 kHz means 907 us.
429 */ 429 */
430 msleep(1); 430 msleep(1);
diff --git a/sound/oss/ac97_codec.c b/sound/oss/ac97_codec.c
index 854c303264dc..0cd23d94888f 100644
--- a/sound/oss/ac97_codec.c
+++ b/sound/oss/ac97_codec.c
@@ -28,7 +28,7 @@
28 * 28 *
29 * History 29 * History
30 * May 02, 2003 Liam Girdwood <lrg@slimlogic.co.uk> 30 * May 02, 2003 Liam Girdwood <lrg@slimlogic.co.uk>
31 * Removed non existant WM9700 31 * Removed non existent WM9700
32 * Added support for WM9705, WM9708, WM9709, WM9710, WM9711 32 * Added support for WM9705, WM9708, WM9709, WM9710, WM9711
33 * WM9712 and WM9717 33 * WM9712 and WM9717
34 * Mar 28, 2002 Randolph Bentson <bentson@holmsjoen.com> 34 * Mar 28, 2002 Randolph Bentson <bentson@holmsjoen.com>
@@ -441,7 +441,7 @@ static void ac97_set_mixer(struct ac97_codec *codec, unsigned int oss_mixer, uns
441} 441}
442 442
443/* read or write the recmask, the ac97 can really have left and right recording 443/* read or write the recmask, the ac97 can really have left and right recording
444 inputs independantly set, but OSS doesn't seem to want us to express that to 444 inputs independently set, but OSS doesn't seem to want us to express that to
445 the user. the caller guarantees that we have a supported bit set, and they 445 the user. the caller guarantees that we have a supported bit set, and they
446 must be holding the card's spinlock */ 446 must be holding the card's spinlock */
447static int ac97_recmask_io(struct ac97_codec *codec, int rw, int mask) 447static int ac97_recmask_io(struct ac97_codec *codec, int rw, int mask)
@@ -754,7 +754,7 @@ int ac97_probe_codec(struct ac97_codec *codec)
754 if((codec->codec_ops == &null_ops) && (f & 4)) 754 if((codec->codec_ops == &null_ops) && (f & 4))
755 codec->codec_ops = &default_digital_ops; 755 codec->codec_ops = &default_digital_ops;
756 756
757 /* A device which thinks its a modem but isnt */ 757 /* A device which thinks its a modem but isn't */
758 if(codec->flags & AC97_DELUDED_MODEM) 758 if(codec->flags & AC97_DELUDED_MODEM)
759 codec->modem = 0; 759 codec->modem = 0;
760 760
diff --git a/sound/oss/audio.c b/sound/oss/audio.c
index 7df48a25c4ee..4b958b1c497c 100644
--- a/sound/oss/audio.c
+++ b/sound/oss/audio.c
@@ -514,7 +514,7 @@ int audio_ioctl(int dev, struct file *file, unsigned int cmd, void __user *arg)
514 count += dmap->bytes_in_use; /* Pointer wrap not handled yet */ 514 count += dmap->bytes_in_use; /* Pointer wrap not handled yet */
515 count += dmap->byte_counter; 515 count += dmap->byte_counter;
516 516
517 /* Substract current count from the number of bytes written by app */ 517 /* Subtract current count from the number of bytes written by app */
518 count = dmap->user_counter - count; 518 count = dmap->user_counter - count;
519 if (count < 0) 519 if (count < 0)
520 count = 0; 520 count = 0;
@@ -931,7 +931,7 @@ static int dma_ioctl(int dev, unsigned int cmd, void __user *arg)
931 if (count < dmap_out->fragment_size && dmap_out->qhead != 0) 931 if (count < dmap_out->fragment_size && dmap_out->qhead != 0)
932 count += dmap_out->bytes_in_use; /* Pointer wrap not handled yet */ 932 count += dmap_out->bytes_in_use; /* Pointer wrap not handled yet */
933 count += dmap_out->byte_counter; 933 count += dmap_out->byte_counter;
934 /* Substract current count from the number of bytes written by app */ 934 /* Subtract current count from the number of bytes written by app */
935 count = dmap_out->user_counter - count; 935 count = dmap_out->user_counter - count;
936 if (count < 0) 936 if (count < 0)
937 count = 0; 937 count = 0;
diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c
index 87e2c72651f5..c918313c2206 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -1021,7 +1021,7 @@ static int sq_ioctl(struct file *file, u_int cmd, u_long arg)
1021 case SNDCTL_DSP_SYNC: 1021 case SNDCTL_DSP_SYNC:
1022 /* This call, effectively, has the same behaviour as SNDCTL_DSP_RESET 1022 /* This call, effectively, has the same behaviour as SNDCTL_DSP_RESET
1023 except that it waits for output to finish before resetting 1023 except that it waits for output to finish before resetting
1024 everything - read, however, is killed imediately. 1024 everything - read, however, is killed immediately.
1025 */ 1025 */
1026 result = 0 ; 1026 result = 0 ;
1027 if (file->f_mode & FMODE_WRITE) { 1027 if (file->f_mode & FMODE_WRITE) {
diff --git a/sound/oss/midibuf.c b/sound/oss/midibuf.c
index ceedb1eff203..8cdb2cfe65c8 100644
--- a/sound/oss/midibuf.c
+++ b/sound/oss/midibuf.c
@@ -295,7 +295,7 @@ int MIDIbuf_write(int dev, struct file *file, const char __user *buf, int count)
295 295
296 for (i = 0; i < n; i++) 296 for (i = 0; i < n; i++)
297 { 297 {
298 /* BROKE BROKE BROKE - CANT DO THIS WITH CLI !! */ 298 /* BROKE BROKE BROKE - CAN'T DO THIS WITH CLI !! */
299 /* yes, think the same, so I removed the cli() brackets 299 /* yes, think the same, so I removed the cli() brackets
300 QUEUE_BYTE is protected against interrupts */ 300 QUEUE_BYTE is protected against interrupts */
301 if (copy_from_user((char *) &tmp_data, &(buf)[c], 1)) { 301 if (copy_from_user((char *) &tmp_data, &(buf)[c], 1)) {
diff --git a/sound/oss/sb_card.c b/sound/oss/sb_card.c
index 84ef4d06c1c2..fb5d7250de38 100644
--- a/sound/oss/sb_card.c
+++ b/sound/oss/sb_card.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * sound/oss/sb_card.c 2 * sound/oss/sb_card.c
3 * 3 *
4 * Detection routine for the ISA Sound Blaster and compatable sound 4 * Detection routine for the ISA Sound Blaster and compatible sound
5 * cards. 5 * cards.
6 * 6 *
7 * This file is distributed under the GNU GENERAL PUBLIC LICENSE (GPL) 7 * This file is distributed under the GNU GENERAL PUBLIC LICENSE (GPL)
diff --git a/sound/oss/sb_ess.c b/sound/oss/sb_ess.c
index 9890cf2066ff..5c773dff5ac5 100644
--- a/sound/oss/sb_ess.c
+++ b/sound/oss/sb_ess.c
@@ -168,7 +168,7 @@
168 * corresponding playback levels, unless recmask says they aren't recorded. In 168 * corresponding playback levels, unless recmask says they aren't recorded. In
169 * the latter case the recording volumes are 0. 169 * the latter case the recording volumes are 0.
170 * Now recording levels of inputs can be controlled, by changing the playback 170 * Now recording levels of inputs can be controlled, by changing the playback
171 * levels. Futhermore several devices can be recorded together (which is not 171 * levels. Furthermore several devices can be recorded together (which is not
172 * possible with the ES1688). 172 * possible with the ES1688).
173 * Besides the separate recording level control for each input, the common 173 * Besides the separate recording level control for each input, the common
174 * recording level can also be controlled by RECLEV as described above. 174 * recording level can also be controlled by RECLEV as described above.
diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c
index 44357d877a27..09d46484bc1a 100644
--- a/sound/oss/swarm_cs4297a.c
+++ b/sound/oss/swarm_cs4297a.c
@@ -875,7 +875,7 @@ static void start_adc(struct cs4297a_state *s)
875 if (s->prop_adc.fmt & AFMT_S8 || s->prop_adc.fmt & AFMT_U8) { 875 if (s->prop_adc.fmt & AFMT_S8 || s->prop_adc.fmt & AFMT_U8) {
876 // 876 //
877 // now only use 16 bit capture, due to truncation issue 877 // now only use 16 bit capture, due to truncation issue
878 // in the chip, noticable distortion occurs. 878 // in the chip, noticeable distortion occurs.
879 // allocate buffer and then convert from 16 bit to 879 // allocate buffer and then convert from 16 bit to
880 // 8 bit for the user buffer. 880 // 8 bit for the user buffer.
881 // 881 //
diff --git a/sound/oss/vidc.c b/sound/oss/vidc.c
index f0e0caa53200..12ba28e7b933 100644
--- a/sound/oss/vidc.c
+++ b/sound/oss/vidc.c
@@ -227,7 +227,7 @@ static int vidc_audio_set_speed(int dev, int rate)
227 } else { 227 } else {
228 /*printk("VIDC: internal %d %d %d\n", rate, rate_int, hwrate);*/ 228 /*printk("VIDC: internal %d %d %d\n", rate, rate_int, hwrate);*/
229 hwctrl=0x00000003; 229 hwctrl=0x00000003;
230 /* Allow rougly 0.4% tolerance */ 230 /* Allow roughly 0.4% tolerance */
231 if (diff_int > (rate/256)) 231 if (diff_int > (rate/256))
232 rate=rate_int; 232 rate=rate_int;
233 } 233 }
diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c
index 4382d0fa6b9a..d8f6fd65ebbb 100644
--- a/sound/pci/ad1889.c
+++ b/sound/pci/ad1889.c
@@ -29,7 +29,7 @@
29 * PM support 29 * PM support
30 * MIDI support 30 * MIDI support
31 * Game Port support 31 * Game Port support
32 * SG DMA support (this will need *alot* of work) 32 * SG DMA support (this will need *a lot* of work)
33 */ 33 */
34 34
35#include <linux/init.h> 35#include <linux/init.h>
diff --git a/sound/pci/asihpi/asihpi.c b/sound/pci/asihpi/asihpi.c
index f53a31e939c1..f8ccc9677c6f 100644
--- a/sound/pci/asihpi/asihpi.c
+++ b/sound/pci/asihpi/asihpi.c
@@ -963,7 +963,7 @@ static int snd_card_asihpi_playback_open(struct snd_pcm_substream *substream)
963 963
964 /*? also check ASI5000 samplerate source 964 /*? also check ASI5000 samplerate source
965 If external, only support external rate. 965 If external, only support external rate.
966 If internal and other stream playing, cant switch 966 If internal and other stream playing, can't switch
967 */ 967 */
968 968
969 init_timer(&dpcm->timer); 969 init_timer(&dpcm->timer);
diff --git a/sound/pci/asihpi/hpi.h b/sound/pci/asihpi/hpi.h
index 6fc025c448de..255429c32c1c 100644
--- a/sound/pci/asihpi/hpi.h
+++ b/sound/pci/asihpi/hpi.h
@@ -725,7 +725,7 @@ enum HPI_AESEBU_ERRORS {
725#define HPI_PAD_TITLE_LEN 64 725#define HPI_PAD_TITLE_LEN 64
726/** The text string containing the comment. */ 726/** The text string containing the comment. */
727#define HPI_PAD_COMMENT_LEN 256 727#define HPI_PAD_COMMENT_LEN 256
728/** The PTY when the tuner has not recieved any PTY. */ 728/** The PTY when the tuner has not received any PTY. */
729#define HPI_PAD_PROGRAM_TYPE_INVALID 0xffff 729#define HPI_PAD_PROGRAM_TYPE_INVALID 0xffff
730/** \} */ 730/** \} */
731 731
diff --git a/sound/pci/asihpi/hpi6000.c b/sound/pci/asihpi/hpi6000.c
index 3e3c2ef6efd8..8c8aac4c567e 100644
--- a/sound/pci/asihpi/hpi6000.c
+++ b/sound/pci/asihpi/hpi6000.c
@@ -423,7 +423,7 @@ static void subsys_create_adapter(struct hpi_message *phm,
423 423
424 ao.priv = kzalloc(sizeof(struct hpi_hw_obj), GFP_KERNEL); 424 ao.priv = kzalloc(sizeof(struct hpi_hw_obj), GFP_KERNEL);
425 if (!ao.priv) { 425 if (!ao.priv) {
426 HPI_DEBUG_LOG(ERROR, "cant get mem for adapter object\n"); 426 HPI_DEBUG_LOG(ERROR, "can't get mem for adapter object\n");
427 phr->error = HPI_ERROR_MEMORY_ALLOC; 427 phr->error = HPI_ERROR_MEMORY_ALLOC;
428 return; 428 return;
429 } 429 }
diff --git a/sound/pci/asihpi/hpi6205.c b/sound/pci/asihpi/hpi6205.c
index 620525bdac59..22e9f08dea6d 100644
--- a/sound/pci/asihpi/hpi6205.c
+++ b/sound/pci/asihpi/hpi6205.c
@@ -466,7 +466,7 @@ static void subsys_create_adapter(struct hpi_message *phm,
466 466
467 ao.priv = kzalloc(sizeof(struct hpi_hw_obj), GFP_KERNEL); 467 ao.priv = kzalloc(sizeof(struct hpi_hw_obj), GFP_KERNEL);
468 if (!ao.priv) { 468 if (!ao.priv) {
469 HPI_DEBUG_LOG(ERROR, "cant get mem for adapter object\n"); 469 HPI_DEBUG_LOG(ERROR, "can't get mem for adapter object\n");
470 phr->error = HPI_ERROR_MEMORY_ALLOC; 470 phr->error = HPI_ERROR_MEMORY_ALLOC;
471 return; 471 return;
472 } 472 }
diff --git a/sound/pci/asihpi/hpi_internal.h b/sound/pci/asihpi/hpi_internal.h
index af678be0aa15..3b9fd115da36 100644
--- a/sound/pci/asihpi/hpi_internal.h
+++ b/sound/pci/asihpi/hpi_internal.h
@@ -607,7 +607,7 @@ struct hpi_data_compat32 {
607#endif 607#endif
608 608
609struct hpi_buffer { 609struct hpi_buffer {
610 /** placehoder for backward compatability (see dwBufferSize) */ 610 /** placehoder for backward compatibility (see dwBufferSize) */
611 struct hpi_msg_format reserved; 611 struct hpi_msg_format reserved;
612 u32 command; /**< HPI_BUFFER_CMD_xxx*/ 612 u32 command; /**< HPI_BUFFER_CMD_xxx*/
613 u32 pci_address; /**< PCI physical address of buffer for DSP DMA */ 613 u32 pci_address; /**< PCI physical address of buffer for DSP DMA */
diff --git a/sound/pci/asihpi/hpimsgx.c b/sound/pci/asihpi/hpimsgx.c
index bcbdf30a6aa0..360028b9abf5 100644
--- a/sound/pci/asihpi/hpimsgx.c
+++ b/sound/pci/asihpi/hpimsgx.c
@@ -722,7 +722,7 @@ static u16 HPIMSGX__init(struct hpi_message *phm,
722 return phr->error; 722 return phr->error;
723 } 723 }
724 if (hr.error == 0) { 724 if (hr.error == 0) {
725 /* the adapter was created succesfully 725 /* the adapter was created successfully
726 save the mapping for future use */ 726 save the mapping for future use */
727 hpi_entry_points[hr.u.s.adapter_index] = entry_point_func; 727 hpi_entry_points[hr.u.s.adapter_index] = entry_point_func;
728 /* prepare adapter (pre-open streams etc.) */ 728 /* prepare adapter (pre-open streams etc.) */
diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
index ecb8f4daf408..02f6e08f7592 100644
--- a/sound/pci/au88x0/au88x0.h
+++ b/sound/pci/au88x0/au88x0.h
@@ -104,7 +104,7 @@
104#define MIX_PLAYB(x) (vortex->mixplayb[x]) 104#define MIX_PLAYB(x) (vortex->mixplayb[x])
105#define MIX_SPDIF(x) (vortex->mixspdif[x]) 105#define MIX_SPDIF(x) (vortex->mixspdif[x])
106 106
107#define NR_WTPB 0x20 /* WT channels per eahc bank. */ 107#define NR_WTPB 0x20 /* WT channels per each bank. */
108 108
109/* Structs */ 109/* Structs */
110typedef struct { 110typedef struct {
diff --git a/sound/pci/au88x0/au88x0_a3d.c b/sound/pci/au88x0/au88x0_a3d.c
index f4aa8ff6f5f9..9ae8b3b17651 100644
--- a/sound/pci/au88x0/au88x0_a3d.c
+++ b/sound/pci/au88x0/au88x0_a3d.c
@@ -53,7 +53,7 @@ a3dsrc_GetTimeConsts(a3dsrc_t * a, short *HrtfTrack, short *ItdTrack,
53} 53}
54 54
55#endif 55#endif
56/* Atmospheric absorbtion. */ 56/* Atmospheric absorption. */
57 57
58static void 58static void
59a3dsrc_SetAtmosTarget(a3dsrc_t * a, short aa, short b, short c, short d, 59a3dsrc_SetAtmosTarget(a3dsrc_t * a, short aa, short b, short c, short d,
@@ -835,7 +835,7 @@ snd_vortex_a3d_filter_put(struct snd_kcontrol *kcontrol,
835 params[i] = ucontrol->value.integer.value[i]; 835 params[i] = ucontrol->value.integer.value[i];
836 /* Translate generic filter params to a3d filter params. */ 836 /* Translate generic filter params to a3d filter params. */
837 vortex_a3d_translate_filter(a->filter, params); 837 vortex_a3d_translate_filter(a->filter, params);
838 /* Atmospheric absorbtion and filtering. */ 838 /* Atmospheric absorption and filtering. */
839 a3dsrc_SetAtmosTarget(a, a->filter[0], 839 a3dsrc_SetAtmosTarget(a, a->filter[0],
840 a->filter[1], a->filter[2], 840 a->filter[1], a->filter[2],
841 a->filter[3], a->filter[4]); 841 a->filter[3], a->filter[4]);
diff --git a/sound/pci/au88x0/au88x0_pcm.c b/sound/pci/au88x0/au88x0_pcm.c
index 5439d662d104..33f0ba5559a7 100644
--- a/sound/pci/au88x0/au88x0_pcm.c
+++ b/sound/pci/au88x0/au88x0_pcm.c
@@ -515,7 +515,7 @@ static int __devinit snd_vortex_new_pcm(vortex_t *chip, int idx, int nr)
515 return -ENODEV; 515 return -ENODEV;
516 516
517 /* idx indicates which kind of PCM device. ADB, SPDIF, I2S and A3D share the 517 /* idx indicates which kind of PCM device. ADB, SPDIF, I2S and A3D share the
518 * same dma engine. WT uses it own separate dma engine whcih cant capture. */ 518 * same dma engine. WT uses it own separate dma engine which can't capture. */
519 if (idx == VORTEX_PCM_ADB) 519 if (idx == VORTEX_PCM_ADB)
520 nr_capt = nr; 520 nr_capt = nr;
521 else 521 else
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c
index 5715c4d05573..9b7a6346037a 100644
--- a/sound/pci/azt3328.c
+++ b/sound/pci/azt3328.c
@@ -140,7 +140,7 @@
140 * Possible remedies: 140 * Possible remedies:
141 * - use speaker (amplifier) output instead of headphone output 141 * - use speaker (amplifier) output instead of headphone output
142 * (in case crackling is due to overloaded output clipping) 142 * (in case crackling is due to overloaded output clipping)
143 * - plug card into a different PCI slot, preferrably one that isn't shared 143 * - plug card into a different PCI slot, preferably one that isn't shared
144 * too much (this helps a lot, but not completely!) 144 * too much (this helps a lot, but not completely!)
145 * - get rid of PCI VGA card, use AGP instead 145 * - get rid of PCI VGA card, use AGP instead
146 * - upgrade or downgrade BIOS 146 * - upgrade or downgrade BIOS
diff --git a/sound/pci/ca0106/ca0106.h b/sound/pci/ca0106/ca0106.h
index fc53b9bca26d..e8e8ccc96403 100644
--- a/sound/pci/ca0106/ca0106.h
+++ b/sound/pci/ca0106/ca0106.h
@@ -51,7 +51,7 @@
51 * Add support for mute control on SB Live 24bit (cards w/ SPI DAC) 51 * Add support for mute control on SB Live 24bit (cards w/ SPI DAC)
52 * 52 *
53 * 53 *
54 * This code was initally based on code from ALSA's emu10k1x.c which is: 54 * This code was initially based on code from ALSA's emu10k1x.c which is:
55 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> 55 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com>
56 * 56 *
57 * This program is free software; you can redistribute it and/or modify 57 * This program is free software; you can redistribute it and/or modify
@@ -175,7 +175,7 @@
175/* CA0106 pointer-offset register set, accessed through the PTR and DATA registers */ 175/* CA0106 pointer-offset register set, accessed through the PTR and DATA registers */
176/********************************************************************************************************/ 176/********************************************************************************************************/
177 177
178/* Initally all registers from 0x00 to 0x3f have zero contents. */ 178/* Initially all registers from 0x00 to 0x3f have zero contents. */
179#define PLAYBACK_LIST_ADDR 0x00 /* Base DMA address of a list of pointers to each period/size */ 179#define PLAYBACK_LIST_ADDR 0x00 /* Base DMA address of a list of pointers to each period/size */
180 /* One list entry: 4 bytes for DMA address, 180 /* One list entry: 4 bytes for DMA address,
181 * 4 bytes for period_size << 16. 181 * 4 bytes for period_size << 16.
@@ -223,7 +223,7 @@
223 * The jack has 4 poles. I will call 1 - Tip, 2 - Next to 1, 3 - Next to 2, 4 - Next to 3 223 * The jack has 4 poles. I will call 1 - Tip, 2 - Next to 1, 3 - Next to 2, 4 - Next to 3
224 * For Analogue: 1 -> Center Speaker, 2 -> Sub Woofer, 3 -> Ground, 4 -> Ground 224 * For Analogue: 1 -> Center Speaker, 2 -> Sub Woofer, 3 -> Ground, 4 -> Ground
225 * For Digital: 1 -> Front SPDIF, 2 -> Rear SPDIF, 3 -> Center/Subwoofer SPDIF, 4 -> Ground. 225 * For Digital: 1 -> Front SPDIF, 2 -> Rear SPDIF, 3 -> Center/Subwoofer SPDIF, 4 -> Ground.
226 * Standard 4 pole Video A/V cable with RCA outputs: 1 -> White, 2 -> Yellow, 3 -> Sheild on all three, 4 -> Red. 226 * Standard 4 pole Video A/V cable with RCA outputs: 1 -> White, 2 -> Yellow, 3 -> Shield on all three, 4 -> Red.
227 * So, from this you can see that you cannot use a Standard 4 pole Video A/V cable with the SB Audigy LS card. 227 * So, from this you can see that you cannot use a Standard 4 pole Video A/V cable with the SB Audigy LS card.
228 */ 228 */
229/* The Front SPDIF PCM gets mixed with samples from the AC97 codec, so can only work for Stereo PCM and not AC3/DTS 229/* The Front SPDIF PCM gets mixed with samples from the AC97 codec, so can only work for Stereo PCM and not AC3/DTS
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 01b49388fafd..437759239694 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -117,7 +117,7 @@
117 * DAC: Unknown 117 * DAC: Unknown
118 * Trying to handle it like the SB0410. 118 * Trying to handle it like the SB0410.
119 * 119 *
120 * This code was initally based on code from ALSA's emu10k1x.c which is: 120 * This code was initially based on code from ALSA's emu10k1x.c which is:
121 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> 121 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com>
122 * 122 *
123 * This program is free software; you can redistribute it and/or modify 123 * This program is free software; you can redistribute it and/or modify
diff --git a/sound/pci/ca0106/ca0106_mixer.c b/sound/pci/ca0106/ca0106_mixer.c
index 630aa4998189..84f3f92436b5 100644
--- a/sound/pci/ca0106/ca0106_mixer.c
+++ b/sound/pci/ca0106/ca0106_mixer.c
@@ -42,7 +42,7 @@
42 * 0.0.18 42 * 0.0.18
43 * Add support for mute control on SB Live 24bit (cards w/ SPI DAC) 43 * Add support for mute control on SB Live 24bit (cards w/ SPI DAC)
44 * 44 *
45 * This code was initally based on code from ALSA's emu10k1x.c which is: 45 * This code was initially based on code from ALSA's emu10k1x.c which is:
46 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> 46 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com>
47 * 47 *
48 * This program is free software; you can redistribute it and/or modify 48 * This program is free software; you can redistribute it and/or modify
diff --git a/sound/pci/ca0106/ca0106_proc.c b/sound/pci/ca0106/ca0106_proc.c
index ba96428c9f4c..c694464b1168 100644
--- a/sound/pci/ca0106/ca0106_proc.c
+++ b/sound/pci/ca0106/ca0106_proc.c
@@ -42,7 +42,7 @@
42 * 0.0.18 42 * 0.0.18
43 * Implement support for Line-in capture on SB Live 24bit. 43 * Implement support for Line-in capture on SB Live 24bit.
44 * 44 *
45 * This code was initally based on code from ALSA's emu10k1x.c which is: 45 * This code was initially based on code from ALSA's emu10k1x.c which is:
46 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> 46 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com>
47 * 47 *
48 * This program is free software; you can redistribute it and/or modify 48 * This program is free software; you can redistribute it and/or modify
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index b5bb036ef73c..f4e573555da3 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -73,7 +73,7 @@ MODULE_PARM_DESC(mpu_port, "MPU-401 port.");
73module_param_array(fm_port, long, NULL, 0444); 73module_param_array(fm_port, long, NULL, 0444);
74MODULE_PARM_DESC(fm_port, "FM port."); 74MODULE_PARM_DESC(fm_port, "FM port.");
75module_param_array(soft_ac3, bool, NULL, 0444); 75module_param_array(soft_ac3, bool, NULL, 0444);
76MODULE_PARM_DESC(soft_ac3, "Sofware-conversion of raw SPDIF packets (model 033 only)."); 76MODULE_PARM_DESC(soft_ac3, "Software-conversion of raw SPDIF packets (model 033 only).");
77#ifdef SUPPORT_JOYSTICK 77#ifdef SUPPORT_JOYSTICK
78module_param_array(joystick_port, int, NULL, 0444); 78module_param_array(joystick_port, int, NULL, 0444);
79MODULE_PARM_DESC(joystick_port, "Joystick port address."); 79MODULE_PARM_DESC(joystick_port, "Joystick port address.");
@@ -656,8 +656,8 @@ out:
656} 656}
657 657
658/* 658/*
659 * Program pll register bits, I assume that the 8 registers 0xf8 upto 0xff 659 * Program pll register bits, I assume that the 8 registers 0xf8 up to 0xff
660 * are mapped onto the 8 ADC/DAC sampling frequency which can be choosen 660 * are mapped onto the 8 ADC/DAC sampling frequency which can be chosen
661 * at the register CM_REG_FUNCTRL1 (0x04). 661 * at the register CM_REG_FUNCTRL1 (0x04).
662 * Problem: other ways are also possible (any information about that?) 662 * Problem: other ways are also possible (any information about that?)
663 */ 663 */
@@ -666,7 +666,7 @@ static void snd_cmipci_set_pll(struct cmipci *cm, unsigned int rate, unsigned in
666 unsigned int reg = CM_REG_PLL + slot; 666 unsigned int reg = CM_REG_PLL + slot;
667 /* 667 /*
668 * Guess that this programs at reg. 0x04 the pos 15:13/12:10 668 * Guess that this programs at reg. 0x04 the pos 15:13/12:10
669 * for DSFC/ASFC (000 upto 111). 669 * for DSFC/ASFC (000 up to 111).
670 */ 670 */
671 671
672 /* FIXME: Init (Do we've to set an other register first before programming?) */ 672 /* FIXME: Init (Do we've to set an other register first before programming?) */
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c
index b9321544c31c..13f33c0719d3 100644
--- a/sound/pci/ctxfi/ctatc.c
+++ b/sound/pci/ctxfi/ctatc.c
@@ -1627,7 +1627,7 @@ static struct ct_atc atc_preset __devinitdata = {
1627 * Creates and initializes a hardware manager. 1627 * Creates and initializes a hardware manager.
1628 * 1628 *
1629 * Creates kmallocated ct_atc structure. Initializes hardware. 1629 * Creates kmallocated ct_atc structure. Initializes hardware.
1630 * Returns 0 if suceeds, or negative error code if fails. 1630 * Returns 0 if succeeds, or negative error code if fails.
1631 */ 1631 */
1632 1632
1633int __devinit ct_atc_create(struct snd_card *card, struct pci_dev *pci, 1633int __devinit ct_atc_create(struct snd_card *card, struct pci_dev *pci,
diff --git a/sound/pci/ctxfi/cthw20k1.c b/sound/pci/ctxfi/cthw20k1.c
index 0cf400f879f9..a5c957db5cea 100644
--- a/sound/pci/ctxfi/cthw20k1.c
+++ b/sound/pci/ctxfi/cthw20k1.c
@@ -1285,7 +1285,7 @@ static int hw_trn_init(struct hw *hw, const struct trn_conf *info)
1285 hw_write_20kx(hw, PTPALX, ptp_phys_low); 1285 hw_write_20kx(hw, PTPALX, ptp_phys_low);
1286 hw_write_20kx(hw, PTPAHX, ptp_phys_high); 1286 hw_write_20kx(hw, PTPAHX, ptp_phys_high);
1287 hw_write_20kx(hw, TRNCTL, trnctl); 1287 hw_write_20kx(hw, TRNCTL, trnctl);
1288 hw_write_20kx(hw, TRNIS, 0x200c01); /* realy needed? */ 1288 hw_write_20kx(hw, TRNIS, 0x200c01); /* really needed? */
1289 1289
1290 return 0; 1290 return 0;
1291} 1291}
diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c
index 957a311514c8..c250614dadd0 100644
--- a/sound/pci/emu10k1/memory.c
+++ b/sound/pci/emu10k1/memory.c
@@ -248,7 +248,7 @@ static int is_valid_page(struct snd_emu10k1 *emu, dma_addr_t addr)
248/* 248/*
249 * map the given memory block on PTB. 249 * map the given memory block on PTB.
250 * if the block is already mapped, update the link order. 250 * if the block is already mapped, update the link order.
251 * if no empty pages are found, tries to release unsed memory blocks 251 * if no empty pages are found, tries to release unused memory blocks
252 * and retry the mapping. 252 * and retry the mapping.
253 */ 253 */
254int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk) 254int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
diff --git a/sound/pci/emu10k1/p16v.c b/sound/pci/emu10k1/p16v.c
index 61b8ab39800f..a81dc44228ea 100644
--- a/sound/pci/emu10k1/p16v.c
+++ b/sound/pci/emu10k1/p16v.c
@@ -69,7 +69,7 @@
69 * ADC: Philips 1361T (Stereo 24bit) 69 * ADC: Philips 1361T (Stereo 24bit)
70 * DAC: CS4382-K (8-channel, 24bit, 192Khz) 70 * DAC: CS4382-K (8-channel, 24bit, 192Khz)
71 * 71 *
72 * This code was initally based on code from ALSA's emu10k1x.c which is: 72 * This code was initially based on code from ALSA's emu10k1x.c which is:
73 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> 73 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com>
74 * 74 *
75 * This program is free software; you can redistribute it and/or modify 75 * This program is free software; you can redistribute it and/or modify
diff --git a/sound/pci/emu10k1/p16v.h b/sound/pci/emu10k1/p16v.h
index 00f4817533b1..4e0ee1a9747a 100644
--- a/sound/pci/emu10k1/p16v.h
+++ b/sound/pci/emu10k1/p16v.h
@@ -59,7 +59,7 @@
59 * ADC: Philips 1361T (Stereo 24bit) 59 * ADC: Philips 1361T (Stereo 24bit)
60 * DAC: CS4382-K (8-channel, 24bit, 192Khz) 60 * DAC: CS4382-K (8-channel, 24bit, 192Khz)
61 * 61 *
62 * This code was initally based on code from ALSA's emu10k1x.c which is: 62 * This code was initially based on code from ALSA's emu10k1x.c which is:
63 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com> 63 * Copyright (c) by Francisco Moraes <fmoraes@nc.rr.com>
64 * 64 *
65 * This program is free software; you can redistribute it and/or modify 65 * This program is free software; you can redistribute it and/or modify
@@ -86,7 +86,7 @@
86 * The sample rate is also controlled by the same registers that control the rate of the EMU10K2 sample rate converters. 86 * The sample rate is also controlled by the same registers that control the rate of the EMU10K2 sample rate converters.
87 */ 87 */
88 88
89/* Initally all registers from 0x00 to 0x3f have zero contents. */ 89/* Initially all registers from 0x00 to 0x3f have zero contents. */
90#define PLAYBACK_LIST_ADDR 0x00 /* Base DMA address of a list of pointers to each period/size */ 90#define PLAYBACK_LIST_ADDR 0x00 /* Base DMA address of a list of pointers to each period/size */
91 /* One list entry: 4 bytes for DMA address, 91 /* One list entry: 4 bytes for DMA address,
92 * 4 bytes for period_size << 16. 92 * 4 bytes for period_size << 16.
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index 537cfba829a5..863eafea691f 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -229,6 +229,7 @@ MODULE_PARM_DESC(lineio, "Line In to Rear Out (0 = auto, 1 = force).");
229#define ES_REG_1371_CODEC 0x14 /* W/R: Codec Read/Write register address */ 229#define ES_REG_1371_CODEC 0x14 /* W/R: Codec Read/Write register address */
230#define ES_1371_CODEC_RDY (1<<31) /* codec ready */ 230#define ES_1371_CODEC_RDY (1<<31) /* codec ready */
231#define ES_1371_CODEC_WIP (1<<30) /* codec register access in progress */ 231#define ES_1371_CODEC_WIP (1<<30) /* codec register access in progress */
232#define EV_1938_CODEC_MAGIC (1<<26)
232#define ES_1371_CODEC_PIRD (1<<23) /* codec read/write select register */ 233#define ES_1371_CODEC_PIRD (1<<23) /* codec read/write select register */
233#define ES_1371_CODEC_WRITE(a,d) ((((a)&0x7f)<<16)|(((d)&0xffff)<<0)) 234#define ES_1371_CODEC_WRITE(a,d) ((((a)&0x7f)<<16)|(((d)&0xffff)<<0))
234#define ES_1371_CODEC_READS(a) ((((a)&0x7f)<<16)|ES_1371_CODEC_PIRD) 235#define ES_1371_CODEC_READS(a) ((((a)&0x7f)<<16)|ES_1371_CODEC_PIRD)
@@ -603,12 +604,18 @@ static void snd_es1370_codec_write(struct snd_ak4531 *ak4531,
603 604
604#ifdef CHIP1371 605#ifdef CHIP1371
605 606
607static inline bool is_ev1938(struct ensoniq *ensoniq)
608{
609 return ensoniq->pci->device == 0x8938;
610}
611
606static void snd_es1371_codec_write(struct snd_ac97 *ac97, 612static void snd_es1371_codec_write(struct snd_ac97 *ac97,
607 unsigned short reg, unsigned short val) 613 unsigned short reg, unsigned short val)
608{ 614{
609 struct ensoniq *ensoniq = ac97->private_data; 615 struct ensoniq *ensoniq = ac97->private_data;
610 unsigned int t, x; 616 unsigned int t, x, flag;
611 617
618 flag = is_ev1938(ensoniq) ? EV_1938_CODEC_MAGIC : 0;
612 mutex_lock(&ensoniq->src_mutex); 619 mutex_lock(&ensoniq->src_mutex);
613 for (t = 0; t < POLL_COUNT; t++) { 620 for (t = 0; t < POLL_COUNT; t++) {
614 if (!(inl(ES_REG(ensoniq, 1371_CODEC)) & ES_1371_CODEC_WIP)) { 621 if (!(inl(ES_REG(ensoniq, 1371_CODEC)) & ES_1371_CODEC_WIP)) {
@@ -630,7 +637,8 @@ static void snd_es1371_codec_write(struct snd_ac97 *ac97,
630 0x00010000) 637 0x00010000)
631 break; 638 break;
632 } 639 }
633 outl(ES_1371_CODEC_WRITE(reg, val), ES_REG(ensoniq, 1371_CODEC)); 640 outl(ES_1371_CODEC_WRITE(reg, val) | flag,
641 ES_REG(ensoniq, 1371_CODEC));
634 /* restore SRC reg */ 642 /* restore SRC reg */
635 snd_es1371_wait_src_ready(ensoniq); 643 snd_es1371_wait_src_ready(ensoniq);
636 outl(x, ES_REG(ensoniq, 1371_SMPRATE)); 644 outl(x, ES_REG(ensoniq, 1371_SMPRATE));
@@ -647,8 +655,9 @@ static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97,
647 unsigned short reg) 655 unsigned short reg)
648{ 656{
649 struct ensoniq *ensoniq = ac97->private_data; 657 struct ensoniq *ensoniq = ac97->private_data;
650 unsigned int t, x, fail = 0; 658 unsigned int t, x, flag, fail = 0;
651 659
660 flag = is_ev1938(ensoniq) ? EV_1938_CODEC_MAGIC : 0;
652 __again: 661 __again:
653 mutex_lock(&ensoniq->src_mutex); 662 mutex_lock(&ensoniq->src_mutex);
654 for (t = 0; t < POLL_COUNT; t++) { 663 for (t = 0; t < POLL_COUNT; t++) {
@@ -671,7 +680,8 @@ static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97,
671 0x00010000) 680 0x00010000)
672 break; 681 break;
673 } 682 }
674 outl(ES_1371_CODEC_READS(reg), ES_REG(ensoniq, 1371_CODEC)); 683 outl(ES_1371_CODEC_READS(reg) | flag,
684 ES_REG(ensoniq, 1371_CODEC));
675 /* restore SRC reg */ 685 /* restore SRC reg */
676 snd_es1371_wait_src_ready(ensoniq); 686 snd_es1371_wait_src_ready(ensoniq);
677 outl(x, ES_REG(ensoniq, 1371_SMPRATE)); 687 outl(x, ES_REG(ensoniq, 1371_SMPRATE));
@@ -683,6 +693,11 @@ static unsigned short snd_es1371_codec_read(struct snd_ac97 *ac97,
683 /* now wait for the stinkin' data (RDY) */ 693 /* now wait for the stinkin' data (RDY) */
684 for (t = 0; t < POLL_COUNT; t++) { 694 for (t = 0; t < POLL_COUNT; t++) {
685 if ((x = inl(ES_REG(ensoniq, 1371_CODEC))) & ES_1371_CODEC_RDY) { 695 if ((x = inl(ES_REG(ensoniq, 1371_CODEC))) & ES_1371_CODEC_RDY) {
696 if (is_ev1938(ensoniq)) {
697 for (t = 0; t < 100; t++)
698 inl(ES_REG(ensoniq, CONTROL));
699 x = inl(ES_REG(ensoniq, 1371_CODEC));
700 }
686 mutex_unlock(&ensoniq->src_mutex); 701 mutex_unlock(&ensoniq->src_mutex);
687 return ES_1371_CODEC_READ(x); 702 return ES_1371_CODEC_READ(x);
688 } 703 }
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 2c79e96d0324..430f41db6044 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -3661,7 +3661,7 @@ int snd_hda_codec_build_pcms(struct hda_codec *codec)
3661 * with the proper parameters for set up. 3661 * with the proper parameters for set up.
3662 * ops.cleanup should be called in hw_free for clean up of streams. 3662 * ops.cleanup should be called in hw_free for clean up of streams.
3663 * 3663 *
3664 * This function returns 0 if successfull, or a negative error code. 3664 * This function returns 0 if successful, or a negative error code.
3665 */ 3665 */
3666int __devinit snd_hda_build_pcms(struct hda_bus *bus) 3666int __devinit snd_hda_build_pcms(struct hda_bus *bus)
3667{ 3667{
@@ -4851,7 +4851,7 @@ EXPORT_SYMBOL_HDA(snd_hda_suspend);
4851 * 4851 *
4852 * Returns 0 if successful. 4852 * Returns 0 if successful.
4853 * 4853 *
4854 * This fucntion is defined only when POWER_SAVE isn't set. 4854 * This function is defined only when POWER_SAVE isn't set.
4855 * In the power-save mode, the codec is resumed dynamically. 4855 * In the power-save mode, the codec is resumed dynamically.
4856 */ 4856 */
4857int snd_hda_resume(struct hda_bus *bus) 4857int snd_hda_resume(struct hda_bus *bus)
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index d08cf31596f3..ad97d937d3a8 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -3034,6 +3034,8 @@ static struct snd_pci_quirk cxt5066_cfg_tbl[] = {
3034 SND_PCI_QUIRK(0x17aa, 0x21c5, "Thinkpad Edge 13", CXT5066_THINKPAD), 3034 SND_PCI_QUIRK(0x17aa, 0x21c5, "Thinkpad Edge 13", CXT5066_THINKPAD),
3035 SND_PCI_QUIRK(0x17aa, 0x21c6, "Thinkpad Edge 13", CXT5066_ASUS), 3035 SND_PCI_QUIRK(0x17aa, 0x21c6, "Thinkpad Edge 13", CXT5066_ASUS),
3036 SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo Thinkpad", CXT5066_THINKPAD), 3036 SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo Thinkpad", CXT5066_THINKPAD),
3037 SND_PCI_QUIRK(0x17aa, 0x21da, "Lenovo X220", CXT5066_THINKPAD),
3038 SND_PCI_QUIRK(0x17aa, 0x21db, "Lenovo X220-tablet", CXT5066_THINKPAD),
3037 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo G560", CXT5066_ASUS), 3039 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo G560", CXT5066_ASUS),
3038 SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo", CXT5066_IDEAPAD), /* Fallback for Lenovos without dock mic */ 3040 SND_PCI_QUIRK_VENDOR(0x17aa, "Lenovo", CXT5066_IDEAPAD), /* Fallback for Lenovos without dock mic */
3039 {} 3041 {}
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index 251773e45f61..715615a88a8d 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1280,6 +1280,39 @@ static int simple_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
1280 stream_tag, format, substream); 1280 stream_tag, format, substream);
1281} 1281}
1282 1282
1283static void nvhdmi_8ch_7x_set_info_frame_parameters(struct hda_codec *codec,
1284 int channels)
1285{
1286 unsigned int chanmask;
1287 int chan = channels ? (channels - 1) : 1;
1288
1289 switch (channels) {
1290 default:
1291 case 0:
1292 case 2:
1293 chanmask = 0x00;
1294 break;
1295 case 4:
1296 chanmask = 0x08;
1297 break;
1298 case 6:
1299 chanmask = 0x0b;
1300 break;
1301 case 8:
1302 chanmask = 0x13;
1303 break;
1304 }
1305
1306 /* Set the audio infoframe channel allocation and checksum fields. The
1307 * channel count is computed implicitly by the hardware. */
1308 snd_hda_codec_write(codec, 0x1, 0,
1309 Nv_VERB_SET_Channel_Allocation, chanmask);
1310
1311 snd_hda_codec_write(codec, 0x1, 0,
1312 Nv_VERB_SET_Info_Frame_Checksum,
1313 (0x71 - chan - chanmask));
1314}
1315
1283static int nvhdmi_8ch_7x_pcm_close(struct hda_pcm_stream *hinfo, 1316static int nvhdmi_8ch_7x_pcm_close(struct hda_pcm_stream *hinfo,
1284 struct hda_codec *codec, 1317 struct hda_codec *codec,
1285 struct snd_pcm_substream *substream) 1318 struct snd_pcm_substream *substream)
@@ -1298,6 +1331,10 @@ static int nvhdmi_8ch_7x_pcm_close(struct hda_pcm_stream *hinfo,
1298 AC_VERB_SET_STREAM_FORMAT, 0); 1331 AC_VERB_SET_STREAM_FORMAT, 0);
1299 } 1332 }
1300 1333
1334 /* The audio hardware sends a channel count of 0x7 (8ch) when all the
1335 * streams are disabled. */
1336 nvhdmi_8ch_7x_set_info_frame_parameters(codec, 8);
1337
1301 return snd_hda_multi_out_dig_close(codec, &spec->multiout); 1338 return snd_hda_multi_out_dig_close(codec, &spec->multiout);
1302} 1339}
1303 1340
@@ -1308,37 +1345,16 @@ static int nvhdmi_8ch_7x_pcm_prepare(struct hda_pcm_stream *hinfo,
1308 struct snd_pcm_substream *substream) 1345 struct snd_pcm_substream *substream)
1309{ 1346{
1310 int chs; 1347 int chs;
1311 unsigned int dataDCC1, dataDCC2, chan, chanmask, channel_id; 1348 unsigned int dataDCC1, dataDCC2, channel_id;
1312 int i; 1349 int i;
1313 1350
1314 mutex_lock(&codec->spdif_mutex); 1351 mutex_lock(&codec->spdif_mutex);
1315 1352
1316 chs = substream->runtime->channels; 1353 chs = substream->runtime->channels;
1317 chan = chs ? (chs - 1) : 1;
1318 1354
1319 switch (chs) {
1320 default:
1321 case 0:
1322 case 2:
1323 chanmask = 0x00;
1324 break;
1325 case 4:
1326 chanmask = 0x08;
1327 break;
1328 case 6:
1329 chanmask = 0x0b;
1330 break;
1331 case 8:
1332 chanmask = 0x13;
1333 break;
1334 }
1335 dataDCC1 = AC_DIG1_ENABLE | AC_DIG1_COPYRIGHT; 1355 dataDCC1 = AC_DIG1_ENABLE | AC_DIG1_COPYRIGHT;
1336 dataDCC2 = 0x2; 1356 dataDCC2 = 0x2;
1337 1357
1338 /* set the Audio InforFrame Channel Allocation */
1339 snd_hda_codec_write(codec, 0x1, 0,
1340 Nv_VERB_SET_Channel_Allocation, chanmask);
1341
1342 /* turn off SPDIF once; otherwise the IEC958 bits won't be updated */ 1358 /* turn off SPDIF once; otherwise the IEC958 bits won't be updated */
1343 if (codec->spdif_status_reset && (codec->spdif_ctls & AC_DIG1_ENABLE)) 1359 if (codec->spdif_status_reset && (codec->spdif_ctls & AC_DIG1_ENABLE))
1344 snd_hda_codec_write(codec, 1360 snd_hda_codec_write(codec,
@@ -1413,10 +1429,7 @@ static int nvhdmi_8ch_7x_pcm_prepare(struct hda_pcm_stream *hinfo,
1413 } 1429 }
1414 } 1430 }
1415 1431
1416 /* set the Audio Info Frame Checksum */ 1432 nvhdmi_8ch_7x_set_info_frame_parameters(codec, chs);
1417 snd_hda_codec_write(codec, 0x1, 0,
1418 Nv_VERB_SET_Info_Frame_Checksum,
1419 (0x71 - chan - chanmask));
1420 1433
1421 mutex_unlock(&codec->spdif_mutex); 1434 mutex_unlock(&codec->spdif_mutex);
1422 return 0; 1435 return 0;
@@ -1512,6 +1525,11 @@ static int patch_nvhdmi_8ch_7x(struct hda_codec *codec)
1512 spec->multiout.max_channels = 8; 1525 spec->multiout.max_channels = 8;
1513 spec->pcm_playback = &nvhdmi_pcm_playback_8ch_7x; 1526 spec->pcm_playback = &nvhdmi_pcm_playback_8ch_7x;
1514 codec->patch_ops = nvhdmi_patch_ops_8ch_7x; 1527 codec->patch_ops = nvhdmi_patch_ops_8ch_7x;
1528
1529 /* Initialize the audio infoframe channel mask and checksum to something
1530 * valid */
1531 nvhdmi_8ch_7x_set_info_frame_parameters(codec, 8);
1532
1515 return 0; 1533 return 0;
1516} 1534}
1517 1535
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 0ef0035fe99f..52928d9a72da 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -549,7 +549,7 @@ static int alc_ch_mode_put(struct snd_kcontrol *kcontrol,
549 549
550/* 550/*
551 * Control the mode of pin widget settings via the mixer. "pc" is used 551 * Control the mode of pin widget settings via the mixer. "pc" is used
552 * instead of "%" to avoid consequences of accidently treating the % as 552 * instead of "%" to avoid consequences of accidentally treating the % as
553 * being part of a format specifier. Maximum allowed length of a value is 553 * being part of a format specifier. Maximum allowed length of a value is
554 * 63 characters plus NULL terminator. 554 * 63 characters plus NULL terminator.
555 * 555 *
@@ -9836,7 +9836,7 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
9836 9836
9837 SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL), 9837 SND_PCI_QUIRK(0x1028, 0x020d, "Dell Inspiron 530", ALC888_6ST_DELL),
9838 9838
9839 SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavillion", ALC883_6ST_DIG), 9839 SND_PCI_QUIRK(0x103c, 0x2a3d, "HP Pavilion", ALC883_6ST_DIG),
9840 SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP), 9840 SND_PCI_QUIRK(0x103c, 0x2a4f, "HP Samba", ALC888_3ST_HP),
9841 SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP), 9841 SND_PCI_QUIRK(0x103c, 0x2a60, "HP Lucknow", ALC888_3ST_HP),
9842 SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG), 9842 SND_PCI_QUIRK(0x103c, 0x2a61, "HP Nettle", ALC883_6ST_DIG),
@@ -9863,7 +9863,6 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
9863 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD), 9863 SND_PCI_QUIRK(0x1071, 0x8258, "Evesham Voyaeger", ALC883_LAPTOP_EAPD),
9864 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL), 9864 SND_PCI_QUIRK(0x10f1, 0x2350, "TYAN-S2350", ALC888_6ST_DELL),
9865 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch), 9865 SND_PCI_QUIRK(0x108e, 0x534d, NULL, ALC883_3ST_6ch),
9866 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG),
9867 9866
9868 SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG), 9867 SND_PCI_QUIRK(0x1462, 0x0349, "MSI", ALC883_TARGA_2ch_DIG),
9869 SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG), 9868 SND_PCI_QUIRK(0x1462, 0x040d, "MSI", ALC883_TARGA_2ch_DIG),
@@ -10700,6 +10699,7 @@ enum {
10700 PINFIX_LENOVO_Y530, 10699 PINFIX_LENOVO_Y530,
10701 PINFIX_PB_M5210, 10700 PINFIX_PB_M5210,
10702 PINFIX_ACER_ASPIRE_7736, 10701 PINFIX_ACER_ASPIRE_7736,
10702 PINFIX_GIGABYTE_880GM,
10703}; 10703};
10704 10704
10705static const struct alc_fixup alc882_fixups[] = { 10705static const struct alc_fixup alc882_fixups[] = {
@@ -10731,6 +10731,13 @@ static const struct alc_fixup alc882_fixups[] = {
10731 .type = ALC_FIXUP_SKU, 10731 .type = ALC_FIXUP_SKU,
10732 .v.sku = ALC_FIXUP_SKU_IGNORE, 10732 .v.sku = ALC_FIXUP_SKU_IGNORE,
10733 }, 10733 },
10734 [PINFIX_GIGABYTE_880GM] = {
10735 .type = ALC_FIXUP_PINS,
10736 .v.pins = (const struct alc_pincfg[]) {
10737 { 0x14, 0x1114410 }, /* set as speaker */
10738 { }
10739 }
10740 },
10734}; 10741};
10735 10742
10736static struct snd_pci_quirk alc882_fixup_tbl[] = { 10743static struct snd_pci_quirk alc882_fixup_tbl[] = {
@@ -10738,6 +10745,7 @@ static struct snd_pci_quirk alc882_fixup_tbl[] = {
10738 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530), 10745 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530),
10739 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX), 10746 SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX),
10740 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736), 10747 SND_PCI_QUIRK(0x1025, 0x0296, "Acer Aspire 7736z", PINFIX_ACER_ASPIRE_7736),
10748 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", PINFIX_GIGABYTE_880GM),
10741 {} 10749 {}
10742}; 10750};
10743 10751
@@ -14116,7 +14124,7 @@ static hda_nid_t alc269vb_capsrc_nids[1] = {
14116}; 14124};
14117 14125
14118static hda_nid_t alc269_adc_candidates[] = { 14126static hda_nid_t alc269_adc_candidates[] = {
14119 0x08, 0x09, 0x07, 14127 0x08, 0x09, 0x07, 0x11,
14120}; 14128};
14121 14129
14122#define alc269_modes alc260_modes 14130#define alc269_modes alc260_modes
@@ -18774,8 +18782,6 @@ static struct snd_pci_quirk alc662_cfg_tbl[] = {
18774 ALC662_3ST_6ch_DIG), 18782 ALC662_3ST_6ch_DIG),
18775 SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO), 18783 SND_PCI_QUIRK(0x1179, 0xff6e, "Toshiba NB20x", ALC662_AUTO),
18776 SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10), 18784 SND_PCI_QUIRK(0x144d, 0xca00, "Samsung NC10", ALC272_SAMSUNG_NC10),
18777 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte 945GCM-S2L",
18778 ALC662_3ST_6ch_DIG),
18779 SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13), 18785 SND_PCI_QUIRK(0x152d, 0x2304, "Quanta WH1", ALC663_ASUS_H13),
18780 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG), 18786 SND_PCI_QUIRK(0x1565, 0x820f, "Biostar TA780G M2+", ALC662_3ST_6ch_DIG),
18781 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA), 18787 SND_PCI_QUIRK(0x1631, 0xc10c, "PB RS65", ALC663_ASUS_M51VA),
@@ -19449,6 +19455,7 @@ enum {
19449 ALC662_FIXUP_IDEAPAD, 19455 ALC662_FIXUP_IDEAPAD,
19450 ALC272_FIXUP_MARIO, 19456 ALC272_FIXUP_MARIO,
19451 ALC662_FIXUP_CZC_P10T, 19457 ALC662_FIXUP_CZC_P10T,
19458 ALC662_FIXUP_GIGABYTE,
19452}; 19459};
19453 19460
19454static const struct alc_fixup alc662_fixups[] = { 19461static const struct alc_fixup alc662_fixups[] = {
@@ -19477,12 +19484,20 @@ static const struct alc_fixup alc662_fixups[] = {
19477 {} 19484 {}
19478 } 19485 }
19479 }, 19486 },
19487 [ALC662_FIXUP_GIGABYTE] = {
19488 .type = ALC_FIXUP_PINS,
19489 .v.pins = (const struct alc_pincfg[]) {
19490 { 0x14, 0x1114410 }, /* set as speaker */
19491 { }
19492 }
19493 },
19480}; 19494};
19481 19495
19482static struct snd_pci_quirk alc662_fixup_tbl[] = { 19496static struct snd_pci_quirk alc662_fixup_tbl[] = {
19483 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), 19497 SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE),
19484 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), 19498 SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
19485 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), 19499 SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
19500 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte", ALC662_FIXUP_GIGABYTE),
19486 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), 19501 SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
19487 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), 19502 SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
19488 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T), 19503 SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 05fcd60cc46f..94d19c03a7f4 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -2475,7 +2475,7 @@ static int stac92xx_hp_switch_put(struct snd_kcontrol *kcontrol,
2475 2475
2476 spec->hp_switch = ucontrol->value.integer.value[0] ? nid : 0; 2476 spec->hp_switch = ucontrol->value.integer.value[0] ? nid : 0;
2477 2477
2478 /* check to be sure that the ports are upto date with 2478 /* check to be sure that the ports are up to date with
2479 * switch changes 2479 * switch changes
2480 */ 2480 */
2481 stac_issue_unsol_event(codec, nid); 2481 stac_issue_unsol_event(codec, nid);
@@ -3408,6 +3408,9 @@ static int get_connection_index(struct hda_codec *codec, hda_nid_t mux,
3408 hda_nid_t conn[HDA_MAX_NUM_INPUTS]; 3408 hda_nid_t conn[HDA_MAX_NUM_INPUTS];
3409 int i, nums; 3409 int i, nums;
3410 3410
3411 if (!(get_wcaps(codec, mux) & AC_WCAP_CONN_LIST))
3412 return -1;
3413
3411 nums = snd_hda_get_connections(codec, mux, conn, ARRAY_SIZE(conn)); 3414 nums = snd_hda_get_connections(codec, mux, conn, ARRAY_SIZE(conn));
3412 for (i = 0; i < nums; i++) 3415 for (i = 0; i < nums; i++)
3413 if (conn[i] == nid) 3416 if (conn[i] == nid)
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c
index 2f6252266a02..3e4f8c12ffce 100644
--- a/sound/pci/ice1712/aureon.c
+++ b/sound/pci/ice1712/aureon.c
@@ -148,7 +148,7 @@ static void aureon_pca9554_write(struct snd_ice1712 *ice, unsigned char reg,
148 udelay(100); 148 udelay(100);
149 /* 149 /*
150 * send device address, command and value, 150 * send device address, command and value,
151 * skipping ack cycles inbetween 151 * skipping ack cycles in between
152 */ 152 */
153 for (j = 0; j < 3; j++) { 153 for (j = 0; j < 3; j++) {
154 switch (j) { 154 switch (j) {
@@ -2143,7 +2143,7 @@ static int __devinit aureon_init(struct snd_ice1712 *ice)
2143 ice->num_total_adcs = 2; 2143 ice->num_total_adcs = 2;
2144 } 2144 }
2145 2145
2146 /* to remeber the register values of CS8415 */ 2146 /* to remember the register values of CS8415 */
2147 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); 2147 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
2148 if (!ice->akm) 2148 if (!ice->akm)
2149 return -ENOMEM; 2149 return -ENOMEM;
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index 4fc6d8bc637e..f4594d76b6ea 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -2755,7 +2755,7 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
2755 return err; 2755 return err;
2756 } 2756 }
2757 if (c->mpu401_1_name) 2757 if (c->mpu401_1_name)
2758 /* Prefered name available in card_info */ 2758 /* Preferred name available in card_info */
2759 snprintf(ice->rmidi[0]->name, 2759 snprintf(ice->rmidi[0]->name,
2760 sizeof(ice->rmidi[0]->name), 2760 sizeof(ice->rmidi[0]->name),
2761 "%s %d", c->mpu401_1_name, card->number); 2761 "%s %d", c->mpu401_1_name, card->number);
@@ -2772,7 +2772,7 @@ static int __devinit snd_ice1712_probe(struct pci_dev *pci,
2772 return err; 2772 return err;
2773 } 2773 }
2774 if (c->mpu401_2_name) 2774 if (c->mpu401_2_name)
2775 /* Prefered name available in card_info */ 2775 /* Preferred name available in card_info */
2776 snprintf(ice->rmidi[1]->name, 2776 snprintf(ice->rmidi[1]->name,
2777 sizeof(ice->rmidi[1]->name), 2777 sizeof(ice->rmidi[1]->name),
2778 "%s %d", c->mpu401_2_name, 2778 "%s %d", c->mpu401_2_name,
diff --git a/sound/pci/ice1712/pontis.c b/sound/pci/ice1712/pontis.c
index cdb873f5da50..92c1160d7ab5 100644
--- a/sound/pci/ice1712/pontis.c
+++ b/sound/pci/ice1712/pontis.c
@@ -768,7 +768,7 @@ static int __devinit pontis_init(struct snd_ice1712 *ice)
768 ice->num_total_dacs = 2; 768 ice->num_total_dacs = 2;
769 ice->num_total_adcs = 2; 769 ice->num_total_adcs = 2;
770 770
771 /* to remeber the register values */ 771 /* to remember the register values */
772 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); 772 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
773 if (! ice->akm) 773 if (! ice->akm)
774 return -ENOMEM; 774 return -ENOMEM;
diff --git a/sound/pci/ice1712/prodigy_hifi.c b/sound/pci/ice1712/prodigy_hifi.c
index 6a9fee3ee78f..764cc93dbca4 100644
--- a/sound/pci/ice1712/prodigy_hifi.c
+++ b/sound/pci/ice1712/prodigy_hifi.c
@@ -1046,7 +1046,7 @@ static int __devinit prodigy_hifi_init(struct snd_ice1712 *ice)
1046 * don't call snd_ice1712_gpio_get/put(), otherwise it's overwritten 1046 * don't call snd_ice1712_gpio_get/put(), otherwise it's overwritten
1047 */ 1047 */
1048 ice->gpio.saved[0] = 0; 1048 ice->gpio.saved[0] = 0;
1049 /* to remeber the register values */ 1049 /* to remember the register values */
1050 1050
1051 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); 1051 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
1052 if (! ice->akm) 1052 if (! ice->akm)
@@ -1128,7 +1128,7 @@ static int __devinit prodigy_hd2_init(struct snd_ice1712 *ice)
1128 * don't call snd_ice1712_gpio_get/put(), otherwise it's overwritten 1128 * don't call snd_ice1712_gpio_get/put(), otherwise it's overwritten
1129 */ 1129 */
1130 ice->gpio.saved[0] = 0; 1130 ice->gpio.saved[0] = 0;
1131 /* to remeber the register values */ 1131 /* to remember the register values */
1132 1132
1133 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL); 1133 ice->akm = kzalloc(sizeof(struct snd_akm4xxx), GFP_KERNEL);
1134 if (! ice->akm) 1134 if (! ice->akm)
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 629a5494347a..6c896dbfd796 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -534,7 +534,7 @@ static int snd_intel8x0_codec_semaphore(struct intel8x0 *chip, unsigned int code
534 udelay(10); 534 udelay(10);
535 } while (time--); 535 } while (time--);
536 536
537 /* access to some forbidden (non existant) ac97 registers will not 537 /* access to some forbidden (non existent) ac97 registers will not
538 * reset the semaphore. So even if you don't get the semaphore, still 538 * reset the semaphore. So even if you don't get the semaphore, still
539 * continue the access. We don't need the semaphore anyway. */ 539 * continue the access. We don't need the semaphore anyway. */
540 snd_printk(KERN_ERR "codec_semaphore: semaphore is not ready [0x%x][0x%x]\n", 540 snd_printk(KERN_ERR "codec_semaphore: semaphore is not ready [0x%x][0x%x]\n",
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
index 2ae8d29500a8..27709f0cd2a6 100644
--- a/sound/pci/intel8x0m.c
+++ b/sound/pci/intel8x0m.c
@@ -331,7 +331,7 @@ static int snd_intel8x0m_codec_semaphore(struct intel8x0m *chip, unsigned int co
331 udelay(10); 331 udelay(10);
332 } while (time--); 332 } while (time--);
333 333
334 /* access to some forbidden (non existant) ac97 registers will not 334 /* access to some forbidden (non existent) ac97 registers will not
335 * reset the semaphore. So even if you don't get the semaphore, still 335 * reset the semaphore. So even if you don't get the semaphore, still
336 * continue the access. We don't need the semaphore anyway. */ 336 * continue the access. We don't need the semaphore anyway. */
337 snd_printk(KERN_ERR "codec_semaphore: semaphore is not ready [0x%x][0x%x]\n", 337 snd_printk(KERN_ERR "codec_semaphore: semaphore is not ready [0x%x][0x%x]\n",
diff --git a/sound/pci/mixart/mixart_core.c b/sound/pci/mixart/mixart_core.c
index d3350f383966..3df0f530f67c 100644
--- a/sound/pci/mixart/mixart_core.c
+++ b/sound/pci/mixart/mixart_core.c
@@ -265,7 +265,7 @@ int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int
265 if (! timeout) { 265 if (! timeout) {
266 /* error - no ack */ 266 /* error - no ack */
267 mutex_unlock(&mgr->msg_mutex); 267 mutex_unlock(&mgr->msg_mutex);
268 snd_printk(KERN_ERR "error: no reponse on msg %x\n", msg_frame); 268 snd_printk(KERN_ERR "error: no response on msg %x\n", msg_frame);
269 return -EIO; 269 return -EIO;
270 } 270 }
271 271
@@ -278,7 +278,7 @@ int snd_mixart_send_msg(struct mixart_mgr *mgr, struct mixart_msg *request, int
278 err = get_msg(mgr, &resp, msg_frame); 278 err = get_msg(mgr, &resp, msg_frame);
279 279
280 if( request->message_id != resp.message_id ) 280 if( request->message_id != resp.message_id )
281 snd_printk(KERN_ERR "REPONSE ERROR!\n"); 281 snd_printk(KERN_ERR "RESPONSE ERROR!\n");
282 282
283 mutex_unlock(&mgr->msg_mutex); 283 mutex_unlock(&mgr->msg_mutex);
284 return err; 284 return err;
diff --git a/sound/pci/pcxhr/pcxhr_core.c b/sound/pci/pcxhr/pcxhr_core.c
index 833e7180ad2d..304411c1fe4b 100644
--- a/sound/pci/pcxhr/pcxhr_core.c
+++ b/sound/pci/pcxhr/pcxhr_core.c
@@ -1042,11 +1042,11 @@ void pcxhr_msg_tasklet(unsigned long arg)
1042 int i, j; 1042 int i, j;
1043 1043
1044 if (mgr->src_it_dsp & PCXHR_IRQ_FREQ_CHANGE) 1044 if (mgr->src_it_dsp & PCXHR_IRQ_FREQ_CHANGE)
1045 snd_printdd("TASKLET : PCXHR_IRQ_FREQ_CHANGE event occured\n"); 1045 snd_printdd("TASKLET : PCXHR_IRQ_FREQ_CHANGE event occurred\n");
1046 if (mgr->src_it_dsp & PCXHR_IRQ_TIME_CODE) 1046 if (mgr->src_it_dsp & PCXHR_IRQ_TIME_CODE)
1047 snd_printdd("TASKLET : PCXHR_IRQ_TIME_CODE event occured\n"); 1047 snd_printdd("TASKLET : PCXHR_IRQ_TIME_CODE event occurred\n");
1048 if (mgr->src_it_dsp & PCXHR_IRQ_NOTIFY) 1048 if (mgr->src_it_dsp & PCXHR_IRQ_NOTIFY)
1049 snd_printdd("TASKLET : PCXHR_IRQ_NOTIFY event occured\n"); 1049 snd_printdd("TASKLET : PCXHR_IRQ_NOTIFY event occurred\n");
1050 if (mgr->src_it_dsp & (PCXHR_IRQ_FREQ_CHANGE | PCXHR_IRQ_TIME_CODE)) { 1050 if (mgr->src_it_dsp & (PCXHR_IRQ_FREQ_CHANGE | PCXHR_IRQ_TIME_CODE)) {
1051 /* clear events FREQ_CHANGE and TIME_CODE */ 1051 /* clear events FREQ_CHANGE and TIME_CODE */
1052 pcxhr_init_rmh(prmh, CMD_TEST_IT); 1052 pcxhr_init_rmh(prmh, CMD_TEST_IT);
@@ -1055,7 +1055,7 @@ void pcxhr_msg_tasklet(unsigned long arg)
1055 err, prmh->stat[0]); 1055 err, prmh->stat[0]);
1056 } 1056 }
1057 if (mgr->src_it_dsp & PCXHR_IRQ_ASYNC) { 1057 if (mgr->src_it_dsp & PCXHR_IRQ_ASYNC) {
1058 snd_printdd("TASKLET : PCXHR_IRQ_ASYNC event occured\n"); 1058 snd_printdd("TASKLET : PCXHR_IRQ_ASYNC event occurred\n");
1059 1059
1060 pcxhr_init_rmh(prmh, CMD_ASYNC); 1060 pcxhr_init_rmh(prmh, CMD_ASYNC);
1061 prmh->cmd[0] |= 1; /* add SEL_ASYNC_EVENTS */ 1061 prmh->cmd[0] |= 1; /* add SEL_ASYNC_EVENTS */
@@ -1233,7 +1233,7 @@ irqreturn_t pcxhr_interrupt(int irq, void *dev_id)
1233 reg = PCXHR_INPL(mgr, PCXHR_PLX_L2PCIDB); 1233 reg = PCXHR_INPL(mgr, PCXHR_PLX_L2PCIDB);
1234 PCXHR_OUTPL(mgr, PCXHR_PLX_L2PCIDB, reg); 1234 PCXHR_OUTPL(mgr, PCXHR_PLX_L2PCIDB, reg);
1235 1235
1236 /* timer irq occured */ 1236 /* timer irq occurred */
1237 if (reg & PCXHR_IRQ_TIMER) { 1237 if (reg & PCXHR_IRQ_TIMER) {
1238 int timer_toggle = reg & PCXHR_IRQ_TIMER; 1238 int timer_toggle = reg & PCXHR_IRQ_TIMER;
1239 /* is a 24 bit counter */ 1239 /* is a 24 bit counter */
@@ -1288,7 +1288,7 @@ irqreturn_t pcxhr_interrupt(int irq, void *dev_id)
1288 if (reg & PCXHR_IRQ_MASK) { 1288 if (reg & PCXHR_IRQ_MASK) {
1289 if (reg & PCXHR_IRQ_ASYNC) { 1289 if (reg & PCXHR_IRQ_ASYNC) {
1290 /* as we didn't request any async notifications, 1290 /* as we didn't request any async notifications,
1291 * some kind of xrun error will probably occured 1291 * some kind of xrun error will probably occurred
1292 */ 1292 */
1293 /* better resynchronize all streams next interrupt : */ 1293 /* better resynchronize all streams next interrupt : */
1294 mgr->dsp_time_last = PCXHR_DSP_TIME_INVALID; 1294 mgr->dsp_time_last = PCXHR_DSP_TIME_INVALID;
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c
index d5f5b440fc40..9ff247fc8871 100644
--- a/sound/pci/rme96.c
+++ b/sound/pci/rme96.c
@@ -150,7 +150,7 @@ MODULE_PARM_DESC(enable, "Enable RME Digi96 soundcard.");
150#define RME96_RCR_BITPOS_F1 28 150#define RME96_RCR_BITPOS_F1 28
151#define RME96_RCR_BITPOS_F2 29 151#define RME96_RCR_BITPOS_F2 29
152 152
153/* Additonal register bits */ 153/* Additional register bits */
154#define RME96_AR_WSEL (1 << 0) 154#define RME96_AR_WSEL (1 << 0)
155#define RME96_AR_ANALOG (1 << 1) 155#define RME96_AR_ANALOG (1 << 1)
156#define RME96_AR_FREQPAD_0 (1 << 2) 156#define RME96_AR_FREQPAD_0 (1 << 2)
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index a323eafb9e03..949691a876d3 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -391,7 +391,7 @@ MODULE_SUPPORTED_DEVICE("{{RME HDSPM-MADI}}");
391 391
392/* Status2 Register bits */ /* MADI ONLY */ 392/* Status2 Register bits */ /* MADI ONLY */
393 393
394#define HDSPM_version0 (1<<0) /* not realy defined but I guess */ 394#define HDSPM_version0 (1<<0) /* not really defined but I guess */
395#define HDSPM_version1 (1<<1) /* in former cards it was ??? */ 395#define HDSPM_version1 (1<<1) /* in former cards it was ??? */
396#define HDSPM_version2 (1<<2) 396#define HDSPM_version2 (1<<2)
397 397
@@ -936,7 +936,7 @@ struct hdspm {
936 struct snd_kcontrol *playback_mixer_ctls[HDSPM_MAX_CHANNELS]; 936 struct snd_kcontrol *playback_mixer_ctls[HDSPM_MAX_CHANNELS];
937 /* but input to much, so not used */ 937 /* but input to much, so not used */
938 struct snd_kcontrol *input_mixer_ctls[HDSPM_MAX_CHANNELS]; 938 struct snd_kcontrol *input_mixer_ctls[HDSPM_MAX_CHANNELS];
939 /* full mixer accessable over mixer ioctl or hwdep-device */ 939 /* full mixer accessible over mixer ioctl or hwdep-device */
940 struct hdspm_mixer *mixer; 940 struct hdspm_mixer *mixer;
941 941
942 struct hdspm_tco *tco; /* NULL if no TCO detected */ 942 struct hdspm_tco *tco; /* NULL if no TCO detected */
diff --git a/sound/pci/sis7019.c b/sound/pci/sis7019.c
index 1b8f6742b5fa..2b5c7a95ae1f 100644
--- a/sound/pci/sis7019.c
+++ b/sound/pci/sis7019.c
@@ -308,7 +308,7 @@ static irqreturn_t sis_interrupt(int irq, void *dev)
308 u32 intr, status; 308 u32 intr, status;
309 309
310 /* We only use the DMA interrupts, and we don't enable any other 310 /* We only use the DMA interrupts, and we don't enable any other
311 * source of interrupts. But, it is possible to see an interupt 311 * source of interrupts. But, it is possible to see an interrupt
312 * status that didn't actually interrupt us, so eliminate anything 312 * status that didn't actually interrupt us, so eliminate anything
313 * we're not expecting to avoid falsely claiming an IRQ, and an 313 * we're not expecting to avoid falsely claiming an IRQ, and an
314 * ensuing endless loop. 314 * ensuing endless loop.
@@ -773,7 +773,7 @@ static void sis_prepare_timing_voice(struct voice *voice,
773 vperiod = 0; 773 vperiod = 0;
774 } 774 }
775 775
776 /* The interrupt handler implements the timing syncronization, so 776 /* The interrupt handler implements the timing synchronization, so
777 * setup its state. 777 * setup its state.
778 */ 778 */
779 timing->flags |= VOICE_SYNC_TIMING; 779 timing->flags |= VOICE_SYNC_TIMING;
@@ -1139,7 +1139,7 @@ static int sis_chip_init(struct sis7019 *sis)
1139 */ 1139 */
1140 outl(SIS_DMA_CSR_PCI_SETTINGS, io + SIS_DMA_CSR); 1140 outl(SIS_DMA_CSR_PCI_SETTINGS, io + SIS_DMA_CSR);
1141 1141
1142 /* Reset the syncronization groups for all of the channels 1142 /* Reset the synchronization groups for all of the channels
1143 * to be asyncronous. If we start doing SPDIF or 5.1 sound, etc. 1143 * to be asyncronous. If we start doing SPDIF or 5.1 sound, etc.
1144 * we'll need to change how we handle these. Until then, we just 1144 * we'll need to change how we handle these. Until then, we just
1145 * assign sub-mixer 0 to all playback channels, and avoid any 1145 * assign sub-mixer 0 to all playback channels, and avoid any
diff --git a/sound/ppc/snd_ps3.c b/sound/ppc/snd_ps3.c
index edce8a27e3ee..bc823a547550 100644
--- a/sound/ppc/snd_ps3.c
+++ b/sound/ppc/snd_ps3.c
@@ -358,7 +358,7 @@ static irqreturn_t snd_ps3_interrupt(int irq, void *dev_id)
358 * filling dummy data, serial automatically start to 358 * filling dummy data, serial automatically start to
359 * consume them and then will generate normal buffer 359 * consume them and then will generate normal buffer
360 * empty interrupts. 360 * empty interrupts.
361 * If both buffer underflow and buffer empty are occured, 361 * If both buffer underflow and buffer empty are occurred,
362 * it is better to do nomal data transfer than empty one 362 * it is better to do nomal data transfer than empty one
363 */ 363 */
364 snd_ps3_program_dma(card, 364 snd_ps3_program_dma(card,
diff --git a/sound/ppc/snd_ps3_reg.h b/sound/ppc/snd_ps3_reg.h
index 03fdee4aaaf2..2e6302079566 100644
--- a/sound/ppc/snd_ps3_reg.h
+++ b/sound/ppc/snd_ps3_reg.h
@@ -125,7 +125,7 @@
125 transfers. Any interrupts associated with the canceled transfers 125 transfers. Any interrupts associated with the canceled transfers
126 will occur as if the transfer had finished. 126 will occur as if the transfer had finished.
127 Since this bit is designed to recover from DMA related issues 127 Since this bit is designed to recover from DMA related issues
128 which are caused by unpredictable situations, it is prefered to wait 128 which are caused by unpredictable situations, it is preferred to wait
129 for normal DMA transfer end without using this bit. 129 for normal DMA transfer end without using this bit.
130*/ 130*/
131#define PS3_AUDIO_CONFIG_CLEAR (1 << 8) /* RWIVF */ 131#define PS3_AUDIO_CONFIG_CLEAR (1 << 8) /* RWIVF */
@@ -316,13 +316,13 @@ DISABLED=Interrupt generation disabled.
316 316
317/* 317/*
318Audio Port Interrupt Status Register 318Audio Port Interrupt Status Register
319Indicates Interrupt status, which interrupt has occured, and can clear 319Indicates Interrupt status, which interrupt has occurred, and can clear
320each interrupt in this register. 320each interrupt in this register.
321Writing 1b to a field containing 1b clears field and de-asserts interrupt. 321Writing 1b to a field containing 1b clears field and de-asserts interrupt.
322Writing 0b to a field has no effect. 322Writing 0b to a field has no effect.
323Field vaules are the following: 323Field vaules are the following:
3240 - Interrupt hasn't occured. 3240 - Interrupt hasn't occurred.
3251 - Interrupt has occured. 3251 - Interrupt has occurred.
326 326
327 327
328 31 24 23 16 15 8 7 0 328 31 24 23 16 15 8 7 0
@@ -473,7 +473,7 @@ Channel N is out of action by setting 0 to asoen.
473/* 473/*
474Sampling Rate 474Sampling Rate
475Specifies the divide ratio of the bit clock (clock output 475Specifies the divide ratio of the bit clock (clock output
476from bclko) used by the 3-wire Audio Output Clock, whcih 476from bclko) used by the 3-wire Audio Output Clock, which
477is applied to the master clock selected by mcksel. 477is applied to the master clock selected by mcksel.
478Data output is synchronized with this clock. 478Data output is synchronized with this clock.
479*/ 479*/
@@ -756,7 +756,7 @@ The STATUS field can be used to monitor the progress of a DMA request.
756DONE indicates the previous request has completed. 756DONE indicates the previous request has completed.
757EVENT indicates that the DMA engine is waiting for the EVENT to occur. 757EVENT indicates that the DMA engine is waiting for the EVENT to occur.
758PENDING indicates that the DMA engine has not started processing this 758PENDING indicates that the DMA engine has not started processing this
759request, but the EVENT has occured. 759request, but the EVENT has occurred.
760DMA indicates that the data transfer is in progress. 760DMA indicates that the data transfer is in progress.
761NOTIFY indicates that the notifier signalling end of transfer is being written. 761NOTIFY indicates that the notifier signalling end of transfer is being written.
762CLEAR indicated that the previous transfer was cleared. 762CLEAR indicated that the previous transfer was cleared.
@@ -824,7 +824,7 @@ AUDIOFIFO = Audio WriteData FIFO,
824 824
825/* 825/*
826PS3_AUDIO_DMASIZE specifies the number of 128-byte blocks + 1 to transfer. 826PS3_AUDIO_DMASIZE specifies the number of 128-byte blocks + 1 to transfer.
827So a value of 0 means 128-bytes will get transfered. 827So a value of 0 means 128-bytes will get transferred.
828 828
829 829
830 31 24 23 16 15 8 7 0 830 31 24 23 16 15 8 7 0
diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c
index 5d230cee3fa7..7fbfa051f6e1 100644
--- a/sound/soc/atmel/atmel_ssc_dai.c
+++ b/sound/soc/atmel/atmel_ssc_dai.c
@@ -672,7 +672,7 @@ static int atmel_ssc_resume(struct snd_soc_dai *cpu_dai)
672 /* re-enable interrupts */ 672 /* re-enable interrupts */
673 ssc_writel(ssc_p->ssc->regs, IER, ssc_p->ssc_state.ssc_imr); 673 ssc_writel(ssc_p->ssc->regs, IER, ssc_p->ssc_state.ssc_imr);
674 674
675 /* Re-enable recieve and transmit as appropriate */ 675 /* Re-enable receive and transmit as appropriate */
676 cr = 0; 676 cr = 0;
677 cr |= 677 cr |=
678 (ssc_p->ssc_state.ssc_sr & SSC_BIT(SR_RXEN)) ? SSC_BIT(CR_RXEN) : 0; 678 (ssc_p->ssc_state.ssc_sr & SSC_BIT(SR_RXEN)) ? SSC_BIT(CR_RXEN) : 0;
diff --git a/sound/soc/codecs/alc5623.c b/sound/soc/codecs/alc5623.c
index 4f377c9e868d..eecffb548947 100644
--- a/sound/soc/codecs/alc5623.c
+++ b/sound/soc/codecs/alc5623.c
@@ -481,7 +481,7 @@ struct _pll_div {
481}; 481};
482 482
483/* Note : pll code from original alc5623 driver. Not sure of how good it is */ 483/* Note : pll code from original alc5623 driver. Not sure of how good it is */
484/* usefull only for master mode */ 484/* useful only for master mode */
485static const struct _pll_div codec_master_pll_div[] = { 485static const struct _pll_div codec_master_pll_div[] = {
486 486
487 { 2048000, 8192000, 0x0ea0}, 487 { 2048000, 8192000, 0x0ea0},
diff --git a/sound/soc/codecs/lm4857.c b/sound/soc/codecs/lm4857.c
index 72de47e5d040..2c2a681da0d7 100644
--- a/sound/soc/codecs/lm4857.c
+++ b/sound/soc/codecs/lm4857.c
@@ -161,7 +161,7 @@ static const struct snd_kcontrol_new lm4857_controls[] = {
161 lm4857_get_mode, lm4857_set_mode), 161 lm4857_get_mode, lm4857_set_mode),
162}; 162};
163 163
164/* There is a demux inbetween the the input signal and the output signals. 164/* There is a demux between the input signal and the output signals.
165 * Currently there is no easy way to model it in ASoC and since it does not make 165 * Currently there is no easy way to model it in ASoC and since it does not make
166 * much of a difference in practice simply connect the input direclty to the 166 * much of a difference in practice simply connect the input direclty to the
167 * outputs. */ 167 * outputs. */
diff --git a/sound/soc/codecs/sn95031.c b/sound/soc/codecs/sn95031.c
index 2a30eae1881c..a54d2a5b28f6 100644
--- a/sound/soc/codecs/sn95031.c
+++ b/sound/soc/codecs/sn95031.c
@@ -26,7 +26,9 @@
26#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt 26#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
27 27
28#include <linux/platform_device.h> 28#include <linux/platform_device.h>
29#include <linux/delay.h>
29#include <linux/slab.h> 30#include <linux/slab.h>
31
30#include <asm/intel_scu_ipc.h> 32#include <asm/intel_scu_ipc.h>
31#include <sound/pcm.h> 33#include <sound/pcm.h>
32#include <sound/pcm_params.h> 34#include <sound/pcm_params.h>
diff --git a/sound/soc/codecs/tlv320aic26.h b/sound/soc/codecs/tlv320aic26.h
index 62b1f2261429..67f19c3bebe6 100644
--- a/sound/soc/codecs/tlv320aic26.h
+++ b/sound/soc/codecs/tlv320aic26.h
@@ -14,14 +14,14 @@
14#define AIC26_PAGE_ADDR(page, offset) ((page << 6) | offset) 14#define AIC26_PAGE_ADDR(page, offset) ((page << 6) | offset)
15#define AIC26_NUM_REGS AIC26_PAGE_ADDR(3, 0) 15#define AIC26_NUM_REGS AIC26_PAGE_ADDR(3, 0)
16 16
17/* Page 0: Auxillary data registers */ 17/* Page 0: Auxiliary data registers */
18#define AIC26_REG_BAT1 AIC26_PAGE_ADDR(0, 0x05) 18#define AIC26_REG_BAT1 AIC26_PAGE_ADDR(0, 0x05)
19#define AIC26_REG_BAT2 AIC26_PAGE_ADDR(0, 0x06) 19#define AIC26_REG_BAT2 AIC26_PAGE_ADDR(0, 0x06)
20#define AIC26_REG_AUX AIC26_PAGE_ADDR(0, 0x07) 20#define AIC26_REG_AUX AIC26_PAGE_ADDR(0, 0x07)
21#define AIC26_REG_TEMP1 AIC26_PAGE_ADDR(0, 0x09) 21#define AIC26_REG_TEMP1 AIC26_PAGE_ADDR(0, 0x09)
22#define AIC26_REG_TEMP2 AIC26_PAGE_ADDR(0, 0x0A) 22#define AIC26_REG_TEMP2 AIC26_PAGE_ADDR(0, 0x0A)
23 23
24/* Page 1: Auxillary control registers */ 24/* Page 1: Auxiliary control registers */
25#define AIC26_REG_AUX_ADC AIC26_PAGE_ADDR(1, 0x00) 25#define AIC26_REG_AUX_ADC AIC26_PAGE_ADDR(1, 0x00)
26#define AIC26_REG_STATUS AIC26_PAGE_ADDR(1, 0x01) 26#define AIC26_REG_STATUS AIC26_PAGE_ADDR(1, 0x01)
27#define AIC26_REG_REFERENCE AIC26_PAGE_ADDR(1, 0x03) 27#define AIC26_REG_REFERENCE AIC26_PAGE_ADDR(1, 0x03)
diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index 3bedab26892f..6c43c13f0430 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -884,7 +884,7 @@ static int aic3x_hw_params(struct snd_pcm_substream *substream,
884 if (bypass_pll) 884 if (bypass_pll)
885 return 0; 885 return 0;
886 886
887 /* Use PLL, compute apropriate setup for j, d, r and p, the closest 887 /* Use PLL, compute appropriate setup for j, d, r and p, the closest
888 * one wins the game. Try with d==0 first, next with d!=0. 888 * one wins the game. Try with d==0 first, next with d!=0.
889 * Constraints for j are according to the datasheet. 889 * Constraints for j are according to the datasheet.
890 * The sysclk is divided by 1000 to prevent integer overflows. 890 * The sysclk is divided by 1000 to prevent integer overflows.
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index 00b6d87e7bdb..082e9d51963f 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -324,6 +324,10 @@ static void dac33_init_chip(struct snd_soc_codec *codec)
324 dac33_write(codec, DAC33_OUT_AMP_CTRL, 324 dac33_write(codec, DAC33_OUT_AMP_CTRL,
325 dac33_read_reg_cache(codec, DAC33_OUT_AMP_CTRL)); 325 dac33_read_reg_cache(codec, DAC33_OUT_AMP_CTRL));
326 326
327 dac33_write(codec, DAC33_LDAC_PWR_CTRL,
328 dac33_read_reg_cache(codec, DAC33_LDAC_PWR_CTRL));
329 dac33_write(codec, DAC33_RDAC_PWR_CTRL,
330 dac33_read_reg_cache(codec, DAC33_RDAC_PWR_CTRL));
327} 331}
328 332
329static inline int dac33_read_id(struct snd_soc_codec *codec) 333static inline int dac33_read_id(struct snd_soc_codec *codec)
@@ -670,6 +674,7 @@ static inline void dac33_prefill_handler(struct tlv320dac33_priv *dac33)
670{ 674{
671 struct snd_soc_codec *codec = dac33->codec; 675 struct snd_soc_codec *codec = dac33->codec;
672 unsigned int delay; 676 unsigned int delay;
677 unsigned long flags;
673 678
674 switch (dac33->fifo_mode) { 679 switch (dac33->fifo_mode) {
675 case DAC33_FIFO_MODE1: 680 case DAC33_FIFO_MODE1:
@@ -677,10 +682,10 @@ static inline void dac33_prefill_handler(struct tlv320dac33_priv *dac33)
677 DAC33_THRREG(dac33->nsample)); 682 DAC33_THRREG(dac33->nsample));
678 683
679 /* Take the timestamps */ 684 /* Take the timestamps */
680 spin_lock_irq(&dac33->lock); 685 spin_lock_irqsave(&dac33->lock, flags);
681 dac33->t_stamp2 = ktime_to_us(ktime_get()); 686 dac33->t_stamp2 = ktime_to_us(ktime_get());
682 dac33->t_stamp1 = dac33->t_stamp2; 687 dac33->t_stamp1 = dac33->t_stamp2;
683 spin_unlock_irq(&dac33->lock); 688 spin_unlock_irqrestore(&dac33->lock, flags);
684 689
685 dac33_write16(codec, DAC33_PREFILL_MSB, 690 dac33_write16(codec, DAC33_PREFILL_MSB,
686 DAC33_THRREG(dac33->alarm_threshold)); 691 DAC33_THRREG(dac33->alarm_threshold));
@@ -692,11 +697,11 @@ static inline void dac33_prefill_handler(struct tlv320dac33_priv *dac33)
692 break; 697 break;
693 case DAC33_FIFO_MODE7: 698 case DAC33_FIFO_MODE7:
694 /* Take the timestamp */ 699 /* Take the timestamp */
695 spin_lock_irq(&dac33->lock); 700 spin_lock_irqsave(&dac33->lock, flags);
696 dac33->t_stamp1 = ktime_to_us(ktime_get()); 701 dac33->t_stamp1 = ktime_to_us(ktime_get());
697 /* Move back the timestamp with drain time */ 702 /* Move back the timestamp with drain time */
698 dac33->t_stamp1 -= dac33->mode7_us_to_lthr; 703 dac33->t_stamp1 -= dac33->mode7_us_to_lthr;
699 spin_unlock_irq(&dac33->lock); 704 spin_unlock_irqrestore(&dac33->lock, flags);
700 705
701 dac33_write16(codec, DAC33_PREFILL_MSB, 706 dac33_write16(codec, DAC33_PREFILL_MSB,
702 DAC33_THRREG(DAC33_MODE7_MARGIN)); 707 DAC33_THRREG(DAC33_MODE7_MARGIN));
@@ -714,13 +719,14 @@ static inline void dac33_prefill_handler(struct tlv320dac33_priv *dac33)
714static inline void dac33_playback_handler(struct tlv320dac33_priv *dac33) 719static inline void dac33_playback_handler(struct tlv320dac33_priv *dac33)
715{ 720{
716 struct snd_soc_codec *codec = dac33->codec; 721 struct snd_soc_codec *codec = dac33->codec;
722 unsigned long flags;
717 723
718 switch (dac33->fifo_mode) { 724 switch (dac33->fifo_mode) {
719 case DAC33_FIFO_MODE1: 725 case DAC33_FIFO_MODE1:
720 /* Take the timestamp */ 726 /* Take the timestamp */
721 spin_lock_irq(&dac33->lock); 727 spin_lock_irqsave(&dac33->lock, flags);
722 dac33->t_stamp2 = ktime_to_us(ktime_get()); 728 dac33->t_stamp2 = ktime_to_us(ktime_get());
723 spin_unlock_irq(&dac33->lock); 729 spin_unlock_irqrestore(&dac33->lock, flags);
724 730
725 dac33_write16(codec, DAC33_NSAMPLE_MSB, 731 dac33_write16(codec, DAC33_NSAMPLE_MSB,
726 DAC33_THRREG(dac33->nsample)); 732 DAC33_THRREG(dac33->nsample));
@@ -773,10 +779,11 @@ static irqreturn_t dac33_interrupt_handler(int irq, void *dev)
773{ 779{
774 struct snd_soc_codec *codec = dev; 780 struct snd_soc_codec *codec = dev;
775 struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec); 781 struct tlv320dac33_priv *dac33 = snd_soc_codec_get_drvdata(codec);
782 unsigned long flags;
776 783
777 spin_lock(&dac33->lock); 784 spin_lock_irqsave(&dac33->lock, flags);
778 dac33->t_stamp1 = ktime_to_us(ktime_get()); 785 dac33->t_stamp1 = ktime_to_us(ktime_get());
779 spin_unlock(&dac33->lock); 786 spin_unlock_irqrestore(&dac33->lock, flags);
780 787
781 /* Do not schedule the workqueue in Mode7 */ 788 /* Do not schedule the workqueue in Mode7 */
782 if (dac33->fifo_mode != DAC33_FIFO_MODE7) 789 if (dac33->fifo_mode != DAC33_FIFO_MODE7)
@@ -1020,7 +1027,7 @@ static int dac33_prepare_chip(struct snd_pcm_substream *substream)
1020 /* 1027 /*
1021 * For FIFO bypass mode: 1028 * For FIFO bypass mode:
1022 * Enable the FIFO bypass (Disable the FIFO use) 1029 * Enable the FIFO bypass (Disable the FIFO use)
1023 * Set the BCLK as continous 1030 * Set the BCLK as continuous
1024 */ 1031 */
1025 fifoctrl_a |= DAC33_FBYPAS; 1032 fifoctrl_a |= DAC33_FBYPAS;
1026 aictrl_b |= DAC33_BCLKON; 1033 aictrl_b |= DAC33_BCLKON;
@@ -1173,15 +1180,16 @@ static snd_pcm_sframes_t dac33_dai_delay(
1173 unsigned int time_delta, uthr; 1180 unsigned int time_delta, uthr;
1174 int samples_out, samples_in, samples; 1181 int samples_out, samples_in, samples;
1175 snd_pcm_sframes_t delay = 0; 1182 snd_pcm_sframes_t delay = 0;
1183 unsigned long flags;
1176 1184
1177 switch (dac33->fifo_mode) { 1185 switch (dac33->fifo_mode) {
1178 case DAC33_FIFO_BYPASS: 1186 case DAC33_FIFO_BYPASS:
1179 break; 1187 break;
1180 case DAC33_FIFO_MODE1: 1188 case DAC33_FIFO_MODE1:
1181 spin_lock(&dac33->lock); 1189 spin_lock_irqsave(&dac33->lock, flags);
1182 t0 = dac33->t_stamp1; 1190 t0 = dac33->t_stamp1;
1183 t1 = dac33->t_stamp2; 1191 t1 = dac33->t_stamp2;
1184 spin_unlock(&dac33->lock); 1192 spin_unlock_irqrestore(&dac33->lock, flags);
1185 t_now = ktime_to_us(ktime_get()); 1193 t_now = ktime_to_us(ktime_get());
1186 1194
1187 /* We have not started to fill the FIFO yet, delay is 0 */ 1195 /* We have not started to fill the FIFO yet, delay is 0 */
@@ -1246,10 +1254,10 @@ static snd_pcm_sframes_t dac33_dai_delay(
1246 } 1254 }
1247 break; 1255 break;
1248 case DAC33_FIFO_MODE7: 1256 case DAC33_FIFO_MODE7:
1249 spin_lock(&dac33->lock); 1257 spin_lock_irqsave(&dac33->lock, flags);
1250 t0 = dac33->t_stamp1; 1258 t0 = dac33->t_stamp1;
1251 uthr = dac33->uthr; 1259 uthr = dac33->uthr;
1252 spin_unlock(&dac33->lock); 1260 spin_unlock_irqrestore(&dac33->lock, flags);
1253 t_now = ktime_to_us(ktime_get()); 1261 t_now = ktime_to_us(ktime_get());
1254 1262
1255 /* We have not started to fill the FIFO yet, delay is 0 */ 1263 /* We have not started to fill the FIFO yet, delay is 0 */
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index 8512800f6326..575238d68e5e 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -281,7 +281,7 @@ static inline void twl4030_check_defaults(struct snd_soc_codec *codec)
281 i, val, twl4030_reg[i]); 281 i, val, twl4030_reg[i]);
282 } 282 }
283 } 283 }
284 dev_dbg(codec->dev, "Found %d non maching registers. %s\n", 284 dev_dbg(codec->dev, "Found %d non-matching registers. %s\n",
285 difference, difference ? "Not OK" : "OK"); 285 difference, difference ? "Not OK" : "OK");
286} 286}
287 287
@@ -2018,7 +2018,7 @@ static int twl4030_voice_startup(struct snd_pcm_substream *substream,
2018 u8 mode; 2018 u8 mode;
2019 2019
2020 /* If the system master clock is not 26MHz, the voice PCM interface is 2020 /* If the system master clock is not 26MHz, the voice PCM interface is
2021 * not avilable. 2021 * not available.
2022 */ 2022 */
2023 if (twl4030->sysclk != 26000) { 2023 if (twl4030->sysclk != 26000) {
2024 dev_err(codec->dev, "The board is configured for %u Hz, while" 2024 dev_err(codec->dev, "The board is configured for %u Hz, while"
@@ -2028,7 +2028,7 @@ static int twl4030_voice_startup(struct snd_pcm_substream *substream,
2028 } 2028 }
2029 2029
2030 /* If the codec mode is not option2, the voice PCM interface is not 2030 /* If the codec mode is not option2, the voice PCM interface is not
2031 * avilable. 2031 * available.
2032 */ 2032 */
2033 mode = twl4030_read_reg_cache(codec, TWL4030_REG_CODEC_MODE) 2033 mode = twl4030_read_reg_cache(codec, TWL4030_REG_CODEC_MODE)
2034 & TWL4030_OPT_MODE; 2034 & TWL4030_OPT_MODE;
diff --git a/sound/soc/codecs/twl6040.c b/sound/soc/codecs/twl6040.c
index 482fcdb59bfa..255901c4460d 100644
--- a/sound/soc/codecs/twl6040.c
+++ b/sound/soc/codecs/twl6040.c
@@ -1629,8 +1629,10 @@ static int twl6040_probe(struct snd_soc_codec *codec)
1629 priv->naudint = naudint; 1629 priv->naudint = naudint;
1630 priv->workqueue = create_singlethread_workqueue("twl6040-codec"); 1630 priv->workqueue = create_singlethread_workqueue("twl6040-codec");
1631 1631
1632 if (!priv->workqueue) 1632 if (!priv->workqueue) {
1633 ret = -ENOMEM;
1633 goto work_err; 1634 goto work_err;
1635 }
1634 1636
1635 INIT_DELAYED_WORK(&priv->delayed_work, twl6040_accessory_work); 1637 INIT_DELAYED_WORK(&priv->delayed_work, twl6040_accessory_work);
1636 1638
diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c
index 8f6b5ee6645b..4bbc0a79f01e 100644
--- a/sound/soc/codecs/wm8580.c
+++ b/sound/soc/codecs/wm8580.c
@@ -772,7 +772,7 @@ static int wm8580_set_bias_level(struct snd_soc_codec *codec,
772 reg &= ~(WM8580_PWRDN1_PWDN | WM8580_PWRDN1_ALLDACPD); 772 reg &= ~(WM8580_PWRDN1_PWDN | WM8580_PWRDN1_ALLDACPD);
773 snd_soc_write(codec, WM8580_PWRDN1, reg); 773 snd_soc_write(codec, WM8580_PWRDN1, reg);
774 774
775 /* Make VMID high impedence */ 775 /* Make VMID high impedance */
776 reg = snd_soc_read(codec, WM8580_ADC_CONTROL1); 776 reg = snd_soc_read(codec, WM8580_ADC_CONTROL1);
777 reg &= ~0x100; 777 reg &= ~0x100;
778 snd_soc_write(codec, WM8580_ADC_CONTROL1, reg); 778 snd_soc_write(codec, WM8580_ADC_CONTROL1, reg);
diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c
index 3f09deea8d9d..ffa2ffe5ec11 100644
--- a/sound/soc/codecs/wm8753.c
+++ b/sound/soc/codecs/wm8753.c
@@ -1312,7 +1312,7 @@ static int wm8753_set_bias_level(struct snd_soc_codec *codec,
1312 SNDRV_PCM_FMTBIT_S24_LE) 1312 SNDRV_PCM_FMTBIT_S24_LE)
1313 1313
1314/* 1314/*
1315 * The WM8753 supports upto 4 different and mutually exclusive DAI 1315 * The WM8753 supports up to 4 different and mutually exclusive DAI
1316 * configurations. This gives 2 PCM's available for use, hifi and voice. 1316 * configurations. This gives 2 PCM's available for use, hifi and voice.
1317 * NOTE: The Voice PCM cannot play or capture audio to the CPU as it's DAI 1317 * NOTE: The Voice PCM cannot play or capture audio to the CPU as it's DAI
1318 * is connected between the wm8753 and a BT codec or GSM modem. 1318 * is connected between the wm8753 and a BT codec or GSM modem.
diff --git a/sound/soc/codecs/wm8904.c b/sound/soc/codecs/wm8904.c
index 443ae580445c..9b3bba4df5b3 100644
--- a/sound/soc/codecs/wm8904.c
+++ b/sound/soc/codecs/wm8904.c
@@ -1895,7 +1895,7 @@ static int fll_factors(struct _fll_div *fll_div, unsigned int Fref,
1895 1895
1896 pr_debug("Fvco=%dHz\n", target); 1896 pr_debug("Fvco=%dHz\n", target);
1897 1897
1898 /* Find an appropraite FLL_FRATIO and factor it out of the target */ 1898 /* Find an appropriate FLL_FRATIO and factor it out of the target */
1899 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) { 1899 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) {
1900 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) { 1900 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) {
1901 fll_div->fll_fratio = fll_fratios[i].fll_fratio; 1901 fll_div->fll_fratio = fll_fratios[i].fll_fratio;
diff --git a/sound/soc/codecs/wm8955.c b/sound/soc/codecs/wm8955.c
index 5e0214d6293e..3c7198779c31 100644
--- a/sound/soc/codecs/wm8955.c
+++ b/sound/soc/codecs/wm8955.c
@@ -176,7 +176,7 @@ static int wm8995_pll_factors(struct device *dev,
176 return 0; 176 return 0;
177} 177}
178 178
179/* Lookup table specifiying SRATE (table 25 in datasheet); some of the 179/* Lookup table specifying SRATE (table 25 in datasheet); some of the
180 * output frequencies have been rounded to the standard frequencies 180 * output frequencies have been rounded to the standard frequencies
181 * they are intended to match where the error is slight. */ 181 * they are intended to match where the error is slight. */
182static struct { 182static struct {
diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 3b71dd65c966..500011eb8b2b 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -3137,7 +3137,7 @@ static int fll_factors(struct _fll_div *fll_div, unsigned int Fref,
3137 3137
3138 pr_debug("FLL Fvco=%dHz\n", target); 3138 pr_debug("FLL Fvco=%dHz\n", target);
3139 3139
3140 /* Find an appropraite FLL_FRATIO and factor it out of the target */ 3140 /* Find an appropriate FLL_FRATIO and factor it out of the target */
3141 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) { 3141 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) {
3142 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) { 3142 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) {
3143 fll_div->fll_fratio = fll_fratios[i].fll_fratio; 3143 fll_div->fll_fratio = fll_fratios[i].fll_fratio;
diff --git a/sound/soc/codecs/wm8991.c b/sound/soc/codecs/wm8991.c
index 28fdfd66661d..3c2ee1bb73cd 100644
--- a/sound/soc/codecs/wm8991.c
+++ b/sound/soc/codecs/wm8991.c
@@ -981,7 +981,7 @@ static int wm8991_set_dai_pll(struct snd_soc_dai *codec_dai,
981 reg = snd_soc_read(codec, WM8991_CLOCKING_2); 981 reg = snd_soc_read(codec, WM8991_CLOCKING_2);
982 snd_soc_write(codec, WM8991_CLOCKING_2, reg | WM8991_SYSCLK_SRC); 982 snd_soc_write(codec, WM8991_CLOCKING_2, reg | WM8991_SYSCLK_SRC);
983 983
984 /* set up N , fractional mode and pre-divisor if neccessary */ 984 /* set up N , fractional mode and pre-divisor if necessary */
985 snd_soc_write(codec, WM8991_PLL1, pll_div.n | WM8991_SDM | 985 snd_soc_write(codec, WM8991_PLL1, pll_div.n | WM8991_SDM |
986 (pll_div.div2 ? WM8991_PRESCALE : 0)); 986 (pll_div.div2 ? WM8991_PRESCALE : 0));
987 snd_soc_write(codec, WM8991_PLL2, (u8)(pll_div.k>>8)); 987 snd_soc_write(codec, WM8991_PLL2, (u8)(pll_div.k>>8));
diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c
index 379fa22c5b6c..056aef904347 100644
--- a/sound/soc/codecs/wm8993.c
+++ b/sound/soc/codecs/wm8993.c
@@ -324,7 +324,7 @@ static int fll_factors(struct _fll_div *fll_div, unsigned int Fref,
324 324
325 pr_debug("Fvco=%dHz\n", target); 325 pr_debug("Fvco=%dHz\n", target);
326 326
327 /* Find an appropraite FLL_FRATIO and factor it out of the target */ 327 /* Find an appropriate FLL_FRATIO and factor it out of the target */
328 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) { 328 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) {
329 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) { 329 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) {
330 fll_div->fll_fratio = fll_fratios[i].fll_fratio; 330 fll_div->fll_fratio = fll_fratios[i].fll_fratio;
diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
index 3dc64c8b6a5c..3290333b2bb9 100644
--- a/sound/soc/codecs/wm8994.c
+++ b/sound/soc/codecs/wm8994.c
@@ -82,18 +82,18 @@ struct wm8994_priv {
82 82
83 int mbc_ena[3]; 83 int mbc_ena[3];
84 84
85 /* Platform dependant DRC configuration */ 85 /* Platform dependent DRC configuration */
86 const char **drc_texts; 86 const char **drc_texts;
87 int drc_cfg[WM8994_NUM_DRC]; 87 int drc_cfg[WM8994_NUM_DRC];
88 struct soc_enum drc_enum; 88 struct soc_enum drc_enum;
89 89
90 /* Platform dependant ReTune mobile configuration */ 90 /* Platform dependent ReTune mobile configuration */
91 int num_retune_mobile_texts; 91 int num_retune_mobile_texts;
92 const char **retune_mobile_texts; 92 const char **retune_mobile_texts;
93 int retune_mobile_cfg[WM8994_NUM_EQ]; 93 int retune_mobile_cfg[WM8994_NUM_EQ];
94 struct soc_enum retune_mobile_enum; 94 struct soc_enum retune_mobile_enum;
95 95
96 /* Platform dependant MBC configuration */ 96 /* Platform dependent MBC configuration */
97 int mbc_cfg; 97 int mbc_cfg;
98 const char **mbc_texts; 98 const char **mbc_texts;
99 struct soc_enum mbc_enum; 99 struct soc_enum mbc_enum;
diff --git a/sound/soc/codecs/wm9081.c b/sound/soc/codecs/wm9081.c
index 55cdf2982020..91c6b39de50c 100644
--- a/sound/soc/codecs/wm9081.c
+++ b/sound/soc/codecs/wm9081.c
@@ -305,7 +305,7 @@ static int speaker_mode_get(struct snd_kcontrol *kcontrol,
305/* 305/*
306 * Stop any attempts to change speaker mode while the speaker is enabled. 306 * Stop any attempts to change speaker mode while the speaker is enabled.
307 * 307 *
308 * We also have some special anti-pop controls dependant on speaker 308 * We also have some special anti-pop controls dependent on speaker
309 * mode which must be changed along with the mode. 309 * mode which must be changed along with the mode.
310 */ 310 */
311static int speaker_mode_put(struct snd_kcontrol *kcontrol, 311static int speaker_mode_put(struct snd_kcontrol *kcontrol,
@@ -456,7 +456,7 @@ static int fll_factors(struct _fll_div *fll_div, unsigned int Fref,
456 456
457 pr_debug("Fvco=%dHz\n", target); 457 pr_debug("Fvco=%dHz\n", target);
458 458
459 /* Find an appropraite FLL_FRATIO and factor it out of the target */ 459 /* Find an appropriate FLL_FRATIO and factor it out of the target */
460 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) { 460 for (i = 0; i < ARRAY_SIZE(fll_fratios); i++) {
461 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) { 461 if (fll_fratios[i].min <= Fref && Fref <= fll_fratios[i].max) {
462 fll_div->fll_fratio = fll_fratios[i].fll_fratio; 462 fll_div->fll_fratio = fll_fratios[i].fll_fratio;
diff --git a/sound/soc/imx/imx-pcm-dma-mx2.c b/sound/soc/imx/imx-pcm-dma-mx2.c
index 671ef8dd524c..aab7765f401a 100644
--- a/sound/soc/imx/imx-pcm-dma-mx2.c
+++ b/sound/soc/imx/imx-pcm-dma-mx2.c
@@ -110,12 +110,12 @@ static int imx_ssi_dma_alloc(struct snd_pcm_substream *substream,
110 slave_config.direction = DMA_TO_DEVICE; 110 slave_config.direction = DMA_TO_DEVICE;
111 slave_config.dst_addr = dma_params->dma_addr; 111 slave_config.dst_addr = dma_params->dma_addr;
112 slave_config.dst_addr_width = buswidth; 112 slave_config.dst_addr_width = buswidth;
113 slave_config.dst_maxburst = dma_params->burstsize; 113 slave_config.dst_maxburst = dma_params->burstsize * buswidth;
114 } else { 114 } else {
115 slave_config.direction = DMA_FROM_DEVICE; 115 slave_config.direction = DMA_FROM_DEVICE;
116 slave_config.src_addr = dma_params->dma_addr; 116 slave_config.src_addr = dma_params->dma_addr;
117 slave_config.src_addr_width = buswidth; 117 slave_config.src_addr_width = buswidth;
118 slave_config.src_maxburst = dma_params->burstsize; 118 slave_config.src_maxburst = dma_params->burstsize * buswidth;
119 } 119 }
120 120
121 ret = dmaengine_slave_config(iprtd->dma_chan, &slave_config); 121 ret = dmaengine_slave_config(iprtd->dma_chan, &slave_config);
@@ -303,6 +303,11 @@ static struct snd_soc_platform_driver imx_soc_platform_mx2 = {
303 303
304static int __devinit imx_soc_platform_probe(struct platform_device *pdev) 304static int __devinit imx_soc_platform_probe(struct platform_device *pdev)
305{ 305{
306 struct imx_ssi *ssi = platform_get_drvdata(pdev);
307
308 ssi->dma_params_tx.burstsize = 6;
309 ssi->dma_params_rx.burstsize = 4;
310
306 return snd_soc_register_platform(&pdev->dev, &imx_soc_platform_mx2); 311 return snd_soc_register_platform(&pdev->dev, &imx_soc_platform_mx2);
307} 312}
308 313
diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
index bc92ec620004..ac2ded969253 100644
--- a/sound/soc/imx/imx-ssi.c
+++ b/sound/soc/imx/imx-ssi.c
@@ -16,7 +16,7 @@
16 * sane processor vendors have a FIFO per AC97 slot, the i.MX has only 16 * sane processor vendors have a FIFO per AC97 slot, the i.MX has only
17 * one FIFO which combines all valid receive slots. We cannot even select 17 * one FIFO which combines all valid receive slots. We cannot even select
18 * which slots we want to receive. The WM9712 with which this driver 18 * which slots we want to receive. The WM9712 with which this driver
19 * was developped with always sends GPIO status data in slot 12 which 19 * was developed with always sends GPIO status data in slot 12 which
20 * we receive in our (PCM-) data stream. The only chance we have is to 20 * we receive in our (PCM-) data stream. The only chance we have is to
21 * manually skip this data in the FIQ handler. With sampling rates different 21 * manually skip this data in the FIQ handler. With sampling rates different
22 * from 48000Hz not every frame has valid receive data, so the ratio 22 * from 48000Hz not every frame has valid receive data, so the ratio
diff --git a/sound/soc/imx/imx-ssi.h b/sound/soc/imx/imx-ssi.h
index a4406a134892..dc8a87530e3e 100644
--- a/sound/soc/imx/imx-ssi.h
+++ b/sound/soc/imx/imx-ssi.h
@@ -234,7 +234,4 @@ void imx_pcm_free(struct snd_pcm *pcm);
234 */ 234 */
235#define IMX_SSI_DMABUF_SIZE (64 * 1024) 235#define IMX_SSI_DMABUF_SIZE (64 * 1024)
236 236
237#define DMA_RXFIFO_BURST 0x4
238#define DMA_TXFIFO_BURST 0x6
239
240#endif /* _IMX_SSI_H */ 237#endif /* _IMX_SSI_H */
diff --git a/sound/soc/kirkwood/kirkwood-dma.c b/sound/soc/kirkwood/kirkwood-dma.c
index 0fd6a630db01..e13c6ce46328 100644
--- a/sound/soc/kirkwood/kirkwood-dma.c
+++ b/sound/soc/kirkwood/kirkwood-dma.c
@@ -132,7 +132,7 @@ static int kirkwood_dma_open(struct snd_pcm_substream *substream)
132 priv = snd_soc_dai_get_dma_data(cpu_dai, substream); 132 priv = snd_soc_dai_get_dma_data(cpu_dai, substream);
133 snd_soc_set_runtime_hwparams(substream, &kirkwood_dma_snd_hw); 133 snd_soc_set_runtime_hwparams(substream, &kirkwood_dma_snd_hw);
134 134
135 /* Ensure that all constraints linked to dma burst are fullfilled */ 135 /* Ensure that all constraints linked to dma burst are fulfilled */
136 err = snd_pcm_hw_constraint_minmax(runtime, 136 err = snd_pcm_hw_constraint_minmax(runtime,
137 SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 137 SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
138 priv->burst * 2, 138 priv->burst * 2,
@@ -170,7 +170,7 @@ static int kirkwood_dma_open(struct snd_pcm_substream *substream)
170 170
171 /* 171 /*
172 * Enable Error interrupts. We're only ack'ing them but 172 * Enable Error interrupts. We're only ack'ing them but
173 * it's usefull for diagnostics 173 * it's useful for diagnostics
174 */ 174 */
175 writel((unsigned long)-1, priv->io + KIRKWOOD_ERR_MASK); 175 writel((unsigned long)-1, priv->io + KIRKWOOD_ERR_MASK);
176 } 176 }
diff --git a/sound/soc/mid-x86/sst_platform.c b/sound/soc/mid-x86/sst_platform.c
index ee2c22475a76..b2e9198a983a 100644
--- a/sound/soc/mid-x86/sst_platform.c
+++ b/sound/soc/mid-x86/sst_platform.c
@@ -440,7 +440,7 @@ static int sst_platform_remove(struct platform_device *pdev)
440 440
441 snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(sst_platform_dai)); 441 snd_soc_unregister_dais(&pdev->dev, ARRAY_SIZE(sst_platform_dai));
442 snd_soc_unregister_platform(&pdev->dev); 442 snd_soc_unregister_platform(&pdev->dev);
443 pr_debug("sst_platform_remove sucess\n"); 443 pr_debug("sst_platform_remove success\n");
444 return 0; 444 return 0;
445} 445}
446 446
@@ -463,7 +463,7 @@ module_init(sst_soc_platform_init);
463static void __exit sst_soc_platform_exit(void) 463static void __exit sst_soc_platform_exit(void)
464{ 464{
465 platform_driver_unregister(&sst_platform_driver); 465 platform_driver_unregister(&sst_platform_driver);
466 pr_debug("sst_soc_platform_exit sucess\n"); 466 pr_debug("sst_soc_platform_exit success\n");
467} 467}
468module_exit(sst_soc_platform_exit); 468module_exit(sst_soc_platform_exit);
469 469
diff --git a/sound/soc/omap/ams-delta.c b/sound/soc/omap/ams-delta.c
index 3167be689621..462cbcbea74a 100644
--- a/sound/soc/omap/ams-delta.c
+++ b/sound/soc/omap/ams-delta.c
@@ -248,7 +248,7 @@ static struct snd_soc_jack_pin ams_delta_hook_switch_pins[] = {
248 */ 248 */
249 249
250/* To actually apply any modem controlled configuration changes to the codec, 250/* To actually apply any modem controlled configuration changes to the codec,
251 * we must connect codec DAI pins to the modem for a moment. Be carefull not 251 * we must connect codec DAI pins to the modem for a moment. Be careful not
252 * to interfere with our digital mute function that shares the same hardware. */ 252 * to interfere with our digital mute function that shares the same hardware. */
253static struct timer_list cx81801_timer; 253static struct timer_list cx81801_timer;
254static bool cx81801_cmd_pending; 254static bool cx81801_cmd_pending;
@@ -402,9 +402,9 @@ static struct tty_ldisc_ops cx81801_ops = {
402 402
403 403
404/* 404/*
405 * Even if not very usefull, the sound card can still work without any of the 405 * Even if not very useful, the sound card can still work without any of the
406 * above functonality activated. You can still control its audio input/output 406 * above functonality activated. You can still control its audio input/output
407 * constellation and speakerphone gain from userspace by issueing AT commands 407 * constellation and speakerphone gain from userspace by issuing AT commands
408 * over the modem port. 408 * over the modem port.
409 */ 409 */
410 410
diff --git a/sound/soc/pxa/corgi.c b/sound/soc/pxa/corgi.c
index 784cff5f67e8..9027da466cae 100644
--- a/sound/soc/pxa/corgi.c
+++ b/sound/soc/pxa/corgi.c
@@ -310,7 +310,7 @@ static struct snd_soc_dai_link corgi_dai = {
310 .cpu_dai_name = "pxa2xx-i2s", 310 .cpu_dai_name = "pxa2xx-i2s",
311 .codec_dai_name = "wm8731-hifi", 311 .codec_dai_name = "wm8731-hifi",
312 .platform_name = "pxa-pcm-audio", 312 .platform_name = "pxa-pcm-audio",
313 .codec_name = "wm8731-codec-0.001b", 313 .codec_name = "wm8731-codec.0-001b",
314 .init = corgi_wm8731_init, 314 .init = corgi_wm8731_init,
315 .ops = &corgi_ops, 315 .ops = &corgi_ops,
316}; 316};
diff --git a/sound/soc/pxa/pxa2xx-pcm.c b/sound/soc/pxa/pxa2xx-pcm.c
index 02fb66416ddc..2ce0b2d891d5 100644
--- a/sound/soc/pxa/pxa2xx-pcm.c
+++ b/sound/soc/pxa/pxa2xx-pcm.c
@@ -65,6 +65,7 @@ static int pxa2xx_pcm_hw_free(struct snd_pcm_substream *substream)
65 if (prtd->dma_ch >= 0) { 65 if (prtd->dma_ch >= 0) {
66 pxa_free_dma(prtd->dma_ch); 66 pxa_free_dma(prtd->dma_ch);
67 prtd->dma_ch = -1; 67 prtd->dma_ch = -1;
68 prtd->params = NULL;
68 } 69 }
69 70
70 return 0; 71 return 0;
diff --git a/sound/soc/pxa/zylonite.c b/sound/soc/pxa/zylonite.c
index ac577263b3e3..b6445757fc54 100644
--- a/sound/soc/pxa/zylonite.c
+++ b/sound/soc/pxa/zylonite.c
@@ -167,7 +167,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
167 .codec_name = "wm9713-codec", 167 .codec_name = "wm9713-codec",
168 .platform_name = "pxa-pcm-audio", 168 .platform_name = "pxa-pcm-audio",
169 .cpu_dai_name = "pxa2xx-ac97", 169 .cpu_dai_name = "pxa2xx-ac97",
170 .codec_name = "wm9713-hifi", 170 .codec_dai_name = "wm9713-hifi",
171 .init = zylonite_wm9713_init, 171 .init = zylonite_wm9713_init,
172}, 172},
173{ 173{
@@ -176,7 +176,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
176 .codec_name = "wm9713-codec", 176 .codec_name = "wm9713-codec",
177 .platform_name = "pxa-pcm-audio", 177 .platform_name = "pxa-pcm-audio",
178 .cpu_dai_name = "pxa2xx-ac97-aux", 178 .cpu_dai_name = "pxa2xx-ac97-aux",
179 .codec_name = "wm9713-aux", 179 .codec_dai_name = "wm9713-aux",
180}, 180},
181{ 181{
182 .name = "WM9713 Voice", 182 .name = "WM9713 Voice",
@@ -184,7 +184,7 @@ static struct snd_soc_dai_link zylonite_dai[] = {
184 .codec_name = "wm9713-codec", 184 .codec_name = "wm9713-codec",
185 .platform_name = "pxa-pcm-audio", 185 .platform_name = "pxa-pcm-audio",
186 .cpu_dai_name = "pxa-ssp-dai.2", 186 .cpu_dai_name = "pxa-ssp-dai.2",
187 .codec_name = "wm9713-voice", 187 .codec_dai_name = "wm9713-voice",
188 .ops = &zylonite_voice_ops, 188 .ops = &zylonite_voice_ops,
189}, 189},
190}; 190};
diff --git a/sound/soc/samsung/neo1973_wm8753.c b/sound/soc/samsung/neo1973_wm8753.c
index 78bfdb3f5d7e..452230975632 100644
--- a/sound/soc/samsung/neo1973_wm8753.c
+++ b/sound/soc/samsung/neo1973_wm8753.c
@@ -228,7 +228,7 @@ static const struct snd_kcontrol_new neo1973_wm8753_controls[] = {
228 SOC_DAPM_PIN_SWITCH("Handset Mic"), 228 SOC_DAPM_PIN_SWITCH("Handset Mic"),
229}; 229};
230 230
231/* GTA02 specific routes and controlls */ 231/* GTA02 specific routes and controls */
232 232
233#ifdef CONFIG_MACH_NEO1973_GTA02 233#ifdef CONFIG_MACH_NEO1973_GTA02
234 234
@@ -372,7 +372,7 @@ static int neo1973_wm8753_init(struct snd_soc_pcm_runtime *rtd)
372 return 0; 372 return 0;
373} 373}
374 374
375/* GTA01 specific controlls */ 375/* GTA01 specific controls */
376 376
377#ifdef CONFIG_MACH_NEO1973_GTA01 377#ifdef CONFIG_MACH_NEO1973_GTA01
378 378
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 4dda58926bc5..b76b74db0968 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -92,8 +92,8 @@ static int min_bytes_needed(unsigned long val)
92static int format_register_str(struct snd_soc_codec *codec, 92static int format_register_str(struct snd_soc_codec *codec,
93 unsigned int reg, char *buf, size_t len) 93 unsigned int reg, char *buf, size_t len)
94{ 94{
95 int wordsize = codec->driver->reg_word_size * 2; 95 int wordsize = min_bytes_needed(codec->driver->reg_cache_size) * 2;
96 int regsize = min_bytes_needed(codec->driver->reg_cache_size) * 2; 96 int regsize = codec->driver->reg_word_size * 2;
97 int ret; 97 int ret;
98 char tmpbuf[len + 1]; 98 char tmpbuf[len + 1];
99 char regbuf[regsize + 1]; 99 char regbuf[regsize + 1];
@@ -132,8 +132,8 @@ static ssize_t soc_codec_reg_show(struct snd_soc_codec *codec, char *buf,
132 size_t total = 0; 132 size_t total = 0;
133 loff_t p = 0; 133 loff_t p = 0;
134 134
135 wordsize = codec->driver->reg_word_size * 2; 135 wordsize = min_bytes_needed(codec->driver->reg_cache_size) * 2;
136 regsize = min_bytes_needed(codec->driver->reg_cache_size) * 2; 136 regsize = codec->driver->reg_word_size * 2;
137 137
138 len = wordsize + regsize + 2 + 1; 138 len = wordsize + regsize + 2 + 1;
139 139
diff --git a/sound/soc/soc-jack.c b/sound/soc/soc-jack.c
index fcab80b36a37..fc017c0a7b5d 100644
--- a/sound/soc/soc-jack.c
+++ b/sound/soc/soc-jack.c
@@ -331,7 +331,7 @@ int snd_soc_jack_add_gpios(struct snd_soc_jack *jack, int count,
331 goto err; 331 goto err;
332 332
333 if (gpios[i].wake) { 333 if (gpios[i].wake) {
334 ret = set_irq_wake(gpio_to_irq(gpios[i].gpio), 1); 334 ret = irq_set_irq_wake(gpio_to_irq(gpios[i].gpio), 1);
335 if (ret != 0) 335 if (ret != 0)
336 printk(KERN_ERR 336 printk(KERN_ERR
337 "Failed to mark GPIO %d as wake source: %d\n", 337 "Failed to mark GPIO %d as wake source: %d\n",
diff --git a/sound/usb/6fire/firmware.c b/sound/usb/6fire/firmware.c
index 9081a54a9c6c..86c1a3103760 100644
--- a/sound/usb/6fire/firmware.c
+++ b/sound/usb/6fire/firmware.c
@@ -76,7 +76,7 @@ struct ihex_record {
76 u16 address; 76 u16 address;
77 u8 len; 77 u8 len;
78 u8 data[256]; 78 u8 data[256];
79 char error; /* true if an error occured parsing this record */ 79 char error; /* true if an error occurred parsing this record */
80 80
81 u8 max_len; /* maximum record length in whole ihex */ 81 u8 max_len; /* maximum record length in whole ihex */
82 82
@@ -107,7 +107,7 @@ static u8 usb6fire_fw_ihex_hex(const u8 *data, u8 *crc)
107 107
108/* 108/*
109 * returns true if record is available, false otherwise. 109 * returns true if record is available, false otherwise.
110 * iff an error occured, false will be returned and record->error will be true. 110 * iff an error occurred, false will be returned and record->error will be true.
111 */ 111 */
112static bool usb6fire_fw_ihex_next_record(struct ihex_record *record) 112static bool usb6fire_fw_ihex_next_record(struct ihex_record *record)
113{ 113{
diff --git a/sound/usb/midi.c b/sound/usb/midi.c
index b4b39c0b6c9e..f9289102886a 100644
--- a/sound/usb/midi.c
+++ b/sound/usb/midi.c
@@ -1301,6 +1301,7 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi* umidi,
1301 case USB_ID(0x15ca, 0x0101): /* Textech USB Midi Cable */ 1301 case USB_ID(0x15ca, 0x0101): /* Textech USB Midi Cable */
1302 case USB_ID(0x15ca, 0x1806): /* Textech USB Midi Cable */ 1302 case USB_ID(0x15ca, 0x1806): /* Textech USB Midi Cable */
1303 case USB_ID(0x1a86, 0x752d): /* QinHeng CH345 "USB2.0-MIDI" */ 1303 case USB_ID(0x1a86, 0x752d): /* QinHeng CH345 "USB2.0-MIDI" */
1304 case USB_ID(0xfc08, 0x0101): /* Unknown vendor Cable */
1304 ep->max_transfer = 4; 1305 ep->max_transfer = 4;
1305 break; 1306 break;
1306 /* 1307 /*
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c
index 5e4775716607..6ec33b62e6cf 100644
--- a/sound/usb/mixer.c
+++ b/sound/usb/mixer.c
@@ -1182,7 +1182,7 @@ static void build_feature_ctl(struct mixer_build *state, void *raw_desc,
1182/* 1182/*
1183 * parse a feature unit 1183 * parse a feature unit
1184 * 1184 *
1185 * most of controlls are defined here. 1185 * most of controls are defined here.
1186 */ 1186 */
1187static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void *_ftr) 1187static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void *_ftr)
1188{ 1188{
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
index 355759bad581..ec07e62e53f3 100644
--- a/sound/usb/quirks.c
+++ b/sound/usb/quirks.c
@@ -266,7 +266,7 @@ static int create_uaxx_quirk(struct snd_usb_audio *chip,
266 * audio-interface quirks 266 * audio-interface quirks
267 * 267 *
268 * returns zero if no standard audio/MIDI parsing is needed. 268 * returns zero if no standard audio/MIDI parsing is needed.
269 * returns a postive value if standard audio/midi interfaces are parsed 269 * returns a positive value if standard audio/midi interfaces are parsed
270 * after this. 270 * after this.
271 * returns a negative value at error. 271 * returns a negative value at error.
272 */ 272 */
diff --git a/sound/usb/usx2y/usx2yhwdeppcm.c b/sound/usb/usx2y/usx2yhwdeppcm.c
index 287ef73b1237..a51340f6f2db 100644
--- a/sound/usb/usx2y/usx2yhwdeppcm.c
+++ b/sound/usb/usx2y/usx2yhwdeppcm.c
@@ -20,7 +20,7 @@
20 at standard samplerates, 20 at standard samplerates,
21 what led to this part of the usx2y module: 21 what led to this part of the usx2y module:
22 It provides the alsa kernel half of the usx2y-alsa-jack driver pair. 22 It provides the alsa kernel half of the usx2y-alsa-jack driver pair.
23 The pair uses a hardware dependant alsa-device for mmaped pcm transport. 23 The pair uses a hardware dependent alsa-device for mmaped pcm transport.
24 Advantage achieved: 24 Advantage achieved:
25 The usb_hc moves pcm data from/into memory via DMA. 25 The usb_hc moves pcm data from/into memory via DMA.
26 That memory is mmaped by jack's usx2y driver. 26 That memory is mmaped by jack's usx2y driver.
@@ -38,7 +38,7 @@
38 2periods works but is useless cause of crackling). 38 2periods works but is useless cause of crackling).
39 39
40 This is a first "proof of concept" implementation. 40 This is a first "proof of concept" implementation.
41 Later, functionalities should migrate to more apropriate places: 41 Later, functionalities should migrate to more appropriate places:
42 Userland: 42 Userland:
43 - The jackd could mmap its float-pcm buffers directly from alsa-lib. 43 - The jackd could mmap its float-pcm buffers directly from alsa-lib.
44 - alsa-lib could provide power of 2 period sized shaping combined with int/float 44 - alsa-lib could provide power of 2 period sized shaping combined with int/float