Commit a62bbe30 authored by Takashi Iwai's avatar Takashi Iwai

Merge tag 'asoc-v3.19-2' of...

Merge tag 'asoc-v3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Merge window fixes for v3.19

A smattering of driver specific fixes here, some more cleanup of the
Exynos7 and Intel ACPI support plus a fix for register cache sync on the
pcm512x driver which has been lurking for a while.
parents 432ac1a2 c52e5698
...@@ -267,7 +267,7 @@ static void atmel_ssc_shutdown(struct snd_pcm_substream *substream, ...@@ -267,7 +267,7 @@ static void atmel_ssc_shutdown(struct snd_pcm_substream *substream,
if (!ssc_p->dir_mask) { if (!ssc_p->dir_mask) {
if (ssc_p->initialized) { if (ssc_p->initialized) {
/* Shutdown the SSC clock. */ /* Shutdown the SSC clock. */
pr_debug("atmel_ssc_dau: Stopping clock\n"); pr_debug("atmel_ssc_dai: Stopping clock\n");
clk_disable(ssc_p->ssc->clk); clk_disable(ssc_p->ssc->clk);
free_irq(ssc_p->ssc->irq, ssc_p); free_irq(ssc_p->ssc->irq, ssc_p);
......
...@@ -520,6 +520,8 @@ config SND_SOC_RT5670 ...@@ -520,6 +520,8 @@ config SND_SOC_RT5670
config SND_SOC_RT5677 config SND_SOC_RT5677
tristate tristate
select REGMAP_I2C
select REGMAP_IRQ
config SND_SOC_RT5677_SPI config SND_SOC_RT5677_SPI
tristate tristate
......
...@@ -24,8 +24,13 @@ static int pcm512x_i2c_probe(struct i2c_client *i2c, ...@@ -24,8 +24,13 @@ static int pcm512x_i2c_probe(struct i2c_client *i2c,
const struct i2c_device_id *id) const struct i2c_device_id *id)
{ {
struct regmap *regmap; struct regmap *regmap;
struct regmap_config config = pcm512x_regmap;
regmap = devm_regmap_init_i2c(i2c, &pcm512x_regmap); /* msb needs to be set to enable auto-increment of addresses */
config.read_flag_mask = 0x80;
config.write_flag_mask = 0x80;
regmap = devm_regmap_init_i2c(i2c, &config);
if (IS_ERR(regmap)) if (IS_ERR(regmap))
return PTR_ERR(regmap); return PTR_ERR(regmap);
......
...@@ -2209,6 +2209,10 @@ static int rt5645_jack_detect(struct snd_soc_codec *codec) ...@@ -2209,6 +2209,10 @@ static int rt5645_jack_detect(struct snd_soc_codec *codec)
int gpio_state, jack_type = 0; int gpio_state, jack_type = 0;
unsigned int val; unsigned int val;
if (!gpio_is_valid(rt5645->pdata.hp_det_gpio)) {
dev_err(codec->dev, "invalid gpio\n");
return -EINVAL;
}
gpio_state = gpio_get_value(rt5645->pdata.hp_det_gpio); gpio_state = gpio_get_value(rt5645->pdata.hp_det_gpio);
dev_dbg(codec->dev, "gpio = %d(%d)\n", rt5645->pdata.hp_det_gpio, dev_dbg(codec->dev, "gpio = %d(%d)\n", rt5645->pdata.hp_det_gpio,
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include "sst.h" #include "sst.h"
struct sst_machines { struct sst_machines {
char codec_id[32]; char *codec_id;
char board[32]; char board[32];
char machine[32]; char machine[32];
void (*machine_quirk)(void); void (*machine_quirk)(void);
...@@ -277,16 +277,16 @@ int sst_acpi_probe(struct platform_device *pdev) ...@@ -277,16 +277,16 @@ int sst_acpi_probe(struct platform_device *pdev)
dev_dbg(dev, "ACPI device id: %x\n", dev_id); dev_dbg(dev, "ACPI device id: %x\n", dev_id);
plat_dev = platform_device_register_data(dev, mach->pdata->platform, -1, NULL, 0); plat_dev = platform_device_register_data(dev, mach->pdata->platform, -1, NULL, 0);
if (plat_dev == NULL) { if (IS_ERR(plat_dev)) {
dev_err(dev, "Failed to create machine device: %s\n", mach->pdata->platform); dev_err(dev, "Failed to create machine device: %s\n", mach->pdata->platform);
return -ENODEV; return PTR_ERR(plat_dev);
} }
/* Create platform device for sst machine driver */ /* Create platform device for sst machine driver */
mdev = platform_device_register_data(dev, mach->machine, -1, NULL, 0); mdev = platform_device_register_data(dev, mach->machine, -1, NULL, 0);
if (mdev == NULL) { if (IS_ERR(mdev)) {
dev_err(dev, "Failed to create machine device: %s\n", mach->machine); dev_err(dev, "Failed to create machine device: %s\n", mach->machine);
return -ENODEV; return PTR_ERR(mdev);
} }
ret = sst_alloc_drv_context(&ctx, dev, dev_id); ret = sst_alloc_drv_context(&ctx, dev, dev_id);
......
...@@ -1261,6 +1261,8 @@ static int samsung_i2s_probe(struct platform_device *pdev) ...@@ -1261,6 +1261,8 @@ static int samsung_i2s_probe(struct platform_device *pdev)
ret = -ENOMEM; ret = -ENOMEM;
goto err; goto err;
} }
sec_dai->variant_regs = pri_dai->variant_regs;
sec_dai->dma_playback.dma_addr = regs_base + I2STXDS; sec_dai->dma_playback.dma_addr = regs_base + I2STXDS;
sec_dai->dma_playback.ch_name = "tx-sec"; sec_dai->dma_playback.ch_name = "tx-sec";
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment