Re: [alsa-devel] [PATCH v2] ASoC: wm8962: Let CODEC driver enable and disable its own MCLK

2014-07-29 Thread Nicolin Chen
On Tue, Jul 29, 2014 at 10:52:03AM +0100, Mark Brown wrote: > On Tue, Jul 29, 2014 at 10:55:19AM +0800, Nicolin Chen wrote: > > On Mon, Jul 28, 2014 at 03:19:43PM -0300, Fabio Estevam wrote: > > > > >> + pdata->mclk = devm_clk_get(&i2c->dev, NULL); > > > > > This is broken for deferred probe.

Re: [alsa-devel] [PATCH v2] ASoC: wm8962: Let CODEC driver enable and disable its own MCLK

2014-07-29 Thread Mark Brown
On Tue, Jul 29, 2014 at 10:55:19AM +0800, Nicolin Chen wrote: > On Mon, Jul 28, 2014 at 03:19:43PM -0300, Fabio Estevam wrote: > > >> + pdata->mclk = devm_clk_get(&i2c->dev, NULL); > > > This is broken for deferred probe. > Sorry. I don't get why deferred probe would be broken by this. > And

Re: [alsa-devel] [PATCH v2] ASoC: wm8962: Let CODEC driver enable and disable its own MCLK

2014-07-28 Thread Nicolin Chen
On Mon, Jul 28, 2014 at 03:19:43PM -0300, Fabio Estevam wrote: > Hi Nicolin, > > On Mon, Jul 28, 2014 at 9:22 AM, Mark Brown wrote: > > On Mon, Jul 28, 2014 at 07:41:58PM +0800, Nicolin Chen wrote: > > > >> + pdata->mclk = devm_clk_get(&i2c->dev, NULL); > >> + > > > > This is broken for defer

Re: [alsa-devel] [PATCH v2] ASoC: wm8962: Let CODEC driver enable and disable its own MCLK

2014-07-28 Thread Fabio Estevam
Hi Nicolin, On Mon, Jul 28, 2014 at 9:22 AM, Mark Brown wrote: > On Mon, Jul 28, 2014 at 07:41:58PM +0800, Nicolin Chen wrote: > >> + pdata->mclk = devm_clk_get(&i2c->dev, NULL); >> + > > This is broken for deferred probe. You can take a look at sgtl5000 to see how we handle deferred probe i

Re: [PATCH v2] ASoC: wm8962: Let CODEC driver enable and disable its own MCLK

2014-07-28 Thread Mark Brown
On Mon, Jul 28, 2014 at 07:41:58PM +0800, Nicolin Chen wrote: > + pdata->mclk = devm_clk_get(&i2c->dev, NULL); > + This is broken for deferred probe. > + clk_prepare_enable(wm8962->pdata.mclk); > + Missing error checking. signature.asc Description: Digital signature

[PATCH v2] ASoC: wm8962: Let CODEC driver enable and disable its own MCLK

2014-07-28 Thread Nicolin Chen
snd_soc_open() will trigger pm_runtime resume() which will then enable the regulator and initialization. So we should make sure the MCLK is enabled before this resume(). Previously we let the machine driver get the clock and enable it in its probe(). However, considering about power saving, it'll