ASoC: cx20442: Don't ignore regulator_get() errors.
authorJanusz Krzysztofik <jmkrzyszt@gmail.com>
Sun, 24 Jun 2018 18:14:41 +0000 (20:14 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 25 Jun 2018 11:45:15 +0000 (12:45 +0100)
commit50c678772a0b3f9dc6b04262f27e2c373fe03a4d
tree188000fadfb61d5469e8ffa46698e76cdb9a9a80
parentf4c277b817cc9489fffabffb4e15d2f3b686056c
ASoC: cx20442: Don't ignore regulator_get() errors.

In its current shape, the driver just ignores errors returned by
regulator_get() at component_probe().  This doesn't hurt on Amstrad
Delta board as long as it registers the codec device at late_initcall,
when the regulator which depends on basic-mmio-gpio device (probed as
late as at dev_initcall) is already available.  Otherwise the driver
may end up trying to control a codec which is not powered up.

Remove that dependency on initialization order by handling the error.
If the regulator is not yet available and -ENODEV is returned, convert
it to -EPROBE_DEFER to get another chance.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cx20442.c