Commit Graph

40 Commits

Author SHA1 Message Date
kent 93293b9ec7 ansify and KNF 2005-01-15 15:19:51 +00:00
kent 23b5d91433 merge kent-audio1 branch, which introduces audio filter pipeline to the MI
audio framework


Summary of changes:

* struct audio_params
  - remove sw_code, factor, factor_denom, hw_sample_rate,
hw_encoding ,hw_precision, and hw_channels.  Conversion information
is conveyed by stream_filter_list_t.
  - change the type of sample_rate: u_long -> u_int
  - add `validbits,' which represents the valid data size in
precision bits.  It is required in order to distinguish 24/32bit
from 24/24bit or 32/32bit.

* audio_hw_if
 - add two parameters to set_params()
	stream_filter_list_t *pfil, stream_filter_list *rfil
   A HW driver should set filter recipes for requested formats
 - constify audio_params parameters of trigger_output() and
trigger_input().  They represent audio formats for the hardware.
 - make open() and close() optional
 - add int (AUMODE_PLAY or AUMODE_RECORD) and audio_params_t parameters
 to round_blocksize()

* sw_code is replaced with stream_filter_t.
  stream_filer_t converts audio data in an input buffer and writes
into another output buffer unlike sw_code, which converts data in
single buffer.
  converters in dev/auconv.c, dev/mulaw.c, dev/aurateconv.c,
dev/tc/bba.c, dev/ic/msm6258.c, and arch/arm/iomd/vidcaudio.c are
reimplemented as stream_filter_t

* MI audio
 - audiosetinfo() builds filter pipelines from stream_filter_list_t
filled by audio_hw_if::set_params()
 - audiosetinfo() returns with EINVAL if mmapped and set_params()
requests filters
 - audio_write(), audio_pint(), and audio_rint() invoke a filter
pipeline.
 - ioctl() for FIONREAD, AUDIO_WSEEK, AUDIO_GETIOFFS,
AUDIO_GETOOFFS, and audio_prinfo::{seek,samples} for
AUDIO_GETINFO handle values for a buffer nearest to userland.

* add `struct device *' parameter to ac97_attach()

* all of audio HW drivers follow audio_hw_if and ac97 changes
2005-01-10 22:01:36 +00:00
yamt 18f717bb90 constify audio_hw_if, midi_hw_if, and radio_hw_if. 2004-10-29 12:57:15 +00:00
dsainty 6ba20401df Corrected a scattering of typos in comments 2004-10-07 10:42:26 +00:00
kent 54cf6460d6 ac97_host_if::reset() returns non-zero value if codec reset fails, and
ac97 is not attached in that case.

PR: kern/26973
2004-09-22 12:20:24 +00:00
christos 19bc1974d9 PR/25731: Adam K kirchhoff: Audigy support with the emuxki driver. 2004-05-27 20:20:52 +00:00
tsutsui a714bd16ef Add some byteswap ops around DMA descriptors for big endian machines.
Tested on macppc by matthew green.

XXX This driver completely lacks bus_dmamap_sync(9) ops.
2004-05-23 11:37:25 +00:00
itojun 6123043789 pass string length (= boundary info) to pci_devinfo so that we do not run over
the end of memory region
2004-04-23 21:13:05 +00:00
martti 6f941c9322 Added another SB Live! 5.1 soundcard and joystick version 2004-04-03 10:49:13 +00:00
wiz ee1b406595 Spell address with two d's. Inspired by similar changes in OpenBSD,
originating from Jonathon Gray and forwarded by jmc@openbsd.
2003-11-10 08:51:51 +00:00
hannken c0818405f1 Complete last commit: Remove assigned-to but otherwise unused variable. 2003-10-30 10:02:16 +00:00
simonb b6abb6ab1d Remove some assigned-to but otherwise unused variables. 2003-10-30 01:58:17 +00:00
christos b132a6334c Fix uninitialized variable warnings. 2003-10-25 21:31:43 +00:00
christos 125ccd91b1 Fix uninitialized variable warnings 2003-10-25 18:29:12 +00:00
wiz 1ffa7b76c4 DMA, not dma nor Dma. 2003-05-03 18:10:37 +00:00
wiz c42e1fac66 Management, not managment. Mostly from jmc@openbsd. 2003-04-26 22:07:12 +00:00
toshii 45469b1ffc Fix a memory leak in emuxki_voice_new.
Pointed out by Izumi Tsutsui in the current-users mailing list.
2003-03-17 12:29:09 +00:00
toshii 92684e028b Make emuxki_voice_set_audioparms return EINVAL if invalid sample rate
is passed.
2003-03-17 12:20:27 +00:00
toshii 36a24737cd Fix recording with formats other than 16 bit slinear_le, based on the
patch submitted as kern/20620.
2003-03-16 16:33:48 +00:00
toshii 6e79d819f7 Remove a couple of false comments, as pointed out in kern/20620. 2003-03-16 13:34:24 +00:00
fvdl d8464bf767 The intrmasks array is only used in if 0-ed code, so if 0 it as well. 2003-03-03 23:49:18 +00:00
toshii 6cc1deb5ca Add recording support for emuxki(4). The patch is basically the same
as I submitted in PR kern/18093.  Some of the patch needs refinement.
Also, only the ADC recording source is supported, because the other
sources are probably much less useful and the implementation isn't
trivial.
2003-02-25 08:48:24 +00:00
tsutsui 60a7e59350 hz -> Hz 2003-02-22 04:57:48 +00:00
wiz b3e61b0b56 s/intial/initial/, from jmc in .pl in PR 20414. 2003-02-18 18:47:06 +00:00
thorpej b193480908 Add extensible malloc types, adapted from FreeBSD. This turns
malloc types into a structure, a pointer to which is passed around,
instead of an int constant.  Allow the limit to be adjusted when the
malloc type is defined, or with a function call, as suggested by
Jonathan Stone.
2003-02-01 06:23:35 +00:00
thorpej 7ec10e2d99 Use aprint_*(). 2003-01-31 00:07:39 +00:00
tron ed7e94b443 Use bus_space_write_2() to write the 16 bit register "EMU_TIMER" which
should fix PR kern/15663. Patch supplied by Yorick Hardy via GNATS.
2003-01-01 00:36:29 +00:00
jdolecek 94f0c1c2d1 emuxki_intr(): return 1 if interrupt was for us, 0 if not
this appear to fix occassional sample repeats on my dual CPU i386
2002-12-24 10:53:03 +00:00
thorpej 9b2c2ec24d Add trailing ; to CFATTACH_DECL. 2002-10-02 16:50:59 +00:00
thorpej 387fc6dc87 Use CFATTACH_DECL(). 2002-09-30 20:37:04 +00:00
thorpej f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
jdolecek 34b1784adf enable the joystick port on attach, too 2002-02-02 18:10:28 +00:00
jdolecek 1731882d0a emuxki_set_params(): don't try to set parameters if the appropriate
'voice' is not initialized
This fixes kern/15394 by Onno van der Linden.

Code fragment to trigger the bug:

	AUDIO_INITINFO(&info);
	info.mode = AUMODE_PLAY;
	info.play.channels = 2;
	fd = open("/dev/audioctl0", O_RDWR);
	(void)ioctl(fd, AUDIO_SETINFO, &info);

emuxki_voice_set_audioparms(): g/c check for voice == NULL, this is
never called with null voice
some minor style changes in emuxki_open()/emuxki_close()
2002-01-27 20:38:07 +00:00
jdolecek a89c5fcfcb Merge in changes sent by Michael Shalayeff, from OpenBSD port of this driver:
- use better default for DAC level (previous produced distorted output)
- preserve DAC setting in between openings
2001-12-23 23:14:59 +00:00
jdolecek c4e01300ad Add the AC97_HOST_SWAPPED_CHANNELS quirk for emuxki, and do some
whitespace cleanup. Streight from Yannick Montulet.
2001-12-23 22:54:08 +00:00
lukem 2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
lukem 9048aaae21 add RCSID 2001-11-13 07:48:40 +00:00
jdolecek 7a27cbb4a3 De-__P()ify. Suggested by Lennart Augustsson. 2001-10-22 20:31:26 +00:00
jdolecek d9e921bd84 Fix obviously wrong printf() format in pci_intr_establish() failure case.
Pointed out by Chuck Silvers.
XXX This has compiled without a warning for me - what's up?

Add sc->sc_dev.dv_xname in another failure printf()
2001-10-18 19:15:38 +00:00
jdolecek d4df209cbd Add driver for Creative Labs SBLive! EMU10000, possibly also PCI512.
Written by Yannick Montulet (thanks!), with only couple minor touches by me.
2001-10-17 18:39:41 +00:00