Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Feb 2005 14:46:12 +0900
From:      Pyun YongHyeon <yongari@kt-is.co.kr>
To:        Kazuhito HONDA <kazuhito@ph.noda.tus.ac.jp>
Cc:        freebsd-multimedia@freebsd.org
Subject:   Re: Which USB-Soundcards work?
Message-ID:  <20050202054612.GA8538@kt-is.co.kr>
In-Reply-To: <20050202.125013.343181897.kazuhito@ph.noda.tus.ac.jp>
References:  <20050201.025634.343191193.kazuhito@ph.noda.tus.ac.jp> <20050202.002449.343190992.kazuhito@ph.noda.tus.ac.jp> <200502011815.j11IFWkB004113@Mail.NOSPAM.DynDNS.dK> <20050202.125013.343181897.kazuhito@ph.noda.tus.ac.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Feb 02, 2005 at 12:50:13PM +0900, Kazuhito HONDA wrote:
 > 
 > > play channel supported format list invalid
 > > pcm1: chn_init(pcm1:play:0) failed: err = 19
 > > pcm1: pcm_chn_create(ua_chan, 1, 0xc19f4a80) failed
 > > record channel supported format list invalid
 > > pcm1: chn_init(pcm1:record:0) failed: err = 19
 > > pcm1: pcm_chn_create(ua_chan, -1, 0xc19f4a80) failed
 > 
 > These look like the same problem as below:
 > http://docs.freebsd.org/cgi/getmsg.cgi?fetch=246398+0+archive/2004/freebsd-usb/20041231.freebsd-usb
 > 
 > If they are just same problems, It will be resolved by changing
 > UAUDIO_PCM_BUFF_SIZE definition to (16*1024)-4 in uaudio_pcm.c.
 > (if it is (18*1024)-1, sound right-left will be counterchanged.)
 > 
 > This problem must come from maxsegz size 
 > in the function bus_dma_tag_create() in uaudio_pcm.c 
 > which is smaller than UAUDIO_PCM_BUFF_SIZE
 > and one digit smaller than maxsegzs of other audio devices.
 > Actually, this problem can be fixed by changing maxsegz 
 > from 0x3fff to 0x3ffff.
 > But I don't know it has some reasons, 
 > or it is a mere copy mistake.
 > 

I guess this is a bug. As you know DMA buffer should be less than
the maxsegz. And if the USB device can handle DMA transferrs
up to 0x3ffff bytes in a segment it's ok to set the value in
bus_dma_tag_create(9). The value 0x3fff(16383) seems to be too small
one and I believe most hardwares can DMA up to 64KB at least. So I
guess it's an "copy & paste mistake".

-- 
Regards,
Pyun YongHyeon
http://www.kr.freebsd.org/~yongari	|	yongari@freebsd.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050202054612.GA8538>