From owner-freebsd-multimedia@FreeBSD.ORG Sat Nov 19 08:40:26 2005 Return-Path: X-Original-To: freebsd-multimedia@hub.freebsd.org Delivered-To: freebsd-multimedia@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A5CA16A41F for ; Sat, 19 Nov 2005 08:40:26 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id CF3C243D46 for ; Sat, 19 Nov 2005 08:40:25 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.3/8.13.3) with ESMTP id jAJ8ePaH078676 for ; Sat, 19 Nov 2005 08:40:25 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.3/8.13.1/Submit) id jAJ8eP2h078675; Sat, 19 Nov 2005 08:40:25 GMT (envelope-from gnats) Date: Sat, 19 Nov 2005 08:40:25 GMT Message-Id: <200511190840.jAJ8eP2h078675@freefall.freebsd.org> To: freebsd-multimedia@FreeBSD.org From: "Vladimir V. Pavluk" Cc: Subject: Re: kern/89046: [sound] [patch] pchan-related sound corruption in ESS Allegro-1 (snd_maestro3) X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: "Vladimir V. Pavluk" List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 19 Nov 2005 08:40:26 -0000 The following reply was made to PR kern/89046; it has been noted by GNATS. From: "Vladimir V. Pavluk" 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);