Commit Graph

1521 Commits

Author SHA1 Message Date
mycroft 9e4bd01bff Make sure we clean up any DMA maps if the open fails. 1999-03-22 14:38:02 +00:00
mycroft f887d74c45 Nuke sc_iooffs from orbit. This is exactly what bus_space_subregion() is for. 1999-03-22 14:29:14 +00:00
mycroft 97de30ff26 Several things:
* Rearrange the speed mapping table and adjust the code so that the highest
  rate can actually be used.  Previously we ended up rounding up slightly
  lower speeds and then losing because set_params couldn't set the mode
  back to the current one.
* Allow 260 as a valid I/O address, since the SB1 can be jumpered to this.
* Change the MPU-401 code so it can be attached as a separate device.
  (XXX Really, the SB code ought to just attach a subdevice itself.)
* Do not attach an OPL on the SB1.  Writing to the OPL registers at
  SB_base+0 on this card wedges my machine.
  (XXX Should we access it at 388 instead?  The Creative web site claims
  that this board *does* have an OPL2, but I haven't played with this
  extensively.)
* Allocate the SB DMA channels at open time, rather than attach time, so
  that a single DRQ can be used for multiple cards (if only one is in use
  at a given time).
  (XXX Let me tell you why this is a horrible hack.  If the ISA DMA code
  tries to allocate a bounce buffer after boot time, it will generally fail,
  because there is no contiguous memory below 16MB and the code to allocate
  contiguous pages doesn't know how to move things around.  Now, we
  shouldn't ever be using bounce buffers here, because we use
  isa_dmamem_alloc().  So we just turn off BUS_DMA_ALLOCNOW and we don't
  actually try to.  That's cool, and it even works, but isa_dmamem_alloc()
  has the same problem.  It just happens that we allocate the ring buffers
  at boot time, and whenever we reallocate them (due to the buffer size
  changing), we just deallocated the previous (contiguous) buffer, so we get
  lucky.  This is absolutely disgusting and needs to be fixed.)
1999-03-22 07:37:35 +00:00
mycroft 1337db796b Adjust the probe routine to work on chips where the mic preamp bit is shared
between register I0 and I1.
1999-03-22 07:27:46 +00:00
mycroft ee5f90d04c If bus_dmamap_create() fails, free the DMA channel. 1999-03-22 07:06:09 +00:00
mycroft 5b00b99bef Allow DRQ[A-C] to be used on the 1888 as well. 1999-03-19 12:40:21 +00:00
cgd fa26744c04 don't need isa_machdep.h, since isavar.h is included 1999-03-19 05:42:00 +00:00
cgd d324c9f2f6 pull isa_machdep.h in from machine/ instead of from $(MACHINE)/isa/ 1999-03-19 05:13:16 +00:00
mycroft b45b384ea1 Also fix ia_iosize. 1999-03-18 20:57:11 +00:00
mycroft 5a20d4df8d Some fixes to the IRQ/DRQ configuration, and the probe output. 1999-03-18 20:55:50 +00:00
mycroft 813fb95309 The chip is only rated for 44.1KHz, and will not record faster that 46.794KHz,
so adjust ESS_MAXRATE.  ESS_MINRATE was also wrong, not that anyone cares.
1999-03-18 07:11: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 81d2718d5b Add support for polling. 1999-03-18 06:03:31 +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 9e041fd850 Adjustments for structure name changes. 1999-03-16 13:07:45 +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
thomas 3387d026d6 Include machine/bswap.h, needed on big endian machines. 1999-03-15 20:19:57 +00:00
drochner 1b9cb332aa Don't try to selftest the keyboard port. PC keyboard controllers have
shown up which break in 3 different ways, so the test is becoming
pointless.
1999-03-05 10:40:54 +00:00
nathanw bd7b26e37d Add ISA attachment for ess chips. 1999-03-02 20:42:10 +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
explorer 3ebb419571 Update to slightly altered rnd_attach_source() api 1999-02-28 17:08:05 +00:00
drochner 0d46b0d0fd Make "1" an acceptable result in port tests.
This is a workaround for crappy hardware, normal keyboard controllers
return a "0".
Should fix PR port-i386/6636 by Krister Walfridsson and problems
reported by chopps and fvdl.
1999-02-28 14:26:38 +00:00
nathanw 281bba9355 Update for minor changes in the ad1848 back end. 1999-02-23 21:16:27 +00:00
mycroft 71eb5693e6 Use DMAMODE_DEMAND. 1999-02-22 03:24:33 +00:00
mycroft 10817df7f0 Oops; remove obsolete code. 1999-02-22 02:33:48 +00:00
mycroft bd575a4ff6 Add support for demand mode with auto-init. 1999-02-22 02:32:43 +00:00
mycroft 529c6c50aa Use DMAMODE_LOOPDEMAND. Tested on a CS4231 in a WSS clone. 1999-02-22 02:25:20 +00:00
mycroft 7da867ec93 Use DMAMODE_LOOPDEMAND. Tested on a ViBRA16. 1999-02-22 02:16:40 +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 1790450d8c Fix structure names. 1999-02-19 16:59:36 +00:00
mycroft 4449a6ef39 Kill vestiges of isa_establish(). 1999-02-19 16:15:06 +00:00
mycroft 4822d3d0b0 Move IRQ setup into frontend. Need to move DRQ handling as well. 1999-02-19 16:10:44 +00:00
mycroft 28bc4dfeca Oops; PCIC_INTR_ENABLE does something *very* different. 1999-02-19 03:14:00 +00:00
mycroft f2c4e7f8bd Use the correct interrupt sharing type, and set PCIC_INTR_ENABLE(!). 1999-02-18 23:41:40 +00:00
mycroft 18e341a954 Add separate halt_input and halt_output methods in ad1848_isa, which disable
the DMA channel.
1999-02-18 17:27:39 +00:00
mycroft 9907eda026 spaces -> tabs 1999-02-18 16:09:01 +00:00
mycroft 81bc49921a Remove some superfluous softc elements. 1999-02-18 15:47:29 +00:00
mycroft 5e2fc07a14 Add separate halt_output and halt_input routines. 1999-02-18 07:08:35 +00:00
mycroft 27963c294a Use the trigger interface, and clean up a pile of cruft. 1999-02-17 23:05:28 +00:00
mycroft 71105fbda7 Update comments. 1999-02-17 21:44:55 +00:00
mycroft 7741cae143 Fix slight ommission in previous. 1999-02-17 02:43:13 +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
is 2c7fa23c38 Fix Copyright dates 1999-02-16 23:34:10 +00:00
is dc068e0d1f Assign my files to The NetBSD Foundation, Inc. 1999-02-16 22:46:55 +00:00
hubertf 56f2d188fc RCS ID police 1999-02-15 04:54:34 +00:00
bouyer f6f9f8a965 Change DIOCEJECT to do what's needed to eject a device before the eject
command (unlock for sd and cd) if no other partitions are open, return
EBUSY otherwise. DIOCEJECT will have the old semantic if its argument is not
0. The old ioctl has been renamed to ODIOCEJECT for binary compatibility.
1999-02-08 16:33:16 +00:00
drochner 1eba733d91 remove dummy "load_font" entries 1999-01-11 21:35:54 +00:00
augustss 5c5590465e Avoid `void *' arithmetic. Fixes PR 6783. 1999-01-10 21:57:19 +00:00
augustss 0d32a9a78b Fix more `void *' arithmetic. 1999-01-08 19:22:34 +00:00
augustss 332d7c138f Avoid arithmetic on `void *' since that's not ANSI C. 1999-01-08 18:10:35 +00:00
christos bbe8b4dde5 Add Byte Runner Technologies TC-400 and TC-800 driver from Eric S. Hvozda 1998-12-16 11:33:50 +00:00
drochner 2e89d55ed4 Deal with an unusual response on port selftest commands. This makes at
least John Kohl's crappy Dell box work.
1998-12-14 13:54:25 +00:00
mycroft 95aa0d0b7d Simplify the copy loops a bit. 1998-12-12 16:58:10 +00:00
thorpej 7a9cc5bfbc Update for changed scsipi_xfer struct. 1998-12-09 08:37:50 +00:00
augustss 1b499d8ce6 Make the OPL information string more informative. 1998-12-08 14:26:56 +00:00
mjacob 74bc9f26d5 Update HBAs to incorporate the new max_lun property. 1998-12-05 19:43:33 +00:00
dbj 8f7f8d557d made prototype for debug function wss_dump_regs match its definition. 1998-12-05 10:49:24 +00:00
bouyer 47ab212504 Rename pio_mode, etc ... to PIO_cap, etc ... for consistency with the
ata_drive_datas struct. Suggested by Soren S. Jorvan.
1998-12-03 18:24:30 +00:00
leo 7c72f9361b Change comment about isa_intr_establish() as discussed on tech-kern. 1998-11-30 12:57:10 +00:00
hannken 246a68a003 Add support for `AdLib NSC 16 PNP' as wss, joy.
Record source selection needs work.
1998-11-26 21:45:13 +00:00
augustss 9726cfd1fb Make the copyright header conform to the NetBSD template. 1998-11-25 22:17:06 +00:00
mycroft 3357fbeefb Minor format change. 1998-11-25 13:39:37 +00:00
pk 0800aaa223 Move the `wdc' device into `conf/files'. 1998-11-22 21:57:47 +00:00
drochner 3e38051bc5 in wdc_softc: access the per-channel data via a pointer array instead of
an array of fixed-sized channel_softc elements. This way IDE controllers
which more than 1 channel (pciide) can extend the channel data easily
for private needs.
To avoid the double dereference at runtime, change the argument of
wdcstart() to the channel data pointer instead of the array index.
1998-11-21 15:41:41 +00:00
thorpej 3b068a6c78 Adapt to the new scsipi_adapter interface. 1998-11-19 21:53:32 +00:00
mrg db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
thorpej fade033791 Print out which IRQ is being used for which slot, when the interrupts
are established.
1998-11-16 22:35:18 +00:00
mycroft 5ab6a8555e Fix one last bug in the multicast filter calculation.
sdr and vic work now, at least.
1998-11-13 09:37:46 +00:00
mycroft b8974fbf40 Fix yet another bogon in the multicast filter calculation. 1998-11-12 13:03:51 +00:00
fvdl 7b10c3e7e4 Add the 'ex' driver, a DMA driver for 3Com 90x and 90xB cards. Rename
constants from EP_ to ELINK_ since they're now used in the ex driver as well.
1998-11-04 00:29:28 +00:00
christos 1cfb41e0d6 make this compile again (missing semi-colon) 1998-11-01 01:04:48 +00:00
thorpej d08eb2a32b Add code to detect a RealTek 8019 chip, and use the media selection
support if present.
1998-10-31 01:44:16 +00:00
thorpej 56066ad5fb Add media list, media list count, and default media arguments to
ne2000_attach().
1998-10-28 00:13:47 +00:00
thorpej 925077cfb9 Holy smokes, batman! Actually fill in the "init_card" entry point! 1998-10-27 22:45:13 +00:00
scottr ffe41a4f8f Remove unused sc_iot/sc_ioh fields. 1998-10-25 23:48:56 +00:00
scottr d4e6677111 Replace architecture-dependent tag/handle field names with
architecture-independent versions.
1998-10-25 23:48:29 +00:00
christos 6e73d89afc PR/6274: John Ruschmeyer: Add isa/i386 ncr53c80 driver.
XXX: Needs work. We need to fix the probe/find goo, and add support for the
     pas16 cards.
1998-10-25 18:41:56 +00:00
mycroft ee042cb008 Disable the I/O address, DRQ and IRQ validation; assume that the config file
is sane.
1998-10-15 04:05:53 +00:00
bouyer 19fddaeeb5 Merge bouyer-ide 1998-10-12 16:09:10 +00:00
augustss 44d4d6a60a Call correct ad1848 attach routine. Fixes PR 6269. 1998-10-11 17:02:36 +00:00
thorpej 29d472f53d Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter.  This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
1998-10-10 00:28:28 +00:00
enami bd7db8ba8a Enable early probe stage printf's not by DIAGNOSTIC but more driver
specific macro constants.
1998-10-07 04:58:06 +00:00
enami b03b63aef4 Make these files compile again; no longer necessary to pass
iobase to comprobe1.
1998-09-18 14:38:48 +00:00
is 95807e512a Garbage collect unused 3rd parameter to comprobe1(). 1998-09-16 21:30:58 +00:00
jonathan ea4898c76c Add arc as a target platform. 1998-09-11 19:39:28 +00:00
thorpej 4f9a0d0550 Add mmap support for gus and gusmax, PR #5988, Feico Dillema. 1998-09-09 04:40:34 +00:00
jtk 1247373b7a Correct the remaining uses of ad1848_softc to ad1848_isa_softc 1998-09-06 13:03:49 +00:00
pk 06f777a3fe Debug output updates (Ezra Story; PR#6108). 1998-09-06 11:06:52 +00:00
pk 7991c56b93 Use `ad1848_isa_{open|close}' (Ezra Story; PR#6108). 1998-09-06 11:05:21 +00:00
pk fc5e533cc2 Relinquish my copyright claim on this file. 1998-09-05 17:23:09 +00:00
christos c7a4282124 Assign copyright to TNF. 1998-09-05 14:12:36 +00:00
jtk 92707994ef use ad1848_isa_attach, so GUS cards with CS4231 don't panic the kernel 1998-09-01 18:48:38 +00:00
cgd d58173741d kill the last remnants of __BROKEN_INDIRECT_CONFIG. (only the pica port
used it, and it's non-working and apparently slated for replacement.)
1998-08-31 22:28:04 +00:00
jtk 61cf67759a make AUDIO_DEBUG work again 1998-08-29 22:49:48 +00:00
augustss 7972a062b0 Make the OPL driver attach directly to ISA as well. 1998-08-26 13:33:59 +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
pk 2ffb54bdcc Split the AD1848 driver into MI (dev/ic/ad1848.c) and ISA parts. 1998-08-25 22:34:29 +00:00
augustss a48f7d8a24 Attach the OPL FM synth to the ESS driver.
It probes, but alas, no sound.
1998-08-25 12:52:47 +00:00
augustss c7e036f6e2 Let opl attach to ess.
WARNING: it doesn't work yet.
1998-08-22 22:55:09 +00:00
augustss 915f1fe566 Add missing __P 1998-08-20 10:46:10 +00:00
augustss 0e6f209f9d Add forgotten OPL file. 1998-08-18 17:56:39 +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 d07b3639a4 Assign my copyrights to TNF. 1998-08-15 17:47:15 +00:00
mycroft 62b1bf3e2e Assign my copyrights to TNF. 1998-08-15 10:51:16 +00:00
mycroft 6dc903202f Assign my copyrights to TNF. 1998-08-15 10:10:47 +00:00
mycroft 129cbf95ee Minor edit. 1998-08-15 05:16:41 +00:00
mycroft b2827b9d36 Assign copyright to TNF. 1998-08-15 04:16:55 +00:00
mycroft df9baf2311 Assign copyrights to TNF. 1998-08-15 03:51:30 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
mycroft 183442fe73 Emulate ulinear_be using slinear_be on later chips. 1998-08-14 00:49:23 +00:00
kim f750a7d47e device ess was listed twice 1998-08-13 04:53:18 +00:00
eeh a2dd74ed79 Merge paddr_t changes into the main branch. 1998-08-13 02:10:37 +00:00
augustss 58e0098fef Shut up after close(). 1998-08-12 21:36:21 +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
thorpej b170caf730 Completely rewrite media selection. Add support for the MII/PHY on
the 3Com 3c905-TX and 3c905-T4.  Fix handling of the MII on the
3c595-MII and 3c597-MII (can't talk to the PHYs on these cards; just
use "manual" for the external MII port).

Fixes kern/4782 (Chris Demetriou).
1998-08-12 18:51:52 +00:00
augustss fa39959a5e Add a MIDI driver for the PC speaker. This is mostly of hack value,
but, hey, lotsa people got a MIDI device now!  (A truly pitiful one. :-)
1998-08-12 18:16:36 +00:00
augustss 881b4053a6 Remove some white space. 1998-08-12 18:15:04 +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 a6e73a5576 Actually set all the logical filter bits. Doh! 1998-08-11 05:57:40 +00:00
mycroft 271d3df6f3 Fix an obvious bug that caused the multicast filter to always be all 0s. 1998-08-11 04:18:25 +00:00
matt 8ba8e2056b Remove unused field (sc_ih) in ess_softc (interrupt handlers are kept
in a per-direction structure).
1998-08-10 20:24:26 +00:00
augustss b034eb97bf Fix typo. 1998-08-10 20:02:48 +00:00
mycroft 7fca135b1b Use the new trigger interface. 1998-08-10 15:32:18 +00:00
mycroft 060f81eb62 Minor change. 1998-08-10 02:19:18 +00:00
mycroft 93703857ca Slow down, Wilbur. 1998-08-10 02:13:44 +00:00
mycroft 7514d511f7 Fix a typo I introduced in the MIDI code. 1998-08-10 02:12:30 +00:00
mycroft 8d77cae1b4 For models prior to the SB16, there is only one clock divider, so couple the
sample rates.  However, only do this if both play and record are being used
simultaneously; otherwise we can't play 22KHz on the SB1.
1998-08-10 01:25:33 +00:00
mycroft 3dcff6581b Use the new trigger_{in,out}put interface.
Also, even on the SB1, we can leave the DMA controller in auto-initalize
mode and just send a command to the board for each block.  This may help
prevent FIFO underruns.
1998-08-10 00:20:39 +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 e2686d0a1b Use splnet, not splimp. 1998-08-08 23:51:39 +00:00
mycroft c49235f44c Use splnet(), not splimp(). 1998-08-08 23:44:12 +00:00