On Tue, Feb 03, 2015 at 03:40:45PM +0100, Manuel Lauss wrote:
On Tue, Feb 3, 2015 at 1:44 PM, Mark Brown <broonie@xxxxxxxxxx> wrote:
+ wm8731->mclk = devm_clk_get(&spi->dev, "mclk");
+ if (IS_ERR(wm8731->mclk)) {
+ wm8731->mclk = NULL;
+ dev_warn(&spi->dev, "assuming static MCLK\n");
+ }
This is broken for both deferred probe and in the case where the clock
API genuinely returns a NULL clock. Other than that it's the kind of
thing that we've done for some other drivers, though it's not good to
have to do this. Check them for correct behaviour.
Hm, so the only option is to create the simples possible 12MHz clk object?
Well, that's the best option in general. You can get away with just
making sure that -EPROBE_DEFER is handled and that IS_ERR() is used to
check for an invalid clock but if you can define a clock that's even
better (and should be pretty painless), we're going to want to do that
transition at some point.