Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fdcf105d authored by Frank Praznik's avatar Frank Praznik Committed by Jiri Kosina
Browse files

HID: sony: Add Dualshock 4 Bluetooth output report formatting



Add formating for the Dualshock 4 output report data in Bluetooth mode.

In Bluetooth mode the Dualshock 4 wants output reports sent on the control
channel.

Signed-off-by: default avatarFrank Praznik <frank.praznik@oh.rr.com>
Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent d829674d
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -1266,11 +1266,18 @@ static void dualshock4_state_worker(struct work_struct *work)
	struct hid_device *hdev = sc->hdev;
	int offset;

	__u8 buf[32] = { 0 };
	__u8 buf[78] = { 0 };

	if (sc->quirks & DUALSHOCK4_CONTROLLER_USB) {
		buf[0] = 0x05;
		buf[1] = 0x03;
		offset = 4;
	} else {
		buf[0] = 0x11;
		buf[1] = 0xB0;
		buf[3] = 0x0F;
		offset = 6;
	}

#ifdef CONFIG_SONY_FF
	buf[offset++] = sc->right;
@@ -1283,7 +1290,11 @@ static void dualshock4_state_worker(struct work_struct *work)
	buf[offset++] = sc->led_state[1];
	buf[offset++] = sc->led_state[2];

	hid_hw_output_report(hdev, buf, sizeof(buf));
	if (sc->quirks & DUALSHOCK4_CONTROLLER_USB)
		hid_hw_output_report(hdev, buf, 32);
	else
		hid_hw_raw_request(hdev, 0x11, buf, 78,
				HID_OUTPUT_REPORT, HID_REQ_SET_REPORT);
}

#ifdef CONFIG_SONY_FF