diff mbox

hid: sony: Add power supply support for PS3 remote

Message ID 1457487659-3970-1-git-send-email-frederic.jacob.78@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Frederic Jacob March 9, 2016, 1:40 a.m. UTC
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(-)

--
2.5.0
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Bastien Nocera March 9, 2016, 4:58 p.m. UTC | #1
Hey Frederic,

On Tue, 2016-03-08 at 20:40 -0500, Frederic Jacob wrote:
> Add power supply support for the PS3 remote controller

Isn't something like "add battery state reporting for PS3 remotes"
better?

Also, as I don't think it's physically possible to have the PS3 remote
both connected and charging at the same time, maybe the comment
in sixaxis_parse_report() should be modified to make it clear that the
PS3 remote doesn't have that problem.

Cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Frederic Jacob March 10, 2016, 2:54 a.m. UTC | #2
On 03/09/2016 11:58 AM, Bastien Nocera wrote:
> Hey Frederic,
>
> On Tue, 2016-03-08 at 20:40 -0500, Frederic Jacob wrote:
>> Add power supply support for the PS3 remote controller
> Isn't something like "add battery state reporting for PS3 remotes"
> better?
>
> Also, as I don't think it's physically possible to have the PS3 remote
> both connected and charging at the same time, maybe the comment
> in sixaxis_parse_report() should be modified to make it clear that the
> PS3 remote doesn't have that problem.
>
> Cheers
I hesitated to use a message similar as to what you suggest
but changed it to use the technical term, but I prefer yours.

As for the comment in  sixaxis_parse_report() what do you think if I add
at the end of the comment?
" The PS3 remote cannot be charged so it is always set to discharging
    and unplugged."

Thanks



--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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)) {