leds: Simplify logic in leds-ams-delta

Simplify logic in leds-ams-delta after various new drivers
writers misunderstood it.

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie
2008-10-20 23:46:15 +01:00
parent 270c3957db
commit fbf0baee84

View File

@@ -107,19 +107,19 @@ static int ams_delta_led_resume(struct platform_device *dev)
static int ams_delta_led_probe(struct platform_device *pdev) static int ams_delta_led_probe(struct platform_device *pdev)
{ {
int i; int i, ret;
int ret;
for (i = ret = 0; ret >= 0 && i < ARRAY_SIZE(ams_delta_leds); i++) { for (i = 0; i < ARRAY_SIZE(ams_delta_leds); i++) {
ret = led_classdev_register(&pdev->dev, ret = led_classdev_register(&pdev->dev,
&ams_delta_leds[i].cdev); &ams_delta_leds[i].cdev);
if (ret < 0)
goto fail;
} }
if (ret < 0 && i > 1) { return 0;
for (i = i - 2; i >= 0; i--) fail:
while (--i >= 0)
led_classdev_unregister(&ams_delta_leds[i].cdev); led_classdev_unregister(&ams_delta_leds[i].cdev);
}
return ret; return ret;
} }
@@ -127,7 +127,7 @@ static int ams_delta_led_remove(struct platform_device *pdev)
{ {
int i; int i;
for (i = ARRAY_SIZE(ams_delta_leds) - 1; i >= 0; i--) for (i = 0; i < ARRAY_SIZE(ams_delta_leds); i--)
led_classdev_unregister(&ams_delta_leds[i].cdev); led_classdev_unregister(&ams_delta_leds[i].cdev);
return 0; return 0;