Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

leds: triggers: Add helper led_match_default_trigger

Avoid code duplication and factor out common functionality to new
helper led_match_default_trigger().

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/d78eef6f-c18c-4546-b83e-6d1890849154@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>

authored by

Heiner Kallweit and committed by
Lee Jones
9225333e e838a5a1

+17 -12
+17 -12
drivers/leds/led-triggers.c
··· 247 247 } 248 248 EXPORT_SYMBOL_GPL(led_trigger_remove); 249 249 250 + static bool led_match_default_trigger(struct led_classdev *led_cdev, 251 + struct led_trigger *trig) 252 + { 253 + if (!strcmp(led_cdev->default_trigger, trig->name) && 254 + trigger_relevant(led_cdev, trig)) { 255 + led_cdev->flags |= LED_INIT_DEFAULT_TRIGGER; 256 + led_trigger_set(led_cdev, trig); 257 + return true; 258 + } 259 + 260 + return false; 261 + } 262 + 250 263 void led_trigger_set_default(struct led_classdev *led_cdev) 251 264 { 252 265 struct led_trigger *trig; ··· 271 258 down_read(&triggers_list_lock); 272 259 down_write(&led_cdev->trigger_lock); 273 260 list_for_each_entry(trig, &trigger_list, next_trig) { 274 - if (!strcmp(led_cdev->default_trigger, trig->name) && 275 - trigger_relevant(led_cdev, trig)) { 276 - found = true; 277 - led_cdev->flags |= LED_INIT_DEFAULT_TRIGGER; 278 - led_trigger_set(led_cdev, trig); 261 + found = led_match_default_trigger(led_cdev, trig); 262 + if (found) 279 263 break; 280 - } 281 264 } 282 265 up_write(&led_cdev->trigger_lock); 283 266 up_read(&triggers_list_lock); ··· 315 306 down_read(&leds_list_lock); 316 307 list_for_each_entry(led_cdev, &leds_list, node) { 317 308 down_write(&led_cdev->trigger_lock); 318 - if (!led_cdev->trigger && led_cdev->default_trigger && 319 - !strcmp(led_cdev->default_trigger, trig->name) && 320 - trigger_relevant(led_cdev, trig)) { 321 - led_cdev->flags |= LED_INIT_DEFAULT_TRIGGER; 322 - led_trigger_set(led_cdev, trig); 323 - } 309 + if (!led_cdev->trigger && led_cdev->default_trigger) 310 + led_match_default_trigger(led_cdev, trig); 324 311 up_write(&led_cdev->trigger_lock); 325 312 } 326 313 up_read(&leds_list_lock);