
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 02/19/2014 12:43 PM, Mark Brown wrote:
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.
Alright. I thought there was a verdict once that resource claiming should be done right before usage, but you're right, it really rather belongs into the bus probe functions.
I'll send another version.
Thanks! Daniel