From nobody@FreeBSD.org  Tue Nov 15 04:57:09 2005
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 5B7BF16A41F
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 15 Nov 2005 04:57:09 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 542AA43D67
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 15 Nov 2005 04:57:02 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id jAF4v2ih015817
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 15 Nov 2005 04:57:02 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id jAF4v2vP015816;
	Tue, 15 Nov 2005 04:57:02 GMT
	(envelope-from nobody)
Message-Id: <200511150457.jAF4v2vP015816@www.freebsd.org>
Date: Tue, 15 Nov 2005 04:57:02 GMT
From: "Vladimir V. Pavluk" <vvp@dgs.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: pchan-related sound corruption in ESS Allegro-1 (snd_maestro3)
X-Send-Pr-Version: www-2.3

>Number:         89046
>Category:       kern
>Synopsis:       [sound] [patch] pchan-related sound corruption in ESS Allegro-1 (snd_maestro3)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-multimedia
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 15 05:00:30 GMT 2005
>Closed-Date:    Fri Jan 06 15:38:59 GMT 2006
>Last-Modified:  Fri Jan 06 15:38:59 GMT 2006
>Originator:     Vladimir V. Pavluk
>Release:        FreeBSD 5.4-RELEASE-p8
>Organization:
Digital Service, LLC
>Environment:
FreeBSD vvp-nb.dgs.ru 5.4-RELEASE-p8 FreeBSD 5.4-RELEASE-p8 #9: Mon Nov 14 16:08:05 NOVT 2005     root@vvp-nb.dgs.ru:/usr/src/sys/i386/compile/VVP-NB  i386

>Description:
Hardware:
Compaq Evo N600c, ESS Allegro-1 sound (snd_maestro3 driver)
After there is some sound with 22050 freqency rate have been played via one of pchans while the other pchan is playing another sound with 44100 frequency rate, the latter pchan's sound becomes corrupted (pitched down).
>How-To-Repeat:
play some mp3 sound with XMMS, then use play utility to play some 22050 wav file (I used one from licq distribution: /usr/local/share/licq/sounds/icq/*.wav).
>Fix:
An ugly hack, but as for me, it let me to fix the problem.
------------------------------------------------------------------------------
--- maestro3.c  Tue Nov 15 04:19:21 2005
+++ maestro3.c.orig     Mon Nov 14 18:11:09 2005
@@ -582,6 +582,8 @@
                 m3_wr_assp_data(sc, ch->dac_data + CDATA_INSTANCE_READY, 0);
                 m3_wr_assp_data(sc, KDATA_MIXER_TASK_NUMBER,
                                sc->pch_active_cnt);
+                m3_wr_assp_data(sc, KDATA_TIMER_COUNT_RELOAD, 240);
+                m3_wr_assp_data(sc, KDATA_TIMER_COUNT_CURRENT, 240);
                break;

        case PCMTRIG_EMLDMAWR:

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->freebsd-multimedia 
Responsible-Changed-By: linimon 
Responsible-Changed-When: Tue Nov 15 07:22:44 GMT 2005 
Responsible-Changed-Why:  
Over to maintainer(s). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=89046 

From: "Vladimir V. Pavluk" <vvp@dgs.ru>
To: bug-followup@freebsd.org, vvp@dgs.ru
Cc:  
Subject: Re: kern/89046: [sound] [patch] pchan-related sound corruption in ESS Allegro-1 (snd_maestro3)
Date: Sat, 19 Nov 2005 04:10:23 +0600

 I've fixed previous ugly patch for maestro3. Now driver drains play channel 
 only if none of channels is active.
 
 --- maestro3.c.orig     Mon Nov 14 18:11:09 2005
 +++ maestro3.c  Sat Nov 19 04:02:38 2005
 @@ -574,8 +574,11 @@
 
                 /* XXX should the channel be drained? */
                 /*[[dec_timer_users]]*/
 -                m3_wr_assp_data(sc, KDATA_TIMER_COUNT_RELOAD, 0);
 -                m3_wr_assp_data(sc, KDATA_TIMER_COUNT_CURRENT, 0);
 +               if(!sc->pch_active_cnt) {
 +                   m3_wr_assp_data(sc, KDATA_TIMER_COUNT_RELOAD, 0);
 +                   m3_wr_assp_data(sc, KDATA_TIMER_COUNT_CURRENT, 0);
 +               }
 +
                  data = m3_rd_2(sc, HOST_INT_CTRL);
                  m3_wr_2(sc, HOST_INT_CTRL, data & ~CLKRUN_GEN_ENABLE);

From: "Vladimir V. Pavluk" <vvp@dgs.ru>
To: bug-followup@freebsd.org, vvp@dgs.ru
Cc:  
Subject: Re: kern/89046: [sound] [patch] pchan-related sound corruption in ESS Allegro-1 (snd_maestro3)
Date: Sat, 19 Nov 2005 04:10:23 +0600

 I've fixed previous ugly patch for maestro3. Now driver drains play channel 
 only if none of channels is active.
 
 --- maestro3.c.orig     Mon Nov 14 18:11:09 2005
 +++ maestro3.c  Sat Nov 19 04:02:38 2005
 @@ -574,8 +574,11 @@
 
                 /* XXX should the channel be drained? */
                 /*[[dec_timer_users]]*/
 -                m3_wr_assp_data(sc, KDATA_TIMER_COUNT_RELOAD, 0);
 -                m3_wr_assp_data(sc, KDATA_TIMER_COUNT_CURRENT, 0);
 +               if(!sc->pch_active_cnt) {
 +                   m3_wr_assp_data(sc, KDATA_TIMER_COUNT_RELOAD, 0);
 +                   m3_wr_assp_data(sc, KDATA_TIMER_COUNT_CURRENT, 0);
 +               }
 +
                  data = m3_rd_2(sc, HOST_INT_CTRL);
                  m3_wr_2(sc, HOST_INT_CTRL, data & ~CLKRUN_GEN_ENABLE);
State-Changed-From-To: open->closed 
State-Changed-By: netchild 
State-Changed-When: Fri Jan 6 15:38:47 UTC 2006 
State-Changed-Why:  
This should be fixed in 6-stable and -current. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=89046 
>Unformatted:
