On Wed, Jul 15, 2015 at 12:21:02PM -0400, Adam Van Ymeren wrote:
>
>
> On 15 July 2015 12:18:16 GMT-04:00, Paul Irofti <[email protected]> wrote:
> >> After a cold boot the output is as follows.
> >>
> >> 1) Pressing brightness up
> >>
> >> acpithinkpad0: handling event 0x1011
> >> acpithinkpad0: handling event 0x000
> >>
> >> 2) Pressing brightess down
> >>
> >> acpithinkpad0: handling event 0x1011
> >> acpithinkpad0: handling event 0x000
> >>
> >>
> >> Then I suspend zzz, and resume and the output changes slightly to.
> >>
> >> 1) Pressing brightness up
> >>
> >> acpithinkpad0: handling event 0x1010
> >> acpithinkpad0: handling event 0x000
> >>
> >> 2) Pressing brightness down
> >>
> >> acpithinkpad0: handling event 0x1011
> >> acpithinkpad0: handling event 0x000
> >>
> >> For some reason pressing the brightness up command gives the
> >brightness
> >> down event, but doesn't actually change the brightness until a
> >> suspend/resume cycle is done.
> >
> >Interesting, so the brightness does not change even if you press
> >brightness down. Right?
>
> Right. Not until I've done a suspend resume cycle does the brightness change
> in any direction. Which is really bizarre.
>
> Could this maybe be a BIOS/firmware issue? I will try updating my BIOS if
> there is a newer version available.
Sure, you can try updating the BIOS.
Another question: what is the display.brightness value on cold boot?
# wsconsctl display.brightness
Can you also tell me what happens when you press the brightness down
button on cold boot with this diff?
Index: acpithinkpad.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpithinkpad.c,v
retrieving revision 1.44
diff -u -p -r1.44 acpithinkpad.c
--- acpithinkpad.c 24 Apr 2015 14:44:17 -0000 1.44
+++ acpithinkpad.c 15 Jul 2015 17:15:02 -0000
@@ -304,6 +304,8 @@ thinkpad_hotkey(struct aml_node *node, i
if (aml_evalinteger(sc->sc_acpi, sc->sc_devnode, "MHKP",
0, NULL, &event))
break;
+ printf("%s: handling event 0x%03llx\n",
+ DEVNAME(sc), event);
if (event == 0)
break;
@@ -313,6 +315,8 @@ thinkpad_hotkey(struct aml_node *node, i
handled = 1;
break;
case THINKPAD_BUTTON_BRIGHTNESS_DOWN:
+ thinkpad_brightness_down(sc);
+ thinkpad_brightness_down(sc);
thinkpad_brightness_down(sc);
handled = 1;
break;