[PATCH 0/4] staging: line6: POD HD300 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux