diff options
-rw-r--r-- | sys/dev/atkbdc/atkbdcreg.h | 1 | ||||
-rw-r--r-- | sys/dev/atkbdc/psm.c | 13 | ||||
-rw-r--r-- | sys/dev/kbd/atkbdcreg.h | 1 | ||||
-rw-r--r-- | sys/isa/psm.c | 13 |
4 files changed, 22 insertions, 6 deletions
diff --git a/sys/dev/atkbdc/atkbdcreg.h b/sys/dev/atkbdc/atkbdcreg.h index f2ec844..7711c66 100644 --- a/sys/dev/atkbdc/atkbdcreg.h +++ b/sys/dev/atkbdc/atkbdcreg.h @@ -137,6 +137,7 @@ #define PSM_EXPLORER_ID 4 #define PSM_4DMOUSE_ID 6 #define PSM_4DPLUS_ID 8 +#define PSM_4DPLUS_RFSW35_ID 24 #ifdef _KERNEL diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index e4f14b1..ef98da4 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -2770,11 +2770,18 @@ enable_4dplus(struct psm_softc *sc) */ id = get_aux_id(kbdc); - if (id != PSM_4DPLUS_ID) - return FALSE; + switch (id) { + case PSM_4DPLUS_ID: + sc->hw.buttons = 4; + break; + case PSM_4DPLUS_RFSW35_ID: + sc->hw.buttons = 3; + break; + default: + return FALSE; + } sc->hw.hwid = id; - sc->hw.buttons = 4; /* XXX */ return TRUE; } diff --git a/sys/dev/kbd/atkbdcreg.h b/sys/dev/kbd/atkbdcreg.h index f2ec844..7711c66 100644 --- a/sys/dev/kbd/atkbdcreg.h +++ b/sys/dev/kbd/atkbdcreg.h @@ -137,6 +137,7 @@ #define PSM_EXPLORER_ID 4 #define PSM_4DMOUSE_ID 6 #define PSM_4DPLUS_ID 8 +#define PSM_4DPLUS_RFSW35_ID 24 #ifdef _KERNEL diff --git a/sys/isa/psm.c b/sys/isa/psm.c index e4f14b1..ef98da4 100644 --- a/sys/isa/psm.c +++ b/sys/isa/psm.c @@ -2770,11 +2770,18 @@ enable_4dplus(struct psm_softc *sc) */ id = get_aux_id(kbdc); - if (id != PSM_4DPLUS_ID) - return FALSE; + switch (id) { + case PSM_4DPLUS_ID: + sc->hw.buttons = 4; + break; + case PSM_4DPLUS_RFSW35_ID: + sc->hw.buttons = 3; + break; + default: + return FALSE; + } sc->hw.hwid = id; - sc->hw.buttons = 4; /* XXX */ return TRUE; } |