Re: Thinkpad keyboard backlight ACPI interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday, July 28, 2015 02:05:03 PM Pali Rohár wrote:
> On Tuesday 28 July 2015 13:56:32 Bjørn Mork wrote:
> > Pali Rohár <pali.rohar@xxxxxxxxx> writes:
> > > On Tuesday 28 July 2015 13:17:58 Bjørn Mork wrote:
> > >> Pali Rohár <pali.rohar@xxxxxxxxx> writes:
> > >> > I would like to write kernel patch for thinkpad_acpi.c to support
> > >> > keyboard backlight (like other modules in drivers/platform/x86/
> > >> > tree),
> > >> > but last missing information is how to detect current level of
> > >> > brightness and check if backlight is supported...
> > >> 
> > >> Based on the code you posted, I would assume that MLCG returns the
> > >> current brightness level.  Did you test that?
> > > 
> > > Of course and it returns:
> > > 
> > > 0x50200 - off
> > > 0x50201 - level 1
> > > 0x50202 - level 2
> > > 
> > > But I do not understand why it returns 0x5020{0,1,2} and not only 0,1,2.
> > 
> > Looks like it might have several bitfields with different meanings.
> > You'll probably have to guess what they are.
> 
> Yes... Last number looks like current level. But what others? Maybe it
> represent if backlight feature is supported? Do not know.
> 
> But it would be good, if more people with Thinkpad machines with and
> also without keyboard backligth send output from "MLCG" ACPI call.

I can confirm that everything is as you described also on my W541 (with 
backlight), except for the line
 OperationRegion (MNVS, SystemMemory, 0xCCD7D018, 0x1000)
which is actually
 OperationRegion (MNVS, SystemMemory, 0x7CE7D018, 0x1000)

The rest of the DSDT code is like yours, MLCG always returns 0x5020{0,1,2} and 
MLCS {0,1,2} works as expected and returns 0x0.

I have also toggled the Fn lock and Ctrl/Fn swapping, but the mysterious 
0x5020n did not change. I have the latest BIOS version (2.21).

Fabio D'Urso

> >From output from one machine I'm not able to decode what it means.
> 
> If you look at posted ACPI DSDT code, you will see that MLCG is just
> wrapper around SMI call which return that value. It is not generated or
> constructed by ACPI....
> 
> > > MLCS returns 0x0.
> > > 
> > >> The thinkpad_acpi driver use code like this to test for supported
> > >> 
> > >> features:
> > >>       tp_features.bluetooth = hkey_handle && acpi_evalf(hkey_handle,
> > >>       &status, "GBDC", "qd");> >> 
> > >> You could do something similar for the keyboard backlight feature,
> > >> couldn't you?
> > > 
> > > Sounds good, but I do not know what "GBDC" and "qd" means... :-(
> > > So because of that I need some "documentation" which say how to do it.
> > 
> > The "qd" part is documented in the driver source - it's specific to the
> > acpi_evalf() helper.  For the "GBDC" I don't think there is any
> > documentation.  People have done what you have: Looked at the DSDT,
> > added some intelligent guesswork, and then tested the result.
> 
> Yes and for that I need output from as many Thinkpad machines, so I can
> do some "statistic" output.


------------------------------------------------------------------------------
_______________________________________________
ibm-acpi-devel mailing list
ibm-acpi-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/ibm-acpi-devel




[Index of Archives]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Photo]     [Yosemite Photos]     [Yosemite Advice]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux