summaryrefslogtreecommitdiff
path: root/Core/EM/PS2CTL/kbc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Core/EM/PS2CTL/kbc.c')
-rw-r--r--Core/EM/PS2CTL/kbc.c75
1 files changed, 15 insertions, 60 deletions
diff --git a/Core/EM/PS2CTL/kbc.c b/Core/EM/PS2CTL/kbc.c
index 19518b6..1712196 100644
--- a/Core/EM/PS2CTL/kbc.c
+++ b/Core/EM/PS2CTL/kbc.c
@@ -291,35 +291,8 @@ extern UINT8 gKeyboardIrqInstall;
extern EFI_LEGACY_8259_PROTOCOL *mLegacy8259;
BOOLEAN InsidePS2DataDispatcher = FALSE;
//----------------------------------------------------------------------
-
-VOID F81866ConfigRegisterWrite(UINT8 Index, UINT8 Data)
-{
- IoWrite8(F81866_CONFIG_INDEX, Index);
- IoWrite8(F81866_CONFIG_DATA, Data);
-}
-UINT8 F81866ConfigRegisterRead(UINT8 Index)
-{
- UINT8 Data8;
- IoWrite8(F81866_CONFIG_INDEX, Index);
- Data8 = IoRead8(F81866_CONFIG_DATA);
- return Data8;
-}
-VOID F81866LDNSelect(UINT8 Ldn)
-{
- IoWrite8(F81866_CONFIG_INDEX, F81866_LDN_SEL_REGISTER);
- IoWrite8(F81866_CONFIG_DATA, Ldn);
-}
-VOID F81866EnterConfigMode()
-{
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_ENTER_VALUE);
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_ENTER_VALUE);
-}
-VOID F81866ExitConfigMode()
-{
- // Exit config mode
- IoWrite8(F81866_CONFIG_INDEX, F81866_CONFIG_MODE_EXIT_VALUE);
-}
+
//<AMI_PHDR_START>
//----------------------------------------------------------------------
//
@@ -459,29 +432,21 @@ VOID AutodetectKbdMousePorts()
{
UINT8 bData, Index;
-// EFI_STATUS Status;
-{
- UINT8 Data8 ;
-
- F81866EnterConfigMode() ;
- F81866LDNSelect(0x05) ;
- Data8 = F81866ConfigRegisterRead(0xFE) ;
- F81866ConfigRegisterWrite(0xFE , Data8 & ~BIT4) ;
- F81866ExitConfigMode() ;
-}
-// Status = IbFreeTimeout(IbFreeMaxTimeoutValue);
-// if (EFI_ERROR(Status)) {
-// return;
-// }
-// WriteKeyboardCommand(0x60); // Lock KBD
+ EFI_STATUS Status;
+ Status = IbFreeTimeout(IbFreeMaxTimeoutValue);
+ if (EFI_ERROR(Status)) {
+ return;
+ }
+ WriteKeyboardCommand(0x60); // Lock KBD
IoRead8(KBC_DATA_PORT); // Discard any data
Write8042CommandByte(0x74); // KBD and Aux device disabled
// Check for KBC version
IoRead8(KBC_DATA_PORT); // Discard any data
-// WriteKeyboardCommand(0xa1); //
-// if (!ObFullReadTimeout(&bData, 20, TRUE) && bData == 0x35) {
+ WriteKeyboardCommand(0xa1); //
+ if (!ObFullReadTimeout(&bData, 20, TRUE) && bData == 0x35) {
+
WriteKeyboardCommand(0x60);
WriteKeyboardData(4);
@@ -498,13 +463,12 @@ VOID AutodetectKbdMousePorts()
if (bData == rKeyboardID) goto PortSwap;
-// if (bData == KB_ACK_COM) {
+ if (bData == KB_ACK_COM) {
ObFullReadTimeout(&bData, 100, TRUE);
// When Mouse is connected to KBD port, control goes to PortSwap here
-// if (!bData) goto PortSwap;
- if (bData != 0xAB) goto PortSwap;
+ if (!bData) goto PortSwap;
ObFullReadTimeout(&bData, 100, TRUE);
-// }
+ }
bData = IoRead8(KBC_CMDSTS_PORT);
// When KBD is connected to the KBD port, control returns here
if (!(bData & KBC_TIMEOUT_ERR)) return;
@@ -524,18 +488,9 @@ VOID AutodetectKbdMousePorts()
if (bData & KBC_TIMEOUT_ERR) return;
PortSwap:
-{
- UINT8 Data8 ;
-
- F81866EnterConfigMode() ;
- F81866LDNSelect(0x05) ;
- Data8 = F81866ConfigRegisterRead(0xFE) ;
- F81866ConfigRegisterWrite(0xFE , Data8 | BIT4) ;
- F81866ExitConfigMode() ;
-}
-// WriteKeyboardCommand(0xC9);
+ WriteKeyboardCommand(0xC9);
return;
-// }
+ }
}