Re: [PATCH V2 02/19] mmc: mmci: Convert to devm functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 03/31/2014 05:18 PM, Ulf Hansson wrote:
> Converting to devm functions to simplify error handling in ->probe() and
> to cleanup ->remove().
> 
> Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
> ---
>  drivers/mmc/host/mmci.c |   51 ++++++++++++++++++-----------------------------
>  1 file changed, 19 insertions(+), 32 deletions(-)
> 
> diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
> index b0b81ac..d6f20ba 100644
> --- a/drivers/mmc/host/mmci.c
> +++ b/drivers/mmc/host/mmci.c
> @@ -13,6 +13,7 @@
>  #include <linux/init.h>
>  #include <linux/ioport.h>
>  #include <linux/device.h>
> +#include <linux/io.h>
>  #include <linux/interrupt.h>
>  #include <linux/kernel.h>
>  #include <linux/slab.h>
> @@ -1456,15 +1457,13 @@ static int mmci_probe(struct amba_device *dev,
>  	if (np)
>  		mmci_dt_populate_generic_pdata(np, plat);
>  
> -	ret = amba_request_regions(dev, DRIVER_NAME);
> -	if (ret)
> -		goto out;
> +	if (!devm_request_mem_region(&dev->dev, dev->res.start,
> +				resource_size(&dev->res), DRIVER_NAME))
> +		return -ENOMEM;

here. Look below.

>  
>  	mmc = mmc_alloc_host(sizeof(struct mmci_host), &dev->dev);
> -	if (!mmc) {
> -		ret = -ENOMEM;
> -		goto rel_regions;
> -	}
> +	if (!mmc)
> +		return -ENOMEM;
>  
>  	host = mmc_priv(mmc);
>  	host->mmc = mmc;
> @@ -1500,8 +1499,10 @@ static int mmci_probe(struct amba_device *dev,
>  		dev_dbg(mmc_dev(mmc), "eventual mclk rate: %u Hz\n",
>  			host->mclk);
>  	}
> +
>  	host->phybase = dev->res.start;
> -	host->base = ioremap(dev->res.start, resource_size(&dev->res));
> +	host->base = devm_ioremap(&dev->dev, host->phybase,
> +				resource_size(&dev->res));

Isn't it better to use devm_ioremap_resource directly?
You will get correct error return values too.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux