Browse Source

[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>
Moore, Eric 19 years ago
parent
commit
d8e925dc88
2 changed files with 17 additions and 1 deletions
  1. 8 0
      drivers/message/fusion/mptbase.c
  2. 9 1
      drivers/message/fusion/mptspi.c

+ 8 - 0
drivers/message/fusion/mptbase.c

@@ -4598,6 +4598,14 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
 				SCSIPortPage2_t *pPP2 = (SCSIPortPage2_t  *) pbuf;
 				SCSIPortPage2_t *pPP2 = (SCSIPortPage2_t  *) pbuf;
 				MpiDeviceInfo_t	*pdevice = NULL;
 				MpiDeviceInfo_t	*pdevice = NULL;
 
 
+				/*
+				 * Save "Set to Avoid SCSI Bus Resets" flag
+				 */
+				ioc->spi_data.bus_reset =
+				    (le32_to_cpu(pPP2->PortFlags) &
+			        MPI_SCSIPORTPAGE2_PORT_FLAGS_AVOID_SCSI_RESET) ?
+				    0 : 1 ;
+
 				/* Save the Port Page 2 data
 				/* Save the Port Page 2 data
 				 * (reformat into a 32bit quantity)
 				 * (reformat into a 32bit quantity)
 				 */
 				 */

+ 9 - 1
drivers/message/fusion/mptspi.c

@@ -384,6 +384,14 @@ mptspi_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 		goto out_mptspi_probe;
 		goto out_mptspi_probe;
 	}
 	}
 
 
+	/*
+	 * issue internal bus reset
+	 */
+	if (ioc->spi_data.bus_reset)
+		mptscsih_TMHandler(hd,
+		    MPI_SCSITASKMGMT_TASKTYPE_RESET_BUS,
+		    0, 0, 0, 0, 5);
+
 	scsi_scan_host(sh);
 	scsi_scan_host(sh);
 	return 0;
 	return 0;
 
 
@@ -445,7 +453,7 @@ static void __exit
 mptspi_exit(void)
 mptspi_exit(void)
 {
 {
 	pci_unregister_driver(&mptspi_driver);
 	pci_unregister_driver(&mptspi_driver);
-	
+
 	mpt_reset_deregister(mptspiDoneCtx);
 	mpt_reset_deregister(mptspiDoneCtx);
 	dprintk((KERN_INFO MYNAM
 	dprintk((KERN_INFO MYNAM
 	  ": Deregistered for IOC reset notifications\n"));
 	  ": Deregistered for IOC reset notifications\n"));