Patchwork powerpc/mpc85xx:Update interrupt handling for IFC controller

login
register
mail settings
Submitter Prabhakar Kushwaha
Date Sept. 13, 2012, 8:04 a.m.
Message ID <1347523451-7843-1-git-send-email-prabhakar@freescale.com>
Download mbox | patch
Permalink /patch/183540/
State Accepted, archived
Delegated to: Kumar Gala
Headers show

Comments

Prabhakar Kushwaha - Sept. 13, 2012, 8:04 a.m.
IFC may have one or two interrupts.  If two interrupt specifiers are present,
the first is the "common" interrupt (CM_EVTER_STAT), and the second is the NAND
interrupt (NAND_EVTER_STAT).
If there is only one, that interrupt reports both types of event.

Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
---
 Based upon git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git branch next 

 arch/powerpc/sysdev/fsl_ifc.c |   20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)
Kumar Gala - Sept. 19, 2012, 2:52 p.m.
On Sep 13, 2012, at 3:04 AM, Prabhakar Kushwaha wrote:

> IFC may have one or two interrupts.  If two interrupt specifiers are present,
> the first is the "common" interrupt (CM_EVTER_STAT), and the second is the NAND
> interrupt (NAND_EVTER_STAT).
> If there is only one, that interrupt reports both types of event.
> 
> Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
> ---
> Based upon git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git branch next 
> 
> arch/powerpc/sysdev/fsl_ifc.c |   20 ++++++++------------
> 1 file changed, 8 insertions(+), 12 deletions(-)

applied to next

- k

Patch

diff --git a/arch/powerpc/sysdev/fsl_ifc.c b/arch/powerpc/sysdev/fsl_ifc.c
index b31f19f..097cc9d2 100644
--- a/arch/powerpc/sysdev/fsl_ifc.c
+++ b/arch/powerpc/sysdev/fsl_ifc.c
@@ -244,12 +244,6 @@  static int __devinit fsl_ifc_ctrl_probe(struct platform_device *dev)
 	/* get the nand machine irq */
 	fsl_ifc_ctrl_dev->nand_irq =
 			irq_of_parse_and_map(dev->dev.of_node, 1);
-	if (fsl_ifc_ctrl_dev->nand_irq == NO_IRQ) {
-		dev_err(&dev->dev, "failed to get irq resource "
-						"for NAND Machine\n");
-		ret = -ENODEV;
-		goto err;
-	}
 
 	fsl_ifc_ctrl_dev->dev = &dev->dev;
 
@@ -267,12 +261,14 @@  static int __devinit fsl_ifc_ctrl_probe(struct platform_device *dev)
 		goto err_irq;
 	}
 
-	ret = request_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_nand_irq, 0,
-			  "fsl-ifc-nand", fsl_ifc_ctrl_dev);
-	if (ret != 0) {
-		dev_err(&dev->dev, "failed to install irq (%d)\n",
-			fsl_ifc_ctrl_dev->nand_irq);
-		goto err_nandirq;
+	if (fsl_ifc_ctrl_dev->nand_irq) {
+		ret = request_irq(fsl_ifc_ctrl_dev->nand_irq, fsl_ifc_nand_irq,
+				0, "fsl-ifc-nand", fsl_ifc_ctrl_dev);
+		if (ret != 0) {
+			dev_err(&dev->dev, "failed to install irq (%d)\n",
+				fsl_ifc_ctrl_dev->nand_irq);
+			goto err_nandirq;
+		}
 	}
 
 	return 0;