[alsa-devel] [PATCH 1/2] ASoC: Automatically determine control_data for soc-cache users
Since the provision of a struct device for the CODEC is now mandatory we can use container_of() to locate the struct i2c_client and struct spi_device for relevant devices, removing the need to manually set it in each driver.
A further patch will automate selection of the control type based on the bus_type of the struct device, further reducing the amount of driver code required.
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com --- sound/soc/soc-cache.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/sound/soc/soc-cache.c b/sound/soc/soc-cache.c index 83cd8ed..b856177 100644 --- a/sound/soc/soc-cache.c +++ b/sound/soc/soc-cache.c @@ -584,11 +584,19 @@ int snd_soc_codec_set_cache_io(struct snd_soc_codec *codec, #endif if (io_types[i].i2c_read) codec->hw_read = io_types[i].i2c_read; + + codec->control_data = container_of(codec->dev, + struct i2c_client, + dev); break;
case SND_SOC_SPI: if (io_types[i].spi_write) codec->hw_write = io_types[i].spi_write; + + codec->control_data = container_of(codec->dev, + struct spi_device, + dev); break; }
The IP blocks are all fixed function audio controllers so there's no need to dedupe against other usages and the corresponding arch/arm updates got missed anyway so revert to the original names for the drivers.
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com --- sound/soc/s3c24xx/aquila_wm8994.c | 2 +- sound/soc/s3c24xx/goni_wm8994.c | 2 +- sound/soc/s3c24xx/jive_wm8750.c | 2 +- sound/soc/s3c24xx/ln2440sbc_alc650.c | 2 +- sound/soc/s3c24xx/neo1973_gta02_wm8753.c | 2 +- sound/soc/s3c24xx/neo1973_wm8753.c | 2 +- sound/soc/s3c24xx/s3c2412-i2s.c | 2 +- sound/soc/s3c24xx/s3c24xx-i2s.c | 2 +- sound/soc/s3c24xx/s3c24xx_simtec_hermes.c | 2 +- sound/soc/s3c24xx/s3c24xx_simtec_tlv320aic23.c | 2 +- sound/soc/s3c24xx/s3c24xx_uda134x.c | 2 +- sound/soc/s3c24xx/s3c64xx-i2s-v4.c | 2 +- sound/soc/s3c24xx/s3c64xx-i2s.c | 2 +- sound/soc/s3c24xx/smartq_wm8987.c | 2 +- sound/soc/s3c24xx/smdk64xx_wm8580.c | 4 ++-- 15 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/sound/soc/s3c24xx/aquila_wm8994.c b/sound/soc/s3c24xx/aquila_wm8994.c index 44b06e9..235d197 100644 --- a/sound/soc/s3c24xx/aquila_wm8994.c +++ b/sound/soc/s3c24xx/aquila_wm8994.c @@ -233,7 +233,7 @@ static struct snd_soc_dai_link aquila_dai[] = { { .name = "WM8994", .stream_name = "WM8994 HiFi", - .cpu_dai_name = "s3c64xx-i2s-v4-dai", + .cpu_dai_name = "s3c64xx-i2s-v4", .codec_dai_name = "wm8994-hifi", .platform_name = "s3c24xx-pcm-audio", .codec_name = "wm8994-codec.0-0x1a", diff --git a/sound/soc/s3c24xx/goni_wm8994.c b/sound/soc/s3c24xx/goni_wm8994.c index 6ada34e..694f702 100644 --- a/sound/soc/s3c24xx/goni_wm8994.c +++ b/sound/soc/s3c24xx/goni_wm8994.c @@ -236,7 +236,7 @@ static struct snd_soc_dai_link goni_dai[] = { { .name = "WM8994", .stream_name = "WM8994 HiFi", - .cpu_dai_name = "s3c64xx-i2s-v4-dai", + .cpu_dai_name = "s3c64xx-i2s-v4", .codec_dai_name = "wm8994-hifi", .platform_name = "s3c24xx-pcm-audio", .codec_name = "wm8994-codec.0-0x1a", diff --git a/sound/soc/s3c24xx/jive_wm8750.c b/sound/soc/s3c24xx/jive_wm8750.c index 61e3067..49605cd 100644 --- a/sound/soc/s3c24xx/jive_wm8750.c +++ b/sound/soc/s3c24xx/jive_wm8750.c @@ -139,7 +139,7 @@ static int jive_wm8750_init(struct snd_soc_pcm_runtime *rtd) static struct snd_soc_dai_link jive_dai = { .name = "wm8750", .stream_name = "WM8750", - .cpu_dai_name = "s3c2412-i2s-dai", + .cpu_dai_name = "s3c2412-i2s", .codec_dai_name = "wm8750-hifi", .platform_name = "s3c24xx-pcm-audio", .codec_name = "wm8750-codec.0-0x1a", diff --git a/sound/soc/s3c24xx/ln2440sbc_alc650.c b/sound/soc/s3c24xx/ln2440sbc_alc650.c index ef234c7..abe64ab 100644 --- a/sound/soc/s3c24xx/ln2440sbc_alc650.c +++ b/sound/soc/s3c24xx/ln2440sbc_alc650.c @@ -32,7 +32,7 @@ static struct snd_soc_dai_link ln2440sbc_dai[] = { { .name = "AC97", .stream_name = "AC97 HiFi", - .cpu_dai_name = "s3c-ac97-dai", + .cpu_dai_name = "s3c-ac97", .codec_dai_name = "ac97-hifi", .codec_name = "ac97-codec", .platform_name = "s3c24xx-pcm-audio", diff --git a/sound/soc/s3c24xx/neo1973_gta02_wm8753.c b/sound/soc/s3c24xx/neo1973_gta02_wm8753.c index be1e81c..c457bfd 100644 --- a/sound/soc/s3c24xx/neo1973_gta02_wm8753.c +++ b/sound/soc/s3c24xx/neo1973_gta02_wm8753.c @@ -397,7 +397,7 @@ static struct snd_soc_dai_link neo1973_gta02_dai[] = { { /* Hifi Playback - for similatious use with voice below */ .name = "WM8753", .stream_name = "WM8753 HiFi", - .cpu_dai_name = "s3c24xx-i2s-dai", + .cpu_dai_name = "s3c24xx-i2s", .codec_dai_name = "wm8753-hifi", .init = neo1973_gta02_wm8753_init, .platform_name = "s3c24xx-pcm-audio", diff --git a/sound/soc/s3c24xx/neo1973_wm8753.c b/sound/soc/s3c24xx/neo1973_wm8753.c index 8b5472e..d7a39a0 100644 --- a/sound/soc/s3c24xx/neo1973_wm8753.c +++ b/sound/soc/s3c24xx/neo1973_wm8753.c @@ -557,7 +557,7 @@ static struct snd_soc_dai_link neo1973_dai[] = { .name = "WM8753", .stream_name = "WM8753 HiFi", .platform_name = "s3c24xx-pcm-audio", - .cpu_dai_name = "s3c24xx-i2s-dai", + .cpu_dai_name = "s3c24xx-i2s", .codec_dai_name = "wm8753-hifi", .codec_name = "wm8753-codec.0-0x1a", .init = neo1973_wm8753_init, diff --git a/sound/soc/s3c24xx/s3c2412-i2s.c b/sound/soc/s3c24xx/s3c2412-i2s.c index aa116f6..acd0096 100644 --- a/sound/soc/s3c24xx/s3c2412-i2s.c +++ b/sound/soc/s3c24xx/s3c2412-i2s.c @@ -188,7 +188,7 @@ static struct platform_driver s3c2412_iis_driver = { .probe = s3c2412_iis_dev_probe, .remove = s3c2412_iis_dev_remove, .driver = { - .name = "s3c2412-iis-dai", + .name = "s3c2412-iis", .owner = THIS_MODULE, }, }; diff --git a/sound/soc/s3c24xx/s3c24xx-i2s.c b/sound/soc/s3c24xx/s3c24xx-i2s.c index a6cbeef..1d0bade 100644 --- a/sound/soc/s3c24xx/s3c24xx-i2s.c +++ b/sound/soc/s3c24xx/s3c24xx-i2s.c @@ -495,7 +495,7 @@ static struct platform_driver s3c24xx_iis_driver = { .probe = s3c24xx_iis_dev_probe, .remove = s3c24xx_iis_dev_remove, .driver = { - .name = "s3c24xx-iis-dai", + .name = "s3c24xx-iis", .owner = THIS_MODULE, }, }; diff --git a/sound/soc/s3c24xx/s3c24xx_simtec_hermes.c b/sound/soc/s3c24xx/s3c24xx_simtec_hermes.c index 00ead0d..f884537 100644 --- a/sound/soc/s3c24xx/s3c24xx_simtec_hermes.c +++ b/sound/soc/s3c24xx/s3c24xx_simtec_hermes.c @@ -97,7 +97,7 @@ static struct snd_soc_dai_link simtec_dai_aic33 = { .name = "tlv320aic33", .stream_name = "TLV320AIC33", .codec_name = "tlv320aic3x-codec.0-0x1a", - .cpu_dai_name = "s3c24xx-i2s-dai", + .cpu_dai_name = "s3c24xx-i2s", .codec_dai_name = "tlv320aic3x-hifi", .platform_name = "s3c24xx-pcm-audio", .init = simtec_hermes_init, diff --git a/sound/soc/s3c24xx/s3c24xx_simtec_tlv320aic23.c b/sound/soc/s3c24xx/s3c24xx_simtec_tlv320aic23.c index 4ee4412..c096759 100644 --- a/sound/soc/s3c24xx/s3c24xx_simtec_tlv320aic23.c +++ b/sound/soc/s3c24xx/s3c24xx_simtec_tlv320aic23.c @@ -86,7 +86,7 @@ static struct snd_soc_dai_link simtec_dai_aic23 = { .name = "tlv320aic23", .stream_name = "TLV320AIC23", .codec_name = "tlv320aic3x-codec.0-0x1a", - .cpu_dai_name = "s3c24xx-i2s-dai", + .cpu_dai_name = "s3c24xx-i2s", .codec_dai_name = "tlv320aic3x-hifi", .platform_name = "s3c24xx-pcm-audio", .init = simtec_tlv320aic23_init, diff --git a/sound/soc/s3c24xx/s3c24xx_uda134x.c b/sound/soc/s3c24xx/s3c24xx_uda134x.c index 7d049ed..bd48ffb 100644 --- a/sound/soc/s3c24xx/s3c24xx_uda134x.c +++ b/sound/soc/s3c24xx/s3c24xx_uda134x.c @@ -229,7 +229,7 @@ static struct snd_soc_dai_link s3c24xx_uda134x_dai_link = { .stream_name = "UDA134X", .codec_name = "uda134x-hifi", .codec_dai_name = "uda134x-hifi", - .cpu_dai_name = "s3c24xx-i2s-dai", + .cpu_dai_name = "s3c24xx-i2s", .ops = &s3c24xx_uda134x_ops, .platform_name = "s3c24xx-pcm-audio", }; diff --git a/sound/soc/s3c24xx/s3c64xx-i2s-v4.c b/sound/soc/s3c24xx/s3c64xx-i2s-v4.c index 885040b..7cab4fc 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s-v4.c +++ b/sound/soc/s3c24xx/s3c64xx-i2s-v4.c @@ -195,7 +195,7 @@ static struct platform_driver s3c64xx_i2sv4_driver = { .probe = s3c64xx_i2sv4_dev_probe, .remove = s3c64xx_i2sv4_dev_remove, .driver = { - .name = "s3c64xx-iis-v4-dai", + .name = "s3c64xx-iis-v4", .owner = THIS_MODULE, }, }; diff --git a/sound/soc/s3c24xx/s3c64xx-i2s.c b/sound/soc/s3c24xx/s3c64xx-i2s.c index 161189b..a1d0b25 100644 --- a/sound/soc/s3c24xx/s3c64xx-i2s.c +++ b/sound/soc/s3c24xx/s3c64xx-i2s.c @@ -218,7 +218,7 @@ static struct platform_driver s3c64xx_iis_driver = { .probe = s3c64xx_iis_dev_probe, .remove = s3c64xx_iis_dev_remove, .driver = { - .name = "s3c64xx-iis-dai", + .name = "s3c64xx-iis", .owner = THIS_MODULE, }, }; diff --git a/sound/soc/s3c24xx/smartq_wm8987.c b/sound/soc/s3c24xx/smartq_wm8987.c index a908055..dd20ca7 100644 --- a/sound/soc/s3c24xx/smartq_wm8987.c +++ b/sound/soc/s3c24xx/smartq_wm8987.c @@ -211,7 +211,7 @@ static struct snd_soc_dai_link smartq_dai[] = { { .name = "wm8987", .stream_name = "SmartQ Hi-Fi", - .cpu_dai_name = "s3c64xx-i2s-dai.0", + .cpu_dai_name = "s3c64xx-i2s.0", .codec_dai_name = "wm8750-hifi", .platform_name = "s3c24xx-pcm-audio", .codec_name = "wm8750-codec.0-0x1a", diff --git a/sound/soc/s3c24xx/smdk64xx_wm8580.c b/sound/soc/s3c24xx/smdk64xx_wm8580.c index 9d959a0..5c21e26 100644 --- a/sound/soc/s3c24xx/smdk64xx_wm8580.c +++ b/sound/soc/s3c24xx/smdk64xx_wm8580.c @@ -223,7 +223,7 @@ static struct snd_soc_dai_link smdk64xx_dai[] = { { /* Primary Playback i/f */ .name = "WM8580 PAIF RX", .stream_name = "Playback", - .cpu_dai_name = "s3c64xx-i2s-v4-dai", + .cpu_dai_name = "s3c64xx-iis-v4", .codec_dai_name = "wm8580-hifi-playback", .platform_name = "s3c24xx-pcm-audio", .codec_name = "wm8580-codec.0-001b", @@ -233,7 +233,7 @@ static struct snd_soc_dai_link smdk64xx_dai[] = { { /* Primary Capture i/f */ .name = "WM8580 PAIF TX", .stream_name = "Capture", - .cpu_dai_name = "s3c64xx-i2s-v4-dai", + .cpu_dai_name = "s3c64xx-iis-v4", .codec_dai_name = "wm8580-hifi-capture", .platform_name = "s3c24xx-pcm-audio", .codec_name = "wm8580-codec.0-001b",
Now soc-cache.c can figure out the I2C and SPI control data from the device for the CODEC we don't need to manually assign it in drivers.
Signed-off-by: Mark Brown broonie@opensource.wolfsonmicro.com --- sound/soc/codecs/wm8510.c | 4 ---- sound/soc/codecs/wm8523.c | 3 --- sound/soc/codecs/wm8580.c | 3 --- sound/soc/codecs/wm8711.c | 4 ---- sound/soc/codecs/wm8728.c | 4 ---- sound/soc/codecs/wm8731.c | 4 ---- sound/soc/codecs/wm8741.c | 3 --- sound/soc/codecs/wm8750.c | 4 ---- sound/soc/codecs/wm8753.c | 6 +----- sound/soc/codecs/wm8776.c | 4 ---- sound/soc/codecs/wm8900.c | 4 ---- sound/soc/codecs/wm8903.c | 3 --- sound/soc/codecs/wm8955.c | 3 --- sound/soc/codecs/wm8961.c | 3 --- sound/soc/codecs/wm8971.c | 3 --- sound/soc/codecs/wm8974.c | 3 --- sound/soc/codecs/wm8988.c | 4 ---- sound/soc/codecs/wm8990.c | 4 ---- sound/soc/codecs/wm8993.c | 3 --- 19 files changed, 1 insertions(+), 68 deletions(-)
diff --git a/sound/soc/codecs/wm8510.c b/sound/soc/codecs/wm8510.c index 1c623de..d00da20 100644 --- a/sound/soc/codecs/wm8510.c +++ b/sound/soc/codecs/wm8510.c @@ -60,7 +60,6 @@ static const u16 wm8510_reg[WM8510_CACHEREGNUM] = { /* codec private data */ struct wm8510_priv { enum snd_soc_control_type control_type; - void *control_data; };
static const char *wm8510_companding[] = { "Off", "NC", "u-law", "A-law" }; @@ -561,7 +560,6 @@ static int wm8510_probe(struct snd_soc_codec *codec) struct wm8510_priv *wm8510 = snd_soc_codec_get_drvdata(codec); int ret;
- codec->control_data = wm8510->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8510->control_type); if (ret < 0) { printk(KERN_ERR "wm8510: failed to set cache I/O: %d\n", ret); @@ -611,7 +609,6 @@ static int __devinit wm8510_spi_probe(struct spi_device *spi) if (wm8510 == NULL) return -ENOMEM;
- wm8510->control_data = spi; wm8510->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8510);
@@ -651,7 +648,6 @@ static __devinit int wm8510_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8510); - wm8510->control_data = i2c; wm8510->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8523.c b/sound/soc/codecs/wm8523.c index 58d411b..712ef7c 100644 --- a/sound/soc/codecs/wm8523.c +++ b/sound/soc/codecs/wm8523.c @@ -41,7 +41,6 @@ static const char *wm8523_supply_names[WM8523_NUM_SUPPLIES] = { /* codec private data */ struct wm8523_priv { enum snd_soc_control_type control_type; - void *control_data; u16 reg_cache[WM8523_REGISTER_COUNT]; struct regulator_bulk_data supplies[WM8523_NUM_SUPPLIES]; unsigned int sysclk; @@ -419,7 +418,6 @@ static int wm8523_probe(struct snd_soc_codec *codec) int ret, i;
codec->hw_write = (hw_write_t)i2c_master_send; - codec->control_data = wm8523->control_data; wm8523->rate_constraint.list = &wm8523->rate_constraint_list[0]; wm8523->rate_constraint.count = ARRAY_SIZE(wm8523->rate_constraint_list); @@ -528,7 +526,6 @@ static __devinit int wm8523_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8523); - wm8523->control_data = i2c; wm8523->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8580.c b/sound/soc/codecs/wm8580.c index 6dbfa13..b1a80e5 100644 --- a/sound/soc/codecs/wm8580.c +++ b/sound/soc/codecs/wm8580.c @@ -200,7 +200,6 @@ static const char *wm8580_supply_names[WM8580_NUM_SUPPLIES] = { /* codec private data */ struct wm8580_priv { enum snd_soc_control_type control_type; - void *control_data; struct regulator_bulk_data supplies[WM8580_NUM_SUPPLIES]; u16 reg_cache[WM8580_MAX_REGISTER + 1]; struct pll_state a; @@ -778,7 +777,6 @@ static int wm8580_probe(struct snd_soc_codec *codec) struct wm8580_priv *wm8580 = snd_soc_codec_get_drvdata(codec); int ret = 0,i;
- codec->control_data = wm8580->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8580->control_type); if (ret < 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -858,7 +856,6 @@ static int wm8580_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8580); - wm8580->control_data = i2c; wm8580->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8711.c b/sound/soc/codecs/wm8711.c index 8d942b3..f8d9c60 100644 --- a/sound/soc/codecs/wm8711.c +++ b/sound/soc/codecs/wm8711.c @@ -34,7 +34,6 @@ /* codec private data */ struct wm8711_priv { enum snd_soc_control_type bus_type; - void *control_data; u16 reg_cache[WM8711_CACHEREGNUM]; unsigned int sysclk; }; @@ -378,7 +377,6 @@ static int wm8711_probe(struct snd_soc_codec *codec) struct wm8711_priv *wm8711 = snd_soc_codec_get_drvdata(codec); int ret, reg;
- codec->control_data = wm8711->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8711->bus_type); if (ret < 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -436,7 +434,6 @@ static int __devinit wm8711_spi_probe(struct spi_device *spi) return -ENOMEM;
spi_set_drvdata(spi, wm8711); - wm8711->control_data = spi; wm8711->bus_type = SND_SOC_SPI;
ret = snd_soc_register_codec(&spi->dev, @@ -476,7 +473,6 @@ static __devinit int wm8711_i2c_probe(struct i2c_client *client, return -ENOMEM;
i2c_set_clientdata(client, wm8711); - wm8711->control_data = client; wm8711->bus_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&client->dev, diff --git a/sound/soc/codecs/wm8728.c b/sound/soc/codecs/wm8728.c index ae22924..5e5a162 100644 --- a/sound/soc/codecs/wm8728.c +++ b/sound/soc/codecs/wm8728.c @@ -45,7 +45,6 @@ static const u16 wm8728_reg_defaults[] = { /* codec private data */ struct wm8728_priv { enum snd_soc_control_type control_type; - void *control_data; };
static const DECLARE_TLV_DB_SCALE(wm8728_tlv, -12750, 50, 1); @@ -244,7 +243,6 @@ static int wm8728_probe(struct snd_soc_codec *codec) struct wm8728_priv *wm8728 = snd_soc_codec_get_drvdata(codec); int ret;
- codec->control_data = wm8728->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8728->control_type); if (ret < 0) { printk(KERN_ERR "wm8728: failed to configure cache I/O: %d\n", @@ -289,7 +287,6 @@ static int __devinit wm8728_spi_probe(struct spi_device *spi) if (wm8728 == NULL) return -ENOMEM;
- wm8728->control_data = spi; wm8728->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8728);
@@ -330,7 +327,6 @@ static __devinit int wm8728_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8728); - wm8728->control_data = i2c; wm8728->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c index 7da360e..19844fc 100644 --- a/sound/soc/codecs/wm8731.c +++ b/sound/soc/codecs/wm8731.c @@ -43,7 +43,6 @@ static const char *wm8731_supply_names[WM8731_NUM_SUPPLIES] = { /* codec private data */ struct wm8731_priv { enum snd_soc_control_type control_type; - void *control_data; struct regulator_bulk_data supplies[WM8731_NUM_SUPPLIES]; u16 reg_cache[WM8731_CACHEREGNUM]; unsigned int sysclk; @@ -463,7 +462,6 @@ static int wm8731_probe(struct snd_soc_codec *codec) int ret = 0, i;
codec->bias_level = SND_SOC_BIAS_OFF, - codec->control_data = wm8731->control_data;
ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8731->control_type); if (ret < 0) { @@ -557,7 +555,6 @@ static int __devinit wm8731_spi_probe(struct spi_device *spi) if (wm8731 == NULL) return -ENOMEM;
- wm8731->control_data = spi; wm8731->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8731);
@@ -598,7 +595,6 @@ static __devinit int wm8731_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8731); - wm8731->control_data = i2c; wm8731->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8741.c b/sound/soc/codecs/wm8741.c index 0c6d59e..782fe53 100644 --- a/sound/soc/codecs/wm8741.c +++ b/sound/soc/codecs/wm8741.c @@ -41,7 +41,6 @@ static const char *wm8741_supply_names[WM8741_NUM_SUPPLIES] = { /* codec private data */ struct wm8741_priv { enum snd_soc_control_type control_type; - void *control_data; u16 reg_cache[WM8741_REGISTER_COUNT]; struct regulator_bulk_data supplies[WM8741_NUM_SUPPLIES]; unsigned int sysclk; @@ -347,7 +346,6 @@ static int wm8741_probe(struct snd_soc_codec *codec) struct wm8741_priv *wm8741 = snd_soc_codec_get_drvdata(codec); int ret = 0;
- codec->control_data = wm8741->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8741->control_type); if (ret != 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -415,7 +413,6 @@ static int wm8741_i2c_probe(struct i2c_client *i2c, }
i2c_set_clientdata(i2c, wm8741); - wm8741->control_data = i2c; wm8741->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c index 89863a5..92d4b2a 100644 --- a/sound/soc/codecs/wm8750.c +++ b/sound/soc/codecs/wm8750.c @@ -53,7 +53,6 @@ static const u16 wm8750_reg[] = { struct wm8750_priv { unsigned int sysclk; enum snd_soc_control_type control_type; - void *control_data; u16 reg_cache[ARRAY_SIZE(wm8750_reg)]; };
@@ -697,7 +696,6 @@ static int wm8750_probe(struct snd_soc_codec *codec) struct wm8750_priv *wm8750 = snd_soc_codec_get_drvdata(codec); int reg, ret;
- codec->control_data = wm8750->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8750->control_type); if (ret < 0) { printk(KERN_ERR "wm8750: failed to set cache I/O: %d\n", ret); @@ -764,7 +762,6 @@ static int __devinit wm8750_spi_probe(struct spi_device *spi) if (wm8750 == NULL) return -ENOMEM;
- wm8750->control_data = spi; wm8750->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8750);
@@ -805,7 +802,6 @@ static __devinit int wm8750_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8750); - wm8750->control_data = i2c; wm8750->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c index 976e408..4844232 100644 --- a/sound/soc/codecs/wm8753.c +++ b/sound/soc/codecs/wm8753.c @@ -86,7 +86,6 @@ static const u16 wm8753_reg[] = { /* codec private data */ struct wm8753_priv { enum snd_soc_control_type control_type; - void *control_data; unsigned int sysclk; unsigned int pcmclk; u16 reg_cache[ARRAY_SIZE(wm8753_reg)]; @@ -1551,8 +1550,7 @@ static int wm8753_probe(struct snd_soc_codec *codec) struct wm8753_priv *wm8753 = snd_soc_codec_get_drvdata(codec); int ret = 0, reg;
- codec->bias_level = SND_SOC_BIAS_OFF, - codec->control_data = wm8753->control_data; + codec->bias_level = SND_SOC_BIAS_OFF; INIT_DELAYED_WORK(&codec->delayed_work, wm8753_work);
ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8753->control_type); @@ -1637,7 +1635,6 @@ static int __devinit wm8753_spi_probe(struct spi_device *spi) if (wm8753 == NULL) return -ENOMEM;
- wm8753->control_data = spi; wm8753->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8753);
@@ -1678,7 +1675,6 @@ static __devinit int wm8753_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8753); - wm8753->control_data = i2c; wm8753->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8776.c b/sound/soc/codecs/wm8776.c index 51a2d26..0530306 100644 --- a/sound/soc/codecs/wm8776.c +++ b/sound/soc/codecs/wm8776.c @@ -34,7 +34,6 @@ /* codec private data */ struct wm8776_priv { enum snd_soc_control_type control_type; - void *control_data; u16 reg_cache[WM8776_CACHEREGNUM]; int sysclk[2]; }; @@ -415,7 +414,6 @@ static int wm8776_probe(struct snd_soc_codec *codec) struct wm8776_priv *wm8776 = snd_soc_codec_get_drvdata(codec); int ret = 0;
- codec->control_data = wm8776->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8776->control_type); if (ret < 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -472,7 +470,6 @@ static int __devinit wm8776_spi_probe(struct spi_device *spi) if (wm8776 == NULL) return -ENOMEM;
- wm8776->control_data = spi; wm8776->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8776);
@@ -513,7 +510,6 @@ static __devinit int wm8776_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8776); - wm8776->control_data = i2c; wm8776->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8900.c b/sound/soc/codecs/wm8900.c index 33c3b57..1378aab 100644 --- a/sound/soc/codecs/wm8900.c +++ b/sound/soc/codecs/wm8900.c @@ -140,7 +140,6 @@
struct wm8900_priv { enum snd_soc_control_type control_type; - void *control_data; u16 reg_cache[WM8900_MAXREG];
u32 fll_in; /* FLL input frequency */ @@ -1189,7 +1188,6 @@ static int wm8900_probe(struct snd_soc_codec *codec) struct wm8900_priv *wm8900 = snd_soc_codec_get_drvdata(codec); int ret = 0, reg;
- codec->control_data = wm8900->control_data; ret = snd_soc_codec_set_cache_io(codec, 8, 16, wm8900->control_type); if (ret != 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -1273,7 +1271,6 @@ static int __devinit wm8900_spi_probe(struct spi_device *spi) if (wm8900 == NULL) return -ENOMEM;
- wm8900->control_data = spi; wm8900->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8900);
@@ -1314,7 +1311,6 @@ static __devinit int wm8900_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8900); - wm8900->control_data = i2c; wm8900->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c index f5d73ed..622b602 100644 --- a/sound/soc/codecs/wm8903.c +++ b/sound/soc/codecs/wm8903.c @@ -217,7 +217,6 @@ struct wm8903_priv { u16 reg_cache[ARRAY_SIZE(wm8903_reg_defaults)];
int sysclk; - struct i2c_client *control_data; int irq;
/* Reference counts */ @@ -1639,7 +1638,6 @@ static int wm8903_probe(struct snd_soc_codec *codec) u16 val;
init_completion(&wm8903->wseq); - codec->control_data = wm8903->control_data;
ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_I2C); if (ret != 0) { @@ -1779,7 +1777,6 @@ static __devinit int wm8903_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8903); - wm8903->control_data = i2c; wm8903->irq = i2c->irq;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8955.c b/sound/soc/codecs/wm8955.c index a5a9f8e..f89ad6c 100644 --- a/sound/soc/codecs/wm8955.c +++ b/sound/soc/codecs/wm8955.c @@ -41,7 +41,6 @@ static const char *wm8955_supply_names[WM8955_NUM_SUPPLIES] = { /* codec private data */ struct wm8955_priv { enum snd_soc_control_type control_type; - void *control_data;
u16 reg_cache[WM8955_MAX_REGISTER + 1];
@@ -904,7 +903,6 @@ static int wm8955_probe(struct snd_soc_codec *codec) struct wm8955_pdata *pdata = dev_get_platdata(codec->dev); int ret, i;
- codec->control_data = wm8955->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8955->control_type); if (ret != 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -1004,7 +1002,6 @@ static __devinit int wm8955_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8955); - wm8955->control_data = i2c;
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_wm8955, &wm8955_dai, 1); diff --git a/sound/soc/codecs/wm8961.c b/sound/soc/codecs/wm8961.c index 5ebe2c0..fa36a62 100644 --- a/sound/soc/codecs/wm8961.c +++ b/sound/soc/codecs/wm8961.c @@ -289,7 +289,6 @@ static u16 wm8961_reg_defaults[] = {
struct wm8961_priv { enum snd_soc_control_type control_type; - void *control_data; int sysclk; u16 reg_cache[WM8961_MAX_REGISTER]; }; @@ -964,7 +963,6 @@ static int wm8961_probe(struct snd_soc_codec *codec) int ret = 0; u16 reg;
- codec->control_data = wm8961->control_data; ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_I2C); if (ret != 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -1096,7 +1094,6 @@ static __devinit int wm8961_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8961); - wm8961->control_data = i2c;
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_wm8961, &wm8961_dai, 1); diff --git a/sound/soc/codecs/wm8971.c b/sound/soc/codecs/wm8971.c index 9ec9a2e..63f6dbf 100644 --- a/sound/soc/codecs/wm8971.c +++ b/sound/soc/codecs/wm8971.c @@ -37,7 +37,6 @@ static struct workqueue_struct *wm8971_workq = NULL; /* codec private data */ struct wm8971_priv { enum snd_soc_control_type control_type; - void *control_data; unsigned int sysclk; };
@@ -638,7 +637,6 @@ static int wm8971_probe(struct snd_soc_codec *codec) int ret = 0; u16 reg;
- codec->control_data = wm8971->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8971->control_type); if (ret < 0) { printk(KERN_ERR "wm8971: failed to set cache I/O: %d\n", ret); @@ -721,7 +719,6 @@ static __devinit int wm8971_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8971); - wm8971->control_data = i2c;
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_wm8971, &wm8971_dai, 1); diff --git a/sound/soc/codecs/wm8974.c b/sound/soc/codecs/wm8974.c index 52f631c..e61728b 100644 --- a/sound/soc/codecs/wm8974.c +++ b/sound/soc/codecs/wm8974.c @@ -52,7 +52,6 @@ static const u16 wm8974_reg[WM8974_CACHEREGNUM] = {
struct wm8974_priv { enum snd_soc_control_type control_type; - void *control_data; u16 reg_cache[WM8974_CACHEREGNUM]; };
@@ -611,7 +610,6 @@ static int wm8974_probe(struct snd_soc_codec *codec) struct wm8974_priv *wm8974 = snd_soc_codec_get_drvdata(codec); int ret = 0;
- codec->control_data = wm8974->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, SND_SOC_I2C); if (ret < 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -662,7 +660,6 @@ static __devinit int wm8974_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8974); - wm8974->control_data = i2c;
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_wm8974, &wm8974_dai, 1); diff --git a/sound/soc/codecs/wm8988.c b/sound/soc/codecs/wm8988.c index ecbffce..d070a58 100644 --- a/sound/soc/codecs/wm8988.c +++ b/sound/soc/codecs/wm8988.c @@ -53,7 +53,6 @@ static const u16 wm8988_reg[] = { struct wm8988_priv { unsigned int sysclk; enum snd_soc_control_type control_type; - void *control_data; struct snd_pcm_hw_constraint_list *sysclk_constraints; u16 reg_cache[WM8988_NUM_REG]; }; @@ -763,7 +762,6 @@ static int wm8988_probe(struct snd_soc_codec *codec) int ret = 0; u16 reg;
- codec->control_data = wm8988->control_data; ret = snd_soc_codec_set_cache_io(codec, 7, 9, wm8988->control_type); if (ret < 0) { dev_err(codec->dev, "Failed to set cache I/O: %d\n", ret); @@ -826,7 +824,6 @@ static int __devinit wm8988_spi_probe(struct spi_device *spi) if (wm8988 == NULL) return -ENOMEM;
- wm8988->control_data = spi; wm8988->control_type = SND_SOC_SPI; spi_set_drvdata(spi, wm8988);
@@ -867,7 +864,6 @@ static __devinit int wm8988_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8988); - wm8988->control_data = i2c; wm8988->control_type = SND_SOC_I2C;
ret = snd_soc_register_codec(&i2c->dev, diff --git a/sound/soc/codecs/wm8990.c b/sound/soc/codecs/wm8990.c index b252433..0ffecbd 100644 --- a/sound/soc/codecs/wm8990.c +++ b/sound/soc/codecs/wm8990.c @@ -33,7 +33,6 @@ /* codec private data */ struct wm8990_priv { enum snd_soc_control_type control_type; - void *control_data; unsigned int sysclk; unsigned int pcmclk; }; @@ -1343,11 +1342,9 @@ static int wm8990_resume(struct snd_soc_codec *codec) */ static int wm8990_probe(struct snd_soc_codec *codec) { - struct wm8990_priv *wm8990 = snd_soc_codec_get_drvdata(codec); int ret; u16 reg;
- codec->control_data = wm8990->control_data; ret = snd_soc_codec_set_cache_io(codec, 8, 16, SND_SOC_I2C); if (ret < 0) { printk(KERN_ERR "wm8990: failed to set cache I/O: %d\n", ret); @@ -1410,7 +1407,6 @@ static __devinit int wm8990_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8990); - wm8990->control_data = i2c;
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_wm8990, &wm8990_dai, 1); diff --git a/sound/soc/codecs/wm8993.c b/sound/soc/codecs/wm8993.c index 1d9e183..a3fd6b9 100644 --- a/sound/soc/codecs/wm8993.c +++ b/sound/soc/codecs/wm8993.c @@ -230,7 +230,6 @@ struct wm8993_priv { struct regulator_bulk_data supplies[WM8993_NUM_SUPPLIES]; struct wm8993_platform_data pdata; enum snd_soc_control_type control_type; - void *control_data; int master; int sysclk_source; int tdm_slots; @@ -1425,7 +1424,6 @@ static int wm8993_probe(struct snd_soc_codec *codec) struct wm8993_priv *wm8993 = snd_soc_codec_get_drvdata(codec); int ret, i, val;
- codec->control_data = wm8993->control_data; wm8993->hubs_data.hp_startup_mode = 1; wm8993->hubs_data.dcs_codes = -2;
@@ -1606,7 +1604,6 @@ static __devinit int wm8993_i2c_probe(struct i2c_client *i2c, return -ENOMEM;
i2c_set_clientdata(i2c, wm8993); - wm8993->control_data = i2c;
ret = snd_soc_register_codec(&i2c->dev, &soc_codec_dev_wm8993, &wm8993_dai, 1);
participants (1)
-
Mark Brown