From owner-freebsd-multimedia Mon Jul 14 15:02:48 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id PAA17050 for multimedia-outgoing; Mon, 14 Jul 1997 15:02:48 -0700 (PDT) Received: from rah.star-gate.com (rah.star-gate.com [204.188.121.18]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id PAA17041 for ; Mon, 14 Jul 1997 15:02:41 -0700 (PDT) Received: from rah.star-gate.com (localhost.star-gate.com [127.0.0.1]) by rah.star-gate.com (8.8.5/8.8.5) with ESMTP id PAA06284; Mon, 14 Jul 1997 15:02:37 -0700 (PDT) Message-Id: <199707142202.PAA06284@rah.star-gate.com> To: Randall Hopper cc: Oliver Fromme , multimedia@FreeBSD.ORG Subject: Re: guspnp9: /dev/dsp close() hangs In-reply-to: Your message of "Mon, 14 Jul 1997 17:33:35 EDT." <19970714173335.27084@ct.picker.com> Date: Mon, 14 Jul 1997 15:02:37 -0700 From: Amancio Hasty Sender: owner-multimedia@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk If you are interested in hacking: audio_release calls : dma_sync module specific close routine (sb_close..) According to the output which Randall sent me it appears that dma_sync is waiting on the last buffer to be processed by the soundcard. I think that dma_sync can return without processing all the buffers if thats the case, then sb_close will turn off processing interrupts from the sb card and the buffer will not be processed. Amancio >From The Desk Of Randall Hopper : > Amancio Hasty: > |In sb_dsp_close: > |Move down sb_free_irq to after dsp_cleanup. > | > | /* DMAbuf_close_dma (dev); */ > | /* sb_dsp_command (0xd4); */ > | dsp_cleanup(); > | sb_free_irq(); > | > |sb16dsp.c:sb16_dsp_close has the same problem. > | > |See if that fixes the sb cards hanging during a close. > > No change. When I got to looking closer at sb_free_irq, I saw why :-) > > void > sb_free_irq(void) > { > } > > Randall