Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Jun 2003 13:04:53 +0900 (JST)
From:      Shin-ichi Yoshimoto <yosimoto@waishi.jp>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   kern/53242: [patch] snd_ich fails to detect Intel 82801ER (ICH5) chip
Message-ID:  <20030612040453.E1EB011F82A@current.waishi.jp>
Resent-Message-ID: <200306120410.h5C4AHYi052044@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         53242
>Category:       kern
>Synopsis:       [patch] snd_ich fails to detect Intel 82801ER (ICH5) chip
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 11 21:10:16 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Shin-ichi Yoshimoto
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD current.waishi.jp 5.1-CURRENT FreeBSD 5.1-CURRENT #9: Sun Jun 8 07:43:17 JST 2003 yosimoto@current.waishi.jp:/usr/obj/usr/src/sys/CURRENT i386


>Description:
The snd_ich sound driver fails to detect the Intel 82801ER (ICH5) sound on my motherboard (MSI 865PE Neo2). 

>How-To-Repeat:

>Fix:

--- ich.c.orig	Wed Apr 16 12:16:55 2003
+++ ich.c	Sun Jun  8 16:34:37 2003
@@ -43,6 +43,7 @@
 
 #define SIS7012ID       0x70121039      /* SiS 7012 needs special handling */
 #define ICH4ID		0x24c58086	/* ICH4 needs special handling too */
+#define ICH5ID		0x24d58086	/* ICH5 needs special handling too */
 
 /* buffer descriptor */
 struct ich_desc {
@@ -578,7 +579,7 @@
 
 	if ((stat & ICH_GLOB_STA_PCR) == 0) {
 		/* ICH4 may fail when busmastering is enabled. Continue */
-		if (pci_get_devid(sc->dev) != ICH4ID) {
+		if (pci_get_devid(sc->dev) != ICH4ID && pci_get_devid(sc->dev) != ICH5ID) {
 			return ENXIO;
 		}
 	}
@@ -630,6 +631,10 @@
 		device_set_desc(dev, "Intel 82801DB (ICH4)");
 		return 0;
 
+	case ICH5ID:
+		device_set_desc(dev, "Intel 82801ER (ICH5)");
+		return 0;
+
 	case SIS7012ID:
 		device_set_desc(dev, "SiS 7012");
 		return 0;
@@ -681,7 +686,7 @@
 	 * but doing so will mess things up here.  ich4 has enough new
 	 * features it warrants it's own driver. 
 	 */
-	if (pci_get_devid(dev) == ICH4ID) {
+	if (pci_get_devid(dev) == ICH4ID || pci_get_devid(dev) == ICH5ID) {
 		pci_write_config(dev, PCIR_ICH_LEGACY, ICH_LEGACY_ENABLE, 1);
 	}
 
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030612040453.E1EB011F82A>