Date: Sun, 11 Nov 2018 13:52:14 +0100 From: Hans Petter Selasky <hps@selasky.org> To: "Herbert J. Skuhra" <herbert@gojira.at>, freebsd-arm@freebsd.org Subject: Re: Raspberry PI 2B/3 and USB audio Message-ID: <6beca923-ba25-3814-6bb2-f4cc2d7360d3@selasky.org> In-Reply-To: <87ftw96uq0.wl-herbert@gojira.at> References: <87ftw96uq0.wl-herbert@gojira.at>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/10/18 12:24 PM, Herbert J. Skuhra wrote: > Hi, > > if you use an USB sound card on your Raspberry PI 2B/3, can you please > answer the following questions: > > - which USB sound card? > - do you have bad audio on current or stable/12 after r339388? > > My "Creative Technology Ltd Sound Blaster Play 2" device sounds very > bad. Meanwhile more changes were commited but they don't fix audio > completly. > Hi, Some background: The USB controller in Raspberry PI is running HIGH-speed USB. Many USB audio device are FULL-speed USB. In order for a FULL-speed USB device to work in a HIGH-speed USB environment all data transfers need to go through a so-called transaction translator. This transaction translator operate on chunks of data, 171 bytes maximum. That means if a USB audio stream generates 1000 packets per second, then suddenly a bunch of smaller packets will be needed. This puts some stress on the DWC OTG driver and there might be some room for improvement in this area too, but the basic sympthom is that the DWC OTG driver in FreeBSD is not always able to keep up with the timing required for these so-called split transactions. One idea is to move all DWC OTG IRQ handling away from CPU-0. I'm not sure if cpuset supports this yet on armv7 // arm64. Might have to be done in the driver. Further some audio device use non-adaptive clocks, which means the recording channel must be active along with the playback channel else jitter will occur. The recommendation for RPI is a HIGH-speed USB audio device (should be clearly marked in the specification). Using a HIGH-speed USB audio device will reduce the number of interrupts significantly. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6beca923-ba25-3814-6bb2-f4cc2d7360d3>