[PATCH 0/3] snd-usb-6fire: firmware load and pulseaudio assumption

René Herman rene.herman at gmail.com
Tue Jul 21 08:48:50 CEST 2020


Hi Takashi.

I sent these out a week ago to alsa-devel (only) but am not sure they
got anywhere, perhaps due to at least the alsa-devel archive scrubbing
the text/x-patch attachments as "non-text".

The snd-usb-6fire driver for the TerraTec DMX 6Fire USB soundcard has
been failing its firmware upload due to a non DMA-capable buffer on the
stack. First of the patches kmallocs said bufffer instead and fixes the
firmware upload.

After that first patch the driver nominally works again but still has
Pulseaudio crap out due to struct snd_pcm_hardware.channels_min=1
causing it to recognize it as a mono device only. Comparing with e.g.
the TerraTec Aureon 7.1 Universe driver it seems that the solution is to
simply set channels_min=2 as per the second patch.

Third patch unmarks the snd_pcm_hardware struct const as it it is in
fact changed in usb6fire_pcm_open(), even though through a pointer, and
is supposedly trivial.

With these changes the card works again. Driver author Torsten Schenk
has seen these and is fine with them: maintains an external driver with
more options. I or he might time permitting start integrating more into
the kernel driver over time.

Regards,
René

René Herman (3):
  snd-usb-6fire: Move DMA-buffer off of the stack
  snd-usb-6fire: Pulseaudio needs snd_pcm_hardware.channels_min > 1
  snd-usb-6fire: Unmark struct snd_pcm_hardware const

 firmware.c | 95 ++++++++++++++++++++++++++----------------------------
 pcm.c      |  4 +--
 2 files changed, 48 insertions(+), 51 deletions(-)

-- 
2.17.1



More information about the Alsa-devel mailing list