[haiku-commits] r42866 - haiku/trunk/src/add-ons/kernel/bus_managers/ps2

Author: siarzhuk
Date: 2011-10-16 18:57:06 +0200 (Sun, 16 Oct 2011)
New Revision: 42866
Changeset: https://dev.haiku-os.org/changeset/42866
Ticket: https://dev.haiku-os.org/ticket/7963

Modified:
   haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_keyboard.cpp
Log:
Support of keyboard id reading. Partially fixes #7963.


Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_keyboard.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_keyboard.cpp    
2011-10-16 16:44:17 UTC (rev 42865)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_keyboard.cpp    
2011-10-16 16:57:06 UTC (rev 42866)
@@ -61,6 +61,7 @@
 
 static int32 sKeyboardRepeatRate;
 static bigtime_t sKeyboardRepeatDelay;
+static uint8 sKeyboardIds[2];
 
 
 static status_t
@@ -306,6 +307,13 @@
                                        cmdbyte, status);
                }
        }
+       
+       status = ps2_dev_command(&ps2_device[PS2_DEVICE_KEYB],
+                       PS2_CMD_GET_DEVICE_ID, NULL, 0, sKeyboardIds, 
sizeof(sKeyboardIds));
+       
+       if (status != B_OK) {
+               INFO("ps2: cannot read keyboard device id:0x%#08lx\n", status);
+       }
 
        return B_OK;
 }
@@ -384,6 +392,8 @@
                        sHasKeyboardReader = false;
                if (cookie->is_debugger)
                        sHasDebugReader = false;
+
+               sKeyboardIds[0] = sKeyboardIds[1] = 0;
        }
 
        TRACE("ps2: keyboard_close done\n");
@@ -510,6 +520,11 @@
                }
 
                case KB_GET_KEYBOARD_ID:
+               {
+                       TRACE("ps2: ioctl KB_GET_KEYBOARD_ID\n");
+                       return user_memcpy(buffer, &sKeyboardIds, 
sizeof(sKeyboardIds));
+               }
+
                case KB_SET_CONTROL_ALT_DEL_TIMEOUT:
                case KB_CANCEL_CONTROL_ALT_DEL:
                case KB_DELAY_CONTROL_ALT_DEL:


Other related posts:

  • » [haiku-commits] r42866 - haiku/trunk/src/add-ons/kernel/bus_managers/ps2 - zharik