[alsa-devel] [PATCH] ASoC: cs4271: free reset gpio in cs4271_remove()

Mark Brown broonie at kernel.org
Wed Feb 19 12:43:03 CET 2014


On Wed, Feb 19, 2014 at 12:24:23PM +0100, Daniel Mack wrote:
> On 02/19/2014 12:15 PM, Mark Brown wrote:
> > On Wed, Feb 19, 2014 at 12:07:12PM +0100, Daniel Mack wrote:

> >> +	if (gpio_is_valid(cs4271->gpio_nreset)) {
> >>  		/* Set codec to the reset state */
> >>  		gpio_set_value(cs4271->gpio_nreset, 0);
> >> +		devm_gpio_free(codec->dev, cs4271->gpio_nreset);
> >> +	}

> > If it's being requested as a managed resource shouldn't it be being
> > freed automatically?

> Nope, as the module itself will not go away necessarily. I hit the bug
> when unloading and reloading the machine driver. cs4271_probe(codec)
> will fail to acquire and drive the reset line, and the codec stays in reset.

The fix here is to move the resource acquisition to the bus level probe
instead of the ASoC card startup.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20140219/63590add/attachment.sig>


More information about the Alsa-devel mailing list