Commit 4acc3931 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] mpt fusion updates for scsi changes

parent 164b7e34
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/module.h> #include <linux/module.h>
#endif #endif
#include <linux/version.h>
#include <linux/netdevice.h> #include <linux/netdevice.h>
#include <linux/errno.h> #include <linux/errno.h>
// #include <linux/etherdevice.h> // #include <linux/etherdevice.h>
......
...@@ -1295,10 +1295,6 @@ mptscsih_detect(Scsi_Host_Template *tpnt) ...@@ -1295,10 +1295,6 @@ mptscsih_detect(Scsi_Host_Template *tpnt)
#endif #endif
sh->this_id = this->pfacts[portnum].PortSCSIID; sh->this_id = this->pfacts[portnum].PortSCSIID;
/* OS entry to allow host drivers to force
* a queue depth on a per device basis.
*/
sh->select_queue_depths = mptscsih_select_queue_depths;
/* Required entry. /* Required entry.
*/ */
sh->unique_id = this->id; sh->unique_id = this->id;
...@@ -3668,23 +3664,15 @@ mptscsih_bios_param(Disk * disk, kdev_t dev, int *ip) ...@@ -3668,23 +3664,15 @@ mptscsih_bios_param(Disk * disk, kdev_t dev, int *ip)
* Called once per device the bus scan. Use it to force the queue_depth * Called once per device the bus scan. Use it to force the queue_depth
* member to 1 if a device does not support Q tags. * member to 1 if a device does not support Q tags.
*/ */
void int
mptscsih_select_queue_depths(struct Scsi_Host *sh, Scsi_Device *sdList) mptscsih_slave_attach(Scsi_Device *device)
{ {
struct scsi_device *device; struct Scsi_Host *host = device->host;
VirtDevice *pTarget; VirtDevice *pTarget;
MPT_SCSI_HOST *hd; MPT_SCSI_HOST *hd;
int ii, max; int ii, max;
for (device = sdList; device != NULL; device = device->next) { hd = (MPT_SCSI_HOST *)host->hostdata;
if (device->host != sh)
continue;
hd = (MPT_SCSI_HOST *) sh->hostdata;
if (hd == NULL)
continue;
if (hd->Targets != NULL) { if (hd->Targets != NULL) {
if (hd->is_spi) if (hd->is_spi)
max = MPT_MAX_SCSI_DEVICES; max = MPT_MAX_SCSI_DEVICES;
...@@ -3694,11 +3682,11 @@ mptscsih_select_queue_depths(struct Scsi_Host *sh, Scsi_Device *sdList) ...@@ -3694,11 +3682,11 @@ mptscsih_select_queue_depths(struct Scsi_Host *sh, Scsi_Device *sdList)
for (ii=0; ii < max; ii++) { for (ii=0; ii < max; ii++) {
pTarget = hd->Targets[ii]; pTarget = hd->Targets[ii];
if (pTarget && !(pTarget->tflags & MPT_TARGET_FLAGS_Q_YES)) { if (pTarget && !(pTarget->tflags & MPT_TARGET_FLAGS_Q_YES)) {
device->queue_depth = 1; scsi_adjust_queue_depth(device, 0, 1);
}
} }
} }
} }
return 0;
} }
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
......
...@@ -206,11 +206,11 @@ struct mptscsih_driver_setup ...@@ -206,11 +206,11 @@ struct mptscsih_driver_setup
#define x_scsi_dev_reset mptscsih_dev_reset #define x_scsi_dev_reset mptscsih_dev_reset
#define x_scsi_host_reset mptscsih_host_reset #define x_scsi_host_reset mptscsih_host_reset
#define x_scsi_bios_param mptscsih_bios_param #define x_scsi_bios_param mptscsih_bios_param
#define x_scsi_select_queue_depths mptscsih_select_queue_depths
#define x_scsi_taskmgmt_bh mptscsih_taskmgmt_bh #define x_scsi_taskmgmt_bh mptscsih_taskmgmt_bh
#define x_scsi_old_abort mptscsih_old_abort #define x_scsi_old_abort mptscsih_old_abort
#define x_scsi_old_reset mptscsih_old_reset #define x_scsi_old_reset mptscsih_old_reset
#define x_scsi_slave_attach mptscsih_slave_attach
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
/* /*
...@@ -234,8 +234,8 @@ extern int x_scsi_bios_param(Disk *, struct block_device *, int *); ...@@ -234,8 +234,8 @@ extern int x_scsi_bios_param(Disk *, struct block_device *, int *);
#else #else
extern int x_scsi_bios_param(Disk *, kdev_t, int *); extern int x_scsi_bios_param(Disk *, kdev_t, int *);
#endif #endif
extern void x_scsi_select_queue_depths(struct Scsi_Host *, Scsi_Device *);
extern void x_scsi_taskmgmt_bh(void *); extern void x_scsi_taskmgmt_bh(void *);
extern int x_scsi_slave_attach(Scsi_Device *);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,0) #if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,0)
#define PROC_SCSI_DECL #define PROC_SCSI_DECL
...@@ -248,53 +248,45 @@ extern void x_scsi_taskmgmt_bh(void *); ...@@ -248,53 +248,45 @@ extern void x_scsi_taskmgmt_bh(void *);
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,1) #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,1)
#define MPT_SCSIHOST { \ #define MPT_SCSIHOST { \
next: NULL, \
PROC_SCSI_DECL \ PROC_SCSI_DECL \
name: "MPT SCSI Host", \ .name = "MPT SCSI Host", \
detect: x_scsi_detect, \ .detect = x_scsi_detect, \
release: x_scsi_release, \ .release = x_scsi_release, \
info: x_scsi_info, \ .info = x_scsi_info, \
command: NULL, \ .queuecommand = x_scsi_queuecommand, \
queuecommand: x_scsi_queuecommand, \ .slave_attach = x_scsi_slave_attach, \
eh_strategy_handler: NULL, \ .eh_abort_handler = x_scsi_abort, \
eh_abort_handler: x_scsi_abort, \ .eh_device_reset_handler = x_scsi_dev_reset, \
eh_device_reset_handler: x_scsi_dev_reset, \ .eh_bus_reset_handler = x_scsi_bus_reset, \
eh_bus_reset_handler: x_scsi_bus_reset, \ .eh_host_reset_handler = x_scsi_host_reset, \
eh_host_reset_handler: x_scsi_host_reset, \ .bios_param = x_scsi_bios_param, \
bios_param: x_scsi_bios_param, \ .can_queue = MPT_SCSI_CAN_QUEUE, \
can_queue: MPT_SCSI_CAN_QUEUE, \ .this_id = -1, \
this_id: -1, \ .sg_tablesize = MPT_SCSI_SG_DEPTH, \
sg_tablesize: MPT_SCSI_SG_DEPTH, \ .max_sectors = MPT_SCSI_MAX_SECTORS, \
max_sectors: MPT_SCSI_MAX_SECTORS, \ .cmd_per_lun = MPT_SCSI_CMD_PER_LUN, \
cmd_per_lun: MPT_SCSI_CMD_PER_LUN, \ .use_clustering = ENABLE_CLUSTERING, \
unchecked_isa_dma: 0, \
use_clustering: ENABLE_CLUSTERING, \
} }
#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,1) */ #else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,1) */
#define MPT_SCSIHOST { \ #define MPT_SCSIHOST { \
next: NULL, \
PROC_SCSI_DECL \ PROC_SCSI_DECL \
name: "MPT SCSI Host", \ .name = "MPT SCSI Host", \
detect: x_scsi_detect, \ .detect = x_scsi_detect, \
release: x_scsi_release, \ .release = x_scsi_release, \
info: x_scsi_info, \ .info = x_scsi_info, \
command: NULL, \ .queuecommand = x_scsi_queuecommand, \
queuecommand: x_scsi_queuecommand, \ .eh_abort_handler = x_scsi_abort, \
eh_strategy_handler: NULL, \ .eh_device_reset_handler = x_scsi_dev_reset, \
eh_abort_handler: x_scsi_abort, \ .eh_bus_reset_handler = x_scsi_bus_reset, \
eh_device_reset_handler: x_scsi_dev_reset, \ .bios_param = x_scsi_bios_param, \
eh_bus_reset_handler: x_scsi_bus_reset, \ .can_queue = MPT_SCSI_CAN_QUEUE, \
eh_host_reset_handler: NULL, \ .this_id = -1, \
bios_param: x_scsi_bios_param, \ .sg_tablesize = MPT_SCSI_SG_DEPTH, \
can_queue: MPT_SCSI_CAN_QUEUE, \ .cmd_per_lun = MPT_SCSI_CMD_PER_LUN, \
this_id: -1, \ .use_clustering = ENABLE_CLUSTERING, \
sg_tablesize: MPT_SCSI_SG_DEPTH, \ .use_new_eh_code = 1 \
cmd_per_lun: MPT_SCSI_CMD_PER_LUN, \
unchecked_isa_dma: 0, \
use_clustering: ENABLE_CLUSTERING, \
use_new_eh_code: 1 \
} }
#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,1) */ #endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,1) */
...@@ -302,23 +294,20 @@ extern void x_scsi_taskmgmt_bh(void *); ...@@ -302,23 +294,20 @@ extern void x_scsi_taskmgmt_bh(void *);
#else /* MPT_SCSI_USE_NEW_EH */ #else /* MPT_SCSI_USE_NEW_EH */
#define MPT_SCSIHOST { \ #define MPT_SCSIHOST { \
next: NULL, \
PROC_SCSI_DECL \ PROC_SCSI_DECL \
name: "MPT SCSI Host", \ .name = "MPT SCSI Host", \
detect: x_scsi_detect, \ .detect = x_scsi_detect, \
release: x_scsi_release, \ .release = x_scsi_release, \
info: x_scsi_info, \ .info = x_scsi_info, \
command: NULL, \ .queuecommand = x_scsi_queuecommand, \
queuecommand: x_scsi_queuecommand, \ .abort = x_scsi_old_abort, \
abort: x_scsi_old_abort, \ .reset = x_scsi_old_reset, \
reset: x_scsi_old_reset, \ .bios_param = x_scsi_bios_param, \
bios_param: x_scsi_bios_param, \ .can_queue = MPT_SCSI_CAN_QUEUE, \
can_queue: MPT_SCSI_CAN_QUEUE, \ .this_id = -1, \
this_id: -1, \ .sg_tablesize = MPT_SCSI_SG_DEPTH, \
sg_tablesize: MPT_SCSI_SG_DEPTH, \ .cmd_per_lun = MPT_SCSI_CMD_PER_LUN, \
cmd_per_lun: MPT_SCSI_CMD_PER_LUN, \ .use_clustering = ENABLE_CLUSTERING \
unchecked_isa_dma: 0, \
use_clustering: ENABLE_CLUSTERING \
} }
#endif /* MPT_SCSI_USE_NEW_EH */ #endif /* MPT_SCSI_USE_NEW_EH */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment