blacklight: remove redundant spi driver bus initialization
[cascardo/linux.git] / drivers / firewire / sbp2.c
index b7e65d7..1162d6b 100644 (file)
@@ -207,9 +207,8 @@ static const struct device *lu_dev(const struct sbp2_logical_unit *lu)
 #define SBP2_MAX_CDB_SIZE              16
 
 /*
- * The default maximum s/g segment size of a FireWire controller is
- * usually 0x10000, but SBP-2 only allows 0xffff. Since buffers have to
- * be quadlet-aligned, we set the length limit to 0xffff & ~3.
+ * The maximum SBP-2 data buffer size is 0xffff.  We quadlet-align this
+ * for compatibility with earlier versions of this driver.
  */
 #define SBP2_MAX_SEG_SIZE              0xfffc
 
@@ -1163,7 +1162,8 @@ static int sbp2_probe(struct device *dev)
 
        shost->max_cmd_len = SBP2_MAX_CDB_SIZE;
 
-       if (scsi_add_host(shost, &unit->device) < 0)
+       if (scsi_add_host_with_dma(shost, &unit->device,
+                                  device->card->device) < 0)
                goto fail_shost_put;
 
        /* implicit directory ID */
@@ -1295,10 +1295,7 @@ static struct fw_driver sbp2_driver = {
 static void sbp2_unmap_scatterlist(struct device *card_device,
                                   struct sbp2_command_orb *orb)
 {
-       if (scsi_sg_count(orb->cmd))
-               dma_unmap_sg(card_device, scsi_sglist(orb->cmd),
-                            scsi_sg_count(orb->cmd),
-                            orb->cmd->sc_data_direction);
+       scsi_dma_unmap(orb->cmd);
 
        if (orb->request.misc & cpu_to_be32(COMMAND_ORB_PAGE_TABLE_PRESENT))
                dma_unmap_single(card_device, orb->page_table_bus,
@@ -1404,9 +1401,8 @@ static int sbp2_map_scatterlist(struct sbp2_command_orb *orb,
        struct scatterlist *sg = scsi_sglist(orb->cmd);
        int i, n;
 
-       n = dma_map_sg(device->card->device, sg, scsi_sg_count(orb->cmd),
-                      orb->cmd->sc_data_direction);
-       if (n == 0)
+       n = scsi_dma_map(orb->cmd);
+       if (n <= 0)
                goto fail;
 
        /*
@@ -1452,8 +1448,7 @@ static int sbp2_map_scatterlist(struct sbp2_command_orb *orb,
        return 0;
 
  fail_page_table:
-       dma_unmap_sg(device->card->device, scsi_sglist(orb->cmd),
-                    scsi_sg_count(orb->cmd), orb->cmd->sc_data_direction);
+       scsi_dma_unmap(orb->cmd);
  fail:
        return -ENOMEM;
 }
@@ -1534,7 +1529,10 @@ static int sbp2_scsi_slave_alloc(struct scsi_device *sdev)
 
        sdev->allow_restart = 1;
 
-       /* SBP-2 requires quadlet alignment of the data buffers. */
+       /*
+        * SBP-2 does not require any alignment, but we set it anyway
+        * for compatibility with earlier versions of this driver.
+        */
        blk_queue_update_dma_alignment(sdev->request_queue, 4 - 1);
 
        if (lu->tgt->workarounds & SBP2_WORKAROUND_INQUIRY_36)
@@ -1568,8 +1566,6 @@ static int sbp2_scsi_slave_configure(struct scsi_device *sdev)
        if (lu->tgt->workarounds & SBP2_WORKAROUND_128K_MAX_TRANS)
                blk_queue_max_hw_sectors(sdev->request_queue, 128 * 1024 / 512);
 
-       blk_queue_max_segment_size(sdev->request_queue, SBP2_MAX_SEG_SIZE);
-
        return 0;
 }