kern/125756: cannot detect soft-modem on HDA bus
Alex Keda
admin at lissyara.su
Fri Jul 18 18:00:03 UTC 2008
>Number: 125756
>Category: kern
>Synopsis: cannot detect soft-modem on HDA bus
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Jul 18 18:00:03 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Alex Keda
>Release: 8.0
>Organization:
USSR
>Environment:
FreeBSD acer.lissyara.int.otradno.ru 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Wed Jul 9 23:10:07 MSD 2008 lissyara at acer.lissyara.int.otradno.ru:/tmp/obj/usr/src/sys/main-color-console amd64
>Description:
cannot detect modem on HDA bus
===========
hda - as a hub through which can be connected many devices (audio and modem - which I know)
linux determined in all possible devices that are connected to hda
BSD made in the implementation wrong, because in many places there are special control points to check - what this device.
And if this does not sound - it is ignored
that is - not universally
hence - Ariff only knows how to implement it hda code to add a modem
============
see patch for detect all HDA devices
on my machine I have sound and modem:
pcm0: HDA_DEBUG: Scanning HDA codecs [start index=0] ...
pcm0: HDA_DEBUG: Probing codec: 0
pcm0: HDA_DEBUG: startnode=1 endnode=2
pcm0: Vendor: 0x10ec0883
pcm0: HDA_DEBUG: Found AFG nid=1 [startnode=1 endnode=2]
pcm0: HDA_DEBUG: Probing codec: 1
pcm0: HDA_DEBUG: startnode=2 endnode=3
pcm0: Vendor: 0x14f12bfa
pcm0: HDA_DEBUG: AFG not found
pcm0: HDA_DEBUG: Probing codec: 3
pcm0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
pcm0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
pcm0: hdac_command_send_internal: TIMEOUT numcmd=1, sent=1, received=0
pcm0: HDA_DEBUG: startnode=255 endnode=510
pcm0: Vendor: 0xffffffff
>How-To-Repeat:
always
>Fix:
rewrite HDA
Patch attached with submission follows:
--- ./sys/dev/sound/pci/hda/hdac.c.orig 2008-07-15 06:34:44.000000000 +0400
+++ ./sys/dev/sound/pci/hda/hdac.c 2008-07-18 21:51:59.000000000 +0400
@@ -1813,8 +1813,9 @@
codec->sc = sc;
codec->cad = i;
sc->codecs[i] = codec;
- if (hdac_probe_codec(codec) != 0)
- break;
+ // if (hdac_probe_codec(codec) != 0)
+ // break;
+ hdac_probe_codec(codec);
}
}
/* All codecs have been probed, now try to attach drivers to them */
@@ -1855,6 +1856,8 @@
HDA_BOOTVERBOSE(
device_printf(sc->dev, "HDA_DEBUG: \tstartnode=%d endnode=%d\n",
startnode, endnode);
+ device_printf(sc->dev, " Vendor: 0x%08x\n",
+ vendorid);
);
for (i = startnode; i < endnode; i++) {
devinfo = hdac_probe_function(codec, i);
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list