ASoC: adau1701: Initialize codec->control_data before using it
Subsystems (3)
PATCH 1/2 ASoC: adau1701: Initialize codec->control_data before using it
Currently codec->control_data is not initialized before calling process_sigma_firmware(codec->control_data, ADAU1701_FIRMWARE).
Signed-off-by Axel Lin <[email protected]>
--- sound/soc/codecs/adau1701.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)
sound/soc/codecs/adau1701.c +4 -0
@@ -88,6 +88,7 @@struct adau1701 {unsigned int dai_fmt; +void *control_data; };static const struct snd_kcontrol_new adau1701_controls[] = {
@@ -455,9 +456,11 @@ static struct snd_soc_dai_driver adau1701_dai = {static int adau1701_probe (struct snd_soc_codec *codec) { +struct adau1701 *adau1701 =snd_soc_codec_get_drvdata (codec);int ret; codec->dapm.idle_bias_off =1 ; + codec->control_data = adau1701->control_data; ret =adau1701_load_firmware (codec);if (ret)
@@ -500,6 +503,7 @@ static __devinit int adau1701_i2c_probe(struct i2c_client *client,return -ENOMEM ;i2c_set_clientdata (client, adau1701); + adau1701->control_data = client; ret =snd_soc_register_codec (&client->dev, &adau1701_codec_drv, &adau1701_dai,1 );if (ret <0 )
Signature · 1 line
1.7.4.1
PATCH 2/2 ASoC: adau1701: Fix prototype for adau1701_set_sysclk
Signed-off-by Axel Lin <[email protected]>
--- sound/soc/codecs/adau1701.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
sound/soc/codecs/adau1701.c +1 -1
@@ -402,7 +402,7 @@ static int adau1701_digital_mute(struct snd_soc_dai *dai, int mute) }static int adau1701_set_sysclk (struct snd_soc_codec *codec,int clk_id, -unsigned int freq,int dir) +int source,unsigned int freq,int dir) {unsigned int val;
Signature · 1 line
1.7.4.1
Mark Brown
AppliedRe: [PATCH 2/2] ASoC: adau1701: Fix prototype for adau1701_set_sysclk
Quoted 1 line · Axel Lin
Signed-off-by Axel Lin <[email protected]>
Applied this one, thanks.
Lars-Peter Clausen
maintainerQuoted 2 lines · Axel Lin
Currently
codec->control_datais not initialized before callingprocess_sigma_firmware(codec->control_data, ADAU1701_FIRMWARE).
Just replacing codec->control_data with to_i2c_client(codec->dev) should be a simpler patch to fix the issue.
Thanks
- Lars
Quoted 38 lines
Signed-off-by Axel Lin <[email protected]>--- sound/soc/codecs/adau1701.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-)sound/soc/codecs/adau1701.c +4
-0@@ -88,6 +88,7 @@struct adau1701 {unsigned int dai_fmt; +void *control_data; };static const struct snd_kcontrol_new adau1701_controls[] = {@@ -455,9 +456,11 @@ static struct snd_soc_dai_driver adau1701_dai = {static int adau1701_probe (struct snd_soc_codec *codec) { +struct adau1701 *adau1701 =snd_soc_codec_get_drvdata (codec);int ret; codec->dapm.idle_bias_off =1 ; + codec->control_data = adau1701->control_data; ret =adau1701_load_firmware (codec);if (ret)@@ -500,6 +503,7 @@ static __devinit int adau1701_i2c_probe(struct i2c_client *client,return -ENOMEM ;i2c_set_clientdata (client, adau1701); + adau1701->control_data = client; ret =snd_soc_register_codec (&client->dev, &adau1701_codec_drv, &adau1701_dai,1 );if (ret <0 )