| Age | Commit message (Collapse) | Author |
|
start at 0x81; the code used bus_space_map() starting from 0x80 but
used +1 offset for actual I/O, now it maps starting 0x81 and does I/O
without offset
the reads and writes work exactly the same as before, but this frees
0x80 for being mapped independantly
patch provided in PR kern/52468 by Jonathan Chapman; checked against the spec
and also FreeBSD sys/x86/isa/isa_dma.c
|
|
some other constants. These are provided by sys/param.h now.
|
|
during compilation.
While here, fix the compilation for ALL.
|
|
bus_space_tag_create(9), and bus_space_tag_destroy(9). Use
bus_space_is_equal(9) throughout the kernel to compare
bus_space_tag_t's. Tested on i386 and on sparc64.
|
|
pcdisplay.c: #if 0 some code that compares two bus_space_tag_t's
in order to see if pcdisplay0 is console. It does not seem to
be helpful to compare the tags; maybe the author intended to
compare some other bus property?
MI code should not compare an opaque type such as bus_space_tag_t!
|
|
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(...).
|
|
|
|
The only ones left in sys are beyond by sed script!
(or in sys/dist or sys/external)
Mostly they have function pointer parameters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"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.
|
|
the maximum transfer size for the specified DMA channel. Make all clients
of ISA DMA use this call to determine their maximum transfer size.
|
|
|
|
|
|
|
|
- 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!
|
|
cascaded and that it will be unmasked when DMA is thawed after being
frozen. (This also has the effect of making sure that no device ever
erroneously gets DRQ 4.)
|
|
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 :-]
|
|
to indicate that the resource is unavailable.
|
|
all ISA DMA. Needed by e.g. the SmartCard reader for Sharks.
|
|
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.
|
|
partial syncs of a DMA mapping.
|
|
|
|
fault if the DMA map is missing.
|
|
in two drivers. There are still many drivers left to fix...
|
|
it can happen during probing.
|
|
This adds another method to audio_hw_if. Also remove a field from
audio_hw_if that was not read-only.
|
|
- 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.
|
|
|
|
|
|
transfer length and use that.
|
|
|
|
|
|
|
|
|
|
|
|
|