On 2014年07月30日 14:29, Jarkko Nikula wrote:
On 07/30/2014 04:50 AM, jianqun wrote:
From: xujianqun xjq@rock-chips.com
Since hardware may not MUST to use IRQ pin of max98090 as jack detect, the driver can work well without it, can report jack trigger to CPU by a GPIO.
But here driver will register fail caused by failed to request irq.
Signed-off-by: xujianqun xjq@rock-chips.com
sound/soc/codecs/max98090.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c index 566919c..bc124ff 100644 --- a/sound/soc/codecs/max98090.c +++ b/sound/soc/codecs/max98090.c @@ -2515,6 +2515,8 @@ static int max98090_probe(struct snd_soc_codec *codec) max98090_add_widgets(codec);
- return 0;
- err_access: return ret; }
I would say it's better to call request_threaded_irq() conditionally when max98090->irq is valid in the same max98090_probe(). Also code should return instantly in case of request_threaded_irq() fails for valid irq.
Now code is still printing needless error message in case max98090->irq is invalid or not specified and continue probing in case request_threaded_irq() fails for valid irq.
Add a valid check could be better, thanks Jarkko~
I'm working a board with max98090, this is a really problem for me now, the IRQ shouldn't cause the driver fail to register.