Browse Source

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>
Richard Purdie 16 years ago
parent
commit
fbf0baee84
1 changed files with 10 additions and 10 deletions
  1. 10 10
      drivers/leds/leds-ams-delta.c

+ 10 - 10
drivers/leds/leds-ams-delta.c

@@ -107,27 +107,27 @@ 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 ret;
+	int i, 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) {
-		for (i = i - 2; i >= 0; i--)
-			led_classdev_unregister(&ams_delta_leds[i].cdev);
-	}
-
-	return ret;
+	return 0;
+fail:
+	while (--i >= 0)
+		led_classdev_unregister(&ams_delta_leds[i].cdev);
+	return ret;	
 }
 }
 
 
 static int ams_delta_led_remove(struct platform_device *pdev)
 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;