Subject: HEADS UP: dev/pci/auixp (IXP-200 audio support) in progress
To: None <tech-kern@netbsd.org>
From: Reinoud Zandijk <reinoud@netbsd.org>
List: tech-kern
Date: 12/14/2004 13:22:09
--wRRV7LY7NUeQGEoC
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Dear folks,

i'm currently working on getting my Asus Pundit-R's IXP-200 audio subsystem 
working. Quentin (cube) allready did a great job for getting the ixpide 
working and i started on the audio part myself.

The current status is :

auixp0 at pci0 dev 20 function 5: ATI Technologies IXP AC'97 Audio Controller (rev. 0x00)
auixp0: interrupting at ioapic0 pin 17 (irq 5)
....
ioapic0: enabling
auixp0: ac97: Analog Devices AD1888 codec; headphone, 20 bit DAC, no 3D stereo
auixp0: ac97: ext id 3c7<AMAP,LDAC,SDAC,CDAC,SPDIF,DRA,VRA>
audio0 at auixp0: full duplex, mmap, independent
....

as in 1) audio device detection works 2) interrupts and resource mapping 
works, 3) interrupts work correctly 4) AC'97 presence detection works 5) 
AC'97 communication works

My to-do list (random order):
	translating the settings into actual AC'97 settings
	setting up DMA buffers
	getting sound DMA working for 2, 4, 6 (8?) channels at the correct rate
	....
	cleaning up!!!

What only puzzles me is SPDF support; how it communicates with the AC'97 is 
not that clear to me yet.... since i dont have any SPDF accepting devices i 
think this support might be a little difficult unless SPDF is channeled 
over the AC'97.

As a side effect, i've noticed that the ac97_attach() needs some small 
adjustments as in it demands that the structure passed in host_if.arg is a 
struct device pointer (or at least starts with a device entry); i would 
like to break this false dependency by passing on the device pointer as a 
second argument to ac97_attach() so it then becomes :

	ac97_attach(struct ac97_host_if host_if *, struct device *)

Cheers,
Reinoud


--wRRV7LY7NUeQGEoC
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (NetBSD)

iQEVAwUBQb7a6YKcNwBDyKpoAQKghQf/fi04xQzIlDad1HVowi6LpfXFJz+KgXby
NAPr38OtjEhkSV1dtLimus+DsnP9akxd8xHucIJMM2Hv4zt3TIYfKY8+kgSie+6g
M+SoiqHJoSiWmh1bTEy7VjuxWOOplEYguU+ixsr847uYpFFXsNi5FhsFE5Z48zpB
Xb+Wf15brIa+djOSD0Ir+0fEEMeCsmPxhQBHimYUD2hL8kQz6L2X9mUMKK+y1RAG
eq1SxH+xLGI7yyaO2o28Cv4oL6xUfU5H4PaSh4TBBw43ckYySyVXWYW/xNAsZzXP
8NQ+nnUDbGzDAA4cFrRic9pPS1KEL5eN5Bfarm3v8MiAcl7BZ04jxw==
=Y5S4
-----END PGP SIGNATURE-----

--wRRV7LY7NUeQGEoC--