Skip to content

Commit

Permalink
pxa3xx_nand: remove hardcode irq number
Browse files Browse the repository at this point in the history
Nand driver uses IRQ_NAND as hardcode irq number. In ARCH_MMP, the irq
number is different. So get irq resource from platform device structure
and use it in initialization and deinitialization code.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
  • Loading branch information
Haojian Zhuang authored and Eric Miao committed Dec 1, 2009
1 parent 8638fac commit dbf5986
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions drivers/mtd/nand/pxa3xx_nand.c
Original file line number Diff line number Diff line change
Expand Up @@ -1244,8 +1244,8 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
if (ret)
goto fail_free_io;

ret = request_irq(IRQ_NAND, pxa3xx_nand_irq, IRQF_DISABLED,
pdev->name, info);
ret = request_irq(irq, pxa3xx_nand_irq, IRQF_DISABLED,
pdev->name, info);
if (ret < 0) {
dev_err(&pdev->dev, "failed to request IRQ\n");
goto fail_free_buf;
Expand All @@ -1271,7 +1271,7 @@ static int pxa3xx_nand_probe(struct platform_device *pdev)
return add_mtd_partitions(mtd, pdata->parts, pdata->nr_parts);

fail_free_irq:
free_irq(IRQ_NAND, info);
free_irq(irq, info);
fail_free_buf:
if (use_dma) {
pxa_free_dma(info->data_dma_ch);
Expand All @@ -1296,12 +1296,15 @@ static int pxa3xx_nand_remove(struct platform_device *pdev)
struct mtd_info *mtd = platform_get_drvdata(pdev);
struct pxa3xx_nand_info *info = mtd->priv;
struct resource *r;
int irq;

platform_set_drvdata(pdev, NULL);

del_mtd_device(mtd);
del_mtd_partitions(mtd);
free_irq(IRQ_NAND, info);
irq = platform_get_irq(pdev, 0);
if (irq >= 0)
free_irq(irq, info);
if (use_dma) {
pxa_free_dma(info->data_dma_ch);
dma_free_writecombine(&pdev->dev, info->data_buff_size,
Expand Down

0 comments on commit dbf5986

Please sign in to comment.