Merge tag 'leds-5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel...
[linux-2.6-microblaze.git] / drivers / hid / hid-elan.c
index dae1937..0210498 100644 (file)
@@ -410,15 +410,6 @@ static int elan_start_multitouch(struct hid_device *hdev)
        return 0;
 }
 
-static enum led_brightness elan_mute_led_get_brigtness(struct led_classdev *led_cdev)
-{
-       struct device *dev = led_cdev->dev->parent;
-       struct hid_device *hdev = to_hid_device(dev);
-       struct elan_drvdata *drvdata = hid_get_drvdata(hdev);
-
-       return drvdata->mute_led_state;
-}
-
 static int elan_mute_led_set_brigtness(struct led_classdev *led_cdev,
                                       enum led_brightness value)
 {
@@ -445,8 +436,9 @@ static int elan_mute_led_set_brigtness(struct led_classdev *led_cdev,
        kfree(dmabuf);
 
        if (ret != ELAN_LED_REPORT_SIZE) {
-               hid_err(hdev, "Failed to set mute led brightness: %d\n", ret);
-               return ret;
+               if (ret != -ENODEV)
+                       hid_err(hdev, "Failed to set mute led brightness: %d\n", ret);
+               return ret < 0 ? ret : -EIO;
        }
 
        drvdata->mute_led_state = led_state;
@@ -459,9 +451,10 @@ static int elan_init_mute_led(struct hid_device *hdev)
        struct led_classdev *mute_led = &drvdata->mute_led;
 
        mute_led->name = "elan:red:mute";
-       mute_led->brightness_get = elan_mute_led_get_brigtness;
+       mute_led->default_trigger = "audio-mute";
        mute_led->brightness_set_blocking = elan_mute_led_set_brigtness;
        mute_led->max_brightness = LED_ON;
+       mute_led->flags = LED_HW_PLUGGABLE;
        mute_led->dev = &hdev->dev;
 
        return devm_led_classdev_register(&hdev->dev, mute_led);