RE: [PATCH] rtc: da9063: Fix ALARM interrupt registration.

From: Opensource [Steve Twiss]
Date: Thu Nov 20 2014 - 06:30:19 EST


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@xxxxxxxxxxxxxxxxx>

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/