hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/leds/leds-lm3642.c
....@@ -1,11 +1,7 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Simple driver for Texas Instruments LM3642 LED Flash driver chip
34 * Copyright (C) 2012 Texas Instruments
4
-*
5
-* This program is free software; you can redistribute it and/or modify
6
-* it under the terms of the GNU General Public License version 2 as
7
-* published by the Free Software Foundation.
8
-*
95 */
106 #include <linux/module.h>
117 #include <linux/delay.h>
....@@ -110,7 +106,7 @@
110106 ret = regmap_read(chip->regmap, REG_FLAG, &chip->last_flag);
111107 if (ret < 0) {
112108 dev_err(chip->dev, "Failed to read REG_FLAG Register\n");
113
- goto out;
109
+ return ret;
114110 }
115111
116112 if (chip->last_flag)
....@@ -150,11 +146,11 @@
150146 break;
151147
152148 default:
153
- return ret;
149
+ return -EINVAL;
154150 }
155151 if (ret < 0) {
156152 dev_err(chip->dev, "Failed to write REG_I_CTRL Register\n");
157
- goto out;
153
+ return ret;
158154 }
159155
160156 if (chip->tx_pin)
....@@ -163,13 +159,12 @@
163159 ret = regmap_update_bits(chip->regmap, REG_ENABLE,
164160 MODE_BITS_MASK << MODE_BITS_SHIFT,
165161 opmode << MODE_BITS_SHIFT);
166
-out:
167162 return ret;
168163 }
169164
170165 /* torch */
171166
172
-/* torch pin config for lm3642*/
167
+/* torch pin config for lm3642 */
173168 static ssize_t lm3642_torch_pin_store(struct device *dev,
174169 struct device_attribute *attr,
175170 const char *buf, size_t size)
....@@ -182,7 +177,7 @@
182177
183178 ret = kstrtouint(buf, 10, &state);
184179 if (ret)
185
- goto out_strtoint;
180
+ return ret;
186181 if (state != 0)
187182 state = 0x01 << TORCH_PIN_EN_SHIFT;
188183
....@@ -190,16 +185,12 @@
190185 ret = regmap_update_bits(chip->regmap, REG_ENABLE,
191186 TORCH_PIN_EN_MASK << TORCH_PIN_EN_SHIFT,
192187 state);
193
- if (ret < 0)
194
- goto out;
188
+ if (ret < 0) {
189
+ dev_err(chip->dev, "%s:i2c access fail to register\n", __func__);
190
+ return ret;
191
+ }
195192
196193 return size;
197
-out:
198
- dev_err(chip->dev, "%s:i2c access fail to register\n", __func__);
199
- return ret;
200
-out_strtoint:
201
- dev_err(chip->dev, "%s: fail to change str to int\n", __func__);
202
- return ret;
203194 }
204195
205196 static DEVICE_ATTR(torch_pin, S_IWUSR, NULL, lm3642_torch_pin_store);
....@@ -233,7 +224,7 @@
233224
234225 ret = kstrtouint(buf, 10, &state);
235226 if (ret)
236
- goto out_strtoint;
227
+ return ret;
237228 if (state != 0)
238229 state = 0x01 << STROBE_PIN_EN_SHIFT;
239230
....@@ -241,16 +232,12 @@
241232 ret = regmap_update_bits(chip->regmap, REG_ENABLE,
242233 STROBE_PIN_EN_MASK << STROBE_PIN_EN_SHIFT,
243234 state);
244
- if (ret < 0)
245
- goto out;
235
+ if (ret < 0) {
236
+ dev_err(chip->dev, "%s:i2c access fail to register\n", __func__);
237
+ return ret;
238
+ }
246239
247240 return size;
248
-out:
249
- dev_err(chip->dev, "%s:i2c access fail to register\n", __func__);
250
- return ret;
251
-out_strtoint:
252
- dev_err(chip->dev, "%s: fail to change str to int\n", __func__);
253
- return ret;
254241 }
255242
256243 static DEVICE_ATTR(strobe_pin, S_IWUSR, NULL, lm3642_strobe_pin_store);
....@@ -353,8 +340,7 @@
353340 chip->cdev_flash.brightness_set_blocking = lm3642_strobe_brightness_set;
354341 chip->cdev_flash.default_trigger = "flash";
355342 chip->cdev_flash.groups = lm3642_flash_groups,
356
- err = led_classdev_register((struct device *)
357
- &client->dev, &chip->cdev_flash);
343
+ err = led_classdev_register(&client->dev, &chip->cdev_flash);
358344 if (err < 0) {
359345 dev_err(chip->dev, "failed to register flash\n");
360346 goto err_out;
....@@ -366,8 +352,7 @@
366352 chip->cdev_torch.brightness_set_blocking = lm3642_torch_brightness_set;
367353 chip->cdev_torch.default_trigger = "torch";
368354 chip->cdev_torch.groups = lm3642_torch_groups,
369
- err = led_classdev_register((struct device *)
370
- &client->dev, &chip->cdev_torch);
355
+ err = led_classdev_register(&client->dev, &chip->cdev_torch);
371356 if (err < 0) {
372357 dev_err(chip->dev, "failed to register torch\n");
373358 goto err_create_torch_file;
....@@ -378,8 +363,7 @@
378363 chip->cdev_indicator.max_brightness = 8;
379364 chip->cdev_indicator.brightness_set_blocking =
380365 lm3642_indicator_brightness_set;
381
- err = led_classdev_register((struct device *)
382
- &client->dev, &chip->cdev_indicator);
366
+ err = led_classdev_register(&client->dev, &chip->cdev_indicator);
383367 if (err < 0) {
384368 dev_err(chip->dev, "failed to register indicator\n");
385369 goto err_create_indicator_file;