Message ID | 1384410351-2169-6-git-send-email-b32955@freescale.com |
---|---|
State | Accepted |
Commit | 87a9d69892836fc9cf738fa8960a0c29cf8e3f16 |
Headers | show |
On Thu, Nov 14, 2013 at 02:25:48PM +0800, Huang Shijie wrote: > Use the devm_ioremap_resource to simplify the code. > > Signed-off-by: Huang Shijie <b32955@freescale.com> > --- > drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 26 +++----------------------- > 1 files changed, 3 insertions(+), 23 deletions(-) > > diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c > index 36ef60a..1f99038 100644 > --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c > +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c > @@ -486,16 +486,9 @@ static int acquire_register_block(struct gpmi_nand_data *this, > void __iomem *p; > > r = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name); > - if (!r) { > - pr_err("Can't get resource for %s\n", res_name); > - return -ENODEV; > - } > - > - p = ioremap(r->start, resource_size(r)); > - if (!p) { > - pr_err("Can't remap %s\n", res_name); > - return -ENOMEM; > - } > + p = devm_ioremap_resource(&pdev->dev, r); > + if (IS_ERR(p)) > + return PTR_ERR(p); Hm... devm_ioremap_resource() is not "pin-to-pin" replacement for the combination of platform_get_resource + ioremap. Instead, you're adding a request_memory() call. So, this is an improvement, and it's fine to do so. I'm just warning about a change in the driver's behavior.
On Thu, Nov 14, 2013 at 10:50:34AM -0300, Ezequiel Garcia wrote: > So, this is an improvement, and it's fine to do so. I'm just warning > about a change in the driver's behavior. thanks, got it. Huang Shijie
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c index 36ef60a..1f99038 100644 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c @@ -486,16 +486,9 @@ static int acquire_register_block(struct gpmi_nand_data *this, void __iomem *p; r = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name); - if (!r) { - pr_err("Can't get resource for %s\n", res_name); - return -ENODEV; - } - - p = ioremap(r->start, resource_size(r)); - if (!p) { - pr_err("Can't remap %s\n", res_name); - return -ENOMEM; - } + p = devm_ioremap_resource(&pdev->dev, r); + if (IS_ERR(p)) + return PTR_ERR(p); if (!strcmp(res_name, GPMI_NAND_GPMI_REGS_ADDR_RES_NAME)) res->gpmi_regs = p; @@ -507,17 +500,6 @@ static int acquire_register_block(struct gpmi_nand_data *this, return 0; } -static void release_register_block(struct gpmi_nand_data *this) -{ - struct resources *res = &this->resources; - if (res->gpmi_regs) - iounmap(res->gpmi_regs); - if (res->bch_regs) - iounmap(res->bch_regs); - res->gpmi_regs = NULL; - res->bch_regs = NULL; -} - static int acquire_bch_irq(struct gpmi_nand_data *this, irq_handler_t irq_h) { struct platform_device *pdev = this->pdev; @@ -665,13 +647,11 @@ exit_clock: exit_dma_channels: release_bch_irq(this); exit_regs: - release_register_block(this); return ret; } static void release_resources(struct gpmi_nand_data *this) { - release_register_block(this); release_bch_irq(this); release_dma_channels(this); }
Use the devm_ioremap_resource to simplify the code. Signed-off-by: Huang Shijie <b32955@freescale.com> --- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 26 +++----------------------- 1 files changed, 3 insertions(+), 23 deletions(-)