freebsd-dev/sys/dev/aic7xxx
Scott Long f6b1c44d1f Mega busdma API commit.
Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg.
Lockfunc allows a driver to provide a function for managing its locking
semantics while using busdma.  At the moment, this is used for the
asynchronous busdma_swi and callback mechanism.  Two lockfunc implementations
are provided: busdma_lock_mutex() performs standard mutex operations on the
mutex that is specified from lockfuncarg.  dftl_lock() is a panic
implementation and is defaulted to when NULL, NULL are passed to
bus_dma_tag_create().  The only time that NULL, NULL should ever be used is
when the driver ensures that bus_dmamap_load() will not be deferred.
Drivers that do not provide their own locking can pass
busdma_lock_mutex,&Giant args in order to preserve the former behaviour.

sparc64 and powerpc do not provide real busdma_swi functions, so this is
largely a noop on those platforms.  The busdma_swi on is64 is not properly
locked yet, so warnings will be emitted on this platform when busdma
callback deferrals happen.

If anyone gets panics or warnings from dflt_lock() being called, please
let me know right away.

Reviewed by:	tmm, gibbs
2003-07-01 15:52:06 +00:00
..
aicasm Allow constants to be complex expressions so long as those 2003-01-20 18:02:11 +00:00
ahc_eisa.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
ahc_pci.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
ahd_pci.c Mega busdma API commit. 2003-07-01 15:52:06 +00:00
aic7xxx_93cx6.c Update Perforce Ids. 2002-08-31 06:45:28 +00:00
aic7xxx_93cx6.h Update Perforce Ids. 2002-08-31 06:45:28 +00:00
aic7xxx_inline.h Correct/Simplify ignore wide residue message handling 2003-05-26 21:24:01 +00:00
aic7xxx_osm.c Merge common XPT_CALC_GEOMETRY functions into a single convenience function. 2003-06-14 22:17:41 +00:00
aic7xxx_osm.h Mega busdma API commit. 2003-07-01 15:52:06 +00:00
aic7xxx_pci.c Clear stale PCI errors during our test for 2003-06-06 23:52:34 +00:00
aic7xxx.c When single stepping, only leave ENBUSFREE enabled 2003-06-06 23:53:39 +00:00
aic7xxx.h aic7770.c: 2003-06-06 23:48:19 +00:00
aic7xxx.reg Correct/Simplify ignore wide residue message handling 2003-05-26 21:24:01 +00:00
aic7xxx.seq FIFOEMP can lag LAST_SEG_DONE in the Ultra2 and U160 2003-05-26 21:24:55 +00:00
aic79xx_inline.h Implement ahd_inq_scbram() and change the implemention 2003-06-28 04:43:19 +00:00
aic79xx_osm.c Merge common XPT_CALC_GEOMETRY functions into a single convenience function. 2003-06-14 22:17:41 +00:00
aic79xx_osm.h Mega busdma API commit. 2003-07-01 15:52:06 +00:00
aic79xx_pci.c aic79xx.h: 2003-06-28 04:39:49 +00:00
aic79xx.c Fix a race condition in the flushing of commands that 2003-06-28 04:46:54 +00:00
aic79xx.h aic79xx.h: 2003-06-28 04:45:25 +00:00
aic79xx.reg Sync perforce IDs. 2003-06-10 03:25:24 +00:00
aic79xx.seq Use clr instead of an explicit mov from ALLZEROS 2003-06-28 04:44:10 +00:00
aic7770.c aic7770.c: 2003-06-06 23:48:19 +00:00