On Fri, 26 Feb 2021 14:34:28 +0100, Nicolas MURE wrote:
Send an `URB_CONTROL out` USB frame to the device to configure its samplerate. This should be done before using the device for audio streaming (capture or playback).
About the change of `usb_rcvctrlpipe` to `usb_sndctrlpipe`, I reached the author of this line and she agrees about this change. Control frames to set device options should have the `out` direction instead of the `in` direction.
This specific fix should be applied separately for 5.12. Could you split this one and submit as an individual fix?
I'm currently thinking of merging the rest for 5.13, as 5.12 merge window was already closed.
thanks,
Takashi
See https://github.com/nm2107/Pioneer-DJM-850-driver-reverse-engineering /blob/172fb9a61055960c88c67b7c416fe5bf3609807b /doc/windows-dvs/framerate-setting/README.md
Signed-off-by: Nicolas MURE nicolas.mure2019@gmail.com
sound/usb/quirks.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index 9ba4682ebc48..d02dac5fcd40 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -1482,7 +1482,7 @@ static int pioneer_djm_set_format_quirk(struct snd_usb_substream *subs, usb_set_interface(subs->dev, 0, 1); // we should derive windex from fmt-sync_ep but it's not set snd_usb_ctl_msg(subs->stream->chip->dev,
usb_rcvctrlpipe(subs->stream->chip->dev, 0),
0x01, 0x22, 0x0100, windex, &sr, 0x0003); return 0;usb_sndctrlpipe(subs->stream->chip->dev, 0),
} @@ -1503,6 +1503,9 @@ void snd_usb_set_format_quirk(struct snd_usb_substream *subs, case USB_ID(0x2b73, 0x0013): /* Pioneer DJM-450 */ pioneer_djm_set_format_quirk(subs, 0x0082); break;
- case USB_ID(0x08e4, 0x0163): /* Pioneer DJM-850 */
pioneer_djm_set_format_quirk(subs, 0x0086);
}break;
}
-- 2.29.2