diff options
-rw-r--r-- | EdkModulePkg/Bus/Usb/UsbKb/Dxe/efikey.h | 4 | ||||
-rw-r--r-- | EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c | 11 | ||||
-rw-r--r-- | MdePkg/Include/Protocol/PciRootBridgeIo.h | 4 |
3 files changed, 13 insertions, 6 deletions
diff --git a/EdkModulePkg/Bus/Usb/UsbKb/Dxe/efikey.h b/EdkModulePkg/Bus/Usb/UsbKb/Dxe/efikey.h index 091dd695a5..31307ebe57 100644 --- a/EdkModulePkg/Bus/Usb/UsbKb/Dxe/efikey.h +++ b/EdkModulePkg/Bus/Usb/UsbKb/Dxe/efikey.h @@ -65,6 +65,7 @@ typedef struct { UINT8 ShiftOn;
UINT8 NumLockOn;
UINT8 CapsOn;
+ UINT8 ScrollOn;
UINT8 LastKeyCodeArray[8];
UINT8 CurKeyChar;
@@ -113,6 +114,7 @@ typedef struct { typedef struct {
UINT8 NumLock : 1;
UINT8 CapsLock : 1;
- UINT8 Resrvd : 6;
+ UINT8 ScrollLock : 1;
+ UINT8 Resrvd : 5;
} LED_MAP;
#endif
diff --git a/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c b/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c index 1328e6a098..b6b97c3b48 100644 --- a/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c +++ b/EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c @@ -761,9 +761,13 @@ USBParseKey ( // fall through
//
case 0x47:
- //
- // fall through
- //
+ //
+ // Turn on the ScrollLock light on KB
+ //
+ UsbKeyboardDevice->ScrollOn ^= 1;
+ SetKeyLED (UsbKeyboardDevice);
+ continue;
+ break;
case 0x48:
//
// fall through
@@ -1042,6 +1046,7 @@ SetKeyLED ( //
Led.NumLock = (UINT8) UsbKeyboardDevice->NumLockOn;
Led.CapsLock = (UINT8) UsbKeyboardDevice->CapsOn;
+ Led.ScrollLock = (UINT8) UsbKeyboardDevice->ScrollOn;
Led.Resrvd = 0;
ReportId = 0;
diff --git a/MdePkg/Include/Protocol/PciRootBridgeIo.h b/MdePkg/Include/Protocol/PciRootBridgeIo.h index db0a4eed5f..af3d9ed188 100644 --- a/MdePkg/Include/Protocol/PciRootBridgeIo.h +++ b/MdePkg/Include/Protocol/PciRootBridgeIo.h @@ -356,8 +356,8 @@ EFI_STATUS typedef
EFI_STATUS
(EFIAPI *EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_CONFIGURATION) (
- IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This,
- IN VOID **Resources
+ IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *This,
+ OUT VOID **Resources
);
struct _EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL {
|