* [PATCH 1/3] HID: elan: Silence mute LED errors being logged when the device is unplugged
@ 2021-02-20 16:32 ` Hans de Goede
0 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2021-02-20 16:32 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires
Cc: Hans de Goede, alsa-devel, linux-leds, linux-input
Being integrated into an USB keyboard-dock the mute LED can go away
at any time, leading to the following errors:
[ 918.667671] elan 0003:04F3:0755.0002: Failed to set mute led brightness: -19
[ 918.667737] leds elan:red:mute: Setting an LED's brightness failed (-19)
Fix this by making the following changes:
1. Don't log an error from elan_mute_led_set_brigtness() when ret == ENODEV
2. Set the LED_HW_PLUGGABLE flag on the mute LED led_classdev
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/hid/hid-elan.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/hid/hid-elan.c b/drivers/hid/hid-elan.c
index dae193749d44..71740988a3f6 100644
--- a/drivers/hid/hid-elan.c
+++ b/drivers/hid/hid-elan.c
@@ -445,7 +445,8 @@ 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);
+ if (ret != -ENODEV)
+ hid_err(hdev, "Failed to set mute led brightness: %d\n", ret);
return ret;
}
@@ -462,6 +463,7 @@ static int elan_init_mute_led(struct hid_device *hdev)
mute_led->brightness_get = elan_mute_led_get_brigtness;
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);
--
2.30.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 1/3] HID: elan: Silence mute LED errors being logged when the device is unplugged
@ 2021-02-20 16:32 ` Hans de Goede
0 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2021-02-20 16:32 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires
Cc: Hans de Goede, linux-input, linux-leds, alsa-devel
Being integrated into an USB keyboard-dock the mute LED can go away
at any time, leading to the following errors:
[ 918.667671] elan 0003:04F3:0755.0002: Failed to set mute led brightness: -19
[ 918.667737] leds elan:red:mute: Setting an LED's brightness failed (-19)
Fix this by making the following changes:
1. Don't log an error from elan_mute_led_set_brigtness() when ret == ENODEV
2. Set the LED_HW_PLUGGABLE flag on the mute LED led_classdev
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/hid/hid-elan.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/hid/hid-elan.c b/drivers/hid/hid-elan.c
index dae193749d44..71740988a3f6 100644
--- a/drivers/hid/hid-elan.c
+++ b/drivers/hid/hid-elan.c
@@ -445,7 +445,8 @@ 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);
+ if (ret != -ENODEV)
+ hid_err(hdev, "Failed to set mute led brightness: %d\n", ret);
return ret;
}
@@ -462,6 +463,7 @@ static int elan_init_mute_led(struct hid_device *hdev)
mute_led->brightness_get = elan_mute_led_get_brigtness;
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);
--
2.30.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] HID: elan: Set default_trigger-s for the mute LED
2021-02-20 16:32 ` Hans de Goede
@ 2021-02-20 16:32 ` Hans de Goede
-1 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2021-02-20 16:32 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires
Cc: Hans de Goede, alsa-devel, linux-leds, linux-input
The mute LED should be automatically turned on/off based
on the audio-cards mixer settings.
Add the standardized default-trigger name for this, so that the alsa
code can turn the LED on/off as appropriate (on supported audio cards).
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/hid/hid-elan.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/hid/hid-elan.c b/drivers/hid/hid-elan.c
index 71740988a3f6..6958649ece22 100644
--- a/drivers/hid/hid-elan.c
+++ b/drivers/hid/hid-elan.c
@@ -460,6 +460,7 @@ 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->default_trigger = "audio-mute";
mute_led->brightness_get = elan_mute_led_get_brigtness;
mute_led->brightness_set_blocking = elan_mute_led_set_brigtness;
mute_led->max_brightness = LED_ON;
--
2.30.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/3] HID: elan: Set default_trigger-s for the mute LED
@ 2021-02-20 16:32 ` Hans de Goede
0 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2021-02-20 16:32 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires
Cc: Hans de Goede, linux-input, linux-leds, alsa-devel
The mute LED should be automatically turned on/off based
on the audio-cards mixer settings.
Add the standardized default-trigger name for this, so that the alsa
code can turn the LED on/off as appropriate (on supported audio cards).
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/hid/hid-elan.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/hid/hid-elan.c b/drivers/hid/hid-elan.c
index 71740988a3f6..6958649ece22 100644
--- a/drivers/hid/hid-elan.c
+++ b/drivers/hid/hid-elan.c
@@ -460,6 +460,7 @@ 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->default_trigger = "audio-mute";
mute_led->brightness_get = elan_mute_led_get_brigtness;
mute_led->brightness_set_blocking = elan_mute_led_set_brigtness;
mute_led->max_brightness = LED_ON;
--
2.30.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] HID: elan: Remove elan_mute_led_get_brigtness()
2021-02-20 16:32 ` Hans de Goede
@ 2021-02-20 16:32 ` Hans de Goede
-1 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2021-02-20 16:32 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires
Cc: Hans de Goede, alsa-devel, linux-leds, linux-input
The led_classdev already contains a cached value of the last set
brightness, the brightness_get callback is only meant for LED drivers
which can read back the actual / current brightness from the hardware.
Since elan_mute_led_get_brigtness() just returns the last set value
it does not add any functionality, so we can just remove it.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/hid/hid-elan.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/drivers/hid/hid-elan.c b/drivers/hid/hid-elan.c
index 6958649ece22..f1ac0443ee67 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)
{
@@ -461,7 +452,6 @@ static int elan_init_mute_led(struct hid_device *hdev)
mute_led->name = "elan:red:mute";
mute_led->default_trigger = "audio-mute";
- mute_led->brightness_get = elan_mute_led_get_brigtness;
mute_led->brightness_set_blocking = elan_mute_led_set_brigtness;
mute_led->max_brightness = LED_ON;
mute_led->flags = LED_HW_PLUGGABLE;
--
2.30.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/3] HID: elan: Remove elan_mute_led_get_brigtness()
@ 2021-02-20 16:32 ` Hans de Goede
0 siblings, 0 replies; 9+ messages in thread
From: Hans de Goede @ 2021-02-20 16:32 UTC (permalink / raw)
To: Jiri Kosina, Benjamin Tissoires
Cc: Hans de Goede, linux-input, linux-leds, alsa-devel
The led_classdev already contains a cached value of the last set
brightness, the brightness_get callback is only meant for LED drivers
which can read back the actual / current brightness from the hardware.
Since elan_mute_led_get_brigtness() just returns the last set value
it does not add any functionality, so we can just remove it.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/hid/hid-elan.c | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/drivers/hid/hid-elan.c b/drivers/hid/hid-elan.c
index 6958649ece22..f1ac0443ee67 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)
{
@@ -461,7 +452,6 @@ static int elan_init_mute_led(struct hid_device *hdev)
mute_led->name = "elan:red:mute";
mute_led->default_trigger = "audio-mute";
- mute_led->brightness_get = elan_mute_led_get_brigtness;
mute_led->brightness_set_blocking = elan_mute_led_set_brigtness;
mute_led->max_brightness = LED_ON;
mute_led->flags = LED_HW_PLUGGABLE;
--
2.30.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] HID: elan: Set default_trigger-s for the mute LED
2021-02-20 16:32 ` Hans de Goede
(?)
@ 2021-02-21 1:45 ` Marek Behún
-1 siblings, 0 replies; 9+ messages in thread
From: Marek Behún @ 2021-02-21 1:45 UTC (permalink / raw)
To: Hans de Goede
Cc: Jiri Kosina, Benjamin Tissoires, linux-input, linux-leds,
alsa-devel
Again I would use
... Set default_triggers for ...
Reviewed-by: Marek Behún <kabel@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] HID: elan: Silence mute LED errors being logged when the device is unplugged
2021-02-20 16:32 ` Hans de Goede
` (2 preceding siblings ...)
(?)
@ 2021-02-21 1:46 ` Marek Behún
-1 siblings, 0 replies; 9+ messages in thread
From: Marek Behún @ 2021-02-21 1:46 UTC (permalink / raw)
To: Hans de Goede
Cc: Jiri Kosina, Benjamin Tissoires, linux-input, linux-leds,
alsa-devel
On Sat, 20 Feb 2021 17:32:09 +0100
Hans de Goede <hdegoede@redhat.com> wrote:
> 1. Don't log an error from elan_mute_led_set_brigtness() when ret == ENODEV
ret == -ENODEV
Otherwise
Reviewed-by: Marek Behún <kabel@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 3/3] HID: elan: Remove elan_mute_led_get_brigtness()
2021-02-20 16:32 ` Hans de Goede
(?)
@ 2021-02-21 1:47 ` Marek Behún
-1 siblings, 0 replies; 9+ messages in thread
From: Marek Behún @ 2021-02-21 1:47 UTC (permalink / raw)
To: Hans de Goede
Cc: Jiri Kosina, Benjamin Tissoires, linux-input, linux-leds,
alsa-devel
Reviewed-by: Marek Behún <kabel@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-02-21 1:48 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-02-20 16:32 [PATCH 1/3] HID: elan: Silence mute LED errors being logged when the device is unplugged Hans de Goede
2021-02-20 16:32 ` Hans de Goede
2021-02-20 16:32 ` [PATCH 2/3] HID: elan: Set default_trigger-s for the mute LED Hans de Goede
2021-02-20 16:32 ` Hans de Goede
2021-02-21 1:45 ` Marek Behún
2021-02-20 16:32 ` [PATCH 3/3] HID: elan: Remove elan_mute_led_get_brigtness() Hans de Goede
2021-02-20 16:32 ` Hans de Goede
2021-02-21 1:47 ` Marek Behún
2021-02-21 1:46 ` [PATCH 1/3] HID: elan: Silence mute LED errors being logged when the device is unplugged Marek Behún
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.