On Thu, Jun 21, 2012 at 08:12:41AM -0400, John Baldwin wrote:
> On Wednesday, June 20, 2012 4:44:41 pm Ruslan Bukin wrote:
> > Hi.
> > 
> > I have the problem with different behavior of snd_hdspe(4) sound card 
> > driver initialization.
> > 
> > If I load the driver by hand using kldload everything works fine,
> > but in case of loading driver at boot time (loader.conf) or compile 
> > in kernel the driver can't initialize propertly.
> > 
> > The snd_hdspe(4) driver is designed to create a pcm child device per 
> > each pair of sound channels.
> > 
> > The problem is that snd_hdspe loaded normally, but pcm child devices
> > are not appears. hdspe_pcm_probe() in driver is not called at all.
> > However snd_hdspe_pcm driver exists in kldstat -v after boot:
> >  5    1 0xffffffff81377000 a2c8     snd_hdspe.ko (/boot/kernel/snd_hdspe.ko)
> >  Contains modules:
> >       Id Name
> >           7 hdspe/snd_hdspe_pcm
> >              6 pci/snd_hdspe
> > 
> > and I have checked, device_add_child() returns not NULL.
> > 
> > I played with MODULE_DEPEND as done in snd_hda(4) but no luck.
> > What can I do to debug the problem?
> 
> The snd_hdspe driver probably needs to use DRIVER_MODULE_ORDERED() to ensure 
> the other modules in its kld are registered with new-bus before it tries to 
> attach to devices.

I have changed, but no success.

hdspe.c:
DRIVER_MODULE_ORDERED(snd_hdspe, pci, hdspe_driver, pcm_devclass, 0, 0, 
SI_ORDER_SECOND);

hdspe-pcm.c:
DRIVER_MODULE_ORDERED(snd_hdspe_pcm, hdspe, hdspe_pcm_driver, pcm_devclass, 0, 
0, SI_ORDER_FIRST);

In this case, pcm devices are not appears neither at boot time nor by manually 
kldload.
In reverse order works as usual (only by manually kldload)

-Ruslan

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to