[Bug 235257] snd_uaudio not getting loaded automatically after migration to devmatch
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Feb 1 22:21:08 UTC 2019
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235257
--- Comment #24 from Max <maxsteciuk at gmail.com> ---
I am able to trace event through from sys/dev/usb/usb_hub.c:usb_notify_addq to
sys/kern/subrc_bus.c:devctl_queue_data_f where it is supposed to invoke
pgsigio() but still I don't see devd triggering module loading...
The devctl queue is not getting full as per printout. It is set to default
hw.bus.devctl_queue = 1000
>>>Feb 1 16:57:06 kernel: usb_alloc_device: new dev (addr 5), udev=0xfffff80006677000, >>>parent_hub=0xfffff800062df000
>>>Feb 1 16:57:06 kernel: ugen0.6: <Dell DELL PROFESSIONAL SOUND BAR AE515> at usbus0
>>>Feb 1 16:57:06 kernel: usb_notify_addq: ++++ sending devctl_notify() about type ATTACH ugen_name ugen0.6
>>>Feb 1 16:57:06 kernel: +++ devctl_notify_f() system USB, subsystem DEVICE, type ATTACH, data [ugen=ugen0.6 cdev=ugen0.6 vendor=0x413c product=0xa506 devclass=0x00 devsubclass=0x00 sernum="" release=0xe001 mode=host port=2 parent=ugen0.3], flags 1
>>>+++ 1 devctl_queue_data_f() data [!system=USB subsystem=DEVICE type=ATTACH ugen=ugen0.6 cdev=ugen0.6 vendor=0x413c product=0xa506 devclass=0x00 devsubclass=0x00 sernum="" release=0xe001 mode=host port=2 parent=ugen0.3
>>>Feb 1 16:57:06 kernel: ] flags 1, devctl_queue_length 1000
>>>Feb 1 16:57:06 kernel: +++ 2 devctl_queue_data_f() data [!system=USB subsystem=DEVICE >>>type=ATTACH ugen=ugen0.6 cdev=ugen0.6 vendor=0x413c product=0xa506 devclass=0x00 devsubclass=0x00 sernum="" release=0xe001 mode=host port=2 parent=ugen0.3
>>>Feb 1 16:57:06 kernel: ] flags 1, devctl_queue_length 1000, devsoftc.queued 368
Hitting this point where the only condition of not sending request would be if
devsoft.async == 0 or devsoftc.sigio is null.
>>>printf("+++ 2 devctl_queue_data_f() data [%s] flags %d, devctl_queue_length %d, devsoftc.queued >>>%d\n", data, flags, devctl_queue_length, devsoftc.queued);
>>> /* Leave at least one spot in the queue... */
>>> while (devsoftc.queued > devctl_queue_length - 1) {
>>> n2 = TAILQ_FIRST(&devsoftc.devq);
>>> TAILQ_REMOVE(&devsoftc.devq, n2, dei_link);
>>> free(n2->dei_data, M_BUS);
>>> free(n2, M_BUS);
>>> devsoftc.queued--;
>>> }
>>> TAILQ_INSERT_TAIL(&devsoftc.devq, n1, dei_link);
>>> devsoftc.queued++;
>>> cv_broadcast(&devsoftc.cv);
>>> KNOTE_LOCKED(&devsoftc.sel.si_note, 0);
>>> mtx_unlock(&devsoftc.mtx);
>>> selwakeup(&devsoftc.sel);
>>> if (devsoftc.async && devsoftc.sigio != NULL)
>>> pgsigio(&devsoftc.sigio, SIGIO, 0);
>>> return;
Thanks,
Max
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-usb
mailing list