aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2016-04-17 16:46:59 -0400
committerJiri Kosina <jkosina@suse.cz>2016-04-18 07:01:38 -0400
commit91540ccc9c4554c8bbb8b8a1be0b255a378b6475 (patch)
tree948908cf1400610464cfd5b2a7aafe3c87605707
parent1c74a7f812b135d3df41d7c3671b647aed6467bf (diff)
HID: thingm: factor out duplicated code to thingm_init_led
Simplify thingm_init_rgb by factoring out duplicated code to thingm_init_led. Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/hid-thingm.c43
1 files changed, 15 insertions, 28 deletions
diff --git a/drivers/hid/hid-thingm.c b/drivers/hid/hid-thingm.c
index 847a497cd472..a90463ecd75c 100644
--- a/drivers/hid/hid-thingm.c
+++ b/drivers/hid/hid-thingm.c
@@ -157,48 +157,35 @@ static int thingm_led_set(struct led_classdev *ldev,
157 return ret; 157 return ret;
158} 158}
159 159
160static int thingm_init_led(struct thingm_led *led, const char *color_name,
161 struct thingm_rgb *rgb, int minor)
162{
163 snprintf(led->name, sizeof(led->name), "thingm%d:%s:led%d",
164 minor, color_name, rgb->num);
165 led->ldev.name = led->name;
166 led->ldev.max_brightness = 255;
167 led->ldev.brightness_set_blocking = thingm_led_set;
168 led->rgb = rgb;
169 return devm_led_classdev_register(&rgb->tdev->hdev->dev, &led->ldev);
170}
171
160static int thingm_init_rgb(struct thingm_rgb *rgb) 172static int thingm_init_rgb(struct thingm_rgb *rgb)
161{ 173{
162 const int minor = ((struct hidraw *) rgb->tdev->hdev->hidraw)->minor; 174 const int minor = ((struct hidraw *) rgb->tdev->hdev->hidraw)->minor;
163 int err; 175 int err;
164 176
165 /* Register the red diode */ 177 /* Register the red diode */
166 snprintf(rgb->red.name, sizeof(rgb->red.name), 178 err = thingm_init_led(&rgb->red, "red", rgb, minor);
167 "thingm%d:red:led%d", minor, rgb->num);
168 rgb->red.ldev.name = rgb->red.name;
169 rgb->red.ldev.max_brightness = 255;
170 rgb->red.ldev.brightness_set_blocking = thingm_led_set;
171 rgb->red.rgb = rgb;
172
173 err = devm_led_classdev_register(&rgb->tdev->hdev->dev,
174 &rgb->red.ldev);
175 if (err) 179 if (err)
176 return err; 180 return err;
177 181
178 /* Register the green diode */ 182 /* Register the green diode */
179 snprintf(rgb->green.name, sizeof(rgb->green.name), 183 err = thingm_init_led(&rgb->green, "green", rgb, minor);
180 "thingm%d:green:led%d", minor, rgb->num);
181 rgb->green.ldev.name = rgb->green.name;
182 rgb->green.ldev.max_brightness = 255;
183 rgb->green.ldev.brightness_set_blocking = thingm_led_set;
184 rgb->green.rgb = rgb;
185
186 err = devm_led_classdev_register(&rgb->tdev->hdev->dev,
187 &rgb->green.ldev);
188 if (err) 184 if (err)
189 return err; 185 return err;
190 186
191 /* Register the blue diode */ 187 /* Register the blue diode */
192 snprintf(rgb->blue.name, sizeof(rgb->blue.name), 188 return thingm_init_led(&rgb->blue, "blue", rgb, minor);
193 "thingm%d:blue:led%d", minor, rgb->num);
194 rgb->blue.ldev.name = rgb->blue.name;
195 rgb->blue.ldev.max_brightness = 255;
196 rgb->blue.ldev.brightness_set_blocking = thingm_led_set;
197 rgb->blue.rgb = rgb;
198
199 err = devm_led_classdev_register(&rgb->tdev->hdev->dev,
200 &rgb->blue.ldev);
201 return err;
202} 189}
203 190
204static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id) 191static int thingm_probe(struct hid_device *hdev, const struct hid_device_id *id)