snd_hda

Sascha Wildner saw at online.de
Mon Oct 15 09:47:35 PDT 2012


On Mon, 15 Oct 2012 17:42:52 +0200, Goetz Isenmann  
<info at goetz-isenmann.de> wrote:

> On Sun, Oct 14, 2012 at 06:59:38PM +0800, Sepherosa Ziehau wrote:
>> Please try following diff:
>> http://leaf.dragonflybsd.org/~sephe/hda.diff
>>
>> cd /usr/src; patch -p1 -i ~/hda.diff
>
> Hey fine, I get clear sound again (when kldload after booting,
> "Operation not supported by device" via loader.conf).

I suspect it has to do with the intrhook in hdac.c not running properly in  
the latter case. I know of a similar issue in amr(4), but I have no fix.

/* Defer remaining of initialization until interrupts are enabled */
sc->intrhook.ich_func = hdac_attach2;
sc->intrhook.ich_arg = (void *)sc;
sc->intrhook.ich_desc = "snd_hda";
if (cold == 0 || config_intrhook_establish(&sc->intrhook) != 0) {
         sc->intrhook.ich_func = NULL;
         hdac_attach2(sc);
}

My guess is that hdac_attach2() is not run (properly) as an intrhook when  
snd_hda(4) is loaded from loader.conf.

Can you put up:

1) A /var/run/dmesg.boot from a verbose boot with snd_hda in loader.conf.
2) The relevant part of /var/log/messages upon kldload snd_hda from a  
verbosely booted system without snd_hda in loader.conf.

Thanks,
Sascha



More information about the Kernel mailing list