From owner-FreeBSD-users-jp@jp.freebsd.org  Fri Feb  5 19:41:26 1999
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) id TAA27660;
	Fri, 5 Feb 1999 19:41:26 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from alcedo.falcon.cs.ritsumei.ac.jp (alcedo.falcon.cs.ritsumei.ac.jp [133.19.62.1])
	by jaz.jp.freebsd.org (8.9.1+3.1W/8.7.3) with ESMTP id TAA27651
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 5 Feb 1999 19:41:23 +0900 (JST)
	(envelope-from ryuichi@falcon.cs.ritsumei.ac.jp)
Received: from localhost (halcyon.falcon.cs.ritsumei.ac.jp [133.19.62.68])
	by alcedo.falcon.cs.ritsumei.ac.jp (8.8.8/3.7Wfalcon) with ESMTP id TAA25744
	for <FreeBSD-users-jp@jp.freebsd.org>; Fri, 5 Feb 1999 19:41:18 +0900 (JST)
To: FreeBSD-users-jp@jp.freebsd.org
X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
	boundary="--Next_Part(Fri_Feb__5_19:41:00_1999_809)--"
Content-Transfer-Encoding: 7bit
Message-Id: <19990205194117D.ryuichi@falcon.cs.ritsumei.ac.jp>
Date: Fri, 05 Feb 1999 19:41:17 +0900
From: Ryuichi Hino <ryuichi@falcon.cs.ritsumei.ac.jp>
X-Dispatcher: imput version 980905(IM100)
Lines: 232
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+981115
X-Sequence: FreeBSD-users-jp 38424
Subject: [FreeBSD-users-jp 38424] 3.0R Ensoniq AudioPCI Driver
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: ryuichi@falcon.cs.ritsumei.ac.jp

----Next_Part(Fri_Feb__5_19:41:00_1999_809)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$BF|Ln!wN)L?4[Bg$G$9!%(B

3.0-stable $B5Z$S(B 4.0-current $B$r$*$C$+$1$F$k?M$O$4B8CN$H$O;W$$$^$9$,!$(B
 [FreeBSD-users-jp 35699] $B$G$&$A$+$o$5$s$,Js9p$5$l$?(B
$B!V5nG/$N(B12$B7n$K(B current($B8=:_$N(B 3.0-stable) "$B<B83E*$K(B"$B2C$($i$l$?(B
ES1370 (Ensoniq AudioPCI) $B$KBP$9$k%I%i%$%P!<$r!$(B3.0-RELEASE $B$G(B
$BF0$+$9;v$,$G$-$?$N$G!$Js9p$7$^$9!%(B

# $B$3$N%I%i%$%P$O!$$^$@$^$@%F%9%HCJ3,$N$b$N$G$9!%(B
# $B$7$+$7!$$&$A$+$o$5$s$,(Bmpg123,timidy $B$,F0$$$?$=$&$G$9$7!$(B
# $B;d$N$H$3$m$G$b!$(Bmpg123,workman $B$,F0$-$^$7$?!%(B
# (splay $B$O!$;H$$J*$K$J$i$J$$(B($B62$m$7$/;(2;$,F~$k(B)$B$N$GHr$1$F2<$5$$(B)
# $B!V$H$j$"$($:F0$/$+$i$$$$$+!W$C$F46$8$J$N$G!$(B
# $BF1$89M$($N?M$O;n$7$F$O$$$+$+$G$7$g$&$+!%(B
# $B$b$A$m$s!$(B3.0-stable $B$N$?$a$N%I%i%$%P$r(B 3.0-RELEASE $B$K;H$C$F$k>e!$(B
# $B<B83$J%I%i%$%P$J$N$G!$2?$,5/$3$m$&$H$b@UG$$O$H$j$^$;$s!%(B

# $B$^$?!$$&$A$+$o$5$s[)$/!$!V(Bmikmod $B$G$O<~4|E*$K$K$+$J$jBg$-$J;(2;$,F~$j$^$9!#(B
# $BF|>oE*$K;H$&$K$O>/!9LdBj$,$"$j$=$&$G$9!#!W!$!V(BES1370 $B%I%i%$%P$O$^$@(B
# $B$$$m$$$mLdBj$,$"$k!W$=$&$G$9!%(B

$B$?$@!$:#7n2<=\$"$?$j$K!$(B3.1$B$,=P$k$=$&$J$N$G!$$=$l$rBT$C$F$b$$$$$G$9$,!%(B
$B$I$A$i$K$7$m!$(BPCI $B$N(B $B%5%&%s%I%+!<%I$,F0$/$N$OHs>o$K4r$7$$8B$j$G$9!%(B
$B:#8e!$$3$N%I%i%$%P$,$I$s$I$s@vN}$5$l$F$$$/;v$G$7$g$&!%(B


< $B<j=g(B >

$B%I%i%$%P$O!$(BLuigi's $B%I%i%$%P$X$N%Q%C%A$G!$(B

ftp://ftp.lf.net/pub/users/Joachim.Kuebart/es1370/

$B$K$FG[I[$5$l$F$^$9!%(B

$B$3$3$G!$(Bsound-981210.diff, es1370.c, es1370_reg.h $B$r$H$C$F$/$k$s$G$9$,!$(B
$B$3$3$KCV$$$F$"$k(B es1370.c $B$,:G8e$,@Z$l$F$k$N$G!$(B

ftp://ftp.jp.freebsd.org/pub/FreeBSD/branches/3.0-stable/src/sys/pci/

$B$+$i!$$H$C$F$/$l$P$$$$$G$7$g$&!%(B

$B$3$N(B3$B$D$N%U%!%$%k$r(B /sys/i386/isa/snd/ $B$KCV$-!$%Q%C%A$r$"$F$^$9!%(B

# patch < sound-981210.diff

$B$7$+$7!$(Bsound.c $B$N:G8e$,(B failed $B$K$J$k$N$G!$:G8e$KE:IU$7$?%Q%C%A$r(B
$B99$K$"$F$F2<$5$$!%(B

$B$=$l$+$i!$(Bes1370.c $B$N(B 54$B9T$a$+$i$N(B

#include <pci/es1370_reg.h>
#include <i386/isa/snd/sound.h>
#include <i386/isa/snd/ulaw.h>

$B$r!$(B

#include <i386/isa/snd/es1370_reg.h>
#include <i386/isa/snd/sound.h>
#include <i386/isa/sound/ulaw.h>

$B$KJQ99$7$^$9!%(B

$B<!$K!$%+!<%M%k%3%s%U%#%0%U%!%$%k$K0J2<$rDI2C$7$F!$%3%s%Q%$%k$7$F2<$5$$!%(B
(Luigi's $B%I%i%$%P(B $B$r;H$C$F$$$k?M$O!$(Bpcm0 $B$N8e$,$J$$$N$,5$;}$A0-$$$G$9$,(B...)

device	es0
device	pcm0

$B:F5/F0$9$k$H!$(B

es1: <AudioPCI ES1370> rev 0x00 int a irq 9 on pci0.14.0
pcm1: using I/O space register mapping at 0xfc00

$B$NMM$KG'<1$5$l$^$9!%(B
($B$b$A$m$s!$(B"irq 9","pci0.14.0","at 0xfc00" $B$O%^%7%s4D6-$K$h$C$F0c$$$^$9(B)

/dev/sndstat $B$O!$0J2<$N$h$&$K$J$j$^$9!%(B

FreeBSD Audio Driver (981002) Feb  4 1999 21:41:18
Installed devices:
pcm1: <ENSONIQ AudioPCI> at 0xfc00 irq 0 dma 0:0

$B$3$3$G!$(BLuigi's $B%I%i%$%P(B $B$HF1$8$h$&$K!$(B

# sh ./MAKEDEV snd1
# ln -s audio1 audio
# ln -s dsp1 dsp
# ln -s dspW1 dspW
# ln -s mixer1 mixer

$B$H$7$^$9!%(B

$B$3$3$^$GMh$?$i!$2;$,=P$=$&$JJ*$G$9$,!$=P$J$$$s$G$9!%(B
$B;d$bJ,$+$i$J$/$F(B $B$&$A$+$o$5$s$K%a!<%k$7$?$j!$(B
$BK\2H(BML-multimedia $B$r8!:w$7$?$j$7$F!$860x$,J,$+$C$?$N$G$9$,!$(B
$B%G%U%)%k%H$G!$A4$F$N=PNO$N%_%-%5CM$,(B"0"$B$K$J$C$F$^$9!%(B

% mixer
Mixer vol      is currently set to   0:0
Mixer synth    is currently set to   0:0
Mixer pcm      is currently set to   0:0
Mixer line     is currently set to   0:0
Mixer mic      is currently set to   0:0
Mixer cd       is currently set to   0:0
Mixer ogain    is currently set to   0:0
Mixer line1    is currently set to   0:0
Mixer line2    is currently set to   0:0
Mixer line3    is currently set to   0:0

$B$3$NCM$r(B mixer $B%3%^%s%I$GJQ99$7$J$$$H$$$/$i4hD%$C$F$b2;$O=P$^$;$s!%(B
($B$*$=$i$/!$%F%9%HCJ3,$J$N$G!$%f!<%6$KG$$;$F$$$k$s$G$7$g$&!%(B)

$B;d$O!$$3$N;~;O$a$F$3$N%3%^%s%I$rCN$C$?$N$G$9$,!$(B
$B$I$&$d$i(B vol $B$,%^%9%?!<%\%j%e!<%`$NMM$J$N$G!$$3$l$OI,$:JQ99$7$^$9!%(B
Luigi's $B%I%i%$%P(B $B$G$O!$(B80 $B$K@_Dj$5$l$F$$$k$N$G!$F1$8$h$&$K$9$k$K$O!$(B

% mixer vol 80

$B$H$7$^$9!%(B

MP3 $B$rJ9$/$J$i!$(B"pcm" $B$r(B AudioCD $B$r$+$1$k$J$i(B "cd" $B$r$=$l$>$lJQ99$7$F2<$5$$!%(B

$B$3$l$G!$2;$,=P$k$O$:$G$9!%(B

----
                      | $BN)L?4[Bg3X1!(B $BM}9)3X8&5f2J(B $B>pJs%7%9%F%`3X@l96(B
  Return to Innocence | $B7W;;5!2J3X%3!<%9(B $B%3%s%T%e!<%?%M%C%H%o!<%/(B($B4_K\(B)$B8&5f<<(B
                      |          $BF|LnN40l(B   Ryuichi Hino
         By Curly M.C.|     E-mail:ryuichi@falcon.cs.ritsumei.ac.jp
                      |     http://www.falcon.cs.ritsumei.ac.jp/~ryuichi


----Next_Part(Fri_Feb__5_19:41:00_1999_809)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=sound.c.patch2

--- /sys/i386/isa/snd/sound.c	Fri Feb  5 17:47:51 1999
+++ sound.c	Fri Feb  5 17:35:40 1999
@@ -357,70 +357,41 @@
      * Make links to first successfully probed unit.
      * Attempts by later devices to make these links will fail.
      */
-    cookie = devfs_add_devswf(&snd_cdevsw, (dev->id_unit << 4) | SND_DEV_DSP,
-	DV_CHR, UID_SND, GID_SND, PERM_SND, "dsp%r", dev->id_unit);
+    cookie = devfs_add_devswf(&snd_cdevsw, (unit << 4) | SND_DEV_DSP,
+	DV_CHR, UID_SND, GID_SND, PERM_SND, "dsp%r", unit);
     if (cookie) devfs_link(cookie, "dsp");
 
-    cookie = devfs_add_devswf(&snd_cdevsw, (dev->id_unit << 4) | SND_DEV_DSP16,
-	DV_CHR, UID_SND, GID_SND, PERM_SND, "dspW%r", dev->id_unit);
+    cookie = devfs_add_devswf(&snd_cdevsw, (unit << 4) | SND_DEV_DSP16,
+	DV_CHR, UID_SND, GID_SND, PERM_SND, "dspW%r", unit);
     if (cookie) devfs_link(cookie, "dspW");
 
-    cookie = devfs_add_devswf(&snd_cdevsw, (dev->id_unit << 4) | SND_DEV_AUDIO,
-	DV_CHR, UID_SND, GID_SND, PERM_SND, "audio%r", dev->id_unit);
+    cookie = devfs_add_devswf(&snd_cdevsw, (unit << 4) | SND_DEV_AUDIO,
+	DV_CHR, UID_SND, GID_SND, PERM_SND, "audio%r", unit);
     if (cookie) devfs_link(cookie, "audio");
 
-    cookie = devfs_add_devswf(&snd_cdevsw, (dev->id_unit << 4) | SND_DEV_CTL,
-	DV_CHR, UID_SND, GID_SND, PERM_SND, "mixer%r", dev->id_unit);
+    cookie = devfs_add_devswf(&snd_cdevsw, (unit << 4) | SND_DEV_CTL,
+	DV_CHR, UID_SND, GID_SND, PERM_SND, "mixer%r", unit);
     if (cookie) devfs_link(cookie, "mixer");
 
-    cookie = devfs_add_devswf(&snd_cdevsw, (dev->id_unit << 4) | SND_DEV_STATUS,
-	DV_CHR, UID_SND, GID_SND, PERM_SND, "sndstat%r", dev->id_unit);
+    cookie = devfs_add_devswf(&snd_cdevsw, (unit << 4) | SND_DEV_STATUS,
+	DV_CHR, UID_SND, GID_SND, PERM_SND, "sndstat%r", unit);
     if (cookie) devfs_link(cookie, "sndstat");
 
 #if 0 /* these two are still unsupported... */
-    cookie = devfs_add_devswf(&snd_cdevsw, (dev->id_unit << 4) | SND_DEV_MIDIN,
-	DV_CHR, UID_SND, GID_SND, PERM_SND, "midi%r", dev->id_unit);
+    cookie = devfs_add_devswf(&snd_cdevsw, (unit << 4) | SND_DEV_MIDIN,
+	DV_CHR, UID_SND, GID_SND, PERM_SND, "midi%r", unit);
     if (cookie) devfs_link(cookie, "midi");
 
-    cookie = devfs_add_devswf(&snd_cdevsw, (dev->id_unit << 4) | SND_DEV_SYNTH,
-	DV_CHR, UID_SND, GID_SND, PERM_SND, "sequencer%r", dev->id_unit);
+    cookie = devfs_add_devswf(&snd_cdevsw, (unit << 4) | SND_DEV_SYNTH,
+	DV_CHR, UID_SND, GID_SND, PERM_SND, "sequencer%r", unit);
     if (cookie) devfs_link(cookie, "sequencer");
 #endif
 #endif /* DEVFS */
 
-    /*
-     * should try and find a suitable value for id_id, otherwise
-     * the interrupt is not registered and dispatched properly.
-     * This is important for PnP devices, where "dev" is built on
-     * the fly and many field are not initialized.
-     */
-    if (dev->id_driver == NULL) {
-	dev->id_driver = &pcmdriver ;
-	dvp=find_isadev(isa_devtab_tty, &pcmdriver, 0);
-	if (dvp)
-	    dev->id_id = dvp->id_id;
-    }
-
-    d->magic = MAGIC(dev->id_unit); /* debugging... */
-    /*
-     * and finally, call the device attach routine
-     * XXX I should probably use d->attach(dev)
-     */
-    stat = snddev_last_probed->attach(dev);
-#if 0
-    /*
-     * XXX hooks for synt support. Try probe and attach...
-     */
-    if (d->synth_base && opl3_probe(dev) ) {
-	opl3_attach(dev);
-    }
-#endif
-    snddev_last_probed = NULL ;
-
 #if NAPM > 0
-    init_sound_apm(dev->id_unit);
+    init_sound_apm(unit);
 #endif
-    return stat ;
+    return 0 ;
 }
 
 int midiattach(struct isa_device * dev) { return 0 ; }

----Next_Part(Fri_Feb__5_19:41:00_1999_809)----
