diff options
author | Moore, Eric <Eric.Moore@lsil.com> | 2006-01-16 18:53:06 -0700 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2006-01-31 14:39:51 -0600 |
commit | d8e925dc8850c01e36e6b2acb08ed0fbdc38b9f1 (patch) | |
tree | 08be691a42c50f2b815f35f954ec85eab1ea5df4 /drivers/message | |
parent | eb221849540b7f4165c58b6c79d98b97ac902fdb (diff) | |
download | kernel_samsung_smdk4412-d8e925dc8850c01e36e6b2acb08ed0fbdc38b9f1.zip kernel_samsung_smdk4412-d8e925dc8850c01e36e6b2acb08ed0fbdc38b9f1.tar.gz kernel_samsung_smdk4412-d8e925dc8850c01e36e6b2acb08ed0fbdc38b9f1.tar.bz2 |
[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')
-rw-r--r-- | drivers/message/fusion/mptbase.c | 8 | ||||
-rw-r--r-- | drivers/message/fusion/mptspi.c | 10 |
2 files changed, 17 insertions, 1 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index d890b2b..2806662 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c @@ -4598,6 +4598,14 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum) SCSIPortPage2_t *pPP2 = (SCSIPortPage2_t *) pbuf; 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 * (reformat into a 32bit quantity) */ diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c index 7dce292..f148dfa 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) 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); return 0; @@ -445,7 +453,7 @@ static void __exit mptspi_exit(void) { pci_unregister_driver(&mptspi_driver); - + mpt_reset_deregister(mptspiDoneCtx); dprintk((KERN_INFO MYNAM ": Deregistered for IOC reset notifications\n")); |