ASoC: sta32x: Move resource allocation and release to the corresponding callback functions
PATCH 1/1 ASoC: sta32x: Move resource allocation and release to the corresponding callback functions
This patch includes below small fixes:
1. Move sta32x_set_bias_level() from sta32x_i2c_remove() to sta32x_remove().
2. Remove a redundant regulator_bulk_free() call in sta32x_i2c_remove(), as we will call regulator_bulk_free() in sta32x_remove().
3. Remove unneeded snd_soc_codec_set_drvdata(codec, NULL) in sta32x_i2c_remove. The i2c core will set the clientdata to NULL.
---
hi,
I don't have this hardware handy. I appreciate if someone can test this patch.
Axel
sound/soc/codecs/sta32x.c | 13 ++----------- 1 files changed, 2 insertions(+), 11 deletions(-)
sound/soc/codecs/sta32x.c +2 -11
@@ -812,6 +812,7 @@ static int sta32x_remove(struct snd_soc_codec *codec) {struct sta32x_priv *sta32x =snd_soc_codec_get_drvdata (codec); +sta32x_set_bias_level (codec,SND_SOC_BIAS_OFF );regulator_bulk_disable (ARRAY_SIZE (sta32x->supplies), sta32x->supplies);regulator_bulk_free (ARRAY_SIZE (sta32x->supplies), sta32x->supplies);
@@ -871,18 +872,8 @@ static __devinit int sta32x_i2c_probe(struct i2c_client *i2c, static __devexit int sta32x_i2c_remove(struct i2c_client *client) {struct sta32x_priv *sta32x =i2c_get_clientdata (client); -struct snd_soc_codec *codec = sta32x->codec; - -if (codec) -sta32x_set_bias_level (codec,SND_SOC_BIAS_OFF ); - -regulator_bulk_free (ARRAY_SIZE (sta32x->supplies), sta32x->supplies); - -if (codec) { -snd_soc_unregister_codec (&client->dev); -snd_soc_codec_set_drvdata (codec,NULL ); - } +snd_soc_unregister_codec (&client->dev);kfree (sta32x);return 0 ; }
Signature · 1 line
1.7.4.1
Quoted 8 lines · Axel Lin
This patch includes below small fixes:
1. Move
sta32x_set_bias_level()fromsta32x_i2c_remove()tosta32x_remove().
2. Remove a redundantregulator_bulk_free()call insta32x_i2c_remove(), as we will callregulator_bulk_free()insta32x_remove().
3. Remove unneededsnd_soc_codec_set_drvdata(codec, NULL)insta32x_i2c_remove. The i2c core will set the clientdata to NULL.
Quoted 6 lines
Signed-off-by Axel Lin <[email protected]>---
hi,
I don't have this hardware handy. I appreciate if someone can test this patch.Axel
Your patch looks good, but I also don't have the hardware currently. Maybe Sven or Daniel could test? But even though it's untested:
Thanks
Johannes
Quoted 41 lines
sound/soc/codecs/sta32x.c | 13 ++----------- 1 files changed, 2 insertions(+), 11 deletions(-)sound/soc/codecs/sta32x.c +2
-11@@ -812,6 +812,7 @@ static int sta32x_remove(struct snd_soc_codec *codec) {struct sta32x_priv *sta32x =snd_soc_codec_get_drvdata (codec); +sta32x_set_bias_level (codec,SND_SOC_BIAS_OFF );regulator_bulk_disable (ARRAY_SIZE (sta32x->supplies), sta32x->supplies);regulator_bulk_free (ARRAY_SIZE (sta32x->supplies), sta32x->supplies);@@ -871,18 +872,8 @@ static __devinit int sta32x_i2c_probe(struct i2c_client *i2c, static __devexit int sta32x_i2c_remove(struct i2c_client *client) {struct sta32x_priv *sta32x =i2c_get_clientdata (client); -struct snd_soc_codec *codec = sta32x->codec; - -if (codec) -sta32x_set_bias_level (codec,SND_SOC_BIAS_OFF ); - -regulator_bulk_free (ARRAY_SIZE (sta32x->supplies), sta32x->supplies); - -if (codec) { -snd_soc_unregister_codec (&client->dev); -snd_soc_codec_set_drvdata (codec,NULL ); - } +snd_soc_unregister_codec (&client->dev);kfree (sta32x);return 0 ; }Signature · 1 line
1.7.4.1
Quoted 9 lines · Axel Lin
This patch includes below small fixes:
1. Move
sta32x_set_bias_level()fromsta32x_i2c_remove()tosta32x_remove().
2. Remove a redundantregulator_bulk_free()call insta32x_i2c_remove(), as we will callregulator_bulk_free()insta32x_remove().
3. Remove unneededsnd_soc_codec_set_drvdata(codec, NULL)insta32x_i2c_remove. The i2c core will set the clientdata to NULL.Signed-off-by Axel Lin <[email protected]>
Mark Brown
AppliedQuoted 7 lines · Axel Lin
This patch includes below small fixes:
1. Move
sta32x_set_bias_level()fromsta32x_i2c_remove()tosta32x_remove().
2. Remove a redundantregulator_bulk_free()call insta32x_i2c_remove(), as we will callregulator_bulk_free()insta32x_remove().
3. Remove unneededsnd_soc_codec_set_drvdata(codec, NULL)insta32x_i2c_remove. The i2c core will set the clientdata to NULL.
Applied, thanks.