From owner-freebsd-arm@freebsd.org Wed Nov 28 10:28:49 2018 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A867D114FD5C for ; Wed, 28 Nov 2018 10:28:49 +0000 (UTC) (envelope-from bscott@bunyatech.com.au) Received: from ppp150-101-221-139.static.internode.on.net (2001-44b8-4170-0a00-0000-0000-0000-0002.static.ipv6.internode.on.net [IPv6:2001:44b8:4170:a00::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "150.101.221.139", Issuer "Bunya Technology Certification Authority" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 99F306E773 for ; Wed, 28 Nov 2018 10:28:46 +0000 (UTC) (envelope-from bscott@bunyatech.com.au) X-Clacks-Overhead: GNU Terry Pratchett Received: from DHCP.tawonga.bunyatech.com.au (DHCP.tawonga.bunyatech.com.au [10.0.1.78] (may be forged)) (authenticated bits=0) by cope.tawonga.bunyatech.com.au (8.15.2/8.15.2/MSA) with ESMTPSA id wASASgwP068473 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=OK); Wed, 28 Nov 2018 21:28:42 +1100 (AEDT) (envelope-from bscott@bunyatech.com.au) Subject: Re: Raspberry PI 2B/3 and USB audio To: Hans Petter Selasky , freebsd-arm@freebsd.org References: <87ftw96uq0.wl-herbert@gojira.at> <6beca923-ba25-3814-6bb2-f4cc2d7360d3@selasky.org> <875zx2hyey.wl-herbert@gojira.at> <87lg5fhcgz.wl-herbert@gojira.at> <87k1kzhb8j.wl-herbert@gojira.at> <9dda25f1-9b52-2a50-1b55-00cccee8ee98@selasky.org> <856136a7-c58f-dda0-d50c-f9da55e5eb88@bunyatech.com.au> From: Brian Scott Message-ID: <7bee717d-70e5-5f09-d5c4-96c72ddbd2f9@bunyatech.com.au> Date: Wed, 28 Nov 2018 21:28:42 +1100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-Rspamd-Queue-Id: 99F306E773 X-Spamd-Result: default: False [-0.31 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2001:44b8:4170:a00::/56]; HFILTER_HELO_IP_A(1.00)[ppp150-101-221-139.static.internode.on.net]; HFILTER_HELO_NORES_A_OR_MX(0.30)[ppp150-101-221-139.static.internode.on.net]; MX_GOOD(-0.01)[cached: mx01.mailcluster.com.au]; RCPT_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; IP_SCORE(-0.02)[asn: 4739(-0.05), country: AU(-0.04)]; ASN(0.00)[asn:4739, ipnet:2001:44b8::/32, country:AU]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.98)[-0.980,0]; FROM_HAS_DN(0.00)[]; NEURAL_SPAM_SHORT(0.68)[0.676,0]; NEURAL_HAM_LONG(-0.97)[-0.975,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[bunyatech.com.au]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[] X-Rspamd-Server: mx1.freebsd.org X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Nov 2018 10:28:49 -0000 On 28/11/18 9:22 pm, Hans Petter Selasky wrote: > On 11/28/18 11:13 AM, Brian Scott wrote: >> On 28/11/18 7:45 pm, Hans Petter Selasky wrote: >>> On 11/28/18 1:46 AM, Brian Scott wrote: >>>> On 27/11/18 6:38 pm, Hans Petter Selasky wrote: >>>>> On 11/26/18 8:47 PM, Herbert J. Skuhra wrote: >>>>>> Well, this USB sound card works perfectly fine on my desktop PC >>>>>> running FreeBSD (amd64). >>>>> >>>>> Hi, >>>>> >>>>> There is a problem in the DWC OTG USB controller driver that it >>>>> cannot >>>>> handle the big data payload 24-bit 48KHz sampling requires. >>>>> Unfortunately your device has only one sample size selection. >>>>> >>>>> If you buy a USB sound device marked as "HIGH SPEED USB" it should >>>>> work. Yours is "spd=FULL". >>>>> >>>>> --HPS >>>> Just an additional data point, >>>> >>>> This one also sounds like junk but is high speed: >>>> >>>>       ugen0.6: at usbus0, cfg=0 md=HOST spd=HIGH >>>>       (480Mbps) pwr=ON (100mA) >>>> >>>>         bLength = 0x0012 >>>>         bDescriptorType = 0x0001 >>>>         bcdUSB = 0x0200 >>>>         bDeviceClass = 0x0000  >>>>         bDeviceSubClass = 0x0000 >>>>         bDeviceProtocol = 0x0000 >>>>         bMaxPacketSize0 = 0x0040 >>>>         idVendor = 0x0bda >>>>         idProduct = 0x4040 >>>>         bcdDevice = 0x0000 >>>>         iManufacturer = 0x0003  >>>>         iProduct = 0x0001  >>>>         iSerialNumber = 0x0002  <201405280001> >>>>         bNumConfigurations = 0x0001 >>>> >>>> But I notice that it handles both 48000 and 8000 according to the >>>> sound >>>> driver. >>>> >>>>       cat /dev/sndstat >>>>       FreeBSD Audio Driver (64bit 2009061500/aarch64) >>>>       Installed devices: >>>>       pcm0: at ? kld snd_uaudio (1p:1v/1r:1v) default >>>>           snddev flags=0x2e2 >>>>           [pcm0:play:dsp0.p0]: spd 48000, fmt 0x00200010, flags >>>>       0x00002100, 0x00000004 >>>>           interrupts 0, underruns 0, feed 0, ready 0 >>>>       [b:3072/1536/2|bs:4096/2048/2] >>>>           channel flags=0x2100 >>>>           {userland} -> feeder_mixer(0x00200010) -> {hardware} >>>>           pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp0]: spd 8000, fmt >>>>       0x00100008, flags 0x10000000, 0x00000000 >>>>           interrupts 0, underruns 0, feed 0, ready 0 >>>> [b:0/0/0|bs:0/0/0] >>>>           channel flags=0x10000000 >>>>           {userland} -> feeder_root(0x00000000) -> {hardware} >>>>           [pcm0:record:dsp0.r0]: spd 48000,fmt 0x00200010/0x00210000, >>>>       flags 0x00002100, 0x00000007 >>>>           interrupts 0, overruns 0, feed 0, hfree 4608, sfree 4096 >>>>       [b:4608/2304/2|bs:4096/2048/2] >>>>           channel flags=0x2100 >>>>           {hardware} -> feeder_root(0x00210000) -> >>>>       feeder_format(0x00210000 -> 0x00200010) -> >>>> feeder_mixer(0x00200010) >>>>       -> {userland} >>>>           pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr0]: spd 8000, fmt >>>>       0x00100008, flags 0x10000000, 0x00000000 >>>>           interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 >>>>       [b:0/0/0|bs:0/0/0] >>>>           channel flags=0x10000000 >>>>           {hardware} -> feeder_root(0x00000000) -> {userland} >>>>       No devices installed from userspace. >>>> >>>> Output sounds like rubbish with both 8000 speed stuff sent directly to >>>> /dev/dsp using cat and higher quality stuff sent via sox play. >>>> >>>> It could also just be a junk piece of hardware from my local >>>> electronics >>>> shop. >>> >>> Which version of FreeBSD is this? >>> >>> Can you show dmesg? >>> >>> --HPS >>> >> 12.0 RC2 with /boot and /boot/msdos on sdcard and everything else on USB >> connected hard drive (causing interference with the bus?). Otherwise >> everything directly off the RC2 image + packages and a bit of >> configuration. >> >> On repeating my tests (probably last done a few months ago with the >> current snapshot) the sound was much better than I remember (almost >> recognisable!). Maybe having the non-debug kernel is helping. Hope this >> isn't a red herring. >> > > Can you set the: > > sysctl dev.pcm.0.play.vchanrate=48000 > sysctl dev.pcm.0.rec.vchanrate=48000 > > And try again? > > --HPS Already set: #sysctl dev.pcm.0 dev.pcm.0.feedback_rate: 0 dev.pcm.0.mixer.mute_4.desc: 201405280001 dev.pcm.0.mixer.mute_4.max: 1 dev.pcm.0.mixer.mute_4.min: 0 dev.pcm.0.mixer.mute_4.val: 1 dev.pcm.0.mixer.vol_3_1.desc: 201405280001 dev.pcm.0.mixer.vol_3_1.max: 0 dev.pcm.0.mixer.vol_3_1.min: -16800 dev.pcm.0.mixer.vol_3_1.val: -2153 dev.pcm.0.mixer.vol_3_0.desc: 201405280001 dev.pcm.0.mixer.vol_3_0.max: 0 dev.pcm.0.mixer.vol_3_0.min: -16800 dev.pcm.0.mixer.vol_3_0.val: -2153 dev.pcm.0.mixer.mute_2.desc: 201405280001 dev.pcm.0.mixer.mute_2.max: 1 dev.pcm.0.mixer.mute_2.min: 0 dev.pcm.0.mixer.mute_2.val: 1 dev.pcm.0.mixer.vol_1_1.desc: 201405280001 dev.pcm.0.mixer.vol_1_1.max: 0 dev.pcm.0.mixer.vol_1_1.min: -8576 dev.pcm.0.mixer.vol_1_1.val: -2153 dev.pcm.0.mixer.vol_1_0.desc: 201405280001 dev.pcm.0.mixer.vol_1_0.max: 0 dev.pcm.0.mixer.vol_1_0.min: -8576 dev.pcm.0.mixer.vol_1_0.val: -2153 dev.pcm.0.mixer.(null)_0.desc: dev.pcm.0.mixer.(null)_0.max: 1 dev.pcm.0.mixer.(null)_0.min: 0 dev.pcm.0.mixer.(null)_0.val: 1 dev.pcm.0.bitperfect: 0 dev.pcm.0.buffersize: 0 dev.pcm.0.rec.vchanformat: s16le:2.0 dev.pcm.0.rec.vchanrate: 48000 dev.pcm.0.rec.vchanmode: fixed dev.pcm.0.rec.vchans: 1 dev.pcm.0.play.vchanformat: s16le:2.0 dev.pcm.0.play.vchanrate: 48000 dev.pcm.0.play.vchanmode: fixed dev.pcm.0.play.vchans: 1 dev.pcm.0.hwvol_mixer: vol dev.pcm.0.hwvol_step: 5 dev.pcm.0.%parent: uaudio0 dev.pcm.0.%pnpinfo: dev.pcm.0.%location: dev.pcm.0.%driver: pcm dev.pcm.0.%desc: USB audio