
Takashi Iwai tiwai@suse.de [2015-04-28 12:30:19 +0200]:
Then it's likely an issue in thinkpad_acpi.c. It implies that the driver couldn't get SSMS acpi handle.
Raymond had pointed this out earlier as a (the?) patch that brought the static tp_led_table led_tables[] into existence:
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/driver...
To my eyes, the table appears to be as it was in that patch:
--------------------------------------------------------------------------- static struct tp_led_table led_tables[] = { [TPACPI_LED_MUTE] = { .name = "SSMS", .on_value = 1, .off_value = 0, }, [TPACPI_LED_MICMUTE] = { .name = "MMTS", .on_value = 2, .off_value = 0, }, }; ---------------------------------------------------------------------------
thinkpad_acpi.h defines this enum and func:
--------------------------------------------------------------------------- /* These two functions return 0 if success, or negative error code (e g -ENODEV if no led present) */
enum { TPACPI_LED_MUTE, TPACPI_LED_MICMUTE, TPACPI_LED_MAX, };
int tpacpi_led_set(int whichled, bool on); ---------------------------------------------------------------------------
although I don't understand why the comment says "these TWO functions..." since there's only one.
How to learn more about the source of LED_MUTE's evident non-existence in my build? I guess I don't understand how the above "SSMS" entry in the table is non-existent? Is there a function-pointer table/hash in which "SSMS" is further used as a key?
For HD-audio, you need to unload the codec drivers at first, e.g. [ ... ]
Thanks, that will help a lot, as the machine is in constant use and reboots are painful.