@@ -410,15 +410,6 @@ static int elan_start_multitouch(struct hid_device *hdev)
410
410
return 0 ;
411
411
}
412
412
413
- static enum led_brightness elan_mute_led_get_brigtness (struct led_classdev * led_cdev )
414
- {
415
- struct device * dev = led_cdev -> dev -> parent ;
416
- struct hid_device * hdev = to_hid_device (dev );
417
- struct elan_drvdata * drvdata = hid_get_drvdata (hdev );
418
-
419
- return drvdata -> mute_led_state ;
420
- }
421
-
422
413
static int elan_mute_led_set_brigtness (struct led_classdev * led_cdev ,
423
414
enum led_brightness value )
424
415
{
@@ -445,8 +436,9 @@ static int elan_mute_led_set_brigtness(struct led_classdev *led_cdev,
445
436
kfree (dmabuf );
446
437
447
438
if (ret != ELAN_LED_REPORT_SIZE ) {
448
- hid_err (hdev , "Failed to set mute led brightness: %d\n" , ret );
449
- return ret ;
439
+ if (ret != - ENODEV )
440
+ hid_err (hdev , "Failed to set mute led brightness: %d\n" , ret );
441
+ return ret < 0 ? ret : - EIO ;
450
442
}
451
443
452
444
drvdata -> mute_led_state = led_state ;
@@ -459,9 +451,10 @@ static int elan_init_mute_led(struct hid_device *hdev)
459
451
struct led_classdev * mute_led = & drvdata -> mute_led ;
460
452
461
453
mute_led -> name = "elan:red:mute" ;
462
- mute_led -> brightness_get = elan_mute_led_get_brigtness ;
454
+ mute_led -> default_trigger = "audio-mute" ;
463
455
mute_led -> brightness_set_blocking = elan_mute_led_set_brigtness ;
464
456
mute_led -> max_brightness = LED_ON ;
457
+ mute_led -> flags = LED_HW_PLUGGABLE ;
465
458
mute_led -> dev = & hdev -> dev ;
466
459
467
460
return devm_led_classdev_register (& hdev -> dev , mute_led );
0 commit comments