On Mon, Nov 20, 2017 at 09:31:40PM +0530, arvindY wrote:
On Monday 20 November 2017 07:07 PM, Alexandre Belloni wrote:
On 19/11/2017 at 09:45:00 +0530, Arvind Yadav wrote:
To ensure this doesn't get applied: platform_get_irq can return -EPROBE_DEFER and this must be handled properly.
Yes, you are right. We should retry to get an irq for device. But ASoC driver is not retrying. if platfore_get_irq() fail here, Driver is throwing an error. and this patch is only to fix error checking which is not correct in Driver.
irq = platform_get_irq(pdev, 0);
- if (!irq)
- if (irq <= 0) return -ENODEV;
This is just squashing all error codes into -ENODEV, we'd be handling probe deferral properly if we just returned the raw error code here. We need separate handling for irq == 0 which is an error but not an error code and for cases where we've got an error code.