Removing broken drivers in sys/dev/sound/pci

Joel Dahl joel at freebsd.org
Thu Mar 22 17:07:57 UTC 2012


On 21-03-2012 18:56, Taku YAMAMOTO wrote:
> On Fri, 20 Jan 2012 18:09:57 +0100
> Joel Dahl <joel at freebsd.org> wrote:
> 
> > 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.
> 
> [snip]
> 
> > - 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.
> 
> I, as the author of this driver, am interested in that you still have
> actual hardware and trying to make it work.
> 
> To consider fixing this driver, your help would be very appriciated
> because I no longer have this type of device handy.
> 
> First of all, the attached patch works for you?

Hi,

I'v applied the patch and I've done some testing now.

The lock order reversal is gone.

The pci16 ACPI error message is also gone.

All those agg_rdcodec()/agg_wrcodec messages are still there.

Playback does not seem to work.

-- 
Joel


More information about the freebsd-multimedia mailing list