Re: ThinkPad x60 and FN keys

Nate Lawson <[email protected]>
Newsgroups gmane.os.freebsd.devel.acpi,gmane.os.freebsd.devel.mobile
Message-ID <[email protected]>
Rong-en Fan wrote:
> On 3/19/07, Taku YAMAMOTO <[email protected]> wrote:
>> On Sat, 17 Mar 2007 17:10:38 +0800
>> "Rong-en Fan" <[email protected]> wrote:
>>
>> > Tested with newer acpica (available on acpi@). Without acpi_video,
>> > brightness control (FN+Home, End) works. Bluetooth control
>> > (fn+f5) works and the dev.acpi_ibm.0.bluetooth seems not flip flop.
>> > FN+F7 still not work.
>> >
>> > With acpi_video, brightness control does not work.
>> >
>> > Thank you.
>> >
>> > Regards,
>> > Rong-En Fan
>>
>> Fine.
>> It's expected that brightness hotkeys aren't functional with
>> acpi_video on
>> recent ThinkPads because their BIOS stop handling of the brightness and
>> rely on OS once acpi_video gets involved.
>>
>> The acpi_video module should of cource be enhanced to handle these
>> brightness events defined in ACPI 3.0 spec. If I would have some spare
>> time...
> 
> Thank you. In the mean time, could we get the patch committed?
> (I'm CC'ing Nate Lawson)
> 
> BTW, if I understand you correctly, when acpi_video is loaded, fn+home/end
> will generate some events to acpi_video, but our acpi_video does not handle
> these events so the brightness are not adjusted? Is that right?
> 
> Regards,
> Rong-En Fan
> 
> ==
> 
> --- acpi_ec.c-1.69    Tue Feb 27 09:14:20 2007
> +++ sys/dev/acpica/acpi_ec.c    Tue Feb 27 14:39:52 2007
> @@ -825,6 +825,11 @@ EcGpeHandler(void *Context)
>     CTR1(KTR_ACPI, "ec event was IBE/OBF, status %#x", EcStatus);
>     sc->ec_csrvalue = EcStatus;
>     wakeup(&sc->ec_csrvalue);
> +    if (!sc->ec_sci_pend) {
> +        Status = AcpiEnableGpe(sc->ec_gpehandle, sc->ec_gpebit, ACPI_ISR);
> +        if (ACPI_FAILURE(Status))
> +        printf("EcGpeHandler: AcpiEnableEvent failed\n");
> +    }
>     } else if (!sc->ec_sci_pend) {
>     /* SCI bit set and no pending query handler, so schedule one. */
>     CTR0(KTR_ACPI, "ec queueing gpe handler");

Crap, that is a bug.  In the path where the event was an SCI, we now no
longer re-enable the GPE.  Thanks for pointing this out.

I've committed a fix in rev 1.71.  See if it helps.

-- 
Nate
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.