summaryrefslogtreecommitdiffstats
path: root/sys/dev/isp/isp_freebsd.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/isp/isp_freebsd.h')
-rw-r--r--sys/dev/isp/isp_freebsd.h56
1 files changed, 29 insertions, 27 deletions
diff --git a/sys/dev/isp/isp_freebsd.h b/sys/dev/isp/isp_freebsd.h
index 9a9093a..7702ee6 100644
--- a/sys/dev/isp/isp_freebsd.h
+++ b/sys/dev/isp/isp_freebsd.h
@@ -225,8 +225,7 @@ struct isp_fc {
struct cam_path *path;
struct ispsoftc *isp;
struct proc *kproc;
- bus_dma_tag_t tdmat;
- bus_dmamap_t tdmap;
+ bus_dmamap_t scmap;
uint64_t def_wwpn;
uint64_t def_wwnn;
time_t loop_down_time;
@@ -285,13 +284,18 @@ struct isposinfo {
const struct firmware * fw;
/*
- * DMA related sdtuff
+ * DMA related stuff
*/
struct resource * regs;
struct resource * regs2;
bus_dma_tag_t dmat;
- bus_dma_tag_t cdmat;
- bus_dmamap_t cdmap;
+ bus_dma_tag_t reqdmat;
+ bus_dma_tag_t respdmat;
+ bus_dma_tag_t atiodmat;
+ bus_dma_tag_t scdmat;
+ bus_dmamap_t reqmap;
+ bus_dmamap_t respmap;
+ bus_dmamap_t atiomap;
/*
* Command and transaction related related stuff
@@ -406,62 +410,60 @@ struct isposinfo {
#define MEMORYBARRIER(isp, type, offset, size, chan) \
switch (type) { \
+case SYNC_REQUEST: \
+ bus_dmamap_sync(isp->isp_osinfo.reqdmat, \
+ isp->isp_osinfo.reqmap, BUS_DMASYNC_PREWRITE); \
+ break; \
+case SYNC_RESULT: \
+ bus_dmamap_sync(isp->isp_osinfo.respdmat, \
+ isp->isp_osinfo.respmap, BUS_DMASYNC_POSTREAD); \
+ break; \
case SYNC_SFORDEV: \
{ \
struct isp_fc *fc = ISP_FC_PC(isp, chan); \
- bus_dmamap_sync(fc->tdmat, fc->tdmap, \
+ bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); \
break; \
} \
-case SYNC_REQUEST: \
- bus_dmamap_sync(isp->isp_osinfo.cdmat, \
- isp->isp_osinfo.cdmap, \
- BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); \
- break; \
case SYNC_SFORCPU: \
{ \
struct isp_fc *fc = ISP_FC_PC(isp, chan); \
- bus_dmamap_sync(fc->tdmat, fc->tdmap, \
+ bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \
BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); \
break; \
} \
-case SYNC_RESULT: \
- bus_dmamap_sync(isp->isp_osinfo.cdmat, \
- isp->isp_osinfo.cdmap, \
- BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); \
- break; \
case SYNC_REG: \
bus_barrier(isp->isp_osinfo.regs, offset, size, \
BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE); \
break; \
+case SYNC_ATIOQ: \
+ bus_dmamap_sync(isp->isp_osinfo.atiodmat, \
+ isp->isp_osinfo.atiomap, BUS_DMASYNC_POSTREAD); \
+ break; \
default: \
break; \
}
#define MEMORYBARRIERW(isp, type, offset, size, chan) \
switch (type) { \
+case SYNC_REQUEST: \
+ bus_dmamap_sync(isp->isp_osinfo.reqdmat, \
+ isp->isp_osinfo.reqmap, BUS_DMASYNC_PREWRITE); \
+ break; \
case SYNC_SFORDEV: \
{ \
struct isp_fc *fc = ISP_FC_PC(isp, chan); \
- bus_dmamap_sync(fc->tdmat, fc->tdmap, \
+ bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \
BUS_DMASYNC_PREWRITE); \
break; \
} \
-case SYNC_REQUEST: \
- bus_dmamap_sync(isp->isp_osinfo.cdmat, \
- isp->isp_osinfo.cdmap, BUS_DMASYNC_PREWRITE); \
- break; \
case SYNC_SFORCPU: \
{ \
struct isp_fc *fc = ISP_FC_PC(isp, chan); \
- bus_dmamap_sync(fc->tdmat, fc->tdmap, \
+ bus_dmamap_sync(isp->isp_osinfo.scdmat, fc->scmap, \
BUS_DMASYNC_POSTWRITE); \
break; \
} \
-case SYNC_RESULT: \
- bus_dmamap_sync(isp->isp_osinfo.cdmat, \
- isp->isp_osinfo.cdmap, BUS_DMASYNC_POSTWRITE); \
- break; \
case SYNC_REG: \
bus_barrier(isp->isp_osinfo.regs, offset, size, \
BUS_SPACE_BARRIER_WRITE); \
OpenPOWER on IntegriCloud