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.lavnikev...@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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/