snd_hda fails to probe after 15 March
Giorgos Keramidas
keramida at FreeBSD.org
Mon Mar 26 10:23:24 UTC 2007
On 2007-03-26 00:44, Giorgos Keramidas <keramida at freebsd.org> wrote:
>On 2007-03-26 05:17, Ariff Abdullah <ariff at FreeBSD.org> wrote:
>>On Sun, 25 Mar 2007 23:34:13 +0300
>>Giorgos Keramidas <keramida at freebsd.org> wrote:
>>> Some time after March 15, snd_hda started failing to attach to
>>> pcm0 on my laptop. I haven't managed to nail the change down to
>>> a single commit yet, but I've attached the files:
>>> [...]
>>> There seems to be at least one more message in dmesg.boot-25 which
>>> seems relevant to snd_hda failing to attach:
>>>
>>> pcm0: [MPSAFE]
>>> pcm0: [ITHREAD]
>>> +pcm0: hdac_get_capabilities: Invalid rirb size (0)
>>> +device_attach: pcm0 attach returned 6
>>> pcib1: <ACPI PCI-PCI bridge> irq 17 at device 28.0 on pci0
>>>
>>> If you need anything more to troubleshoot this, let me know :)
>>
>> Try reverting hdac.c, down to cvs revision 1.27
>
> No luck with that version and a -DNO_CLEAN build. I'll try a full
> kernel and modules recompile next.
A full kernel rebuild doesn't work either. In fact, even if I boot a
HEAD kernel, with hdac.c down to 1.27 and I load the snd_hda module from
the old kernel, I still get:
pcm0: <Intel 82801G High Definition Audio Controller> \
mem 0xf0000000-0xf0003fff
irq 22 at device 27.0 on pci0
pcm0: [MPSAFE]
pcm0: [ITHREAD]
pcm0: hdac_get_capabilities: Invalid rirb size (0)
device_attach: pcm0 attach returned 6
pci1: driver added
pci2: driver added
Apparently, rirbsize in hdac.c:1122 is not initialized or it is
initialized to zero:
1122 rirbsize = HDAC_READ_1(&sc->mem, HDAC_RIRBSIZE);
[...]
1133 device_printf(sc->dev, "%s: Invalid rirb size (%x)\n",
1134 __func__, rirbsize);
1135 return (ENXIO);
I was initially loading snd_hda from 'loader.conf', with:
snd_hda_load="YES"
but I don't know if this makes any difference. Unloading the module and
loading it manually doesn't seem to fix the call to HDAC_READ_1() which
sets rirbsize.
More information about the freebsd-current
mailing list