aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-19 21:07:17 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-19 21:07:17 -0500
commit20e471fd34d1f79bed65fdc1bf4ad090f70472a5 (patch)
tree7e74e4ca71a90c6b39392dacab07e26feedb8185 /sound/soc
parented55635e2e4df3169f21ae4047004b7235de956e (diff)
parentd70a1b9893f820fdbcdffac408c909c50f2e6b43 (diff)
Merge tag 'sound-fix-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
Pull sound fixes from Takashi Iwai: "Here are a few fixes that have landed after the previous pull request. All are driver specific fixes including: - error/int value fixes in OXFW, - Intel Skylake HD-audio HDMI codec support, - Additional HD-audio Realtek codecs and AD1986A codec fixes/quirks, - a few more DSD support and a quirk for Arcam rPAC in usb-audio, - a typo fix for Scarlett 6i6, - fixes for new ASIHPI firmware, - ASoC Exynos7 cleanups, - Intel ACPI support, and - a fix for PCM512 register cache sync" * tag 'sound-fix-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (24 commits) ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC ALSA: hda/realtek - New codec support for ALC298 ALSA: asihpi: update to HPI version 4.14 ALSA: asihpi: increase tuner pad cache size ALSA: asihpi: relax firmware version check ALSA: usb-audio: Fix Scarlett 6i6 initialization typo ALSA: hda - Add quirk for Packard Bell EasyNote MX65 ALSA: usb-audio: add native DSD support for Matrix Audio DACs ALSA: hda/realtek - New codec support for ALC256 ALSA: hda/realtek - Add new Dell desktop for ALC3234 headset mode ASoC: Intel: fix possible acpi enumeration panic ALSA: hda/hdmi - apply Haswell fix-ups to Skylake display codec ASoC: Intel: fix return value check in sst_acpi_probe() ALSA: hda - Make add_stereo_mix_input flag tristate ALSA: hda - Create capture source ctls when stereo mix input is added ALSA: hda - Fix typos in snd_hda_get_int_hint() kerneldoc comments ALSA: hda - add codec ID for Skylake display audio codec ALSA: oxfw: some signedness bugs ALSA: oxfw: fix detect_loud_models() return value ASoC: rt5677: add REGMAP_I2C and REGMAP_IRQ dependency ...
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/atmel/atmel_ssc_dai.c2
-rw-r--r--sound/soc/codecs/Kconfig2
-rw-r--r--sound/soc/codecs/pcm512x-i2c.c7
-rw-r--r--sound/soc/codecs/rt5645.c4
-rw-r--r--sound/soc/intel/sst/sst_acpi.c10
-rw-r--r--sound/soc/samsung/i2s.c2
6 files changed, 20 insertions, 7 deletions
diff --git a/sound/soc/atmel/atmel_ssc_dai.c b/sound/soc/atmel/atmel_ssc_dai.c
index b1cc2a4a7fc0..99ff35e2a25d 100644
--- a/sound/soc/atmel/atmel_ssc_dai.c
+++ b/sound/soc/atmel/atmel_ssc_dai.c
@@ -267,7 +267,7 @@ static void atmel_ssc_shutdown(struct snd_pcm_substream *substream,
267 if (!ssc_p->dir_mask) { 267 if (!ssc_p->dir_mask) {
268 if (ssc_p->initialized) { 268 if (ssc_p->initialized) {
269 /* Shutdown the SSC clock. */ 269 /* Shutdown the SSC clock. */
270 pr_debug("atmel_ssc_dau: Stopping clock\n"); 270 pr_debug("atmel_ssc_dai: Stopping clock\n");
271 clk_disable(ssc_p->ssc->clk); 271 clk_disable(ssc_p->ssc->clk);
272 272
273 free_irq(ssc_p->ssc->irq, ssc_p); 273 free_irq(ssc_p->ssc->irq, ssc_p);
diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index 883c5778b309..8349f982a586 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -520,6 +520,8 @@ config SND_SOC_RT5670
520 520
521config SND_SOC_RT5677 521config SND_SOC_RT5677
522 tristate 522 tristate
523 select REGMAP_I2C
524 select REGMAP_IRQ
523 525
524config SND_SOC_RT5677_SPI 526config SND_SOC_RT5677_SPI
525 tristate 527 tristate
diff --git a/sound/soc/codecs/pcm512x-i2c.c b/sound/soc/codecs/pcm512x-i2c.c
index 4d62230bd378..d0547fa275fc 100644
--- a/sound/soc/codecs/pcm512x-i2c.c
+++ b/sound/soc/codecs/pcm512x-i2c.c
@@ -24,8 +24,13 @@ static int pcm512x_i2c_probe(struct i2c_client *i2c,
24 const struct i2c_device_id *id) 24 const struct i2c_device_id *id)
25{ 25{
26 struct regmap *regmap; 26 struct regmap *regmap;
27 struct regmap_config config = pcm512x_regmap;
27 28
28 regmap = devm_regmap_init_i2c(i2c, &pcm512x_regmap); 29 /* msb needs to be set to enable auto-increment of addresses */
30 config.read_flag_mask = 0x80;
31 config.write_flag_mask = 0x80;
32
33 regmap = devm_regmap_init_i2c(i2c, &config);
29 if (IS_ERR(regmap)) 34 if (IS_ERR(regmap))
30 return PTR_ERR(regmap); 35 return PTR_ERR(regmap);
31 36
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index a7789a8726e3..27141e2df878 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -2209,6 +2209,10 @@ static int rt5645_jack_detect(struct snd_soc_codec *codec)
2209 int gpio_state, jack_type = 0; 2209 int gpio_state, jack_type = 0;
2210 unsigned int val; 2210 unsigned int val;
2211 2211
2212 if (!gpio_is_valid(rt5645->pdata.hp_det_gpio)) {
2213 dev_err(codec->dev, "invalid gpio\n");
2214 return -EINVAL;
2215 }
2212 gpio_state = gpio_get_value(rt5645->pdata.hp_det_gpio); 2216 gpio_state = gpio_get_value(rt5645->pdata.hp_det_gpio);
2213 2217
2214 dev_dbg(codec->dev, "gpio = %d(%d)\n", rt5645->pdata.hp_det_gpio, 2218 dev_dbg(codec->dev, "gpio = %d(%d)\n", rt5645->pdata.hp_det_gpio,
diff --git a/sound/soc/intel/sst/sst_acpi.c b/sound/soc/intel/sst/sst_acpi.c
index 31124aa4434e..3abc29e8a928 100644
--- a/sound/soc/intel/sst/sst_acpi.c
+++ b/sound/soc/intel/sst/sst_acpi.c
@@ -43,7 +43,7 @@
43#include "sst.h" 43#include "sst.h"
44 44
45struct sst_machines { 45struct sst_machines {
46 char codec_id[32]; 46 char *codec_id;
47 char board[32]; 47 char board[32];
48 char machine[32]; 48 char machine[32];
49 void (*machine_quirk)(void); 49 void (*machine_quirk)(void);
@@ -277,16 +277,16 @@ int sst_acpi_probe(struct platform_device *pdev)
277 dev_dbg(dev, "ACPI device id: %x\n", dev_id); 277 dev_dbg(dev, "ACPI device id: %x\n", dev_id);
278 278
279 plat_dev = platform_device_register_data(dev, mach->pdata->platform, -1, NULL, 0); 279 plat_dev = platform_device_register_data(dev, mach->pdata->platform, -1, NULL, 0);
280 if (plat_dev == NULL) { 280 if (IS_ERR(plat_dev)) {
281 dev_err(dev, "Failed to create machine device: %s\n", mach->pdata->platform); 281 dev_err(dev, "Failed to create machine device: %s\n", mach->pdata->platform);
282 return -ENODEV; 282 return PTR_ERR(plat_dev);
283 } 283 }
284 284
285 /* Create platform device for sst machine driver */ 285 /* Create platform device for sst machine driver */
286 mdev = platform_device_register_data(dev, mach->machine, -1, NULL, 0); 286 mdev = platform_device_register_data(dev, mach->machine, -1, NULL, 0);
287 if (mdev == NULL) { 287 if (IS_ERR(mdev)) {
288 dev_err(dev, "Failed to create machine device: %s\n", mach->machine); 288 dev_err(dev, "Failed to create machine device: %s\n", mach->machine);
289 return -ENODEV; 289 return PTR_ERR(mdev);
290 } 290 }
291 291
292 ret = sst_alloc_drv_context(&ctx, dev, dev_id); 292 ret = sst_alloc_drv_context(&ctx, dev, dev_id);
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index b1a7c5bce4a1..b5a80c528d86 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -1261,6 +1261,8 @@ static int samsung_i2s_probe(struct platform_device *pdev)
1261 ret = -ENOMEM; 1261 ret = -ENOMEM;
1262 goto err; 1262 goto err;
1263 } 1263 }
1264
1265 sec_dai->variant_regs = pri_dai->variant_regs;
1264 sec_dai->dma_playback.dma_addr = regs_base + I2STXDS; 1266 sec_dai->dma_playback.dma_addr = regs_base + I2STXDS;
1265 sec_dai->dma_playback.ch_name = "tx-sec"; 1267 sec_dai->dma_playback.ch_name = "tx-sec";
1266 1268