Commit 54ab9273 authored by Benjamin Tissoires's avatar Benjamin Tissoires
Browse files

Merge branch 'for-6.12/hid-playstation' into for-linus

- Enhance compatibility with clone controllers (Max Staudt)
parents fe9c6249 2933aa8b
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -2143,6 +2143,26 @@ static void dualshock4_output_worker(struct work_struct *work)

	spin_lock_irqsave(&ds4->base.lock, flags);

	/*
	 * Some 3rd party gamepads expect updates to rumble and lightbar
	 * together, and setting one may cancel the other.
	 *
	 * Let's maximise compatibility by always sending rumble and lightbar
	 * updates together, even when only one has been scheduled, resulting
	 * in:
	 *
	 *   ds4->valid_flag0 >= 0x03
	 *
	 * Hopefully this will maximise compatibility with third-party pads.
	 *
	 * Any further update bits, such as 0x04 for lightbar blinking, will
	 * be or'd on top of this like before.
	 */
	if (ds4->update_rumble || ds4->update_lightbar) {
		ds4->update_rumble = true; /* 0x01 */
		ds4->update_lightbar = true; /* 0x02 */
	}

	if (ds4->update_rumble) {
		/* Select classic rumble style haptics and enable it. */
		common->valid_flag0 |= DS4_OUTPUT_VALID_FLAG0_MOTOR;