Deleted Added
full compact
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 ---