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);