Loading drivers/hid/hid-playstation.c +20 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading
drivers/hid/hid-playstation.c +20 −0 Original line number Diff line number Diff line Loading @@ -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; Loading