diff options
Diffstat (limited to 'drivers/hid/hid-elan.c')
| -rw-r--r-- | drivers/hid/hid-elan.c | 17 | 
1 files changed, 5 insertions, 12 deletions
| diff --git a/drivers/hid/hid-elan.c b/drivers/hid/hid-elan.c index dae193749d44..021049805bb7 100644 --- a/drivers/hid/hid-elan.c +++ b/drivers/hid/hid-elan.c @@ -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); | 
