From mboxrd@z Thu Jan 1 00:00:00 1970 From: Glenn Golden Subject: Re: [pulseaudio-discuss] ThinkPad T-510 audio output mute LED non-workingness Date: Tue, 28 Apr 2015 05:39:48 -0600 Message-ID: <20150428113948.GN550@huh.zplane.com> References: <20150426152012.GE550@huh.zplane.com> <20150427135859.GI550@huh.zplane.com> <20150428000206.GK550@huh.zplane.com> <20150428101645.GM550@huh.zplane.com> Reply-To: gdg@zplane.com Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from smtp.indra.com (smtp.indra.com [209.169.0.20]) by alsa0.perex.cz (Postfix) with ESMTP id C10282605A3 for ; Tue, 28 Apr 2015 13:39:58 +0200 (CEST) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Takashi Iwai Cc: alsa-devel@alsa-project.org, Alex Hung , Henrique de Moraes Holschuh , Raymond Yau , bruno.mueller@gmail.com, David Henningsson List-Id: alsa-devel@alsa-project.org Takashi Iwai [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/drivers/platform/x86/thinkpad_acpi.c?id=420f9739a62cdb027f5580d25c813501ff93aa6f 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.