X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FInput%2FPS2KbMouse%2Fpl050.c;h=5a0a32a66748327dc5a194da5862fdf95882593f;hb=ec0a3c65da8c3d47895ab2e5b4cec8cf2070f6eb;hp=8d65e3a35fae17cd4ebea1c1f3e2453cb3ab4188;hpb=5f104551236d3254fed7cf36293f1fa4b4bd737a;p=tpg%2Facess2.git diff --git a/Modules/Input/PS2KbMouse/pl050.c b/Modules/Input/PS2KbMouse/pl050.c index 8d65e3a3..5a0a32a6 100644 --- a/Modules/Input/PS2KbMouse/pl050.c +++ b/Modules/Input/PS2KbMouse/pl050.c @@ -4,6 +4,8 @@ * * PL050 (or comaptible) Driver */ +#define DEBUG 1 + #include #include "common.h" @@ -28,12 +30,18 @@ Uint32 *gpPL050_MouseBase; void PL050_Init(Uint32 KeyboardBase, Uint8 KeyboardIRQ, Uint32 MouseBase, Uint8 MouseIRQ) { if( KeyboardBase ) { + LOG("KeyboardBase = 0x%x", KeyboardBase); gpPL050_KeyboardBase = (void*)MM_MapHWPages(KeyboardBase, 1); + LOG("gpPL050_KeyboardBase = %p", gpPL050_KeyboardBase); IRQ_AddHandler(KeyboardIRQ, PL050_KeyboardHandler, NULL); + + gpPL050_KeyboardBase[0] = 0x10; } if( MouseBase ) { gpPL050_MouseBase = (void*)MM_MapHWPages(MouseBase, 1); IRQ_AddHandler(MouseIRQ, PL050_MouseHandler, NULL); + + gpPL050_MouseBase[0] = 0x10; } } @@ -64,6 +72,7 @@ void PL050_EnableMouse(void) //PL050_WriteMouseData(0xF6); // Set Default Settings PL050_WriteMouseData(0xD4); PL050_WriteMouseData(0xF4); // Enable Packets + LOG("Done"); } static inline void PL050_WriteMouseData(Uint8 Data) @@ -75,11 +84,14 @@ static inline void PL050_WriteMouseData(Uint8 Data) return ; } + ENTER("xData", Data); + while( --timeout && gpPL050_MouseBase[1] & PL050_TXBUSY ); if(timeout) gpPL050_MouseBase[2] = Data; else Log_Error("PL050", "Write to mouse timed out"); + LEAVE('-'); } static inline Uint8 PL050_ReadMouseData(void)