The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>,
	ibm-acpi-devel@lists.sourceforge.net,
	platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: ThinkPad T480s & LED_MUTE, LED_MICMUTE
Date: Sat, 16 Jun 2018 18:02:14 +0200	[thread overview]
Message-ID: <s5hh8m2u3cp.wl-tiwai@suse.de> (raw)
In-Reply-To: <20180616154309.ualrx2py6ndr5xgz@pali>

On Sat, 16 Jun 2018 17:43:09 +0200,
Pali Rohár wrote:
> 
> On Saturday 16 June 2018 09:05:41 Takashi Iwai wrote:
> > On Fri, 15 Jun 2018 21:09:59 +0200,
> > Pali Rohár wrote:
> > > 
> > > On Friday 15 June 2018 14:51:47 Takashi Iwai wrote:
> > > > On Fri, 08 Jun 2018 13:10:57 +0200,
> > > > Pali Rohár wrote:
> > > > > 
> > > > > Hi! With up-to-date thinkpad_acpi.ko driver on ThinkPad T480s I'm seeing
> > > > > a strange behavior of LEDs which are integrated into mic mute (Fn+F4)
> > > > > and mute (Fn+F1) keys.
> > > > > 
> > > > > When thinkpad_acpi.ko is not loaded, then mute key is working fine. When
> > > > > pressed, it correctly generates KEY_MUTE on AT Translated Set 2 keyboard
> > > > > input device and also turn on/of mute led. But when micmute key is
> > > > > pressed then, nothing happen. No key event is reported and also led is
> > > > > not turned on/off.
> > > > > 
> > > > > On the other hand, when thinkpad_acpi.ko is loaded, then both buttons
> > > > > mute and micmute correctly generates input events; mute via AT keyboard
> > > > > and micmute via ThinkPad Extra Buttons. But led is not changed. When
> > > > > thinkpad_acpi.ko is loaded it turn off both leds (mute and micmute) and
> > > > > leds after pressing any of those buttons, leds are not turned on again.
> > > > > 
> > > > > When thinkpad_acpi.ko is unloaded, then pressing mute button again start
> > > > > switching led on/off.
> > > > > 
> > > > > So it seems that some init sequence of thinkpad_acpi.ko breaks mute led.
> > > > > And fini sequence of thinkpad_acpi.ko makes mute led working again.
> > > > 
> > > > Usually the mute LED on Thinkpad is triggered from HD-audio driver
> > > > (sound/pci/hda/thinkpad_helper.c), and it's a soft-bound via
> > > > symbol_request(tpacpi_led_set).  I thought thinkpad_acpi is
> > > > auto-loaded when the module gets bound.
> > > > 
> > > > A possible explanation would be that TPT480s has neither IBM0068,
> > > > LEN0068 nor LEN0268 ACPI HIDs, hence the driver is not auto-loaded.
> > > 
> > > I have Debian Stretch kernel (4.9) which does not have LEN0268 alias for
> > > thinkpad_acpi.ko. So thinkpad_acpi.ko is not loaded automatically. But I
> > > have put thinkpad_acpi into /etc/modules and it is now automatically
> > > loaded at boot.
> > 
> > That's odd.  It's exposed via
> >   MODULE_DEVICE_TABLE(acpi, ibm_htk_device_ids);
> > 
> > It's been already in 4.9.  At this point, something is fishy.
> 
> $ /sbin/modinfo thinkpad_acpi | grep alias
> alias:          dmi:bvnIBM:bvrI[MU]ET??WW*
> alias:          tpacpi
> alias:          acpi*:LEN0068:*
> alias:          acpi*:IBM0068:*
> 
> No there is no LEN0268 on 4.9.

OK, that's the cause.  It's really old.

The commit a3c42a467a25 ("platform/x86: thinkpad_acpi: Adding new
hotkey ID for Lenovo thinkpad") has to be backported.
Also, in the HD-audio side, the commit 2ecb704a1290 ("ALSA: hda - add
a new condition to check if it is thinkpad") is needed, too.

> > > I also compiled upstream version of thinkpad_acpi.ko, loaded it in
> > > Stretch kernel, but it behaves in same way.
> > >
> > > Maybe... there could be a problem that thinkpad_acpi.ko must be already
> > > loaded when sound subsystem is doing initialization? If yes, this could
> > > explain it as /etc/modules is loaded at later stage and manually loading
> > > of new version of thinkpad_acpi.ko at runtime does not help when sound
> > > subsystem is already running.
> > 
> > Not really.  The HD-audio driver tries to bind with tpacpi_led_set()
> > via symbol_request().  i.e. if it's not present, it tries to load a
> > module.
> > 
> > Check whether hda_fixup_thinkpad_acpi() is called and the symbol gets
> > loaded or not.
> > 
> > But, I don't think it's worth to debug such an old kernel primarily.
> 
> It is default one used by the last released Debian stable version.

Heh, that explains :)

And there was a recent regression in HD-audio that was addressed in
4.9.104.  If you're using some earlier 4.9.x, you might hit the
problem regarding HD-audio thinkpad_acpi binding.
(But I guess it doesn't work in anyway without the backport of the
 commit above.)

> > Could you test the latest Linus tree or 4.17.x at least as a test
> > basis?
> 
> Ok, will do that later.

If my analysis above is correct, everything should work with the
recent upstream kernel as is.

Once after you confirm it, I can cook a patch to add the mixer enum to
change LED behavior as you wanted.


Takashi

  reply	other threads:[~2018-06-16 16:02 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-08 11:10 ThinkPad T480s & LED_MUTE, LED_MICMUTE Pali Rohár
2018-06-15 11:26 ` Pavel Machek
2018-06-15 11:37   ` Pali Rohár
2018-06-15 12:30     ` Henrique de Moraes Holschuh
2018-06-15 19:09       ` Pali Rohár
2018-06-15 23:36         ` Henrique de Moraes Holschuh
2018-06-16  7:33           ` Pavel Machek
2018-06-16 14:12             ` Henrique de Moraes Holschuh
2018-06-16 15:58               ` Pavel Machek
2018-06-18 10:11           ` Pali Rohár
2018-06-21 11:37             ` Pali Rohár
2018-06-15 12:51 ` Takashi Iwai
2018-06-15 19:09   ` Pali Rohár
2018-06-16  7:05     ` Takashi Iwai
2018-06-16 15:43       ` Pali Rohár
2018-06-16 16:02         ` Takashi Iwai [this message]
2018-06-18 10:28           ` Pali Rohár
2018-06-18 10:36             ` Takashi Iwai
2018-06-18 11:21               ` Pali Rohár
2018-06-18 11:26                 ` Pali Rohár
2018-06-18 15:35                   ` Takashi Iwai
2018-06-21 11:30                     ` Pali Rohár
2018-06-21 11:35                       ` [ibm-acpi-devel] " Damjan Georgievski
2018-06-21 11:39                         ` Takashi Iwai
2018-06-23 12:46                           ` Damjan Georgievski
2018-06-21 11:40                         ` Pali Rohár
2018-06-19  8:37                 ` Pali Rohár
2018-06-19  8:42                   ` Takashi Iwai
2018-06-21 11:24                     ` Pali Rohár
2018-06-21 11:29                       ` Takashi Iwai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hh8m2u3cp.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=ibm-acpi-devel@lists.sourceforge.net \
    --cc=ibm-acpi@hmh.eng.br \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pali.rohar@gmail.com \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox