Home | History | Annotate | Download | only in isa
History log of /src/sys/dev/isa/isadmavar.h
RevisionDateAuthorComments
 1.26  29-Apr-2012  dsl Patch out the 'struct malloc_type' from the isa_dma alloc routines.
All the i386 kernels now build
 1.25  18-Aug-2009  dyoung branches: 1.25.12; 1.25.16;
Let us safely detach the ISA bus and devices attaching to the ISA
bus:

1 Add isadetach() for detaching the ISA bus, and add some helper
routines that release resources held for ISA DMA.

2 In isachilddetached(), forget references to child devices.

While I am here, change ISA_DMA_DRQ_ISFREE(...) == 0 to the simpler
expression, !ISA_DMA_DRQ_ISFREE(...).
 1.24  12-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.23  28-Apr-2008  martin branches: 1.23.14;
Remove clause 3 and 4 from TNF licenses
 1.22  04-Mar-2007  christos branches: 1.22.36; 1.22.38; 1.22.40;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.21  11-Dec-2005  christos branches: 1.21.26;
merge ktrace-lwp.
 1.20  04-Feb-2005  perry branches: 1.20.6;
de-__P
 1.19  09-May-2003  fvdl branches: 1.19.2; 1.19.10; 1.19.12;
A few ISA sound drivers like to share dma channels, and hence deferred
isa_dmamap_create() calls to their open/close entrypoints. This worked
with some luck, but broke on i386 when _bus_dmamap_create started
to allocate bounce buffers upfront, since memory below 16M may well
not be available when the sound devices is opened for the Nth time.

To fix this, create a new simple interface, isa_drq_alloc/isa_drq_free,
wrappers around already existing bitmask macros. These are expected
to be used before an isa_dmamap_create call, and after an
isa_dmamap_destroy call, respectively. For the sb and ad1848 drivers,
they're deferred until open/close.

All isa_dmamap_create calls can now use BUS_DMA_ALLOCNOW and be done
at attach time.
 1.18  01-Feb-2003  thorpej 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.
 1.17  26-Jun-2000  simonb 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.
 1.16  07-Feb-2000  thorpej branches: 1.16.4;
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.
 1.15  22-Feb-1999  mycroft branches: 1.15.8;
Add support for demand mode with auto-init.
 1.14  28-Jun-1998  thorpej Add an additional ISA DMA mode: LOOPDEMAND. This is for devices, such
as the Shark's CS8900 Ethernet, which want to use the DMA controller in
this mode (as opposed to single mode).

[Editor's note: committed from a Shark using a new bus_dma back-end
and a CS8900 driver converted to use the MI code :-]
 1.13  25-Jun-1998  thorpej Don't panic if a DRQ is already allocated. Instead, just return EAGAIN
to indicate that the resource is unavailable.
 1.12  09-Jun-1998  thorpej Add isa_dma{freeze,thaw}(), used to temporarily stop and then restart
all ISA DMA. Needed by e.g. the SmartCard reader for Sharks.
 1.11  09-Jun-1998  thorpej Change the ISA DMA API to take an isa_chipset_tag_t rather than
a struct device * corresponding to the ISA bus device. The ISA DMA
controller driver functions have been renamed and now take a struct
isa_dma_state *, and are called indirectly by machine-dependent code
which provides the DMA state.

These changes allow e.g. `ofisa' (the OpenFirmware configuration
mechanism for the ISA bus, used by e.g. Sharks) to use the MI ISA
DMA controller code.
 1.10  04-Aug-1997  augustss Implement a function to test if a drq is taken and use it
in two drivers. There are still many drivers left to fix...
 1.9  28-Jul-1997  augustss branches: 1.9.2;
Audio: Remove the machine dependant code I put in audio.c by mistake.
This adds another method to audio_hw_if. Also remove a field from
audio_hw_if that was not read-only.
 1.8  27-Jul-1997  augustss Changes to the sudio system:
- It is now possible to handle devices that want "looping" DMA,
e.g. the SoundBlaster correctly. The WSS and SB drivers use this.
To do this several new methods were introduced in audio_hw_if.
- Different silence handling (forced by previous change).
- The audio driver can now be mmap()-ed, but due to problems in
the VM system only for writing for now.
- The OSS (Linux) audio emulation takes advantage of some of the
new features.
 1.7  06-Jun-1997  thorpej Pull thorpej-bus-dma branch into mainline.
 1.6  21-Mar-1997  mycroft branches: 1.6.2;
Clean up a bit, and export isa_dmamask() and isa_dmaunmask() interfaces.
 1.5  21-Mar-1997  mycroft Add an isa_dmacount() function, to get the current residual count on a channel.
 1.4  01-Mar-1996  mycroft Add support to the ISA DMA framework for auto-initialize mode.
Add experimental SB16 code, disabled for now.
 1.3  20-Feb-1996  mycroft Move the terminal count check into a separate function.
 1.2  27-Oct-1994  cgd new RCS ID format.
 1.1  22-Apr-1994  mycroft Separate DMA functions.
 1.6.2.2  17-May-1997  thorpej Add isa_dmamem_*() functions, which are wrappers around bus_dmamem_*()
functions, but encapsulate the peculiar memory contraints of the
on-board ISA DMA controller. Devices which use the isa_dma*() functions
should use these for DMA-safe memory manipulation.
 1.6.2.1  13-May-1997  thorpej Mostly-rewrite, converting the ISA DMA controller driver to be a user
of the bus dma API. A new isa_dma*() function call interface is exported
to drivers that need to use this controller.
 1.9.2.1  23-Aug-1997  thorpej Update marc-pcmcia branch from trunk.
 1.15.8.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.16.4.1  30-Jun-2000  simonb Pull up mmap paddr_t/off_t changes from trunk.
 1.19.12.1  12-Feb-2005  yamt sync with head.
 1.19.10.1  29-Apr-2005  kent sync with -current
 1.19.2.1  04-Feb-2005  skrll Sync with HEAD.
 1.20.6.1  03-Sep-2007  yamt sync with head.
 1.21.26.1  12-Mar-2007  rmind Sync with HEAD.
 1.22.40.3  19-Aug-2009  yamt sync with head.
 1.22.40.2  16-May-2009  yamt sync with head
 1.22.40.1  16-May-2008  yamt sync with head.
 1.22.38.1  18-May-2008  yamt sync with head.
 1.22.36.1  02-Jun-2008  mjf Sync with HEAD.
 1.23.14.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.25.16.1  02-Jun-2012  mrg sync to latest -current.
 1.25.12.1  23-May-2012  yamt sync with head.

RSS XML Feed