On Tue, Sep 24, 2013 at 08:05:34PM +0100, Russell King - ARM Linux wrote:
On Tue, Sep 24, 2013 at 09:04:42PM +0200, Jean-Francois Moine wrote:
So, the probe code should be:
/* check first if an external clock is declared */ priv->extclk = devm_clk_get(&pdev->dev, "extclk"); if (!IS_ERR(priv->extclk)) { ... use the external clock ... } else {
/* get the first clock which must be the dco */ priv->clk = devm_clk_get(&pdev->dev, NULL); if (IS_ERR(priv->clk)) .. error, no clock .. .. use the internal dco ...
}
Actually no - we need to get and enable the internal clock so that we can access the registers - the Dove locks solid if you access the audio block registers without its internal clock to the audio block enabled.
So what is the plan here? Apply Russell's patch and then just drop the devm_clk_put? Do you have a pointer to that patch? Then I'd follow up with a patch for devm_clk_put.
Best regards Uwe