Messages in this thread | | | Date | Mon, 7 Jul 2014 16:58:24 +0200 (CEST) | From | Julia Lawall <> | Subject | Re: [PATCH] ASoC: sgtl5000: Use devm_ functions |
| |
On Mon, 7 Jul 2014, Mark Brown wrote:
> On Sun, Jul 06, 2014 at 12:38:00PM +0530, Himangi Saraogi wrote: > > > diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c > > index 249fadb..0efd6d6 100644 > > --- a/sound/soc/codecs/sgtl5000.c > > +++ b/sound/soc/codecs/sgtl5000.c > > @@ -841,14 +841,15 @@ static int ldo_regulator_register(struct snd_soc_codec *codec, > > struct sgtl5000_priv *sgtl5000 = snd_soc_codec_get_drvdata(codec); > > struct regulator_config config = { }; > > > > - ldo = kzalloc(sizeof(struct ldo_regulator), GFP_KERNEL); > > + ldo = devm_kzalloc(codec->dev, sizeof(struct ldo_regulator), > > + GFP_KERNEL); > > You're using the managed functions within the ASoC level probe functions > which doesn't work - devm_ is only usable as part of the driver model > binding and unbinding. All this resource allocation needs to be moved > into the device level probe (which is a better thing anyway) before it > is converted to devm.
Nevertheless, there is already a call to devm_regulator_bulk_get in sgtl5000_enable_regulators which calls sgtl5000_replace_vddd_with_ldo which calls ldo_regulator_register. That call was introduced by
commit 63e54cd9caa3ce03635810608519e2b37d8bc706 Author: Fabio Estevam <fabio.estevam@freescale.com> Date: Thu Apr 24 14:13:08 2014 -0300
It seems that that patch should be reverted?
julia
| |