Re: [PATCH] video: use gpio_request_one

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

 



On 01/26/2012 10:32 AM, Jingoo Han wrote:
> Using gpio_request_one can make the code simpler because it can
> set the direction and initial value in one shot.
> 
> Signed-off-by: Jingoo Han <jg1.han@xxxxxxxxxxx>
> Cc: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> Cc: Pavel Machek <pavel@xxxxxx>
> Cc: Tomi Valkeinen <tomi.valkeinen@xxxxxx>

Applied.


Thanks,

Florian Tobias Schandinat

> ---
>  drivers/video/bf537-lq035.c                        |   12 +++---------
>  drivers/video/bf54x-lq043fb.c                      |    4 +---
>  drivers/video/bfin-lq035q1-fb.c                    |    8 ++++----
>  drivers/video/bfin_adv7393fb.c                     |    5 +++--
>  drivers/video/msm/mddi_client_nt35399.c            |    7 +------
>  drivers/video/msm/mddi_client_toshiba.c            |    7 +------
>  drivers/video/omap/lcd_inn1610.c                   |   10 ++++------
>  drivers/video/omap2/displays/panel-taal.c          |    4 +---
>  .../video/omap2/displays/panel-tpo-td043mtea1.c    |   11 ++---------
>  9 files changed, 20 insertions(+), 48 deletions(-)
> 
> diff --git a/drivers/video/bf537-lq035.c b/drivers/video/bf537-lq035.c
> index bea53c1..befbc80 100644
> --- a/drivers/video/bf537-lq035.c
> +++ b/drivers/video/bf537-lq035.c
> @@ -383,23 +383,19 @@ static int __devinit request_ports(void)
>  	}
>  
>  #if (defined(UD) && defined(LBR))
> -	if (gpio_request(UD, KBUILD_MODNAME)) {
> +	if (gpio_request_one(UD, GPIOF_OUT_INIT_LOW, KBUILD_MODNAME)) {
>  		pr_err("requesting GPIO %d failed\n", UD);
>  		return -EBUSY;
>  	}
>  
> -	if (gpio_request(LBR, KBUILD_MODNAME)) {
> +	if (gpio_request_one(LBR, GPIOF_OUT_INIT_HIGH, KBUILD_MODNAME)) {
>  		pr_err("requesting GPIO %d failed\n", LBR);
>  		gpio_free(UD);
>  		return -EBUSY;
>  	}
> -
> -	gpio_direction_output(UD, 0);
> -	gpio_direction_output(LBR, 1);
> -
>  #endif
>  
> -	if (gpio_request(MOD, KBUILD_MODNAME)) {
> +	if (gpio_request_one(MOD, GPIOF_OUT_INIT_HIGH, KBUILD_MODNAME)) {
>  		pr_err("requesting GPIO %d failed\n", MOD);
>  #if (defined(UD) && defined(LBR))
>  		gpio_free(LBR);
> @@ -408,8 +404,6 @@ static int __devinit request_ports(void)
>  		return -EBUSY;
>  	}
>  
> -	gpio_direction_output(MOD, 1);
> -
>  	SSYNC();
>  	return 0;
>  }
> diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
> index 46b03f5..dc2f004 100644
> --- a/drivers/video/bf54x-lq043fb.c
> +++ b/drivers/video/bf54x-lq043fb.c
> @@ -240,7 +240,7 @@ static int request_ports(struct bfin_bf54xfb_info *fbi)
>  	u16 eppi_req_18[] = EPPI0_18;
>  	u16 disp = fbi->mach_info->disp;
>  
> -	if (gpio_request(disp, DRIVER_NAME)) {
> +	if (gpio_request_one(disp, GPIOF_OUT_INIT_HIGH, DRIVER_NAME)) {
>  		printk(KERN_ERR "Requesting GPIO %d failed\n", disp);
>  		return -EFAULT;
>  	}
> @@ -263,8 +263,6 @@ static int request_ports(struct bfin_bf54xfb_info *fbi)
>  		}
>  	}
>  
> -	gpio_direction_output(disp, 1);
> -
>  	return 0;
>  }
>  
> diff --git a/drivers/video/bfin-lq035q1-fb.c b/drivers/video/bfin-lq035q1-fb.c
> index c633068..86922ac 100644
> --- a/drivers/video/bfin-lq035q1-fb.c
> +++ b/drivers/video/bfin-lq035q1-fb.c
> @@ -365,10 +365,10 @@ static int __devinit bfin_lq035q1_request_ports(struct platform_device *pdev,
>  	 * Drive PPI_FS3 Low
>  	 */
>  	if (ANOMALY_05000400) {
> -		int ret = gpio_request(P_IDENT(P_PPI0_FS3), "PPI_FS3");
> +		int ret = gpio_request_one(P_IDENT(P_PPI0_FS3),
> +					GPIOF_OUT_INIT_LOW, "PPI_FS3");
>  		if (ret)
>  			return ret;
> -		gpio_direction_output(P_IDENT(P_PPI0_FS3), 0);
>  	}
>  
>  	if (ppi16)
> @@ -716,14 +716,14 @@ static int __devinit bfin_lq035q1_probe(struct platform_device *pdev)
>  	}
>  
>  	if (info->disp_info->use_bl) {
> -		ret = gpio_request(info->disp_info->gpio_bl, "LQ035 Backlight");
> +		ret = gpio_request_one(info->disp_info->gpio_bl,
> +					GPIOF_OUT_INIT_LOW, "LQ035 Backlight");
>  
>  		if (ret) {
>  			dev_err(&pdev->dev, "failed to request GPIO %d\n",
>  				info->disp_info->gpio_bl);
>  			goto out9;
>  		}
> -		gpio_direction_output(info->disp_info->gpio_bl, 0);
>  	}
>  
>  	ret = register_framebuffer(fbinfo);
> diff --git a/drivers/video/bfin_adv7393fb.c b/drivers/video/bfin_adv7393fb.c
> index 811dd7f..c992814 100644
> --- a/drivers/video/bfin_adv7393fb.c
> +++ b/drivers/video/bfin_adv7393fb.c
> @@ -411,12 +411,13 @@ static int __devinit bfin_adv7393_fb_probe(struct i2c_client *client,
>  
>  	/* Workaround "PPI Does Not Start Properly In Specific Mode" */
>  	if (ANOMALY_05000400) {
> -		if (gpio_request(P_IDENT(P_PPI0_FS3), "PPI0_FS3")) {
> +		ret = gpio_request_one(P_IDENT(P_PPI0_FS3), GPIOF_OUT_INIT_LOW,
> +					"PPI0_FS3")
> +		if (ret) {
>  			dev_err(&client->dev, "PPI0_FS3 GPIO request failed\n");
>  			ret = -EBUSY;
>  			goto out_8;
>  		}
> -		gpio_direction_output(P_IDENT(P_PPI0_FS3), 0);
>  	}
>  
>  	if (peripheral_request_list(ppi_pins, DRIVER_NAME)) {
> diff --git a/drivers/video/msm/mddi_client_nt35399.c b/drivers/video/msm/mddi_client_nt35399.c
> index f239f4a..7fcd67e 100644
> --- a/drivers/video/msm/mddi_client_nt35399.c
> +++ b/drivers/video/msm/mddi_client_nt35399.c
> @@ -155,14 +155,10 @@ static int setup_vsync(struct panel_info *panel, int init)
>  		ret = 0;
>  		goto uninit;
>  	}
> -	ret = gpio_request(gpio, "vsync");
> +	ret = gpio_request_one(gpio, GPIOF_IN, "vsync");
>  	if (ret)
>  		goto err_request_gpio_failed;
>  
> -	ret = gpio_direction_input(gpio);
> -	if (ret)
> -		goto err_gpio_direction_input_failed;
> -
>  	ret = irq = gpio_to_irq(gpio);
>  	if (ret < 0)
>  		goto err_get_irq_num_failed;
> @@ -180,7 +176,6 @@ uninit:
>  	free_irq(gpio_to_irq(gpio), panel->client_data);
>  err_request_irq_failed:
>  err_get_irq_num_failed:
> -err_gpio_direction_input_failed:
>  	gpio_free(gpio);
>  err_request_gpio_failed:
>  	return ret;
> diff --git a/drivers/video/msm/mddi_client_toshiba.c b/drivers/video/msm/mddi_client_toshiba.c
> index f9bc932..053eb68 100644
> --- a/drivers/video/msm/mddi_client_toshiba.c
> +++ b/drivers/video/msm/mddi_client_toshiba.c
> @@ -186,14 +186,10 @@ static int setup_vsync(struct panel_info *panel,
>  		ret = 0;
>  		goto uninit;
>  	}
> -	ret = gpio_request(gpio, "vsync");
> +	ret = gpio_request_one(gpio, GPIOF_IN, "vsync");
>  	if (ret)
>  		goto err_request_gpio_failed;
>  
> -	ret = gpio_direction_input(gpio);
> -	if (ret)
> -		goto err_gpio_direction_input_failed;
> -
>  	ret = irq = gpio_to_irq(gpio);
>  	if (ret < 0)
>  		goto err_get_irq_num_failed;
> @@ -210,7 +206,6 @@ uninit:
>  	free_irq(gpio_to_irq(gpio), panel);
>  err_request_irq_failed:
>  err_get_irq_num_failed:
> -err_gpio_direction_input_failed:
>  	gpio_free(gpio);
>  err_request_gpio_failed:
>  	return ret;
> diff --git a/drivers/video/omap/lcd_inn1610.c b/drivers/video/omap/lcd_inn1610.c
> index 7e8bd8e..e3d3d13 100644
> --- a/drivers/video/omap/lcd_inn1610.c
> +++ b/drivers/video/omap/lcd_inn1610.c
> @@ -22,7 +22,7 @@
>  #include <linux/module.h>
>  #include <linux/platform_device.h>
>  
> -#include <asm/gpio.h>
> +#include <linux/gpio.h>
>  #include "omapfb.h"
>  
>  #define MODULE_NAME	"omapfb-lcd_h3"
> @@ -32,20 +32,18 @@ static int innovator1610_panel_init(struct lcd_panel *panel,
>  {
>  	int r = 0;
>  
> -	if (gpio_request(14, "lcd_en0")) {
> +	/* configure GPIO(14, 15) as outputs */
> +	if (gpio_request_one(14, GPIOF_OUT_INIT_LOW, "lcd_en0")) {
>  		pr_err(MODULE_NAME ": can't request GPIO 14\n");
>  		r = -1;
>  		goto exit;
>  	}
> -	if (gpio_request(15, "lcd_en1")) {
> +	if (gpio_request_one(15, GPIOF_OUT_INIT_LOW, "lcd_en1")) {
>  		pr_err(MODULE_NAME ": can't request GPIO 15\n");
>  		gpio_free(14);
>  		r = -1;
>  		goto exit;
>  	}
> -	/* configure GPIO(14, 15) as outputs */
> -	gpio_direction_output(14, 0);
> -	gpio_direction_output(15, 0);
>  exit:
>  	return r;
>  }
> diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
> index 00c5c61..0f21fa5 100644
> --- a/drivers/video/omap2/displays/panel-taal.c
> +++ b/drivers/video/omap2/displays/panel-taal.c
> @@ -1019,14 +1019,12 @@ static int taal_probe(struct omap_dss_device *dssdev)
>  	if (panel_data->use_ext_te) {
>  		int gpio = panel_data->ext_te_gpio;
>  
> -		r = gpio_request(gpio, "taal irq");
> +		r = gpio_request_one(gpio, GPIOF_IN, "taal irq");
>  		if (r) {
>  			dev_err(&dssdev->dev, "GPIO request failed\n");
>  			goto err_gpio;
>  		}
>  
> -		gpio_direction_input(gpio);
> -
>  		r = request_irq(gpio_to_irq(gpio), taal_te_isr,
>  				IRQF_TRIGGER_RISING,
>  				"taal vsync", dssdev);
> diff --git a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
> index e6649aa..880c313 100644
> --- a/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
> +++ b/drivers/video/omap2/displays/panel-tpo-td043mtea1.c
> @@ -408,17 +408,12 @@ static int tpo_td043_probe(struct omap_dss_device *dssdev)
>  	}
>  
>  	if (gpio_is_valid(nreset_gpio)) {
> -		ret = gpio_request(nreset_gpio, "lcd reset");
> +		ret = gpio_request_one(nreset_gpio, GPIOF_OUT_INIT_LOW,
> +					"lcd reset");
>  		if (ret < 0) {
>  			dev_err(&dssdev->dev, "couldn't request reset GPIO\n");
>  			goto fail_gpio_req;
>  		}
> -
> -		ret = gpio_direction_output(nreset_gpio, 0);
> -		if (ret < 0) {
> -			dev_err(&dssdev->dev, "couldn't set GPIO direction\n");
> -			goto fail_gpio_direction;
> -		}
>  	}
>  
>  	ret = sysfs_create_group(&dssdev->dev.kobj, &tpo_td043_attr_group);
> @@ -427,8 +422,6 @@ static int tpo_td043_probe(struct omap_dss_device *dssdev)
>  
>  	return 0;
>  
> -fail_gpio_direction:
> -	gpio_free(nreset_gpio);
>  fail_gpio_req:
>  	regulator_put(tpo_td043->vcc_reg);
>  fail_regulator:

--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Tourism]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux