diff options
author | Takashi Iwai <tiwai@suse.de> | 2013-08-01 05:12:10 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2013-08-01 05:12:10 -0400 |
commit | 209fb1b7e298c5f5a93a9450bc9e9e7923f745d9 (patch) | |
tree | 27cbfa78e5eeaceb2aae1c165f7f0e24f6fee286 /sound | |
parent | a8d30608eaed6cc759b8e2e8a8bbbb42591f797f (diff) | |
parent | 3fef7f795fff7ccc58d55a28315ca73305515884 (diff) |
Merge tag 'asoc-v3.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.11
A fix to make sure userspace knows when control writes have caused a
change in value, fixing some UIs, plus a few few driver fixes mainly
cleaning up issues from recent refactorings on less mainstream platforms.
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/au1x/ac97c.c | 2 | ||||
-rw-r--r-- | sound/soc/blackfin/bf5xx-ac97.c | 5 | ||||
-rw-r--r-- | sound/soc/blackfin/bf5xx-ac97.h | 1 | ||||
-rw-r--r-- | sound/soc/codecs/wm0010.c | 24 | ||||
-rw-r--r-- | sound/soc/soc-dapm.c | 5 |
5 files changed, 18 insertions, 19 deletions
diff --git a/sound/soc/au1x/ac97c.c b/sound/soc/au1x/ac97c.c index d6f7694fcad4..c8a2de103c5f 100644 --- a/sound/soc/au1x/ac97c.c +++ b/sound/soc/au1x/ac97c.c | |||
@@ -341,7 +341,7 @@ static struct platform_driver au1xac97c_driver = { | |||
341 | .remove = au1xac97c_drvremove, | 341 | .remove = au1xac97c_drvremove, |
342 | }; | 342 | }; |
343 | 343 | ||
344 | module_platform_driver(&au1xac97c_driver); | 344 | module_platform_driver(au1xac97c_driver); |
345 | 345 | ||
346 | MODULE_LICENSE("GPL"); | 346 | MODULE_LICENSE("GPL"); |
347 | MODULE_DESCRIPTION("Au1000/1500/1100 AC97C ASoC driver"); | 347 | MODULE_DESCRIPTION("Au1000/1500/1100 AC97C ASoC driver"); |
diff --git a/sound/soc/blackfin/bf5xx-ac97.c b/sound/soc/blackfin/bf5xx-ac97.c index efb1daecd0dd..e82eb373a731 100644 --- a/sound/soc/blackfin/bf5xx-ac97.c +++ b/sound/soc/blackfin/bf5xx-ac97.c | |||
@@ -294,11 +294,12 @@ static int asoc_bfin_ac97_probe(struct platform_device *pdev) | |||
294 | /* Request PB3 as reset pin */ | 294 | /* Request PB3 as reset pin */ |
295 | ret = devm_gpio_request_one(&pdev->dev, | 295 | ret = devm_gpio_request_one(&pdev->dev, |
296 | CONFIG_SND_BF5XX_RESET_GPIO_NUM, | 296 | CONFIG_SND_BF5XX_RESET_GPIO_NUM, |
297 | GPIOF_OUT_INIT_HIGH, "SND_AD198x RESET") { | 297 | GPIOF_OUT_INIT_HIGH, "SND_AD198x RESET"); |
298 | if (ret) { | ||
298 | dev_err(&pdev->dev, | 299 | dev_err(&pdev->dev, |
299 | "Failed to request GPIO_%d for reset: %d\n", | 300 | "Failed to request GPIO_%d for reset: %d\n", |
300 | CONFIG_SND_BF5XX_RESET_GPIO_NUM, ret); | 301 | CONFIG_SND_BF5XX_RESET_GPIO_NUM, ret); |
301 | goto gpio_err; | 302 | return ret; |
302 | } | 303 | } |
303 | #endif | 304 | #endif |
304 | 305 | ||
diff --git a/sound/soc/blackfin/bf5xx-ac97.h b/sound/soc/blackfin/bf5xx-ac97.h index 15c635e33f4d..0c3e22d90a8d 100644 --- a/sound/soc/blackfin/bf5xx-ac97.h +++ b/sound/soc/blackfin/bf5xx-ac97.h | |||
@@ -9,7 +9,6 @@ | |||
9 | #ifndef _BF5XX_AC97_H | 9 | #ifndef _BF5XX_AC97_H |
10 | #define _BF5XX_AC97_H | 10 | #define _BF5XX_AC97_H |
11 | 11 | ||
12 | extern struct snd_ac97_bus_ops bf5xx_ac97_ops; | ||
13 | extern struct snd_ac97 *ac97; | 12 | extern struct snd_ac97 *ac97; |
14 | /* Frame format in memory, only support stereo currently */ | 13 | /* Frame format in memory, only support stereo currently */ |
15 | struct ac97_frame { | 14 | struct ac97_frame { |
diff --git a/sound/soc/codecs/wm0010.c b/sound/soc/codecs/wm0010.c index f5e835662cdc..10adc4145d46 100644 --- a/sound/soc/codecs/wm0010.c +++ b/sound/soc/codecs/wm0010.c | |||
@@ -410,6 +410,16 @@ static int wm0010_firmware_load(const char *name, struct snd_soc_codec *codec) | |||
410 | rec->command, rec->length); | 410 | rec->command, rec->length); |
411 | len = rec->length + 8; | 411 | len = rec->length + 8; |
412 | 412 | ||
413 | xfer = kzalloc(sizeof(*xfer), GFP_KERNEL); | ||
414 | if (!xfer) { | ||
415 | dev_err(codec->dev, "Failed to allocate xfer\n"); | ||
416 | ret = -ENOMEM; | ||
417 | goto abort; | ||
418 | } | ||
419 | |||
420 | xfer->codec = codec; | ||
421 | list_add_tail(&xfer->list, &xfer_list); | ||
422 | |||
413 | out = kzalloc(len, GFP_KERNEL); | 423 | out = kzalloc(len, GFP_KERNEL); |
414 | if (!out) { | 424 | if (!out) { |
415 | dev_err(codec->dev, | 425 | dev_err(codec->dev, |
@@ -417,6 +427,7 @@ static int wm0010_firmware_load(const char *name, struct snd_soc_codec *codec) | |||
417 | ret = -ENOMEM; | 427 | ret = -ENOMEM; |
418 | goto abort1; | 428 | goto abort1; |
419 | } | 429 | } |
430 | xfer->t.rx_buf = out; | ||
420 | 431 | ||
421 | img = kzalloc(len, GFP_KERNEL); | 432 | img = kzalloc(len, GFP_KERNEL); |
422 | if (!img) { | 433 | if (!img) { |
@@ -425,24 +436,13 @@ static int wm0010_firmware_load(const char *name, struct snd_soc_codec *codec) | |||
425 | ret = -ENOMEM; | 436 | ret = -ENOMEM; |
426 | goto abort1; | 437 | goto abort1; |
427 | } | 438 | } |
439 | xfer->t.tx_buf = img; | ||
428 | 440 | ||
429 | byte_swap_64((u64 *)&rec->command, img, len); | 441 | byte_swap_64((u64 *)&rec->command, img, len); |
430 | 442 | ||
431 | xfer = kzalloc(sizeof(*xfer), GFP_KERNEL); | ||
432 | if (!xfer) { | ||
433 | dev_err(codec->dev, "Failed to allocate xfer\n"); | ||
434 | ret = -ENOMEM; | ||
435 | goto abort1; | ||
436 | } | ||
437 | |||
438 | xfer->codec = codec; | ||
439 | list_add_tail(&xfer->list, &xfer_list); | ||
440 | |||
441 | spi_message_init(&xfer->m); | 443 | spi_message_init(&xfer->m); |
442 | xfer->m.complete = wm0010_boot_xfer_complete; | 444 | xfer->m.complete = wm0010_boot_xfer_complete; |
443 | xfer->m.context = xfer; | 445 | xfer->m.context = xfer; |
444 | xfer->t.tx_buf = img; | ||
445 | xfer->t.rx_buf = out; | ||
446 | xfer->t.len = len; | 446 | xfer->t.len = len; |
447 | xfer->t.bits_per_word = 8; | 447 | xfer->t.bits_per_word = 8; |
448 | 448 | ||
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index b94190820e8c..bd16010441cc 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -2733,7 +2733,7 @@ int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol, | |||
2733 | } | 2733 | } |
2734 | 2734 | ||
2735 | mutex_unlock(&card->dapm_mutex); | 2735 | mutex_unlock(&card->dapm_mutex); |
2736 | return 0; | 2736 | return change; |
2737 | } | 2737 | } |
2738 | EXPORT_SYMBOL_GPL(snd_soc_dapm_put_volsw); | 2738 | EXPORT_SYMBOL_GPL(snd_soc_dapm_put_volsw); |
2739 | 2739 | ||
@@ -2861,7 +2861,6 @@ int snd_soc_dapm_put_enum_virt(struct snd_kcontrol *kcontrol, | |||
2861 | struct soc_enum *e = | 2861 | struct soc_enum *e = |
2862 | (struct soc_enum *)kcontrol->private_value; | 2862 | (struct soc_enum *)kcontrol->private_value; |
2863 | int change; | 2863 | int change; |
2864 | int ret = 0; | ||
2865 | int wi; | 2864 | int wi; |
2866 | 2865 | ||
2867 | if (ucontrol->value.enumerated.item[0] >= e->max) | 2866 | if (ucontrol->value.enumerated.item[0] >= e->max) |
@@ -2881,7 +2880,7 @@ int snd_soc_dapm_put_enum_virt(struct snd_kcontrol *kcontrol, | |||
2881 | } | 2880 | } |
2882 | 2881 | ||
2883 | mutex_unlock(&card->dapm_mutex); | 2882 | mutex_unlock(&card->dapm_mutex); |
2884 | return ret; | 2883 | return change; |
2885 | } | 2884 | } |
2886 | EXPORT_SYMBOL_GPL(snd_soc_dapm_put_enum_virt); | 2885 | EXPORT_SYMBOL_GPL(snd_soc_dapm_put_enum_virt); |
2887 | 2886 | ||