ICH7 soundcard (82801G, not 82801GB) support?

Anders Nordby anders at FreeBSD.org
Fri Mar 24 14:46:17 UTC 2006


Hi,

I have a 82801G ICH7 sound card:

pcm0 at pci0:27:0: class=0x040300 card=0x10831734 chip=0x27d88086 rev=0x01
hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801G (ICH7 Family) High Definition Audio'
    class    = multimedia

The attached patch adds it to the ich driver. It fails to attach,
however:

pcm0: <Intel ICH7 (82801G)> mem 0xf0000000-0xf0003fff irq 18 at device
27.0 on pci0
pcm0: unable to map IO port space
device_attach: pcm0 attach returned 6

Anyone else having this problem, or who solved it?

PS: I'm running RELENG_6 from today. Yes, I tried
hw.pci.allow_unsupportable_io_range="1" in loader.conf. No, it didn't
help.

Cheers,

-- 
Anders.
-------------- next part --------------
--- sys/dev/sound/pci/ich.c.orig	Fri Mar 24 09:48:54 2006
+++ sys/dev/sound/pci/ich.c	Fri Mar 24 12:46:11 2006
@@ -55,6 +55,7 @@
 #define INTEL_82801EB	0x24d5	/* ICH5 needs to be treated as ICH4 */
 #define INTEL_6300ESB	0x25a6	/* 6300ESB needs to be treated as ICH4 */
 #define INTEL_82801FB	0x266e	/* ICH6 needs to be treated as ICH4 */
+#define INTEL_82801G	0x27d8	/* ICH7 needs to be treated as ICH4 */
 #define INTEL_82801GB	0x27de	/* ICH7 needs to be treated as ICH4 */
 #define SIS_7012	0x7012	/* SiS 7012 needs special handling */
 #define NVIDIA_NFORCE	0x01b1
@@ -95,6 +96,8 @@
 		"Intel 6300ESB" },
 	{ INTEL_VENDORID,	INTEL_82801FB,	PROBE_LOW,
 		"Intel ICH6 (82801FB)" },
+	{ INTEL_VENDORID,	INTEL_82801G,	PROBE_LOW,
+		"Intel ICH7 (82801G)" },
 	{ INTEL_VENDORID,	INTEL_82801GB,	PROBE_LOW,
 		"Intel ICH7 (82801GB)" },
 	{ SIS_VENDORID,		SIS_7012,	0,
@@ -687,7 +690,7 @@
 		if (sc->vendor == INTEL_VENDORID && (
 		    sc->devid == INTEL_82801DB || sc->devid == INTEL_82801EB ||
 		    sc->devid == INTEL_6300ESB || sc->devid == INTEL_82801FB ||
-		    sc->devid == INTEL_82801GB)) {
+		    sc->devid == INTEL_82801GB || sc->devid == INTEL_82801G)) {
 			sc->flags |= IGNORE_PCR;
 			device_printf(sc->dev, "primary codec not ready!\n");
 		}
@@ -771,7 +774,8 @@
 	 */
 	if (vendor == INTEL_VENDORID && (devid == INTEL_82801DB ||
 	    devid == INTEL_82801EB || devid == INTEL_6300ESB ||
-	    devid == INTEL_82801FB || devid == INTEL_82801GB)) {
+	    devid == INTEL_82801FB || devid == INTEL_82801GB ||
+	    devid == INTEL_82801G)) {
 		sc->nambarid = PCIR_MMBAR;
 		sc->nabmbarid = PCIR_MBBAR;
 		sc->regtype = SYS_RES_MEMORY;


More information about the freebsd-multimedia mailing list