On Mon, 19 Oct 2015 08:52:48 +0200, Ricard Wanderlof wrote:
V2: Change u32 to __le32 (kbuild test robot warning). Since Zoom R24 most likely behaves as R16 when used as an audio interface, refer to "R16/24" throughout in all comments (no code change). Tested both in Linux 3.16.7 (with appropriate backports) and 4.3.0 . Made changelogs more descriptive.
The Zoom R16 has a nonstandard playback format where each isochronous packet contains a length descriptor in the first four bytes.
This patch series implements a quirk which involves adding the extra length descriptor whenever outgoing isochronous packets are generated.
The first four patches refactor some code in pcm.c and endpoint.c before the actual quirk implementation. A final commit cleans up the entry in the quirks table.
Big thanks to Panu for testing this patch.
Signed-off-by: Ricard Wanderlof ricardw@axis.com Tested-by: Panu Matilainen pmatilai@laiskiainen.org
Ricard Wanderlof (7): Break out copying to urb from prepare_playback_urb() Also move out hwptr_done wrap from prepare_playback_urb() Break out creation of silent urbs from prepare_outbound_urb() Add offset parameter to copy_to_urb() Add quirk for Zoom R16/24 playback Adjust max packet size calculation for tx_length_quirk Remove mixer entry from Zoom R16/24 quirk
Applied all patches now. Thanks.
Takashi
sound/usb/card.h | 1 + sound/usb/endpoint.c | 73 +++++++++++++++++++++++++++++++++-------------- sound/usb/pcm.c | 74 +++++++++++++++++++++++++++++++++++++----------- sound/usb/quirks-table.h | 14 +++------ sound/usb/quirks.c | 3 ++ sound/usb/stream.c | 1 + sound/usb/usbaudio.h | 1 + 7 files changed, 119 insertions(+), 48 deletions(-)
-- 2.1.4