265 Commits

Author SHA1 Message Date
cg
4940b0a8a7 initial support for multiple ac97 codecs 2000-09-05 21:08:01 +00:00
cg
37e1644191 add detach support 2000-09-05 21:06:11 +00:00
cg
b878b7cbc6 allow a null setdir implementation 2000-09-05 21:00:45 +00:00
cg
55b00bdc52 be more verbose about failed unload attempts 2000-09-05 20:58:51 +00:00
cg
d76980428d tidy up a little, add a mask for 32bit formats 2000-09-05 20:56:31 +00:00
peter
fe3678e285 Fix warnings by moving static functions before they are used. 2000-09-03 05:32:09 +00:00
cg
31386ce34a update for phk's last devfs commit 2000-09-02 23:14:46 +00:00
phk
e47f61e183 Avoid the modules madness I inadvertently introduced by making the
cloning infrastructure standard in kern_conf.  Modules are now
the same with or without devfs support.

If you need to detect if devfs is present, in modules or elsewhere,
check the integer variable "devfs_present".

This happily removes an ugly hack from kern/vfs_conf.c.

This forces a rename of the eventhandler and the standard clone
helper function.

Include <sys/eventhandler.h> in <sys/conf.h>: it's a helper #include
like <sys/queue.h>

Remove all #includes of opt_devfs.h they no longer matter.
2000-09-02 19:17:34 +00:00
cg
0ab175f21b add a missing return statement, doh. 2000-09-02 18:55:01 +00:00
cg
a6b7de97e3 change mixer api slightly
change channel interface - kobj implementation coming soonish
make pcm_makelinks not panic if modular
add pcm_unregister()

these changes support newpcm kld unloading, but this is only implemented
by ds1.c
2000-09-01 20:09:24 +00:00
cg
5c34b0eac7 remove stuff accidentally left in last commit 2000-08-29 20:53:56 +00:00
cg
0ee01daa5c suspend/resume for ds1 driver
PR:		misc/20891
Submitted by:	Ira L. Cooper <ira@mit.edu>
2000-08-29 20:50:42 +00:00
cg
ca84dc3f91 make the test for hwptr going backwards more picky- now it only triggers if
15/16 of the buffer is skipped or we go backwards by < 1/16 of buffer size.
2000-08-29 16:32:26 +00:00
cg
db66cff047 add devfs support. when devfs is enabled, sysctl hw.sndunit is used to set
which sound unit the /dev/{dsp,mixer,dspW,audio} links point at.  this can
also be set from the loader.
2000-08-29 16:21:33 +00:00
cg
6fbcea0a07 add driver for forte-media fm801
PR:             conf/20698
Submitted by:   dimmy the wild <diwil@dataart.com>
2000-08-29 16:12:28 +00:00
dfr
e2deb384a8 Fix disordered arguments to bus_space_barrier(). 2000-08-28 21:02:18 +00:00
cg
cc65486f22 rework feeder sytem to allow feeders in klds
modify driver capability reporting format to list every audio format
seperately- required for above and because we could not previously indicate
that mono was unsupported.

there should be no functional impact.
2000-08-20 22:18:56 +00:00
cg
9bda127a3e fix SNDCTL_DSP_GETODELAY
PR:		kern/20340
Submitted by:	Takashi SHIRAI <shirai@nintendo.co.jp>
2000-08-19 18:29:46 +00:00
cg
91bc9d7f23 don't complain about bad irqs if using a shared irq 2000-08-19 18:22:20 +00:00
cg
048ff1b84d Recognize ESS 1888 in Dell Latitude XPi
PR:		kern/18714
Submitted by:	Sean O'Connell <sean@stat.Duke.EDU>
2000-08-19 18:17:15 +00:00
nsayer
301ab84115 This patch appears to solve the problems with recording resulting
in bogus hwptr warnings. Further comments sought on -hackers
were not forthcoming. I can only hope that calling DELAY() like
this doesn't cause any heartburn.
2000-08-13 19:20:02 +00:00
nsayer
3073d41f6a Missed a step when activating the solo driver. 2000-08-09 20:28:19 +00:00
cg
ea1ade141f change irq handling slightly
add another non-ac97 256av
2000-08-09 18:51:27 +00:00
cg
02ab8f7294 MFS: module macro changes 2000-08-09 18:46:48 +00:00
nsayer
c1fe03bbd9 A couple of cosmetic fixes, plus a biggie: When checking the DMA
position, channel 1's dma position register must be quiescent. So
the driver will spl, pause the DMA, delay a bit and hold as still as
possible while snapping the picture.

I'm sure there HAS to be a better way to do this, but if there is, it's
not documented.

So far as I can tell, this fixes recording, which means the Solo is open
for business.
2000-08-09 07:14:56 +00:00
cg
ecc21b00b9 MFS: sync with peter's isadma fixup 2000-08-09 01:22:09 +00:00
cg
e5c56d96de activate via82c686 audio driver 2000-08-09 01:08:59 +00:00
cg
63dc0f7f4a new driver: via 82c686 chipset audio
not personally tested, but i'm assured it works

Submitted by:	David Jones <dej@ox.org>
PR:		kern/20161
2000-08-09 00:55:55 +00:00
cg
5d9a1c9f9c warn if hwptr goes backwards 2000-08-09 00:42:00 +00:00
cg
743aa0c1db fix the staticy sound issue
use timer instead of per-channel interrupts

do playback like the linux driver - may fix nmi-with-ecc issue
2000-08-06 18:10:05 +00:00
nsayer
b7b1206010 Simplex devices will always report EBUSY on 2nd (and subsequent)
opens if the reference count is not decremented on close.

Note that this may result in the reference count being corrupted
on full duplex devices (due to mismatching opens/closes), but the
code doesn't use the reference count for anything on full duplex
devices.
2000-08-02 22:47:44 +00:00
nsayer
5e1fccd0d6 1. Increase the size of the DMA buffer.
2. Offer half duplex with both playback and record on channel 1 or
full duplex with playback always on channel 2 as a compile-time option.

3. 16 bit record output is byte swapped for some dumb reason. Report the _BE
AFMTs for recording.
2000-08-02 22:45:57 +00:00
nsayer
f04eb97268 Undo some of my own damage. With this patch, it appears that both
recording and playback now work correctly.
2000-08-02 19:37:43 +00:00
nsayer
63383ff588 Fix channel 1 playback the rest of the way. There are a couple of
hiccups, but playback now proceeds mostly normally using both channel 1
and 2.
2000-08-02 15:09:39 +00:00
nsayer
f67558eb8f Get playback on channel 1 closer to working. 8 bit samples work.
16 bit samples have some sort of choppiness, the nature of which
is not completely clear, but it clearly has something to do with
dma buffer synchronization. But at least channel 1 makes noise now.
2000-08-02 08:01:00 +00:00
nsayer
a493e558f7 Fix channel 1, sort of. recording now generates IRQs and the output
appears to be the correct length, but quality of output has not yet
been tested. Also, full duplex audio (that is, playback on channel 1)
does not yet work. Two constants and I am there!

Obtained from:	major hints from ALSA
2000-08-02 06:36:55 +00:00
nsayer
2b61c92449 Reverse the sense of the signed/unsigned formatting bit.
This dramatically cleans up playback quality, at least with mxaudio.
2000-08-01 04:18:15 +00:00
cg
fb1049d339 almost-there ess solo-1 driver, committed so people can tell me why it
doesn't generate irqs.
2000-07-31 16:17:40 +00:00
cg
0c173f44b3 add suspend/resume for yamaha chips
Submitted by:	Ira L Cooper <ira@MIT.EDU>
2000-07-30 21:15:35 +00:00
cg
8bfb4dc90b fix a potential local DoS attack 2000-07-30 19:38:26 +00:00
cg
9446f7ff16 fix a bug where opening /dev/dsp twice resulted in it being busy until reboot 2000-07-30 19:36:13 +00:00
cg
24f340732c do the ac97 init delay for all chips and increase it to 500ms 2000-07-30 02:33:37 +00:00
cg
1107e981d0 make this file suitable for 4-stable as well as 5-current 2000-07-18 21:23:48 +00:00
dick
873fedbae4 PR:19945
Reviewed by:tanimura
Fix boot panic introduced by newmidi code.
2000-07-18 20:18:16 +00:00
tanimura
7716c5370a Finally merge newmidi.
(I had been busy for my own research activity until the last weekend)

Supported devices:

SB Midi Port			(sbc + midi)
SB OPL3				(sbc + midi)
16550 UART			(midi, needs a trick in your hint)
CS461x Midi Port		(csa + midi)

OSS-compatible sequencer	(seq)

Supported playing software:

playmidi			(We definitely need more)

Notes:

/dev/midistat now reports installed midi drivers. /dev/sndstat reports
only pcm drivers. We need the new name(pcmstat?).

EMU8000(SB AWE) does not sound yet but does get probed so that the OPL3
synth on an AWE card works.

TODO:

MSS/PCI bridge drivers
Midi-tty interface to support general serial devices
Modules
2000-07-11 11:49:33 +00:00
cg
679ed1b54d do-nothing module that depends on all sound drivers 2000-07-03 21:00:44 +00:00
cg
809e9b3b6c add module metadata. this is a hack, sound drivers will eventually present a
bus to which pcm, mixer, etc will attach.
2000-07-03 20:52:27 +00:00
roberto
5cc49e5836 This is the patch to make my soundcard, a Creative Ensoniq AudioPCI (an
es1371 chip, device id 0x58801274 rev 0x02).

Submitted by:	Kenneth Wayne Culver <culverk@wam.umd.edu>
2000-07-02 14:17:41 +00:00
cg
cdd0f2dff3 add record channel irq timeouts too 2000-06-20 23:42:08 +00:00
cg
cc71ce279b fix a bug where opening for write would not fail if channel allocation failed
when playing, if we stall for 1s with no data advancing, abort and mark the
channel dead - fail all future operations
2000-06-20 23:27:12 +00:00