From owner-freebsd-current@FreeBSD.ORG Thu Aug 19 01:32:26 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1A2FB16A4E1; Thu, 19 Aug 2004 01:32:26 +0000 (GMT) Received: from lakermmtao01.cox.net (lakermmtao01.cox.net [68.230.240.38]) by mx1.FreeBSD.org (Postfix) with ESMTP id 862B843D3F; Thu, 19 Aug 2004 01:32:25 +0000 (GMT) (envelope-from conrads@cox.net) Received: from dolphin.local.net ([68.11.71.51]) by lakermmtao01.cox.net (InterMail vM.6.01.03.02.01 201-2131-111-104-103-20040709) with ESMTP <20040819013218.TGLZ15934.lakermmtao01.cox.net@dolphin.local.net>; Wed, 18 Aug 2004 21:32:18 -0400 Received: from dolphin.local.net (localhost.local.net [127.0.0.1]) by dolphin.local.net (8.13.1/8.13.1) with SMTP id i7J1WJuc000827; Wed, 18 Aug 2004 20:32:19 -0500 (CDT) (envelope-from conrads@cox.net) Date: Wed, 18 Aug 2004 20:32:14 -0500 From: "Conrad J. Sabatier" To: freebsd-current@freebsd.org, cg@freebsd.org Message-Id: <20040818203214.3a9d70bb@dolphin.local.net> X-Mailer: Sylpheed-Claws 0.9.12 (GTK+ 1.2.10; amd64-portbld-freebsd5.2) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: pcm timeout (debug output from es137x driver) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Aug 2004 01:32:26 -0000 Just noticed a curious difference in the debug output from the es137x driver as compared to the snd_ich driver. There seems to be an off-by-one error cropping up in the speed, blocksize and sampling rate settings. The irqhz is also coming out to be one less than it was with the snd_ich driver. Also, bizarre, the timeout occurs just after the true sampling rate is attempted to be set (44100 instead of the 8000 attempted up until that point), at which point the irqhz also changes drastically. I'm wondering if rebuilding the kernel with absolutely no optimization might help. I'm currently using the default flags defined for amd64 in sys/conf/kern.pre.mk: . if ${MACHINE_ARCH} == "amd64" COPTFLAGS?=-O2 -frename-registers -pipe Think I'll give that a try (COPTFLAGS=-O0 -pipe). Can't hurt, right? :-) Aug 18 20:12:00 dolphin kernel: want format 8 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: setspeed, channel pcm0:play:0 Aug 18 20:12:00 dolphin kernel: want speed 8000, try speed 8000, got speed 7999 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: r = 0 Aug 18 20:12:00 dolphin kernel: chn_setblocksize(0, 0) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: defaulting to (1024, 128) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: soft bps 1, spd 7999, irqhz == 62 Aug 18 20:12:00 dolphin kernel: chn_setblocksize: hard blksz requested 128 (maxsize 4096), got 128, irqhz == 62 Aug 18 20:12:00 dolphin kernel: setspeed done, r = 0 Aug 18 20:12:00 dolphin kernel: setspeed, channel pcm0:play:0 Aug 18 20:12:00 dolphin kernel: want speed 8000, try speed 8000, got speed 7999 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: r = 0 Aug 18 20:12:00 dolphin kernel: chn_setblocksize(0, 0) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: defaulting to (1024, 128) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: soft bps 1, spd 7999, irqhz == 62 Aug 18 20:12:00 dolphin kernel: chn_setblocksize: hard blksz requested 128 (maxsize 4096), got 128, irqhz == 62 Aug 18 20:12:00 dolphin kernel: setspeed done, r = 0 Aug 18 20:12:00 dolphin kernel: chn_setblocksize(0, 0) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: defaulting to (1024, 128) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: soft bps 1, spd 7999, irqhz == 62 Aug 18 20:12:00 dolphin kernel: chn_setblocksize: hard blksz requested 128 (maxsize 4096), got 128, irqhz == 62 Aug 18 20:12:00 dolphin kernel: dsp sync Aug 18 20:12:00 dolphin kernel: want format 4096 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: Format change 4096 failed, reverting to 8 Aug 18 20:12:00 dolphin kernel: want format 8 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: setspeed, channel pcm0:play:0 Aug 18 20:12:00 dolphin kernel: want speed 8000, try speed 8000, got speed 7999 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: r = 0 Aug 18 20:12:00 dolphin kernel: chn_setblocksize(0, 0) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: defaulting to (1024, 128) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: soft bps 1, spd 7999, irqhz == 62 Aug 18 20:12:00 dolphin kernel: chn_setblocksize: hard blksz requested 128 (maxsize 4096), got 128, irqhz == 62 Aug 18 20:12:00 dolphin kernel: setspeed done, r = 0 Aug 18 20:12:00 dolphin kernel: want format 16 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: setspeed, channel pcm0:play:0 Aug 18 20:12:00 dolphin kernel: want speed 8000, try speed 8000, got speed 7999 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: r = 0 Aug 18 20:12:00 dolphin kernel: chn_setblocksize(0, 0) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: defaulting to (512, 256) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: soft bps 2, spd 7999, irqhz == 62 Aug 18 20:12:00 dolphin kernel: chn_setblocksize: hard blksz requested 256 (maxsize 4096), got 256, irqhz == 62 Aug 18 20:12:00 dolphin kernel: setspeed done, r = 0 Aug 18 20:12:00 dolphin kernel: want format 268435472 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: setspeed, channel pcm0:play:0 Aug 18 20:12:00 dolphin kernel: want speed 8000, try speed 8000, got speed 7999 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: r = 0 Aug 18 20:12:00 dolphin kernel: chn_setblocksize(0, 0) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: defaulting to (256, 512) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: soft bps 4, spd 7999, irqhz == 62 Aug 18 20:12:00 dolphin kernel: chn_setblocksize: hard blksz requested 512 (maxsize 4096), got 512, irqhz == 62 Aug 18 20:12:00 dolphin kernel: setspeed done, r = 0 Aug 18 20:12:00 dolphin kernel: setspeed, channel pcm0:play:0 Aug 18 20:12:00 dolphin kernel: want speed 44100, try speed 44100, got speed 44099 Aug 18 20:12:00 dolphin kernel: feederflags 0 Aug 18 20:12:00 dolphin kernel: r = 0 Aug 18 20:12:00 dolphin kernel: chn_setblocksize(0, 0) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: defaulting to (32, 4096) Aug 18 20:12:00 dolphin kernel: chn_setblocksize: soft bps 4, spd 44099, irqhz == 43 Aug 18 20:12:00 dolphin kernel: chn_setblocksize: hard blksz requested 2048 (maxsize 4096), got 2048, irqhz == 86 Aug 18 20:12:00 dolphin kernel: setspeed done, r = 0 Aug 18 20:12:29 dolphin kernel: pcm0:play:0: play interrupt timeout, channel dead Aug 18 20:12:29 dolphin kernel: chn_flush: c->flags 0x00021030 Aug 18 20:12:30 dolphin kernel: chn_flush: timeout, hw 4096, sw 131072 -- Conrad J. Sabatier -- "In Unix veritas"