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>

+10 -10
+10 -10
drivers/leds/leds-ams-delta.c
··· 107 108 static int ams_delta_led_probe(struct platform_device *pdev) 109 { 110 - int i; 111 - int ret; 112 113 - for (i = ret = 0; ret >= 0 && i < ARRAY_SIZE(ams_delta_leds); i++) { 114 ret = led_classdev_register(&pdev->dev, 115 &ams_delta_leds[i].cdev); 116 } 117 118 - if (ret < 0 && i > 1) { 119 - for (i = i - 2; i >= 0; i--) 120 - led_classdev_unregister(&ams_delta_leds[i].cdev); 121 - } 122 - 123 - return ret; 124 } 125 126 static int ams_delta_led_remove(struct platform_device *pdev) 127 { 128 int i; 129 130 - for (i = ARRAY_SIZE(ams_delta_leds) - 1; i >= 0; i--) 131 led_classdev_unregister(&ams_delta_leds[i].cdev); 132 133 return 0;
··· 107 108 static int ams_delta_led_probe(struct platform_device *pdev) 109 { 110 + int i, ret; 111 112 + for (i = 0; i < ARRAY_SIZE(ams_delta_leds); i++) { 113 ret = led_classdev_register(&pdev->dev, 114 &ams_delta_leds[i].cdev); 115 + if (ret < 0) 116 + goto fail; 117 } 118 119 + return 0; 120 + fail: 121 + while (--i >= 0) 122 + led_classdev_unregister(&ams_delta_leds[i].cdev); 123 + return ret; 124 } 125 126 static int ams_delta_led_remove(struct platform_device *pdev) 127 { 128 int i; 129 130 + for (i = 0; i < ARRAY_SIZE(ams_delta_leds); i--) 131 led_classdev_unregister(&ams_delta_leds[i].cdev); 132 133 return 0;