Re: snd_hda fails to probe after 15 March

From: Giorgos Keramidas <keramida_at_FreeBSD.org>
Date: Mon, 26 Mar 2007 02:26:44 +0300
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.
Received on Mon Mar 26 2007 - 08:23:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:07 UTC