From owner-freebsd-multimedia Sat Apr 18 14:06:30 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id OAA29765 for freebsd-multimedia-outgoing; Sat, 18 Apr 1998 14:06:30 -0700 (PDT) (envelope-from owner-freebsd-multimedia@FreeBSD.ORG) Received: from labinfo.iet.unipi.it (labinfo.iet.unipi.it [131.114.9.5]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id VAA29757 for ; Sat, 18 Apr 1998 21:06:27 GMT (envelope-from luigi@labinfo.iet.unipi.it) Received: from localhost (luigi@localhost) by labinfo.iet.unipi.it (8.6.5/8.6.5) id VAA10894; Sat, 18 Apr 1998 21:27:10 +0200 From: Luigi Rizzo Message-Id: <199804181927.VAA10894@labinfo.iet.unipi.it> Subject: Vibra16X support (tested!) To: multimedia@FreeBSD.ORG Date: Sat, 18 Apr 1998 21:27:10 +0200 (MET DST) X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-multimedia@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Hi, I have borrowed a Vibra16X and I think I have made some progress in supporting it (and clones). The relevant (very alpha) code is at http://www.iet.unipi.it/~luigi/snd980419.tgz I have tried it on a 2.2.6-stable of a few days ago, just stick the files in /sys/i386/isa/snd and rebuild the kernel. Playback works fine, a solution for capture is still in the works. This code also includes minor bugfixes that a few people posted in the last weeks, including support for another Yamaha OPL/SA3, and a minor fix for SB16 in full duplex. DETAILS: The patch that I posted some time ago was almost correct, except for a minor bug, where i set the flag identifying the Vibra16X in the wrong data structure. I have fixed it, and now it is possible to play sounds on the card in all formats. For capture, my guess (partially confirmed by experiments) is that the Vibra16X, assigns DRQs to channels (capture/playbck) dynamically. So when the first channel is started (be it playback or capture) it gets drq0, and then the other channel gets drq1. I am a bit unclear on how to accomodate full duplex operation (assuming the card supports it) in my driver, since other cards that i know of work as follows: * MSS and clones assign dma channels statically: drq0 is used for playback, drq1 is used for capture; * the old SB16 (and the Vibra16C) assigns dma channels depending on the format: drq0 is used for 8-bit formats, drq1 is used for 16-bit formats. Boy, I really needed this third allocation strategy used by the Vibra16X ... cheers luigi -----------------------------+-------------------------------------- Luigi Rizzo | Dip. di Ingegneria dell'Informazione email: luigi@iet.unipi.it | Universita' di Pisa tel: +39-50-568533 | via Diotisalvi 2, 56126 PISA (Italy) fax: +39-50-568522 | http://www.iet.unipi.it/~luigi/ _____________________________|______________________________________ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message