500 Commits

Author SHA1 Message Date
cg
2807ccd53d kill a warning 2000-12-23 05:19:32 +00:00
cg
2386a8e31f fix a typo 2000-12-23 05:16:39 +00:00
cg
d0b795f25b update code dealing with snd_dbuf objects to do so using a functional interface
modify chn_setblocksize() to pick a default soft-blocksize appropriate to the
sample rate and format in use.  it will aim for a power of two size small
enough to generate block sizes of at most 20ms.  it will also set the
hard-blocksize taking into account rate/format conversions in use.

update drivers to implement setblocksize  correctly:
updated, tested: 	sb16, emu10k1, maestro, solo
updated, untested: 	ad1816, ess, mss, sb8, csa
not updated: 		ds1, es137x, fm801, neomagic, t4dwave, via82c686

i lack hardware to test: ad1816, csa, fm801, neomagic
others will be updated/tested in the next few days.
2000-12-23 03:16:13 +00:00
cg
ef90d6ebd3 fix a debugging leftover (min speed=48khz) 2000-12-20 05:21:17 +00:00
cg
2fae4aec24 kobjify.
this gives us several benefits, including:

* easier extensibility- new optional methods can be added to
  ac97/mixer/channel classes without having to fixup every driver.

* forward compatibility for drivers, provided no new mandatory methods are
  added.
2000-12-18 01:36:41 +00:00
julian
18434fa2a8 Bump the buffersize from 0x1000 to 0x4000.
0x1000 gets underflows on my dell 7500 whenever I moved the mouse.
(reported as "hwptr went backwards...", with jumpy sound)
Sounds great now....
2000-11-21 12:22:11 +00:00
cg
b7783e49d5 do not blindly assume 8khz is supported on open(). try for 8khz but respect
minspeed/maxspeed specified by the hw driver.

Submitted by:	Andrew Gordon <arg@arg1.demon.co.uk>
2000-11-18 03:43:04 +00:00
cg
307f173be5 adjust dma channels for vibra16x; recording should now work. full duplex does
not work on vibra16x, so is disabled.
2000-11-07 00:38:59 +00:00
cg
6b4272c663 slight mods to isa dma and channel flushing code 2000-11-07 00:32:35 +00:00
cg
f44d3f03ba if a channel dies, rejuvenate it on close() 2000-11-07 00:29:24 +00:00
cg
4e383ab4ca add AFMT_8BIT for easier determination of formats 2000-11-06 22:22:52 +00:00
cg
29f3115061 fix paste-o in mixer code - actually set right channel volume instead of
doing the left channel twice.
2000-11-06 02:47:43 +00:00
cg
152326a127 fix es1370 mixer by adding reinit function to it's mixer function list. 2000-11-06 02:37:28 +00:00
cg
28815ef0ae kill old sb driver 2000-11-01 00:56:52 +00:00
cg
a7f52826c1 switch over to new sb8/sb16 code 2000-11-01 00:53:16 +00:00
cg
0ecc67db2e add commented-out dependancies on the new sb8 and sb16 drivers 2000-10-28 19:35:54 +00:00
cg
ceaa4e2ae6 split up sb16 and sb/sbpro drivers
we do not support sb versions <2.00, and the sb8 driver has not been tested
yet.

these drivers are not yet enabled by default.
2000-10-28 19:20:03 +00:00
cg
53904fdeb6 implement SNDCTL_DSP_POST 2000-10-27 22:20:45 +00:00
phk
54ca48450c Convert all users of fldoff() to offsetof(). fldoff() is bad
because it only takes a struct tag which makes it impossible to
use unions, typedefs etc.

Define __offsetof() in <machine/ansi.h>

Define offsetof() in terms of __offsetof() in <stddef.h> and <sys/types.h>

Remove myriad of local offsetof() definitions.

Remove includes of <stddef.h> in kernel code.

NB: Kernelcode should *never* include from /usr/include !

Make <sys/queue.h> include <machine/ansi.h> to avoid polluting the API.

Deprecate <struct.h> with a warning.  The warning turns into an error on
01-12-2000 and the file gets removed entirely on 01-01-2001.

Paritials reviews by:   various.
Significant brucifications by:  bde
2000-10-27 11:45:49 +00:00
cg
f395b4d615 add reinit functions to mixers
unstaticize chn_start()
add reset/resetdone functions to channels
2000-10-26 20:46:58 +00:00
cg
d877bb8d5a do not attach to soundblaster 1.x - they are unsupported 2000-10-26 20:31:16 +00:00
cg
faddab638d handle AFMT_QUERY right 2000-10-26 01:34:54 +00:00
phk
beadbd4365 Remove unneeded #include <machine/clock.h> 2000-10-15 14:19:01 +00:00
sobomax
e277d9ce66 Reduce buffer size from 64K to 4K.
Approved by:	cg
2000-10-09 14:54:32 +00:00
nsayer
f01a7783fc Add suspend/resume hooks.
Submitted by: sean@stat.duke.edu
2000-09-28 14:02:49 +00:00
cg
3e27c54902 prepare for adding a rate conversion feeder.
move format conversion feeders to feeder_fmt.c - no pertinent history so no
repo-copy.
2000-09-23 22:11:32 +00:00
cg
27a6dc9c5a only probe mandatory channels on known bad codecs 2000-09-23 22:00:09 +00:00
jhb
a307605d91 Enable the snd_maestro module and have the snd_driver module depend on it.
Approved by:	cg
2000-09-23 17:35:37 +00:00
tanimura
e368cca5cf Since the unit number of a midi/sequencer device is expressed in 4
bits, we can configure only up to 16 units.
2000-09-18 10:17:38 +00:00
cg
9bd1dd51e8 dynamify- probe codec for supported channels
add channel mappings for mixer
2000-09-17 23:51:00 +00:00
cg
2078d1f36c fix warnings 2000-09-17 23:46:32 +00:00
cg
cda24837e2 disable 16bit mono support- this will be handled by software conversion to
stereo as hardware mono is very noisy
2000-09-09 21:31:06 +00:00
cg
b5350bb3a5 add 16bit mono/stereo conversion feeder
prefer feeder chains of length 1 over length 2
2000-09-09 21:24:03 +00:00
cg
a081b436a3 detach support
remove un-needed setdir functions
add bus_teardown_intr calls where necessary
destroy our dma tags where necessary
destroy ac97 before releasing resources
2000-09-09 19:21:04 +00:00
cg
434a102504 ess maestro driver - not enabled by default
Submitted by:   Taku YAMAMOTO <taku@cent.saitama-u.ac.jp>
2000-09-06 20:10:55 +00:00
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