diff options
Diffstat (limited to 'sound/soc')
30 files changed, 74 insertions, 59 deletions
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 */ |
| 485 | static const struct _pll_div codec_master_pll_div[] = { | 485 | static 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 | ||
| 329 | static inline int dac33_read_id(struct snd_soc_codec *codec) | 333 | static 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) | |||
| 714 | static inline void dac33_playback_handler(struct tlv320dac33_priv *dac33) | 719 | static 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. */ |
| 182 | static struct { | 182 | static 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 | */ |
| 311 | static int speaker_mode_put(struct snd_kcontrol *kcontrol, | 311 | static 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 | ||
| 304 | static int __devinit imx_soc_platform_probe(struct platform_device *pdev) | 304 | static 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); | |||
| 463 | static void __exit sst_soc_platform_exit(void) | 463 | static 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 | } |
| 468 | module_exit(sst_soc_platform_exit); | 468 | module_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. */ |
| 253 | static struct timer_list cx81801_timer; | 253 | static struct timer_list cx81801_timer; |
| 254 | static bool cx81801_cmd_pending; | 254 | static 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) | |||
| 92 | static int format_register_str(struct snd_soc_codec *codec, | 92 | static 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", |
