[alsa-devel] ALC268 - Driving mute led with GPIO
Hi,
We have a laptop here (a local brand) which has a mute button with a LED. Currently the mute button works correctly but the led is non-functional.
I've played through hda-analyzer and found out that it's enabled when you enable gpio3 and click out_dir. Clicking out_dir again and again switches it on and off.
There's a mute led stuff in patch_sigmatel, sigmatel_spec has gpio_led and gpio_polarity information but alc_spec doesn't have.
How should we hook/patch that information into the codec?
I'll try to send the alsa-info output tomorrow.
Thanks. Ozan
At Thu, 04 Feb 2010 18:44:48 +0200, Ozan Çağlayan wrote:
Hi,
We have a laptop here (a local brand) which has a mute button with a LED. Currently the mute button works correctly but the led is non-functional.
I've played through hda-analyzer and found out that it's enabled when you enable gpio3 and click out_dir. Clicking out_dir again and again switches it on and off.
There's a mute led stuff in patch_sigmatel, sigmatel_spec has gpio_led and gpio_polarity information but alc_spec doesn't have.
How should we hook/patch that information into the codec?
This can be rather controlled in a different way, such as GPIO.
For example, if it's a HP machine, usually one of GPIO line corresponds to the mute LED (sometimes it mutes the speaker via BIOS).
Takashi
Takashi Iwai wrote:
At Thu, 04 Feb 2010 18:44:48 +0200,
This can be rather controlled in a different way, such as GPIO.
For example, if it's a HP machine, usually one of GPIO line corresponds to the mute LED (sometimes it mutes the speaker via BIOS).
Um, that was what I thought and tried to ask too :)
So how should I proceed to make it work upon mutes? There are 4 GPIO lines and the last one seems to control the mute LED but it doesn't mute the speaker.
Can it be done asynchronously with a callback which will send 1/0 to the GPIO channel on every mute/unmute?
Or should that be done synchronously in the code where the mute/unmute verbs are executed?
There are currently mute LED handlings only in sigmatel for some HP laptops which parses DMI data for the exact GPIO channel.
If there are any other examples in the ALSA stack, that would be helpful too.
Regards,
At Thu, 04 Feb 2010 19:04:50 +0200, Ozan Çağlayan wrote:
Takashi Iwai wrote:
At Thu, 04 Feb 2010 18:44:48 +0200,
This can be rather controlled in a different way, such as GPIO.
For example, if it's a HP machine, usually one of GPIO line corresponds to the mute LED (sometimes it mutes the speaker via BIOS).
Um, that was what I thought and tried to ask too :)
So how should I proceed to make it work upon mutes? There are 4 GPIO lines and the last one seems to control the mute LED but it doesn't mute the speaker.
Can it be done asynchronously with a callback which will send 1/0 to the GPIO channel on every mute/unmute?
Or should that be done synchronously in the code where the mute/unmute verbs are executed?
Simply depending on the implementation. Either change the control put callback to toggle the GPIO in sync with the mute state, or use power check callback like in patch_sigmatel.c.
There are currently mute LED handlings only in sigmatel for some HP laptops which parses DMI data for the exact GPIO channel.
A similar thing is found for AD198x HP laptops.
Takashi
participants (2)
-
Ozan Çağlayan
-
Takashi Iwai