diff options
Diffstat (limited to 'drivers/scsi/arm/eesox.c')
-rw-r--r-- | drivers/scsi/arm/eesox.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c index 134f040d58e2..6f374af9f45f 100644 --- a/drivers/scsi/arm/eesox.c +++ b/drivers/scsi/arm/eesox.c @@ -29,16 +29,20 @@ #include <linux/interrupt.h> #include <linux/init.h> #include <linux/dma-mapping.h> +#include <linux/pgtable.h> #include <asm/io.h> #include <asm/dma.h> #include <asm/ecard.h> -#include <asm/pgtable.h> -#include "../scsi.h" +#include <scsi/scsi.h> +#include <scsi/scsi_cmnd.h> +#include <scsi/scsi_device.h> +#include <scsi/scsi_eh.h> #include <scsi/scsi_host.h> +#include <scsi/scsi_tcq.h> #include "fas216.h" -#include "scsi.h" +#include "arm_scsi.h" #include <scsi/scsicam.h> @@ -165,12 +169,13 @@ eesoxscsi_dma_setup(struct Scsi_Host *host, struct scsi_pointer *SCp, bufs = copy_SCp_to_sg(&info->sg[0], SCp, NR_SG); - if (direction == DMA_OUT) - map_dir = DMA_TO_DEVICE, + if (direction == DMA_OUT) { + map_dir = DMA_TO_DEVICE; dma_dir = DMA_MODE_WRITE; - else - map_dir = DMA_FROM_DEVICE, + } else { + map_dir = DMA_FROM_DEVICE; dma_dir = DMA_MODE_READ; + } dma_map_sg(dev, info->sg, bufs, map_dir); @@ -479,6 +484,7 @@ static struct scsi_host_template eesox_template = { .eh_bus_reset_handler = fas216_eh_bus_reset, .eh_device_reset_handler = fas216_eh_device_reset, .eh_abort_handler = fas216_eh_abort, + .cmd_size = sizeof(struct fas216_cmd_priv), .can_queue = 1, .this_id = 7, .sg_tablesize = SG_MAX_SEGMENTS, @@ -571,7 +577,7 @@ static int eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id) if (info->info.scsi.dma != NO_DMA) free_dma(info->info.scsi.dma); - free_irq(ec->irq, host); + free_irq(ec->irq, info); out_remove: fas216_remove(host); |