mtd: gpmi: use devm_request_irq

Use devm_request_irq to simplify the code.
Also remove the unused fields of structure resources{}.

Signed-off-by: Huang Shijie <b32955@freescale.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
This commit is contained in:
Huang Shijie 2013-11-14 14:25:49 +08:00 committed by Brian Norris
parent 87a9d69892
commit 3cb2c1ed4a
2 changed files with 5 additions and 24 deletions

View file

@ -503,7 +503,6 @@ static int acquire_register_block(struct gpmi_nand_data *this,
static int acquire_bch_irq(struct gpmi_nand_data *this, irq_handler_t irq_h) static int acquire_bch_irq(struct gpmi_nand_data *this, irq_handler_t irq_h)
{ {
struct platform_device *pdev = this->pdev; struct platform_device *pdev = this->pdev;
struct resources *res = &this->resources;
const char *res_name = GPMI_NAND_BCH_INTERRUPT_RES_NAME; const char *res_name = GPMI_NAND_BCH_INTERRUPT_RES_NAME;
struct resource *r; struct resource *r;
int err; int err;
@ -514,24 +513,11 @@ static int acquire_bch_irq(struct gpmi_nand_data *this, irq_handler_t irq_h)
return -ENODEV; return -ENODEV;
} }
err = request_irq(r->start, irq_h, 0, res_name, this); err = devm_request_irq(this->dev, r->start, irq_h, 0, res_name, this);
if (err) { if (err)
pr_err("Can't own %s\n", res_name); dev_err(this->dev, "error requesting BCH IRQ\n");
return err;
}
res->bch_low_interrupt = r->start; return err;
res->bch_high_interrupt = r->end;
return 0;
}
static void release_bch_irq(struct gpmi_nand_data *this)
{
struct resources *res = &this->resources;
int i = res->bch_low_interrupt;
for (; i <= res->bch_high_interrupt; i++)
free_irq(i, this);
} }
static void release_dma_channels(struct gpmi_nand_data *this) static void release_dma_channels(struct gpmi_nand_data *this)
@ -635,7 +621,7 @@ static int acquire_resources(struct gpmi_nand_data *this)
ret = acquire_dma_channels(this); ret = acquire_dma_channels(this);
if (ret) if (ret)
goto exit_dma_channels; goto exit_regs;
ret = gpmi_get_clks(this); ret = gpmi_get_clks(this);
if (ret) if (ret)
@ -644,15 +630,12 @@ static int acquire_resources(struct gpmi_nand_data *this)
exit_clock: exit_clock:
release_dma_channels(this); release_dma_channels(this);
exit_dma_channels:
release_bch_irq(this);
exit_regs: exit_regs:
return ret; return ret;
} }
static void release_resources(struct gpmi_nand_data *this) static void release_resources(struct gpmi_nand_data *this)
{ {
release_bch_irq(this);
release_dma_channels(this); release_dma_channels(this);
} }

View file

@ -26,8 +26,6 @@
struct resources { struct resources {
void __iomem *gpmi_regs; void __iomem *gpmi_regs;
void __iomem *bch_regs; void __iomem *bch_regs;
unsigned int bch_low_interrupt;
unsigned int bch_high_interrupt;
unsigned int dma_low_channel; unsigned int dma_low_channel;
unsigned int dma_high_channel; unsigned int dma_high_channel;
struct clk *clock[GPMI_CLK_MAX]; struct clk *clock[GPMI_CLK_MAX];