Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 07 Jul 2003 21:04:10 +1000
From:      Chris Keladis <chris@cmc.optus.net.au>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        Chris Keladis <chris@cmc.optus.net.au>
Subject:   kern/54176: [PATCH] Updates for AC97 audio (ICH5/R & ALC-655 Codec)
Message-ID:  <3F0953AA.7060702@cmc.optus.net.au>
Resent-Message-ID: <200307071110.h67BAF6b047271@freefall.freebsd.org>

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

>Number:         54176
>Category:       kern
>Synopsis:       [PATCH] Updates for AC97 audio (ICH5/R & ALC-655 Codec)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 07 04:10:14 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Chris Keladis
>Release:        FreeBSD 5.1-RELEASE i386
>Organization:
>Environment:

Tracking RELENG_5_1 (19/06/2003 snapshot)

ich.c:
$FreeBSD: src/sys/dev/sound/pci/ich.c,v 1.28 2003/04/16 03:16:55 mdodd Exp $

ac97.c:
$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.42 2003/04/23 16:49:53 jhb Exp $



>Description:
	Kernel does not detect pcm device at all on bootup with such hardware.

>How-To-Repeat:
	N/A
>Fix:

	Patches Below. Seem to work ok, no problem with audio. Have not tested
	recording or other features apart from playback but i expect they would
	work ok.


--- ac97.c.diff begins here ---
--- ac97_28-07-2003.c	Thu Apr 24 02:49:53 2003
+++ ac97.c	Sat Jun 28 12:36:20 2003
@@ -136,6 +136,7 @@
  	{ 0x414c4710, 0x0f, 0, "ALC200", 	0 },
  	{ 0x414c4740, 0x0f, 0, "ALC202", 	0 },
  	{ 0x414c4720, 0x0f, 0, "ALC650", 	0 },
+	{ 0x414c4760, 0x0f, 0, "ALC655",	0 },
  	{ 0x43525900, 0x07, 0, "CS4297", 	0 },
  	{ 0x43525910, 0x07, 0, "CS4297A", 	0 },
  	{ 0x43525920, 0x07, 0, "CS4294/98",	0 },
--- ac97.c.diff ends here ---

--- ich.c.diff begins here ---
--- ich_28-06-2003.c	Wed Apr 16 13:16:55 2003
+++ ich.c	Sun Jun 29 16:17:17 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 special handling */

  /* buffer descriptor */
  struct ich_desc {
@@ -577,8 +578,8 @@
  	stat = ich_rd(sc, ICH_REG_GLOB_STA, 4);

  	if ((stat & ICH_GLOB_STA_PCR) == 0) {
-		/* ICH4 may fail when busmastering is enabled. Continue */
-		if (pci_get_devid(sc->dev) != ICH4ID) {
+		/* ICH4/ICH5 may fail when busmastering is enabled. Continue */
+		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 82801EB (ICH5/ICH5R)");
+		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);
  	}

--- ich.c.diff ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:



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