Date: Fri, 20 Jan 2012 18:09:57 +0100 From: Joel Dahl <joel@freebsd.org> To: multimedia@freebsd.org Subject: Removing broken drivers in sys/dev/sound/pci Message-ID: <20120120170956.GV11137@goofy01.vnodelab.local>
next in thread | raw e-mail | index | archive | help
Hi all, I've been playing with a bunch of old sound cards I had lying around and I've come to the conlusion that maybe it's time to remove a few old drivers we currently have in the tree. - snd_aureal This driver wasn't really finished when it was committed back in 1999 and it's still incomplete. No playback and it doesn't even have a manual page. There's audio/aureal-kmod in ports which probably works better for this card... - snd_ds1 I don't think I've seen anyone successfully using this driver in a while and some quick research reveals a few problem reports on the FreeBSD mailing lists. I have a Yamaha TMF744 card which I've been doing some testing with: playback doesn't really work (well, sort of), with mpg321 I sometimes get an almost instant reboot. When it doesn't reboot I get really distorted and weird sound. Maybe a faulty card. Can anyone else test this driver with FreeBSD 10-CURRENT? - snd_maestro This driver seems to have been broken since 5.2.1 and there are currently 3 open PR's: kern/63204, kern/119973 and kern/122086. I decided to give it a try with an old ESS Maestro-2 that I have here and I got a bunch of errors when trying to kldload it on FreeBSD-CURRENT: pcm1: <ESS Technology Maestro-2> port 0x1100-0x11ff irq 22 at device 11.0 on pci16 lock order reversal: (sleepable after non-sleepable) 1st 0xfffffe0008118050 ESS Technology Maestro-2 (snd_maestro softc) @ /usr/src/sys/modules/sound/driver/maestro/../../../../dev/sound/pci/maestro.c:1886 2nd 0xffffffff8111b900 ACPI PCI power methods (ACPI PCI power methods) @ /usr/src/sys/dev/acpica/acpi_pci.c:180 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x37 _witness_debugger() at _witness_debugger+0x2c witness_checkorder() at witness_checkorder+0x854 _sx_xlock() at _sx_xlock+0x5d acpi_pci_set_powerstate_method() at acpi_pci_set_powerstate_method+0x6a agg_power() at agg_power+0xd0 agg_attach() at agg_attach+0x608 device_attach() at device_attach+0x69 pci_driver_added() at pci_driver_added+0xda devclass_driver_added() at devclass_driver_added+0x75 devclass_add_driver() at devclass_add_driver+0x10b module_register_init() at module_register_init+0x7d linker_load_module() at linker_load_module+0x9c3 kern_kldload() at kern_kldload+0xac sys_kldload() at sys_kldload+0x84 amd64_syscall() at amd64_syscall+0x39e Xfast_syscall() at Xfast_syscall+0xf7 --- syscall (304, FreeBSD ELF64, sys_kldload), rip = 0x8008adc0c, rsp = 0x7fffffffd5c8, rbp = 0x7fffffffdb48 --- pcm1: agg_rdcodec() RW_DONE timed out. pcm1: agg_rdcodec() PROGLESS timed out. pcm1: agg_wrcodec() PROGLESS timed out. pcm1: <Asahi Kasei AK4540 AC97 Codec> pcm1: agg_rdcodec() PROGLESS timed out. pcm1: agg_wrcodec() PROGLESS timed out. pci16: failed to set ACPI power state D2 on \\_SB_.PCI0.HUB_.SLT3: AE_BAD_PARAMETER Playback does not work, which isn't all that surprising. -- On the other hand, I did some testing on a few other cards as well and the following drivers (snd_fm801, snd_solo, snd_csa, snd_cmi) are still working (I've only tested playback), in case someone finds it interesting: hpxw# cat /dev/sndstat FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64) Installed devices: pcm0: <Forte Media FM801 Audio Controller> (play/rec) pcm1: <ESS Solo-1E> (play/rec) pcm2: <CS461x PCM Audio> (play/rec) pcm3: <CMedia CMI8738> (play/rec) Considering the fact that snd_cmi/snd_csa are somewhat common cards, maybe they belong in GENERIC? -- If no one objects I'll go ahead and remove snd_aureal, snd_ds1 and snd_maestro in a month or so. -- Joel
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120120170956.GV11137>