From owner-freebsd-multimedia@FreeBSD.ORG Sun Feb 12 19:41:40 2012 Return-Path: Delivered-To: freebsd-multimedia@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CA2171065670; Sun, 12 Feb 2012 19:41:40 +0000 (UTC) (envelope-from br@rtclab.com) Received: from mx.bsdpad.com (mx.bsdpad.com [46.4.68.80]) by mx1.freebsd.org (Postfix) with ESMTP id 206838FC13; Sun, 12 Feb 2012 19:41:40 +0000 (UTC) Received: from mx.bsdpad.com ([46.4.68.80] helo=rtclab.com) by mx.bsdpad.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76 (FreeBSD)) (envelope-from ) id 1RwfIp-000Mfr-1s; Sun, 12 Feb 2012 23:41:39 +0400 Received: (from br@localhost) by rtclab.com (8.14.5/8.14.5/Submit) id q1CJfcu9087162; Sun, 12 Feb 2012 19:41:38 GMT (envelope-from br) Date: Sun, 12 Feb 2012 23:41:38 +0400 From: Ruslan Bukin To: freebsd-multimedia@FreeBSD.org Message-ID: <20120212194138.GA87071@jail.io> References: <4F30F05B.7050803@FreeBSD.org> <20120207142501.GA92130@jail.io> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20120207142501.GA92130@jail.io> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: Alexander Motin Subject: Re: [RFT]: RME HDSPe AIO sound driver X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Feb 2012 19:41:40 -0000 On Tue, Feb 07, 2012 at 06:25:01PM +0400, Ruslan Bukin wrote: > On Tue, Feb 07, 2012 at 11:35:23AM +0200, Alexander Motin wrote: > > Hi. > > > > First of all, thank you! > > > > On 02/07/12 11:09, Ruslan Bukin wrote: > > >This is driver for RME HDSPe AIO (PCIe - series), > > >professional-grade ($800) sound card. > > > > > >Many things not implemented (like MIDI in/out, > > >TCO, WCM and other expansion boards). > > > > > >So only analog and digital in/out are available. > > > > > >Driver registers 8 out and 7 in stereo channels, > > >each represented as separate device, ie: > > >/dev/dsp%d.p%d > > >/dev/dsp%d.r%d > > > > I think you are misinterpreting concept of channels used in > > pcm_addchan() function. These channels supposed to provide multiple > > equal playback/record streams -- hardware equivalent of vchans. If > > in your case it is different connectors and you want them to be > > independent -- you should create different PCM/dsp devices for them, > > like emu10kx or hda drivers do. > > > > >Card frequency is in range (32..192) KHz > > >and period size (32..4096) samples. > > > > > >Period size is exported to dev.pcm.%d.period > > >sysctl. > > > > Why are you duplicating here the latency control code already > > implemented in sound(4)? You should just follow buffer/block size > > given to you by the sound(4) via hdspechan_setblocksize() and then > > you can control latency in common way via hw.snd.latency_profile and > > hw.snd.latency. > > Code updated. Now snd_hdspe creates several pcm devices (childs) and follows sound(4) for latency control. Code also splitted to three files: hdspe.c hdspe.h hdspe-pcm.c http://bsdpad.com/hdspe/ -Ruslan