summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/atkbdc/atkbdcreg.h1
-rw-r--r--sys/dev/atkbdc/psm.c13
-rw-r--r--sys/dev/kbd/atkbdcreg.h1
-rw-r--r--sys/isa/psm.c13
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;
}
OpenPOWER on IntegriCloud