@@ -410,15 +410,6 @@ static int elan_start_multitouch(struct hid_device *hdev)
410410 return 0 ;
411411}
412412
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-
422413static int elan_mute_led_set_brigtness (struct led_classdev * led_cdev ,
423414 enum led_brightness value )
424415{
@@ -445,8 +436,9 @@ static int elan_mute_led_set_brigtness(struct led_classdev *led_cdev,
445436 kfree (dmabuf );
446437
447438 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 ;
450442 }
451443
452444 drvdata -> mute_led_state = led_state ;
@@ -459,9 +451,10 @@ static int elan_init_mute_led(struct hid_device *hdev)
459451 struct led_classdev * mute_led = & drvdata -> mute_led ;
460452
461453 mute_led -> name = "elan:red:mute" ;
462- mute_led -> brightness_get = elan_mute_led_get_brigtness ;
454+ mute_led -> default_trigger = "audio-mute" ;
463455 mute_led -> brightness_set_blocking = elan_mute_led_set_brigtness ;
464456 mute_led -> max_brightness = LED_ON ;
457+ mute_led -> flags = LED_HW_PLUGGABLE ;
465458 mute_led -> dev = & hdev -> dev ;
466459
467460 return devm_led_classdev_register (& hdev -> dev , mute_led );
0 commit comments