Send ds3 output_report on both control and interrupt channels.
Sony controllers expect the output_report on the control channel, but clone controllers expect it on the interrupt channel. The symptom of the problem is that the controller connects but all the player LEDs keep blinking and the controller works for a few minutes and then disconnects. Sending the output report on both channels resolves the issue for both controller types. I believe the correct thing is just to send the report on the interrupt channel, but then the Sony controllers start blinking.