svn commit: r244023 - in projects/physbio/sys: arm/arm cam/scsi dev/ahb dev/amr dev/ata dev/firewire kern mips/mips powerpc/powerpc sys
Jeff Roberson
jeff at FreeBSD.org
Sat Dec 8 09:14:22 UTC 2012
Author: jeff
Date: Sat Dec 8 09:14:19 2012
New Revision: 244023
URL: http://svnweb.freebsd.org/changeset/base/244023
Log:
- Correct minor compile errors from cam and busdma work revealed by
make universe.
Sponsored by: EMC / Isilon Storage Division
Modified:
projects/physbio/sys/arm/arm/busdma_machdep.c
projects/physbio/sys/cam/scsi/scsi_target.c
projects/physbio/sys/dev/ahb/ahb.c
projects/physbio/sys/dev/amr/amr_cam.c
projects/physbio/sys/dev/ata/ata-dma.c
projects/physbio/sys/dev/ata/atapi-cam.c
projects/physbio/sys/dev/firewire/sbp.c
projects/physbio/sys/kern/subr_busdma.c
projects/physbio/sys/mips/mips/busdma_machdep.c
projects/physbio/sys/powerpc/powerpc/busdma_machdep.c
projects/physbio/sys/sys/bus_dma.h
Modified: projects/physbio/sys/arm/arm/busdma_machdep.c
==============================================================================
--- projects/physbio/sys/arm/arm/busdma_machdep.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/arm/arm/busdma_machdep.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -974,51 +974,50 @@ _bus_dmamap_unload(bus_dma_tag_t dmat, b
}
static void
-bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op)
+bus_dmamap_sync_buf(vm_offset_t buf, int len, bus_dmasync_op_t op)
{
char _tmp_cl[arm_dcache_align], _tmp_clend[arm_dcache_align];
register_t s;
int partial;
if ((op & BUS_DMASYNC_PREWRITE) && !(op & BUS_DMASYNC_PREREAD)) {
- cpu_dcache_wb_range((vm_offset_t)buf, len);
- cpu_l2cache_wb_range((vm_offset_t)buf, len);
+ cpu_dcache_wb_range(buf, len);
+ cpu_l2cache_wb_range(buf, len);
}
- partial = (((vm_offset_t)buf) | len) & arm_dcache_align_mask;
+ partial = (buf | len) & arm_dcache_align_mask;
if (op & BUS_DMASYNC_PREREAD) {
if (!(op & BUS_DMASYNC_PREWRITE) && !partial) {
- cpu_dcache_inv_range((vm_offset_t)buf, len);
- cpu_l2cache_inv_range((vm_offset_t)buf, len);
+ cpu_dcache_inv_range(buf, len);
+ cpu_l2cache_inv_range(buf, len);
} else {
- cpu_dcache_wbinv_range((vm_offset_t)buf, len);
- cpu_l2cache_wbinv_range((vm_offset_t)buf, len);
+ cpu_dcache_wbinv_range(buf, len);
+ cpu_l2cache_wbinv_range(buf, len);
}
}
if (op & BUS_DMASYNC_POSTREAD) {
if (partial) {
s = intr_disable();
- if ((vm_offset_t)buf & arm_dcache_align_mask)
- memcpy(_tmp_cl, (void *)((vm_offset_t)buf &
+ if (buf & arm_dcache_align_mask)
+ memcpy(_tmp_cl, (void *)(buf &
~arm_dcache_align_mask),
- (vm_offset_t)buf & arm_dcache_align_mask);
- if (((vm_offset_t)buf + len) & arm_dcache_align_mask)
+ buf & arm_dcache_align_mask);
+ if ((buf + len) & arm_dcache_align_mask)
memcpy(_tmp_clend,
- (void *)((vm_offset_t)buf + len),
- arm_dcache_align - (((vm_offset_t)(buf) +
- len) & arm_dcache_align_mask));
+ (void *)(buf + len),
+ arm_dcache_align -
+ ((buf + len) & arm_dcache_align_mask));
}
- cpu_dcache_inv_range((vm_offset_t)buf, len);
- cpu_l2cache_inv_range((vm_offset_t)buf, len);
+ cpu_dcache_inv_range(buf, len);
+ cpu_l2cache_inv_range(buf, len);
if (partial) {
- if ((vm_offset_t)buf & arm_dcache_align_mask)
- memcpy((void *)((vm_offset_t)buf &
+ if (buf & arm_dcache_align_mask)
+ memcpy((void *)(buf &
~arm_dcache_align_mask), _tmp_cl,
- (vm_offset_t)buf & arm_dcache_align_mask);
- if (((vm_offset_t)buf + len) & arm_dcache_align_mask)
- memcpy((void *)((vm_offset_t)buf + len),
+ buf & arm_dcache_align_mask);
+ if ((buf + len) & arm_dcache_align_mask)
+ memcpy((void *)(buf + len),
_tmp_clend, arm_dcache_align -
- (((vm_offset_t)(buf) + len) &
- arm_dcache_align_mask));
+ ((buf + len) & arm_dcache_align_mask));
intr_restore(s);
}
}
Modified: projects/physbio/sys/cam/scsi/scsi_target.c
==============================================================================
--- projects/physbio/sys/cam/scsi/scsi_target.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/cam/scsi/scsi_target.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -737,7 +737,7 @@ targsendccb(struct targ_softc *softc, un
* without data are a reasonably common occurance (e.g. test unit
* ready), it will save a few cycles if we check for it here.
*/
- if (((ccb_h->flags & CAM_DATA_PHYS) == 0)
+ if (((ccb_h->flags & CAM_DATA_ISPHYS) == 0)
&& (((ccb_h->func_code == XPT_CONT_TARGET_IO)
&& ((ccb_h->flags & CAM_DIR_MASK) != CAM_DIR_NONE))
|| (ccb_h->func_code == XPT_DEV_MATCH))) {
Modified: projects/physbio/sys/dev/ahb/ahb.c
==============================================================================
--- projects/physbio/sys/dev/ahb/ahb.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/dev/ahb/ahb.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -1006,6 +1006,7 @@ ahbaction(struct cam_sim *sim, union ccb
{
struct ecb *ecb;
struct hardware_ecb *hecb;
+ int error;
/*
* get an ecb to use.
Modified: projects/physbio/sys/dev/amr/amr_cam.c
==============================================================================
--- projects/physbio/sys/dev/amr/amr_cam.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/dev/amr/amr_cam.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -274,12 +274,9 @@ amr_cam_action(struct cam_sim *sim, unio
* address
*/
if ((ccbh->flags & CAM_DIR_MASK) != CAM_DIR_NONE) {
- if (ccbh->flags & CAM_DATA_PHYS)
+ if ((ccbh->flags & CAM_DATA_MASK) != CAM_DATA_VADDR)
/* we can't map it */
ccbh->status = CAM_REQ_INVALID;
- if (ccbh->flags & CAM_SCATTER_VALID)
- /* we want to do the s/g setup */
- ccbh->status = CAM_REQ_INVALID;
}
/*
Modified: projects/physbio/sys/dev/ata/ata-dma.c
==============================================================================
--- projects/physbio/sys/dev/ata/ata-dma.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/dev/ata/ata-dma.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -304,11 +304,13 @@ ata_dmaload(struct ata_request *request,
else
dspa.dmatab = request->dma->sg;
+#ifdef ATA_CAM
if (request->ccb)
error = bus_dmamap_load_ccb(request->dma->data_tag,
request->dma->data_map, request->ccb,
ch->dma.setprd, &dspa, BUS_DMA_NOWAIT);
else
+#endif
error = bus_dmamap_load(request->dma->data_tag, request->dma->data_map,
request->data, request->bytecount,
ch->dma.setprd, &dspa, BUS_DMA_NOWAIT);
Modified: projects/physbio/sys/dev/ata/atapi-cam.c
==============================================================================
--- projects/physbio/sys/dev/ata/atapi-cam.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/dev/ata/atapi-cam.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -514,12 +514,6 @@ atapi_action(struct cam_sim *sim, union
("CAM CCB too long for ATAPI"));
goto action_invalid;
}
- if ((ccb_h->flags & CAM_SCATTER_VALID)) {
- /* scatter-gather not supported */
- xpt_print_path(ccb_h->path);
- printf("ATAPI/CAM does not support scatter-gather yet!\n");
- goto action_invalid;
- }
switch (ccb_h->flags & CAM_DIR_MASK) {
case CAM_DIR_IN:
Modified: projects/physbio/sys/dev/firewire/sbp.c
==============================================================================
--- projects/physbio/sys/dev/firewire/sbp.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/dev/firewire/sbp.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -2478,11 +2478,6 @@ END_DEBUG
ocb->orb[4] |= htonl(ORB_CMD_IN);
}
- if (csio->ccb_h.flags & CAM_SCATTER_VALID)
- printf("sbp: CAM_SCATTER_VALID\n");
- if (csio->ccb_h.flags & CAM_DATA_PHYS)
- printf("sbp: CAM_DATA_PHYS\n");
-
if (csio->ccb_h.flags & CAM_CDB_POINTER)
cdb = (void *)csio->cdb_io.cdb_ptr;
else
Modified: projects/physbio/sys/kern/subr_busdma.c
==============================================================================
--- projects/physbio/sys/kern/subr_busdma.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/kern/subr_busdma.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -257,7 +257,7 @@ bus_dmamap_load_ccb(bus_dma_tag_t dmat,
segs = (struct bus_dma_segment *)data_ptr;
nsegs = -1;
error = 0;
- for (i = 0; i < csio->sglist_cnt && error == 0; i++) {
+ for (i = 0; i < sglist_cnt && error == 0; i++) {
error = _bus_dmamap_load_buffer(dmat, map,
(void *)segs[i].ds_addr, segs[i].ds_len,
kernel_pmap, flags, NULL, &nsegs);
Modified: projects/physbio/sys/mips/mips/busdma_machdep.c
==============================================================================
--- projects/physbio/sys/mips/mips/busdma_machdep.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/mips/mips/busdma_machdep.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -606,7 +606,7 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, voi
dmat->map_count++;
*mapp = newmap;
newmap->dmat = dmat;
- nwemap->sync_count = 0;
+ newmap->sync_count = 0;
/*
* If all the memory is coherent with DMA then we don't need to
@@ -916,7 +916,7 @@ _bus_dmamap_unload(bus_dma_tag_t dmat, b
}
static void
-bus_dmamap_sync_buf(void *buf, int len, bus_dmasync_op_t op)
+bus_dmamap_sync_buf(vm_offset_t buf, int len, bus_dmasync_op_t op)
{
char tmp_cl[mips_pdcache_linesize], tmp_clend[mips_pdcache_linesize];
vm_offset_t buf_cl, buf_clend;
@@ -930,9 +930,9 @@ bus_dmamap_sync_buf(void *buf, int len,
* prevent a data loss we save these chunks in temporary buffer
* before invalidation and restore them afer it
*/
- buf_cl = (vm_offset_t)buf & ~cache_linesize_mask;
- size_cl = (vm_offset_t)buf & cache_linesize_mask;
- buf_clend = (vm_offset_t)buf + len;
+ buf_cl = buf & ~cache_linesize_mask;
+ size_cl = buf & cache_linesize_mask;
+ buf_clend = buf + len;
size_clend = (mips_pdcache_linesize -
(buf_clend & cache_linesize_mask)) & cache_linesize_mask;
@@ -947,7 +947,7 @@ bus_dmamap_sync_buf(void *buf, int len,
memcpy (tmp_cl, (void*)buf_cl, size_cl);
if (size_clend)
memcpy (tmp_clend, (void*)buf_clend, size_clend);
- mips_dcache_inv_range((vm_offset_t)buf, len);
+ mips_dcache_inv_range(buf, len);
/*
* Restore them
*/
@@ -962,15 +962,14 @@ bus_dmamap_sync_buf(void *buf, int len,
* necessary.
*/
if (size_cl)
- mips_dcache_wbinv_range((vm_offset_t)buf_cl, size_cl);
+ mips_dcache_wbinv_range(buf_cl, size_cl);
if (size_clend && (size_cl == 0 ||
buf_clend - buf_cl > mips_pdcache_linesize))
- mips_dcache_wbinv_range((vm_offset_t)buf_clend,
- size_clend);
+ mips_dcache_wbinv_range(buf_clend, size_clend);
break;
case BUS_DMASYNC_PREREAD|BUS_DMASYNC_PREWRITE:
- mips_dcache_wbinv_range((vm_offset_t)buf_cl, len);
+ mips_dcache_wbinv_range(buf_cl, len);
break;
case BUS_DMASYNC_PREREAD:
@@ -981,7 +980,7 @@ bus_dmamap_sync_buf(void *buf, int len,
memcpy (tmp_cl, (void *)buf_cl, size_cl);
if (size_clend)
memcpy (tmp_clend, (void *)buf_clend, size_clend);
- mips_dcache_inv_range((vm_offset_t)buf, len);
+ mips_dcache_inv_range(buf, len);
/*
* Restore them
*/
@@ -996,15 +995,14 @@ bus_dmamap_sync_buf(void *buf, int len,
* necessary.
*/
if (size_cl)
- mips_dcache_wbinv_range((vm_offset_t)buf_cl, size_cl);
+ mips_dcache_wbinv_range(buf_cl, size_cl);
if (size_clend && (size_cl == 0 ||
buf_clend - buf_cl > mips_pdcache_linesize))
- mips_dcache_wbinv_range((vm_offset_t)buf_clend,
- size_clend);
+ mips_dcache_wbinv_range(buf_clend, size_clend);
break;
case BUS_DMASYNC_PREWRITE:
- mips_dcache_wb_range((vm_offset_t)buf, len);
+ mips_dcache_wb_range(buf, len);
break;
}
}
Modified: projects/physbio/sys/powerpc/powerpc/busdma_machdep.c
==============================================================================
--- projects/physbio/sys/powerpc/powerpc/busdma_machdep.c Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/powerpc/powerpc/busdma_machdep.c Sat Dec 8 09:14:19 2012 (r244023)
@@ -735,9 +735,9 @@ _bus_dmamap_complete(bus_dma_tag_t dmat,
dmat->boundary, dmat->iommu_cookie);
if (error)
- (*callback)(callback_arg, dmat->segments, 0, error);
+ (*callback)(callback_arg, map->segments, 0, error);
else
- (*callback)(callback_arg, dmat->segments, nsegs, 0);
+ (*callback)(callback_arg, map->segments, nsegs, 0);
}
void
@@ -753,9 +753,9 @@ _bus_dmamap_complete2(bus_dma_tag_t dmat
dmat->boundary, dmat->iommu_cookie);
if (error)
- (*callback)(callback_arg, dmat->segments, 0, 0, error);
+ (*callback)(callback_arg, map->segments, 0, 0, error);
else
- (*callback)(callback_arg, dmat->segments, nsegs, len, error);
+ (*callback)(callback_arg, map->segments, nsegs, len, error);
}
void
Modified: projects/physbio/sys/sys/bus_dma.h
==============================================================================
--- projects/physbio/sys/sys/bus_dma.h Sat Dec 8 08:35:49 2012 (r244022)
+++ projects/physbio/sys/sys/bus_dma.h Sat Dec 8 09:14:19 2012 (r244023)
@@ -110,6 +110,7 @@
#define BUS_DMA_KEEP_PG_OFFSET 0x400
/* Forwards needed by prototypes below. */
+struct pmap;
struct mbuf;
struct uio;
union ccb;
@@ -296,7 +297,6 @@ void __bus_dmamap_mayblock(bus_dma_tag_t
callback_arg, flags); \
} while (0);
-struct pmap;
int _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map,
void *buf, bus_size_t buflen, struct pmap *pmap,
int flags, bus_dma_segment_t *segs, int *segp);
More information about the svn-src-projects
mailing list