Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Mar 2001 16:52:31 +0900
From:      Taku YAMAMOTO <taku@cent.saitama-u.ac.jp>
To:        David Wolfskill <david@catwhisker.org>
Cc:        mobile@freebsd.org
Subject:   Re: Reality check on ESS Technology Maestro-2E h/w "mute" function?
Message-ID:  <rtg1yrjvebk.wl@dhcp-1.cent.saitama-u.ac.jp>
In-Reply-To: <200103270658.f2R6w2c13898@bunrab.catwhisker.org>
References:  <200103270658.f2R6w2c13898@bunrab.catwhisker.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--Multipart_Tue_Mar_27_16:52:31_2001-1
Content-Type: text/plain; charset=US-ASCII

According to datasheets, HWVOL_MUTE (== 0x99) came from HWVOL_NOP | 0x11,
where 0x11 means "mute button pressed".

But, since mute button is actually choded into UP-and-DOWN simultaneously,
it may happen to misunderstand MUTE button as if an independent
UP/DOWN event came first. (It is nothing more than my imagination, though.)

So, perhaps 0x77 came from HWVOL_DOWN | 0x11, I imagine.
Attached diff will make both 0x77 and 0x99 to be recognized as MUTE.
(And, hopefully, 0xbb --- HWVOL_UP | 0x11 --- , too)

-- 
YAMAMOTO, Taku <taku@cent.saitama-u.ac.jp>
Member of Advanced Computer and Communication Studies Society
(ACCESS for short), Information Processing Center, Saitama Univ.

--Multipart_Tue_Mar_27_16:52:31_2001-1
Content-Type: text/plain; type=patch; charset=US-ASCII
Content-Disposition: attachment; filename="hwvol.diff"
Content-Transfer-Encoding: 7bit

--- sys/dev/sound/pci/maestro.c.orig	Mon Mar 26 02:29:35 2001
+++ sys/dev/sound/pci/maestro.c	Tue Mar 27 16:28:06 2001
@@ -850,9 +850,6 @@
 
 		event = bus_space_read_1(ess->st, ess->sh, PORT_HWVOL_MASTER);
 		switch (event) {
-		case HWVOL_MUTE:
-			mixer_hwvol_mute(ess->dev);
-			break;
 		case HWVOL_UP:
 			mixer_hwvol_step(ess->dev, 1, 1);
 			break;
@@ -862,6 +859,10 @@
 		case HWVOL_NOP:
 			break;
 		default:
+			if (event & HWVOL_MUTE) {
+				mixer_hwvol_mute(ess->dev);
+				break;
+			}
 			device_printf(ess->dev, "%s: unknown HWVOL event 0x%x\n",
 			    device_get_nameunit(ess->dev), event);
 		}
--- sys/dev/sound/pci/maestro_reg.h.orig	Wed Jan  3 10:32:57 2001
+++ sys/dev/sound/pci/maestro_reg.h	Tue Mar 27 16:28:29 2001
@@ -140,7 +140,7 @@
 #define PORT_HWVOL_MASTER_SHADOW 0x1e	/* BYTE RW */
 #define PORT_HWVOL_MASTER	0x1f	/* BYTE RW */
 #define HWVOL_NOP		0x88
-#define HWVOL_MUTE		0x99
+#define HWVOL_MUTE		0x11
 #define HWVOL_UP		0xaa
 #define HWVOL_DOWN		0x66
 

--Multipart_Tue_Mar_27_16:52:31_2001-1--

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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




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