Subject: port-i386/28806: yds audio chip doesn't work after suspend on Toshiba Satellite Pro 4280
To: None <port-i386-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: None <rosenfeld@grumpf.hope-2000.org>
List: netbsd-bugs
Date: 12/29/2004 21:36:01
>Number:         28806
>Category:       port-i386
>Synopsis:       yds audio chip doesn't work after suspend on Toshiba Satellite Pro 4280
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Dec 29 21:36:00 +0000 2004
>Originator:     rosenfeld@grumpf.hope-2000.org
>Release:        NetBSD 2.0
>Organization:
	
>Environment:
	
	
System: NetBSD executor 2.0 NetBSD 2.0 (EXECUTOR) #14: Wed Dec 29 23:20:01 CET 2004 woodstoc@executor:/usr/src/sys/arch/i386/compile/obj.i386/EXECUTOR i386
Architecture: i386
Machine: i386
>Description:
	After a suspend and resume of my Toshiba Satellite Pro 4280, the
	yds audio chip doesn't work anymore, the mixer settings are all
	set to maximum and can't be changed. This seems to be because
	the codec is not reset at PWR_RESUME.
>How-To-Repeat:
	suspend the machine, power it back on, look at the mixer
	settings or try to play some sound files
>Fix:
--- yds.c.orig	2004-12-29 22:12:35.000000000 +0100
+++ yds.c	2004-12-29 23:26:15.000000000 +0100
@@ -680,6 +680,7 @@
 	struct yds_softc *sc = addr;
 
 	if (why == PWR_RESUME) {
+		yds_reset_codec(&sc->sc_codec[0]);
 		if (yds_init(sc)) {
 			printf("%s: reinitialize failed\n",
 				sc->sc_dev.dv_xname);

>Unformatted: