bt.c (113350) | bt.c (115343) |
---|---|
1/* 2 * Generic driver for the BusLogic MultiMaster SCSI host adapters 3 * Product specific probe and attach routines can be found in: 4 * sys/dev/buslogic/bt_isa.c BT-54X, BT-445 cards 5 * sys/dev/buslogic/bt_mca.c BT-64X, SDC3211B, SDC3211F 6 * sys/dev/buslogic/bt_eisa.c BT-74X, BT-75x cards, SDC3222F 7 * sys/dev/buslogic/bt_pci.c BT-946, BT-948, BT-956, BT-958 cards 8 * --- 16 unchanged lines hidden (view full) --- 25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * | 1/* 2 * Generic driver for the BusLogic MultiMaster SCSI host adapters 3 * Product specific probe and attach routines can be found in: 4 * sys/dev/buslogic/bt_isa.c BT-54X, BT-445 cards 5 * sys/dev/buslogic/bt_mca.c BT-64X, SDC3211B, SDC3211F 6 * sys/dev/buslogic/bt_eisa.c BT-74X, BT-75x cards, SDC3222F 7 * sys/dev/buslogic/bt_pci.c BT-946, BT-948, BT-956, BT-958 cards 8 * --- 16 unchanged lines hidden (view full) --- 25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * |
33 * $FreeBSD: head/sys/dev/buslogic/bt.c 113350 2003-04-10 23:50:06Z mux $ | 33 * $FreeBSD: head/sys/dev/buslogic/bt.c 115343 2003-05-27 04:59:59Z scottl $ |
34 */ 35 36 /* 37 * Special thanks to Leonard N. Zubkoff for writing such a complete and 38 * well documented Mylex/BusLogic MultiMaster driver for Linux. Support 39 * in this driver for the wide range of MultiMaster controllers and 40 * firmware revisions, with their otherwise undocumented quirks, would not 41 * have been possible without his efforts. --- 1424 unchanged lines hidden (view full) --- 1466 btfreeccb(bt, bccb); 1467 xpt_done(ccb); 1468 return; 1469 } 1470 1471 if (nseg != 0) { 1472 bt_sg_t *sg; 1473 bus_dma_segment_t *end_seg; | 34 */ 35 36 /* 37 * Special thanks to Leonard N. Zubkoff for writing such a complete and 38 * well documented Mylex/BusLogic MultiMaster driver for Linux. Support 39 * in this driver for the wide range of MultiMaster controllers and 40 * firmware revisions, with their otherwise undocumented quirks, would not 41 * have been possible without his efforts. --- 1424 unchanged lines hidden (view full) --- 1466 btfreeccb(bt, bccb); 1467 xpt_done(ccb); 1468 return; 1469 } 1470 1471 if (nseg != 0) { 1472 bt_sg_t *sg; 1473 bus_dma_segment_t *end_seg; |
1474 int op; | 1474 bus_dmasync_op_t op; |
1475 1476 end_seg = dm_segs + nseg; 1477 1478 /* Copy the segments into our SG list */ 1479 sg = bccb->sg_list; 1480 while (dm_segs < end_seg) { 1481 sg->len = dm_segs->ds_len; 1482 sg->addr = dm_segs->ds_addr; --- 120 unchanged lines hidden (view full) --- 1603 if ((bccb->flags & BCCB_ACTIVE) == 0) { 1604 device_printf(bt->dev, 1605 "btdone - Attempt to free non-active BCCB %p\n", 1606 (void *)bccb); 1607 return; 1608 } 1609 1610 if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { | 1475 1476 end_seg = dm_segs + nseg; 1477 1478 /* Copy the segments into our SG list */ 1479 sg = bccb->sg_list; 1480 while (dm_segs < end_seg) { 1481 sg->len = dm_segs->ds_len; 1482 sg->addr = dm_segs->ds_addr; --- 120 unchanged lines hidden (view full) --- 1603 if ((bccb->flags & BCCB_ACTIVE) == 0) { 1604 device_printf(bt->dev, 1605 "btdone - Attempt to free non-active BCCB %p\n", 1606 (void *)bccb); 1607 return; 1608 } 1609 1610 if ((ccb->ccb_h.flags & CAM_DIR_MASK) != CAM_DIR_NONE) { |
1611 int op; | 1611 bus_dmasync_op_t op; |
1612 1613 if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) 1614 op = BUS_DMASYNC_POSTREAD; 1615 else 1616 op = BUS_DMASYNC_POSTWRITE; 1617 bus_dmamap_sync(bt->buffer_dmat, bccb->dmamap, op); 1618 bus_dmamap_unload(bt->buffer_dmat, bccb->dmamap); 1619 } --- 856 unchanged lines hidden --- | 1612 1613 if ((ccb->ccb_h.flags & CAM_DIR_MASK) == CAM_DIR_IN) 1614 op = BUS_DMASYNC_POSTREAD; 1615 else 1616 op = BUS_DMASYNC_POSTWRITE; 1617 bus_dmamap_sync(bt->buffer_dmat, bccb->dmamap, op); 1618 bus_dmamap_unload(bt->buffer_dmat, bccb->dmamap); 1619 } --- 856 unchanged lines hidden --- |