Messages in this thread Patch in this message | | | From | Frederic Jacob <> | Subject | [PATCH] hid: sony: Add power supply support for PS3 remote | Date | Tue, 8 Mar 2016 20:40:59 -0500 |
| |
Add power supply support for the PS3 remote controller
Signed-off-by: Frederic Jacob <frederic.jacob.78@gmail.com>
--- drivers/hid/hid-sony.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c index 9b8db0e..b78e149 100644 --- a/drivers/hid/hid-sony.c +++ b/drivers/hid/hid-sony.c @@ -61,7 +61,8 @@ DUALSHOCK4_CONTROLLER | MOTION_CONTROLLER |\ NAVIGATION_CONTROLLER) #define SONY_BATTERY_SUPPORT (SIXAXIS_CONTROLLER | DUALSHOCK4_CONTROLLER |\ - MOTION_CONTROLLER_BT | NAVIGATION_CONTROLLER) + MOTION_CONTROLLER_BT | NAVIGATION_CONTROLLER |\ + PS3REMOTE) #define SONY_FF_SUPPORT (SIXAXIS_CONTROLLER | DUALSHOCK4_CONTROLLER |\ MOTION_CONTROLLER)
@@ -1177,7 +1178,12 @@ static void sixaxis_parse_report(struct sony_sc *sc, __u8 *rd, int size) * It does not report the actual level while charging so it * is set to 100% while charging is in progress. */ - offset = (sc->quirks & MOTION_CONTROLLER) ? 12 : 30; + if (sc->quirks & MOTION_CONTROLLER) + offset = 12; + else if (sc->quirks & PS3REMOTE) + offset = 11; + else + offset = 30;
if (rd[offset] >= 0xee) { battery_capacity = 100; @@ -1301,6 +1307,9 @@ static int sony_raw_event(struct hid_device *hdev, struct hid_report *report, } else if ((sc->quirks & NAVIGATION_CONTROLLER) && rd[0] == 0x01 && size == 49) { sixaxis_parse_report(sc, rd, size); + } else if ((sc->quirks & PS3REMOTE) && rd[0] == 0x01 && + size == 12) { + sixaxis_parse_report(sc, rd, size); } else if (((sc->quirks & DUALSHOCK4_CONTROLLER_USB) && rd[0] == 0x01 && size == 64) || ((sc->quirks & DUALSHOCK4_CONTROLLER_BT) && rd[0] == 0x11 && size == 78)) { -- 2.5.0
| |