hid: thingm: factor out duplicated code to thingm_init_led
PATCH 1/2 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 <[email protected]>
--- drivers/hid/hid-thingm.c | 43 +++++++++++++++---------------------------- 1 file changed, 15 insertions(+), 28 deletions(-)
drivers/hid/hid-thingm.c +15 -28
@@ -157,48 +157,35 @@ static int thingm_led_set(struct led_classdev *ldev,return ret; } +static int thingm_init_led (struct thingm_led *led,const char *color_name, +struct thingm_rgb *rgb,int minor) +{ +snprintf (led->name,sizeof (led->name),"thingm%d:%s:led%d" , + minor, color_name, rgb->num); + led->ldev.name = led->name; + led->ldev.max_brightness =255 ; + led->ldev.brightness_set_blocking = thingm_led_set; + led->rgb = rgb; +return devm_led_classdev_register (&rgb->tdev->hdev->dev, &led->ldev); +} +static int thingm_init_rgb (struct thingm_rgb *rgb) {const int minor = ((struct hidraw *) rgb->tdev->hdev->hidraw)->minor;int err;/* Register the red diode */ -snprintf (rgb->red.name,sizeof (rgb->red.name), -"thingm%d:red:led%d" , minor, rgb->num); - rgb->red.ldev.name = rgb->red.name; - rgb->red.ldev.max_brightness =255 ; - rgb->red.ldev.brightness_set_blocking = thingm_led_set; - rgb->red.rgb = rgb; - - err =devm_led_classdev_register (&rgb->tdev->hdev->dev, - &rgb->red.ldev); + err =thingm_init_led (&rgb->red,"red" , rgb, minor);if (err)return err;/* Register the green diode */ -snprintf (rgb->green.name,sizeof (rgb->green.name), -"thingm%d:green:led%d" , minor, rgb->num); - rgb->green.ldev.name = rgb->green.name; - rgb->green.ldev.max_brightness =255 ; - rgb->green.ldev.brightness_set_blocking = thingm_led_set; - rgb->green.rgb = rgb; - - err =devm_led_classdev_register (&rgb->tdev->hdev->dev, - &rgb->green.ldev); + err =thingm_init_led (&rgb->green,"green" , rgb, minor);if (err)return err;/* Register the blue diode */ -snprintf (rgb->blue.name,sizeof (rgb->blue.name), -"thingm%d:blue:led%d" , minor, rgb->num); - rgb->blue.ldev.name = rgb->blue.name; - rgb->blue.ldev.max_brightness =255 ; - rgb->blue.ldev.brightness_set_blocking = thingm_led_set; - rgb->blue.rgb = rgb; - - err =devm_led_classdev_register (&rgb->tdev->hdev->dev, - &rgb->blue.ldev); -return err; +return thingm_init_led (&rgb->blue,"blue" , rgb, minor); }static int thingm_probe (struct hid_device *hdev,const struct hid_device_id *id)
Signature · 1 line
2.8.0
Quoted 4 lines · Heiner Kallweit
Simplify
thingm_init_rgbby factoring out duplicated code tothingm_init_led.Signed-off-by Heiner Kallweit <[email protected]>
Both patches are:
Reviewed-by Benjamin Tissoires <[email protected]>
Cheers,
Benjamin
Quoted 76 lines
--- drivers/hid/hid-thingm.c | 43 +++++++++++++++---------------------------- 1 file changed, 15 insertions(+), 28 deletions(-)drivers/hid/hid-thingm.c +15
-28@@ -157,48 +157,35 @@ static int thingm_led_set(struct led_classdev *ldev,return ret; } +static int thingm_init_led (struct thingm_led *led,const char *color_name, +struct thingm_rgb *rgb,int minor) +{ +snprintf (led->name,sizeof (led->name),"thingm%d:%s:led%d" , + minor, color_name, rgb->num); + led->ldev.name = led->name; + led->ldev.max_brightness =255 ; + led->ldev.brightness_set_blocking = thingm_led_set; + led->rgb = rgb; +return devm_led_classdev_register (&rgb->tdev->hdev->dev, &led->ldev); +} +static int thingm_init_rgb (struct thingm_rgb *rgb) {const int minor = ((struct hidraw *) rgb->tdev->hdev->hidraw)->minor;int err;/* Register the red diode */ -snprintf (rgb->red.name,sizeof (rgb->red.name), -"thingm%d:red:led%d" , minor, rgb->num); - rgb->red.ldev.name = rgb->red.name; - rgb->red.ldev.max_brightness =255 ; - rgb->red.ldev.brightness_set_blocking = thingm_led_set; - rgb->red.rgb = rgb; - - err =devm_led_classdev_register (&rgb->tdev->hdev->dev, - &rgb->red.ldev); + err =thingm_init_led (&rgb->red,"red" , rgb, minor);if (err)return err;/* Register the green diode */ -snprintf (rgb->green.name,sizeof (rgb->green.name), -"thingm%d:green:led%d" , minor, rgb->num); - rgb->green.ldev.name = rgb->green.name; - rgb->green.ldev.max_brightness =255 ; - rgb->green.ldev.brightness_set_blocking = thingm_led_set; - rgb->green.rgb = rgb; - - err =devm_led_classdev_register (&rgb->tdev->hdev->dev, - &rgb->green.ldev); + err =thingm_init_led (&rgb->green,"green" , rgb, minor);if (err)return err;/* Register the blue diode */ -snprintf (rgb->blue.name,sizeof (rgb->blue.name), -"thingm%d:blue:led%d" , minor, rgb->num); - rgb->blue.ldev.name = rgb->blue.name; - rgb->blue.ldev.max_brightness =255 ; - rgb->blue.ldev.brightness_set_blocking = thingm_led_set; - rgb->blue.rgb = rgb; - - err =devm_led_classdev_register (&rgb->tdev->hdev->dev, - &rgb->blue.ldev); -return err; +return thingm_init_led (&rgb->blue,"blue" , rgb, minor); }static int thingm_probe (struct hid_device *hdev,const struct hid_device_id *id)Signature · 1 line
2.8.0
Jiri Kosina
maintainerQuoted 4 lines · Heiner Kallweit
Simplify
thingm_init_rgbby factoring out duplicated code tothingm_init_led.Signed-off-by Heiner Kallweit <[email protected]>
Both patches applied to for-4.7/thingm.
Signature · 2 lines
Jiri Kosina SUSE Labs