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