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