Note: this patch applies against linux-next (2a8bdff) This series adds POD HD300 device support to the line6 staging driver. I previously sent Patch 1 and then Patches 2-4 as a separate series. Since Patch 1 has not been merged yet I'm resending the whole thing so it can be easily applied. Patch 1 adds POD HD300 device support. It's a new generation in the Line6 POD product family and works mostly the same as previous generations. There was a missing case to skip MIDI postprocessing for the HD300. I have added it in Patch 2. This could be squashed with Patch 1 but I prefer to keep it separate so that it's obvious how the combined patch series was merged in git log. I also discovered that isochronous read and write endpoint max packet sizes do not match on the POD HD300. This causes URB submission to fail with -EMSGSIZE unless we choose the smaller of the two as the common size. Patch 3 addresses this. Finally, the driver does not implement stream stop correctly since it frees the audio buffers before waiting for all URBs to complete. This can result in memory corruption when capture URBs are still in-flight. Patch 4 moves the audio buffer allocation/freeing out of the stream start/stop callbacks to prevent this race condition. With these patches PulseAudio, jack, and native ALSA applications work fine. I also ran a stress test which prepares/starts/stops streams in a loop. This test triggered kernel panics before applying Patch 4. Stefan Hajnoczi (4): staging: line6: add Pod HD300 support staging: line6: add missing MIDI postprocessing case for POD HD300 staging: line6: use smallest iso ep packet size staging: line6: alloc/free buffers in hw_params/hw_free drivers/staging/line6/Makefile | 3 +- drivers/staging/line6/capture.c | 15 ++++ drivers/staging/line6/driver.c | 24 ++++++- drivers/staging/line6/midi.c | 1 + drivers/staging/line6/pcm.c | 36 ++------- drivers/staging/line6/playback.c | 15 ++++ drivers/staging/line6/podhd.c | 158 ++++++++++++++++++++++++++++++++++++++ drivers/staging/line6/podhd.h | 30 +++++++ drivers/staging/line6/usbdefs.h | 2 + 9 files changed, 255 insertions(+), 29 deletions(-) create mode 100644 drivers/staging/line6/podhd.c create mode 100644 drivers/staging/line6/podhd.h -- 1.7.7.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel