input/rtc: da9055: Remove conflicting use of regmap_irq_get_virq()
Subsystems (3)
cover input/rtc: da9055: Remove conflicting use of regmap_irq_get_virq()
This patch set removes the use of regmap_irq_get_virq() in driver probes for da9055 (in particular RTC and ONKEY) which was conflicting with use of platform_get_irq_byname(). platform_get_irq_byname() already returns the VIRQ number due to MFD core translation so using regmap_irq_get_virq() on that returned value results in an incorrect IRQ being requested. The driver probes then fail because of this.
Resend again due to lack of response.
Adam Thomson (2):
input: da9055_onkey: Remove use of regmap_irq_get_virq()
rtc: da9055: Remove use of regmap_irq_get_virq()
drivers/input/misc/da9055_onkey.c | 1 - drivers/rtc/rtc-da9055.c | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-)
PATCH RESEND 1/2 input: da9055_onkey: Remove use of regmap_irq_get_virq()
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). This patch removes use of regmap_irq_get_virq() to prevent this failure from happening.
--- drivers/input/misc/da9055_onkey.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)
drivers/input/misc/da9055_onkey.c +0 -1
@@ -109,7 +109,6 @@ static int da9055_onkey_probe(struct platform_device *pdev)INIT_DELAYED_WORK (&onkey->work, da9055_onkey_work); - irq =regmap_irq_get_virq (da9055->irq_data, irq); err =request_threaded_irq (irq,NULL , da9055_onkey_irq,IRQF_TRIGGER_HIGH |IRQF_ONESHOT ,"ONKEY" , onkey);
--
1.7.0.4
PATCH RESEND 2/2 rtc: da9055: Remove use of regmap_irq_get_virq()
In reply to Adam ThomsonUsing 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). This patch removes use of regmap_irq_get_virq() to prevent this failure from happening
--- drivers/rtc/rtc-da9055.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-)
drivers/rtc/rtc-da9055.c +3 -1
@@ -302,7 +302,9 @@ static int da9055_rtc_probe(struct platform_device *pdev) } alm_irq =platform_get_irq_byname (pdev,"ALM" ); - alm_irq =regmap_irq_get_virq (rtc->da9055->irq_data, alm_irq); +if (alm_irq <0 ) +return alm_irq; + ret = devm_request_threaded_irq(&pdev->dev, alm_irq, NULL, da9055_rtc_alm_irq, IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
--
1.7.0.4