From owner-freebsd-multimedia@FreeBSD.ORG Thu Apr 20 20:28:18 2006 Return-Path: X-Original-To: freebsd-multimedia@FreeBSD.org Delivered-To: freebsd-multimedia@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1C07B16A400; Thu, 20 Apr 2006 20:28:18 +0000 (UTC) (envelope-from hartzell@alerce.com) Received: from merlin.alerce.com (w094.z064001164.sjc-ca.dsl.cnc.net [64.1.164.94]) by mx1.FreeBSD.org (Postfix) with ESMTP id 03F1543D4C; Thu, 20 Apr 2006 20:28:08 +0000 (GMT) (envelope-from hartzell@alerce.com) Received: from merlin.alerce.com (localhost [127.0.0.1]) by merlin.alerce.com (Postfix) with ESMTP id 0156056452; Thu, 20 Apr 2006 13:29:09 -0700 (PDT) Received: from satchel.alerce.com (w092.z064001164.sjc-ca.dsl.cnc.net [64.1.164.92]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "satchel.alerce.com", Issuer "alerce.com" (verified OK)) by merlin.alerce.com (Postfix) with ESMTP id A9E4E56443; Thu, 20 Apr 2006 13:29:08 -0700 (PDT) Received: from satchel.alerce.com (localhost [127.0.0.1]) by satchel.alerce.com (8.13.4/8.13.4) with ESMTP id k3KKSO4m020534 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 20 Apr 2006 13:28:27 -0700 (PDT) (envelope-from hartzell@satchel.alerce.com) Received: (from hartzell@localhost) by satchel.alerce.com (8.13.4/8.13.4/Submit) id k3K031bA006269; Wed, 19 Apr 2006 17:03:01 -0700 (PDT) (envelope-from hartzell) From: George Hartzell MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17478.53172.814200.467979@satchel.alerce.com> Date: Wed, 19 Apr 2006 17:03:00 -0700 To: Ariff Abdullah In-Reply-To: <20060420064700.48c63e27.ariff@FreeBSD.org> References: <17477.44637.316536.583639@satchel.alerce.com> <20060420064700.48c63e27.ariff@FreeBSD.org> X-Mailer: VM 7.17 under 21.4 (patch 17) "Jumbo Shrimp" XEmacs Lucid X-Virus-Scanned: ClamAV using ClamSMTP Cc: freebsd-multimedia@FreeBSD.org Subject: Re: Odd code in sound/pcm/channel.c, help with PR? X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: hartzell@alerce.com List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Apr 2006 20:28:18 -0000 Ariff Abdullah writes: > On Tue, 18 Apr 2006 20:28:29 -0700 > George Hartzell wrote: > > > > I'm trying to get some traction and get sound to work on my ASUS > > A8V-MX. I keep ending up with > > > > pcm0:play:0::dsp0.0: play interrupt timeout, channel dead > > > > on my console. > > > > I've filed a PR with more details: > > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=95949 > > > > I've been looking around, trying to understand what might be going > > on. I came across the following piece of code in > > /usr/src/sys/device/sound/pcm/channel.com, around line 320 > > > > timeout = (hz * sndbuf_getblksz(bs)) / (sndbuf_getspd(bs) * > > sndbuf_getbps(bs)); if (timeout < 1) > > timeout = 1; > > timeout = 1; > > ret = chn_sleep(c, "pcmwr", timeout); > > if (ret == EWOULDBLOCK) { > > count -= timeout; > > ret = 0; > > } else if (ret == 0) > > count = hz; > > > > It's funny that it goes to the trouble to figure out a timeout value > > then seems to unconditionally set it to 1. > > > It is indeed, funny :) > > > Removing that line doesn't seem to fix my problem, but it still > > seems weird. > > > > > > And, while I've got your attention, can anyone suggest where I might > > look to understand why the buffer doesn't seem to be being emptied? > > > It's because the hardware DMA pointer is being lazy and need a good > spank on its face. > > Replace your sys/dev/sound/pci/via8233.c with: > > http://people.freebsd.org/~ariff/test/via8233.c > > As usual, recompile your kernel, or just the modules. If this doesn't > work, I still have few more other tricks. > > Coincidently, I'm currently investigating DMA incoherency within few > drivers, notably this and few others. I think that you need to get a bigger stick. I did a buildkernel/installkernel and still no sound when I cat to /dev/dsp0.0 and I still get the timeouts. Thanks for the help! g.