aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptspi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message/fusion/mptspi.c')
-rw-r--r--drivers/message/fusion/mptspi.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index e44365193fdf..1abaa5d01ae3 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -210,6 +210,10 @@ mptspi_setTargetNegoParms(MPT_SCSI_HOST *hd, VirtTarget *target,
210 target->maxOffset = offset; 210 target->maxOffset = offset;
211 target->maxWidth = width; 211 target->maxWidth = width;
212 212
213 spi_min_period(scsi_target(sdev)) = factor;
214 spi_max_offset(scsi_target(sdev)) = offset;
215 spi_max_width(scsi_target(sdev)) = width;
216
213 target->tflags |= MPT_TARGET_FLAGS_VALID_NEGO; 217 target->tflags |= MPT_TARGET_FLAGS_VALID_NEGO;
214 218
215 /* Disable unused features. 219 /* Disable unused features.
@@ -558,6 +562,7 @@ static int mptspi_read_spi_device_pg0(struct scsi_target *starget,
558 cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT; 562 cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
559 cfg.dir = 0; 563 cfg.dir = 0;
560 cfg.pageAddr = starget->id; 564 cfg.pageAddr = starget->id;
565 cfg.timeout = 60;
561 566
562 if (mpt_config(ioc, &cfg)) { 567 if (mpt_config(ioc, &cfg)) {
563 starget_printk(KERN_ERR, starget, MYIOC_s_FMT "mpt_config failed\n", ioc->name); 568 starget_printk(KERN_ERR, starget, MYIOC_s_FMT "mpt_config failed\n", ioc->name);
@@ -1152,6 +1157,9 @@ mptspi_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
1152 u8 event = le32_to_cpu(pEvReply->Event) & 0xFF; 1157 u8 event = le32_to_cpu(pEvReply->Event) & 0xFF;
1153 struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh); 1158 struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
1154 1159
1160 if (ioc->bus_type != SPI)
1161 return 0;
1162
1155 if (hd && event == MPI_EVENT_INTEGRATED_RAID) { 1163 if (hd && event == MPI_EVENT_INTEGRATED_RAID) {
1156 int reason 1164 int reason
1157 = (le32_to_cpu(pEvReply->Data[0]) & 0x00FF0000) >> 16; 1165 = (le32_to_cpu(pEvReply->Data[0]) & 0x00FF0000) >> 16;
@@ -1283,6 +1291,8 @@ mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
1283 int rc; 1291 int rc;
1284 1292
1285 rc = mptscsih_ioc_reset(ioc, reset_phase); 1293 rc = mptscsih_ioc_reset(ioc, reset_phase);
1294 if ((ioc->bus_type != SPI) || (!rc))
1295 return rc;
1286 1296
1287 /* only try to do a renegotiation if we're properly set up 1297 /* only try to do a renegotiation if we're properly set up
1288 * if we get an ioc fault on bringup, ioc->sh will be NULL */ 1298 * if we get an ioc fault on bringup, ioc->sh will be NULL */