Subject: uaudio problem...
To: None <current-users@netbsd.org>
From: Chris Gilbert <chris@paradox.demon.co.uk>
List: current-users
Date: 06/03/2001 00:13:31
Hi,

Because my sb live doesn't work under NetBSD I decided to investigate USB 
speakers, so I've managed to borrow some USB speakers (rather nice ones it 
seems) with a view to checking they work under NetBSD.  I believe the 
speakers use the USB standard for audio (they work with windows and Mac OS
without custom drivers)  But they don't seem to work under NetBSD.

note that I went into the uaudio.c file and enabled UAUDIO_DEBUG with a 
default debug level of 2, so the output is more verbose than normal.

They happily get detected (dmesg from boot):
uhci0 at pci0 dev 7 function 2: Intel 82371AB USB Host Controller (PIIX4) 
(rev. 0x01)
uhci0: interrupting at irq 10
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
[snip]
uaudio0 at uhub0 port 2 configuration 1 interface 0: harman/kardon 
SoundSticks,
rev 1.10/0.01, addr 2
uaudio_identify: subtype=2
uaudio_identify: subtype=6
uaudio_add_feature: bUnitId=2 bSourceId=1, 3 channels, mmask=0x0155, 
cmask=0x0002
uaudio_identify: subtype=3
uaudio_process_as: endpoint bLength=9 bDescriptorType=5 bEndpointAddress=1 
bmAttributes=0x9 wMaxPacketSize=112 bInterval=1 bRefresh=0 bSynchAddress=0
uaudio_identify: alt=1 enc=6 chan=1 prec=16
uaudio_process_as: endpoint bLength=9 bDescriptorType=5 bEndpointAddress=1 
bmAttributes=0x9 wMaxPacketSize=224 bInterval=1 bRefresh=0 bSynchAddress=0
uaudio_identify: alt=2 enc=6 chan=2 prec=16
uaudio_process_as: endpoint bLength=9 bDescriptorType=5 bEndpointAddress=1 
bmAttributes=0x9 wMaxPacketSize=336 bInterval=1 bRefresh=0 bSynchAddress=0
uaudio0: ignored setting with precision 24
uaudio_identify_as: 2 alts available
uaudio0: audio rev 1.00
uaudio0: 6 mixer controls
uaudio_attach: doing audio_attach_mi
audio0 at uaudio0: half duplex
uaudio_round_blocksize: blk=400
uaudio_round_blocksize: blk=400
uhid0 at uhub0 port 2 configuration 1 interface 2
uhid0: harman/kardon SoundSticks, rev 1.10/0.01, addr 2, iclass 3/0

The problem I'm getting is that xmms claims it can't open the device, and 
madplay comes back with:
audio: /dev/audio: Invalid argument

log from messages shows for the above:
Jun  2 23:49:23 pinky /netbsd: uaudio_open: sc=0xc0763000
Jun  2 23:49:23 pinky /netbsd: uaudio_set_params: chan=1 prec=8 enc=6 
rate=8000
Jun  2 23:49:23 pinky /netbsd: uaudio_close: sc=0xc0763000
Jun  2 23:49:23 pinky /netbsd: uaudio_halt_in_dma: enter
Jun  2 23:49:23 pinky /netbsd: uaudio_halt_out_dma: enter

however some things work, eg:
>  audioctl -w play=44100,2,16,slinear_le
play: -> 44100,2,16,slinear_le
play.rate: -> 44100
play.channels: -> 2
play.precision: -> 16
play.encoding: -> slinear_le

some don't:
> audioctl -w play.sample_rate=11025
audioctl: set failed: Invalid argument

Is the problem the speakers?  the driver?  my lack of understanding about the 
audio system?  If it's the drivers is there anything I can do to debug the 
problem?

Cheers,
Chris