Re: [PATCH 13/17] usb: isp1760: Move GPIO request to common code

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

 



On Mon, Oct 06, 2014 at 06:55:01PM +0300, Laurent Pinchart wrote:
> The code isn't specific to a glue layer, move it to a common location.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>

Reviewed-by: Felipe Balbi <balbi@xxxxxx>

> ---
>  drivers/usb/host/isp1760-core.c | 15 +++++++++++++++
>  drivers/usb/host/isp1760-if.c   | 20 +++-----------------
>  2 files changed, 18 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/usb/host/isp1760-core.c b/drivers/usb/host/isp1760-core.c
> index 28f8290..bd538dd 100644
> --- a/drivers/usb/host/isp1760-core.c
> +++ b/drivers/usb/host/isp1760-core.c
> @@ -39,6 +39,18 @@ int isp1760_register(struct resource *mem, int irq, unsigned long irqflags,
>  	if (!isp)
>  		return -ENOMEM;
>  
> +	if (gpio_is_valid(rst_gpio)) {
> +		ret = gpio_request(rst_gpio, dev_name(dev));
> +		if (!ret) {
> +			if (devflags & ISP1760_FLAG_RESET_ACTIVE_HIGH)
> +				gpio_direction_output(rst_gpio, 0);
> +			else
> +				gpio_direction_output(rst_gpio, 1);
> +		} else {
> +			rst_gpio = ret;
> +		}
> +	}
> +
>  	isp->rst_gpio = rst_gpio;
>  
>  	isp->mem_start = mem->start;
> @@ -64,6 +76,9 @@ error:
>  	if (isp->regs)
>  		iounmap(isp->regs);
>  
> +	if (gpio_is_valid(isp->rst_gpio))
> +		gpio_free(isp->rst_gpio);
> +
>  	kfree(isp);
>  
>  	return ret;
> diff --git a/drivers/usb/host/isp1760-if.c b/drivers/usb/host/isp1760-if.c
> index 16db1be..ad7de39 100644
> --- a/drivers/usb/host/isp1760-if.c
> +++ b/drivers/usb/host/isp1760-if.c
> @@ -83,30 +83,16 @@ static int of_isp1760_probe(struct platform_device *dev)
>  		devflags |= ISP1760_FLAG_DREQ_POL_HIGH;
>  
>  	rst_gpio = of_get_gpio_flags(dp, 0, &gpio_flags);
> -	if (gpio_is_valid(rst_gpio)) {
> -		ret = gpio_request(rst_gpio, dev_name(&dev->dev));
> -		if (!ret) {
> -			if (!(gpio_flags & OF_GPIO_ACTIVE_LOW)) {
> -				devflags |= ISP1760_FLAG_RESET_ACTIVE_HIGH;
> -				gpio_direction_output(rst_gpio, 0);
> -			} else {
> -				gpio_direction_output(rst_gpio, 1);
> -			}
> -		} else {
> -			rst_gpio = ret;
> -		}
> -	}
> +	if (gpio_is_valid(rst_gpio) && !(gpio_flags & OF_GPIO_ACTIVE_LOW))
> +		devflags |= ISP1760_FLAG_RESET_ACTIVE_HIGH;
>  
>  	ret = isp1760_register(&memory, virq, IRQF_SHARED,
>  			       rst_gpio, &dev->dev, devflags);
>  	if (ret < 0)
> -		goto free_gpio;
> +		goto release_reg;
>  
>  	return ret;
>  
> -free_gpio:
> -	if (gpio_is_valid(rst_gpio))
> -		gpio_free(rst_gpio);
>  release_reg:
>  	release_mem_region(memory.start, res_len);
>  	return ret;
> -- 
> 2.0.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
balbi

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux