aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion
diff options
context:
space:
mode:
authorMoore, Eric <Eric.Moore@lsil.com>2006-01-16 20:53:06 -0500
committerJames Bottomley <jejb@mulgrave.(none)>2006-01-31 15:39:51 -0500
commitd8e925dc8850c01e36e6b2acb08ed0fbdc38b9f1 (patch)
tree08be691a42c50f2b815f35f954ec85eab1ea5df4 /drivers/message/fusion
parenteb221849540b7f4165c58b6c79d98b97ac902fdb (diff)
[SCSI] fusion: spi bus reset when driver loads
This patch is for spi. This issues bus reset when driver loads. Handling cases when initator has negotiated for packetized, and target negotiated for non-packetized; effectly this bus reset is getting both target and initiator on the same sheet of music. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion')
-rw-r--r--drivers/message/fusion/mptbase.c8
-rw-r--r--drivers/message/fusion/mptspi.c10
2 files changed, 17 insertions, 1 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index d890b2b8a93e..2806662a9cf9 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -4598,6 +4598,14 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
4598 SCSIPortPage2_t *pPP2 = (SCSIPortPage2_t *) pbuf; 4598 SCSIPortPage2_t *pPP2 = (SCSIPortPage2_t *) pbuf;
4599 MpiDeviceInfo_t *pdevice = NULL; 4599 MpiDeviceInfo_t *pdevice = NULL;
4600 4600
4601 /*
4602 * Save "Set to Avoid SCSI Bus Resets" flag
4603 */
4604 ioc->spi_data.bus_reset =
4605 (le32_to_cpu(pPP2->PortFlags) &
4606 MPI_SCSIPORTPAGE2_PORT_FLAGS_AVOID_SCSI_RESET) ?
4607 0 : 1 ;
4608
4601 /* Save the Port Page 2 data 4609 /* Save the Port Page 2 data
4602 * (reformat into a 32bit quantity) 4610 * (reformat into a 32bit quantity)
4603 */ 4611 */
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index 7dce29277cb7..f148dfa39117 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -384,6 +384,14 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
384 goto out_mptspi_probe; 384 goto out_mptspi_probe;
385 } 385 }
386 386
387 /*
388 * issue internal bus reset
389 */
390 if (ioc->spi_data.bus_reset)
391 mptscsih_TMHandler(hd,
392 MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS,
393 0, 0, 0, 0, 5);
394
387 scsi_scan_host(sh); 395 scsi_scan_host(sh);
388 return 0; 396 return 0;
389 397
@@ -445,7 +453,7 @@ static void __exit
445mptspi_exit(void) 453mptspi_exit(void)
446{ 454{
447 pci_unregister_driver(&mptspi_driver); 455 pci_unregister_driver(&mptspi_driver);
448 456
449 mpt_reset_deregister(mptspiDoneCtx); 457 mpt_reset_deregister(mptspiDoneCtx);
450 dprintk((KERN_INFO MYNAM 458 dprintk((KERN_INFO MYNAM
451 ": Deregistered for IOC reset notifications\n")); 459 ": Deregistered for IOC reset notifications\n"));