Subject: Re: Aureal sound cards support
To: Pierre Pronchery <khorben@defora.org>
From: Jared D. McNeill <jmcneill@invisible.ca>
List: current-users
Date: 06/07/2007 21:34:39
On 7-Jun-07, at 8:41 PM, Pierre Pronchery wrote:
> I got this far:
> vortex0 at pci0 dev 12 function 0: Aureal Semiconductor AU8830
> Vortex 3D
> Digital Audio Processor (audio multimedia, revision 0xfe)
> vortex0: interrupting at irq 11
> vortex0: ac97: SigmaTel STAC9704 codec; 18 bit DAC, 18 bit ADC,
> SigmaTel 3D
> vortex0: ac97: ext id
> ffff<SECONDARY10,SECONDARY01,AC97_23,AC97_22,AMAP,LDAC,SDAC,CDAC,VRM,S
> PDIF,DRA,VRA>
> vortex0: ac97: Slot assignment: 10&11, 3&4, 7&8.
> vortex0: Ignore these capabilities.
>
> I get a working mixer, I attached the output of "mixerctl -av" here.
Very nice!
> Sound playback still triggers an uvm_fault() though (invalid address 0
> in the process accessing the card). Since I am not sure of what I am
> doing, I attach the current version of my sources here as well. Please
> let me know if you see anything that might help the inclusion of this
> driver in -current.
You are missing quite a few function callbacks required by the NetBSD
audio framework. trigger_output and trigger_input are very important,
for example :-) A kernel built with the DIAGNOSTIC option would catch
this. From audio.c:
#ifdef DIAGNOSTIC
if (hwp == 0 ||
hwp->query_encoding == 0 ||
hwp->set_params == 0 ||
(hwp->start_output == 0 && hwp->trigger_output == 0) ||
(hwp->start_input == 0 && hwp->trigger_input == 0) ||
hwp->halt_output == 0 ||
hwp->halt_input == 0 ||
hwp->getdev == 0 ||
hwp->set_port == 0 ||
hwp->get_port == 0 ||
hwp->query_devinfo == 0 ||
hwp->get_props == 0) {
printf(": missing method\n");
sc->hw_if = 0;
return;
}
#endif
Hope this helps,
Jared