summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--EdkModulePkg/Bus/Usb/UsbKb/Dxe/efikey.h4
-rw-r--r--EdkModulePkg/Bus/Usb/UsbKb/Dxe/keyboard.c11
-rw-r--r--MdePkg/Include/Protocol/PciRootBridgeIo.h4
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 {