From: Simon Horman Date: Thu, 4 Apr 2013 06:21:06 +0000 (+0000) Subject: irqchip: irqc: Add runtime PM support X-Git-Tag: next-20130527~8^2^18~3 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=543f67650265c4f998573ee86ed5121b157c076a;p=karo-tx-linux.git irqchip: irqc: Add runtime PM support This was tested using the SMSC LAN on the APE6EVM board. Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman --- diff --git a/drivers/irqchip/irq-renesas-irqc.c b/drivers/irqchip/irq-renesas-irqc.c index 927bff373aac..649cd69a51f4 100644 --- a/drivers/irqchip/irq-renesas-irqc.c +++ b/drivers/irqchip/irq-renesas-irqc.c @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -181,6 +182,9 @@ static int irqc_probe(struct platform_device *pdev) goto err1; } + pm_runtime_enable(&pdev->dev); + pm_runtime_get_sync(&pdev->dev); + /* allow any number of IRQs between 1 and IRQC_IRQ_MAX */ for (k = 0; k < IRQC_IRQ_MAX; k++) { irq = platform_get_resource(pdev, IORESOURCE_IRQ, k); @@ -255,6 +259,8 @@ err3: err2: iounmap(p->iomem); err1: + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); kfree(p); err0: return ret; @@ -270,6 +276,8 @@ static int irqc_remove(struct platform_device *pdev) irq_domain_remove(p->irq_domain); iounmap(p->iomem); + pm_runtime_put_sync(&pdev->dev); + pm_runtime_disable(&pdev->dev); kfree(p); return 0; }