aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/sata_fsl.c
diff options
context:
space:
mode:
authorLi Yang <leoli@freescale.com>2007-10-31 07:27:55 -0400
committerJeff Garzik <jeff@garzik.org>2007-11-03 08:46:27 -0400
commit79b3edc97e31d7016c957af653cd3d459917dea0 (patch)
tree9554966977b3f9d9106274c8fc6fd84f849dd238 /drivers/ata/sata_fsl.c
parent27c96eaabaf6e3cf386a69640d134b34ce51ff13 (diff)
ata/sata_fsl: save irq in private data for irq unmapping
Powerpc uses virtual irq which has to be unmapped. Signed-off-by: Li Yang <leoli@freescale.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/sata_fsl.c')
-rw-r--r--drivers/ata/sata_fsl.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c
index 4c8c8201665d..f8d8614a514b 100644
--- a/drivers/ata/sata_fsl.c
+++ b/drivers/ata/sata_fsl.c
@@ -265,6 +265,7 @@ struct sata_fsl_host_priv {
265 void __iomem *hcr_base; 265 void __iomem *hcr_base;
266 void __iomem *ssr_base; 266 void __iomem *ssr_base;
267 void __iomem *csr_base; 267 void __iomem *csr_base;
268 int irq;
268}; 269};
269 270
270static inline unsigned int sata_fsl_tag(unsigned int tag, 271static inline unsigned int sata_fsl_tag(unsigned int tag,
@@ -1399,6 +1400,7 @@ static int sata_fsl_probe(struct of_device *ofdev,
1399 dev_printk(KERN_ERR, &ofdev->dev, "invalid irq from platform\n"); 1400 dev_printk(KERN_ERR, &ofdev->dev, "invalid irq from platform\n");
1400 goto error_exit_with_cleanup; 1401 goto error_exit_with_cleanup;
1401 } 1402 }
1403 host_priv->irq = irq;
1402 1404
1403 /* allocate host structure */ 1405 /* allocate host structure */
1404 host = ata_host_alloc_pinfo(&ofdev->dev, ppi, SATA_FSL_MAX_PORTS); 1406 host = ata_host_alloc_pinfo(&ofdev->dev, ppi, SATA_FSL_MAX_PORTS);
@@ -1445,7 +1447,7 @@ static int sata_fsl_remove(struct of_device *ofdev)
1445 1447
1446 dev_set_drvdata(&ofdev->dev, NULL); 1448 dev_set_drvdata(&ofdev->dev, NULL);
1447 1449
1448 irq_dispose_mapping(host->irq); 1450 irq_dispose_mapping(host_priv->irq);
1449 iounmap(host_priv->hcr_base); 1451 iounmap(host_priv->hcr_base);
1450 kfree(host_priv); 1452 kfree(host_priv);
1451 1453