From 8af4f7054227528f20b5bca974bd0dca885c1a01 Mon Sep 17 00:00:00 2001 From: David Brownell Date: Thu, 5 Mar 2009 16:46:44 -0800 Subject: [PATCH] --- yaml --- r: 142049 b: refs/heads/master c: d379ee8acd0719736ee7f1d1ccc3b5765880eaf8 h: refs/heads/master i: 142047: 5f727cfa01ec1579f5613792cb213ff61dceb70c v: v3 --- [refs] | 2 +- trunk/drivers/leds/leds-gpio.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 0db04e837a3f..944965a039e5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7fbc3a9b132e93b2ba1fd889c1ad8a4135731cc3 +refs/heads/master: d379ee8acd0719736ee7f1d1ccc3b5765880eaf8 diff --git a/trunk/drivers/leds/leds-gpio.c b/trunk/drivers/leds/leds-gpio.c index 8fa352ac20f8..102ef4a14c5f 100644 --- a/trunk/drivers/leds/leds-gpio.c +++ b/trunk/drivers/leds/leds-gpio.c @@ -78,6 +78,13 @@ static int __devinit create_gpio_led(const struct gpio_led *template, { int ret; + /* skip leds that aren't available */ + if (!gpio_is_valid(template->gpio)) { + printk(KERN_INFO "Skipping unavilable LED gpio %d (%s)\n", + template->gpio, template->name); + return; + } + ret = gpio_request(template->gpio, template->name); if (ret < 0) return ret; @@ -114,6 +121,8 @@ static int __devinit create_gpio_led(const struct gpio_led *template, static void delete_gpio_led(struct gpio_led_data *led) { + if (!gpio_is_valid(led->gpio)) + return; led_classdev_unregister(&led->cdev); cancel_work_sync(&led->work); gpio_free(led->gpio);