linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: daniel.morsing@gmail.com (Daniel Morsing)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request
Date: Wed, 19 Jan 2011 13:29:50 +0100	[thread overview]
Message-ID: <1295440190.2635.18.camel@morsing> (raw)
In-Reply-To: <1295425166-25540-4-git-send-email-weber@corscience.de>

Hey Thomas

On Wed, 2011-01-19 at 09:19 +0100, Thomas Weber wrote:
> The return value of gpio_request is ignored.
> This patch adds the check of the return value of gpio_request.
> 
> Signed-off-by: Thomas Weber <weber@corscience.de>
> ---
>  arch/arm/mach-omap2/board-devkit8000.c |   16 ++++++++++++++--
>  1 files changed, 14 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
> index 9fb416b..4ddd81c 100644
> --- a/arch/arm/mach-omap2/board-devkit8000.c
> +++ b/arch/arm/mach-omap2/board-devkit8000.c
> @@ -234,6 +234,8 @@ static struct gpio_led gpio_leds[];
>  static int devkit8000_twl_gpio_setup(struct device *dev,
>  		unsigned gpio, unsigned ngpio)
>  {
> +	int ret;
> +
>  	omap_mux_init_gpio(29, OMAP_PIN_INPUT);
>  	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
>  	mmc[0].gpio_cd = gpio + 0;
> @@ -244,13 +246,23 @@ static int devkit8000_twl_gpio_setup(struct device *dev,
>  
>  	/* TWL4030_GPIO_MAX + 0 is "LCD_PWREN" (out, active high) */
>  	devkit8000_lcd_device.reset_gpio = gpio + TWL4030_GPIO_MAX + 0;
> -	gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
> +	ret = gpio_request(devkit8000_lcd_device.reset_gpio, "LCD_PWREN");
> +	if (ret < 0) {
> +		printk(KERN_ERR "Failed to request GPIO for LCD_PWRN\n");
> +		return ret;
> +	}
> +

If we fail here, reset_gpio will be set to the gpio the was requested.
The main reason for this would be that the gpio has already been
requested, so any subsequent lcd operations could potentially mess up
some other code.

>  	/* Disable until needed */
>  	gpio_direction_output(devkit8000_lcd_device.reset_gpio, 0);
>  
>  	/* gpio + 7 is "DVI_PD" (out, active low) */
>  	devkit8000_dvi_device.reset_gpio = gpio + 7;
> -	gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
> +	ret = gpio_request(devkit8000_dvi_device.reset_gpio, "DVI PowerDown");
> +	if (ret < 0) {
> +		printk(KERN_ERR "Failed to request GPIO for DVI PowerDown\n");
> +		return ret;
> +	}
> +

Same as above.

>  	/* Disable until needed */
>  	gpio_direction_output(devkit8000_dvi_device.reset_gpio, 0);
>  

Consider switching to gpio_request_{one, array}. Besides making
everything cleaner, it would also provide error checking for the
unlikely case that the request succeeded, but the direction setting
failed.

Also agreeing with Manjunath. This patch should be merged with the
adjust lcd gpio patch. The patches depend on each other and the
resulting patch is not big enough to warrant a split.

Regards,
Daniel

  parent reply	other threads:[~2011-01-19 12:29 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-19  8:19 [PATCHv4 0/4] omap3: Devkit8000: misc fixes Thomas Weber
2011-01-19  8:19 ` [PATCHv4 1/4] OMAP3: Devkit8000: Change lcd power pin Thomas Weber
2011-01-19  8:19 ` [PATCHv4 2/4] OMAP3: Devkit8000: Fix tps65930 pullup/pulldown configuration Thomas Weber
2011-01-19 22:21   ` Tony Lindgren
2011-01-20  6:56     ` Thomas Weber
2011-01-19  8:19 ` [PATCHv4 3/4] OMAP3: Devkit8000: Check return value of gpio_request Thomas Weber
2011-01-19  9:00   ` G, Manjunath Kondaiah
2011-01-19 12:23   ` Sergei Shtylyov
2011-01-20  8:46     ` Thomas Weber
2011-01-19 12:29   ` Daniel Morsing [this message]
2011-01-19  8:19 ` [PATCHv4 4/4] OMAP3: Devkit8000: Fix indentation of brace Thomas Weber
2011-01-19  9:09   ` Varadarajan, Charulatha

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1295440190.2635.18.camel@morsing \
    --to=daniel.morsing@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).