On Sun, 31 Mar 2013 at 12:49:22 -0400, Brian Callahan wrote:
> Hi tech --
> 
> I just discovered that my Thinkpad (Edge E420) sends a 0x6040 event when the
> power cable is connected or removed.

My X230 generates this as well.  When I looked at Linux's driver a
while ago it says that 0x6040 is THINKPAD_POWER_CHANGED and 0x6030
that older models generate is actually
THINKPAD_THERMAL_TABLE_CHANGED.  I don't know whether these actually
matter, especially since we're ignoring all of them anyway.

But here is what I have in my tree that ignores 0x6040 and
groups/sorts all of the ignored events together.


Index: dev/acpi/acpithinkpad.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpithinkpad.c,v
retrieving revision 1.29
diff -u -p -u -p -r1.29 acpithinkpad.c
--- dev/acpi/acpithinkpad.c     22 Mar 2013 22:15:01 -0000      1.29
+++ dev/acpi/acpithinkpad.c     1 Apr 2013 03:00:25 -0000
@@ -73,7 +73,8 @@
 #define        THINKPAD_BRIGHTNESS_CHANGED     0x5010
 #define        THINKPAD_TABLET_PEN_INSERTED    0x500b
 #define        THINKPAD_TABLET_PEN_REMOVED     0x500c
-#define        THINKPAD_POWER_CHANGED          0x6030
+#define        THINKPAD_THERMAL_TABLE_CHANGED  0x6030
+#define        THINKPAD_POWER_CHANGED          0x6040
 #define        THINKPAD_BACKLIGHT_CHANGED      0x6050
 #define        THINKPAD_SWITCH_WIRELESS        0x7000
 
@@ -301,18 +302,6 @@ thinkpad_hotkey(struct aml_node *node, i
 #endif
                        handled = 1;
                        break;
-               case THINKPAD_BUTTON_HIBERNATE:
-               case THINKPAD_BUTTON_FN_F1:
-               case THINKPAD_BUTTON_LOCK_SCREEN:
-               case THINKPAD_BUTTON_BATTERY_INFO:
-               case THINKPAD_BUTTON_FN_F6:
-               case THINKPAD_BUTTON_EXTERNAL_SCREEN:
-               case THINKPAD_BUTTON_POINTER_SWITCH:
-               case THINKPAD_BUTTON_EJECT:
-               case THINKPAD_BUTTON_THINKLIGHT:
-               case THINKPAD_BUTTON_FN_SPACE:
-                       handled = 1;
-                       break;
                case THINKPAD_BUTTON_VOLUME_MUTE:
                        thinkpad_volume_mute(sc);
                        handled = 1;
@@ -332,24 +321,29 @@ thinkpad_hotkey(struct aml_node *node, i
 #endif
                        handled = 1;
                        break;
-               case THINKPAD_BUTTON_THINKVANTAGE:
+               case THINKPAD_BACKLIGHT_CHANGED:
+               case THINKPAD_BRIGHTNESS_CHANGED:
+               case THINKPAD_BUTTON_BATTERY_INFO:
+               case THINKPAD_BUTTON_EJECT:
+               case THINKPAD_BUTTON_EXTERNAL_SCREEN:
                case THINKPAD_BUTTON_FN_F11:
-                       handled = 1;
-                       break;
-               case THINKPAD_LID_OPEN:
+               case THINKPAD_BUTTON_FN_F1:
+               case THINKPAD_BUTTON_FN_F6:
+               case THINKPAD_BUTTON_FN_SPACE:
+               case THINKPAD_BUTTON_HIBERNATE:
+               case THINKPAD_BUTTON_LOCK_SCREEN:
+               case THINKPAD_BUTTON_POINTER_SWITCH:
+               case THINKPAD_BUTTON_THINKLIGHT:
+               case THINKPAD_BUTTON_THINKVANTAGE:
                case THINKPAD_LID_CLOSED:
-               case THINKPAD_TABLET_SCREEN_NORMAL:
-               case THINKPAD_TABLET_SCREEN_ROTATED:
-               case THINKPAD_BRIGHTNESS_CHANGED:
-               case THINKPAD_TABLET_PEN_INSERTED:
-               case THINKPAD_TABLET_PEN_REMOVED:
-                       handled = 1;
-                       break;
+               case THINKPAD_LID_OPEN:
                case THINKPAD_POWER_CHANGED:
-               case THINKPAD_BACKLIGHT_CHANGED:
-                       handled = 1;
-                       break;
                case THINKPAD_SWITCH_WIRELESS:
+               case THINKPAD_TABLET_PEN_INSERTED:
+               case THINKPAD_TABLET_PEN_REMOVED:
+               case THINKPAD_TABLET_SCREEN_NORMAL:
+               case THINKPAD_TABLET_SCREEN_ROTATED:
+               case THINKPAD_THERMAL_TABLE_CHANGED:
                        handled = 1;
                        break;
                default:

Reply via email to