Commit Graph

55 Commits

Author SHA1 Message Date
lukem 3f7d8d47b6 add RCSID 2001-11-13 08:01:09 +00:00
augustss 1339e88a86 Add a new optional method, dev_ioctl, to the audio hardware driver interface.
It is called when an unrecognized ioctl() is performed on a device,
thus allowing ioctl()s that frob the hardware driver (like loading
microcode).
2001-10-03 00:04:47 +00:00
nathanw 46b2a2fcd4 Do ess_config_addr() in the ofisa front end, rather than in the match
routine. Prevents problems with non-SCR ess chips, as described in
PR 11630.
2001-01-06 22:50:00 +00:00
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
thorpej fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
thorpej 52a2804a5c Add a new function call to the ISA DMA API: isa_dmamaxsize(), which returns
the maximum transfer size for the specified DMA channel.  Make all clients
of ISA DMA use this call to determine their maximum transfer size.
2000-02-07 22:07:27 +00:00
mycroft 01c66d1c23 Mute the DAC -- not the master volume -- on close, so that CD passthrough is
unaffected.
2000-01-18 22:11:05 +00:00
augustss 35483ee3bf Set mixer controls after a reset. 1999-11-02 17:05:05 +00:00
augustss 860ebb7a92 Make little endian and big endian version of all functions
that deal with 16 bit samples.  Let the drivers decide which ones
to use.
1999-11-01 18:12:19 +00:00
augustss a6a09bcdd6 Add support for ES18[67][89]. From PR #7427 by AW9K-NNK@asahi-net.or.jp,
Nonaka Kimihiro.
1999-06-18 20:25:23 +00:00
nathanw 70e38aa504 Fix bug uncovered by audio.c fix: Since the monitor control on the ESS
is a muting control, not a level control, change the name to reflect that.

XXX The fact that the audio code depends on the string names of the
XXX mixer devices is bogus.
1999-05-30 00:22:59 +00:00
mycroft 5b00b99bef Allow DRQ[A-C] to be used on the 1888 as well. 1999-03-19 12:40:21 +00:00
mycroft b6ee330d4e dmapos should start at 0, in theory.
Also experimentally force polling mode.
1999-03-18 06:04:21 +00:00
mycroft 039246b8d5 Add support for polling. 1999-03-18 04:31:36 +00:00
mycroft ff4754d6e5 Confirm that there was an interrupt before handling it. Allows IRQs to be
shared with other devices.
1999-03-18 02:44:27 +00:00
mycroft 8ace2247cb Fix a couple of other places we should avoid the Audio2 DRQ on the 1788. 1999-03-17 02:39:59 +00:00
mycroft 81a1ade358 More redux:
* Use a single routine to halt both input and output on Audio1.
* Reduce the number of register reads/writes used to set up a channel.
* A few other minor things.
1999-03-17 01:06:17 +00:00
mycroft 84f100d175 Audio1 does not support 16-bit DMA. Eliminate some code that tried to handle
that case.
1999-03-16 14:17:00 +00:00
mycroft 13d43eb62b Fix old typo. 1999-03-16 13:37:23 +00:00
mycroft e085a0c921 A little more cleanup. 1999-03-16 13:32:25 +00:00
mycroft 28e080a143 Minor fix to some debugging output. 1999-03-16 13:24:27 +00:00
mycroft 3e404912dc Clean up the previous:
* Separate the interrupt handlers based on which channel (audio1/audio2)
  rather than which direction (input/output).  Only register the handler for
  audio1 on the 1788.
* Since the input sides are actually the same, GC the duplicated code.
* Re-KNF in a bunch of places.
* Make this work again on the 1887 in the Shark.
1999-03-16 13:06:35 +00:00
nathanw 64fffdfef9 Add support for the 1788 AudioDrive chip.
Some minor cleanup; refer to more registers by macros rather
than raw hex constants.
1999-03-02 20:36:50 +00:00
mycroft ea50d6f672 Use DMAMODE_LOOPDEMAND.
Fixes the audible glitches (due to FIFO underruns) when receiving network
packets on the Shark.
1999-02-22 01:57:33 +00:00
mycroft b81ad0de61 Fix the halt_input and halt_output routines to actually disable the channel,
not just the DMA FIFO.  Fixes problems with sample misalignment.
1999-02-20 23:28:37 +00:00
mycroft e5f5e628d2 Pass the direction to the allocm and round_buffersize methods.
Some drivers need this to properly allocate DMAable memory.
1999-02-17 02:37:38 +00:00
mycroft 88ad3aa42b If we have an 8-bit DRQ, always pass that to isa_malloc(). 1999-02-17 01:22:47 +00:00
augustss 0d32a9a78b Fix more `void *' arithmetic. 1999-01-08 19:22:34 +00:00
mycroft 3357fbeefb Minor format change. 1998-11-25 13:39:37 +00:00
augustss 8d64ea1683 Less debug printing. 1998-08-26 13:08:44 +00:00
augustss bb3c56652c Make the OPL driver turn on the sound on sound cards that require it.
That makes it much more likely that we get any sound.  DUH!
1998-08-26 12:10:22 +00:00
augustss c7e036f6e2 Let opl attach to ess.
WARNING: it doesn't work yet.
1998-08-22 22:55:09 +00:00
augustss cd09067eb4 * Redo the way the way the MIDI driver attaches to audio devices.
* Improve the midisyn layer a little.
* Add a driver for the Yamaha OPL[23] FM synths.
  The opl driver is not finished yet; it sounds pretty awful.

For some strange reason I cannot get any FM sound from my SB64 cards,
but a regular SB16 works fine.
1998-08-17 21:16:09 +00:00
mycroft 5c76b6a944 The mic preamp is really a property of the input stage, and affects both
pass-through and recording.
1998-08-12 19:13:14 +00:00
mycroft 3979b06d00 enhanced -> preamp 1998-08-12 03:18:34 +00:00
matthias 1f5c14d8ef ess_audio_channel:active is now used even when DIAGNOSTICS is not defined. 1998-08-11 12:16:22 +00:00
mycroft 7fca135b1b Use the new trigger interface. 1998-08-10 15:32:18 +00:00
mycroft b4e0bf5dfb Use 4- and 8-byte DMA transfers. 1998-08-09 06:52:57 +00:00
mycroft 0611fc34f8 Don't actually touch the hardware in set_params; defer that until we actually
start a transfer.  Instead, just check that the parameters are valid.
Also, use 16-bit output for u-law and a-law.
1998-08-09 06:38:30 +00:00
mycroft 5eba82397c Oops; fix typo. 1998-08-09 04:59:55 +00:00
mycroft 017b9af5fe Clarify with a specific reference to the manual page in question. 1998-08-09 04:58:08 +00:00
mycroft 12f5a41e1f Make the previous slightly more robust, and set AUDIO_PROP_INDEPENDENT. 1998-08-09 04:40:55 +00:00
mycroft c8532af3b2 Make sure the sample rate is the same on both channels, tracking the change
from one channel to the other if only one is active.
1998-08-09 04:14:47 +00:00
mycroft 759ca5ee0c The manual says to use the other crystal for 22050Hz. 1998-08-09 03:48:42 +00:00
mycroft 565adbaffb Set the FIFO control bits correctly so that stereo recording works. 1998-08-09 02:54:50 +00:00
mycroft 80457a2c65 Use auto-initialize DMA for recording. 1998-08-09 02:05:52 +00:00
mycroft 254afcaecb Sleeping forever kinda sucks. 1998-08-08 21:37:00 +00:00
mycroft 17932f0575 Set the correct modes for the record channel. 1998-08-08 20:55:36 +00:00
matt 7b044dea51 Make the irq checking logic somewhat less bogus. 1998-08-07 00:51:06 +00:00
augustss f76fb48283 Use looping DMA for play channel.
More cleanup.
1998-08-04 13:14:42 +00:00