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