Messages in this thread | | | From | "Opensource [Steve Twiss]" <> | Subject | RE: [PATCH] rtc: da9063: Fix ALARM interrupt registration. | Date | Thu, 20 Nov 2014 11:23:02 +0000 |
| |
On 20 November 2014 09:55 Dmitry Lavnikevich wrote:
> Call platform_get_irq_byname() returns local IRQ number. Use > regmap_irq_get_virq() to get VIRQ instead. > This fixes rtc initialization error: > da9063-rtc da9063-rtc: Failed to request ALARM IRQ 1: -22 > > Signed-off-by: Dmitry Lavnikevich <d.lavnikevich@sam-solutions.com>
Hi Dmitry,
Please refer to the previous patch : http://patchwork.ozlabs.org/patch/329051/
Using platform_get_irq_byname() to retrieve the IRQ number returns the VIRQ number rather than the local IRQ number for the device. Passing that value then into regmap_irq_get_virq() causes a failure because the function is expecting the local IRQ number (e.g. 0, 1, 2, 3, etc).
> --- > drivers/rtc/rtc-da9063.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/rtc/rtc-da9063.c b/drivers/rtc/rtc-da9063.c > index 731ed1a..04743a6 100644 > --- a/drivers/rtc/rtc-da9063.c > +++ b/drivers/rtc/rtc-da9063.c > @@ -315,6 +315,7 @@ static int da9063_rtc_probe(struct platform_device > *pdev) > platform_set_drvdata(pdev, rtc); > > irq_alarm = platform_get_irq_byname(pdev, "ALARM"); > + irq_alarm = regmap_irq_get_virq(da9063->regmap_irq, irq_alarm); > ret = devm_request_threaded_irq(&pdev->dev, irq_alarm, NULL, > da9063_alarm_event, > IRQF_TRIGGER_LOW | > IRQF_ONESHOT, > -- > 2.1.3
This patch above gives the following error when running on the DA9063:
da9063-rtc da9063-rtc: Failed to request ALARM IRQ -22: -22 da9063-rtc: probe of da9063-rtc failed with error -22
Regards, Steve
| |