aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/isci/sata.c36
1 files changed, 2 insertions, 34 deletions
diff --git a/drivers/scsi/isci/sata.c b/drivers/scsi/isci/sata.c
index 7a1b58600ca0..794ab7ca9f1a 100644
--- a/drivers/scsi/isci/sata.c
+++ b/drivers/scsi/isci/sata.c
@@ -301,8 +301,8 @@ int isci_task_send_lu_reset_sata(
301 int ret = TMF_RESP_FUNC_FAILED; 301 int ret = TMF_RESP_FUNC_FAILED;
302 unsigned long flags; 302 unsigned long flags;
303 303
304 /* Send the initial SRST to the target */ 304 /* Send the soft reset to the target */
305 #define ISCI_SRST_TIMEOUT_MS 20 /* 20 ms timeout. */ 305 #define ISCI_SRST_TIMEOUT_MS 25000 /* 25 second timeout. */
306 isci_task_build_tmf(&tmf, isci_device, isci_tmf_sata_srst_high, 306 isci_task_build_tmf(&tmf, isci_device, isci_tmf_sata_srst_high,
307 NULL, NULL 307 NULL, NULL
308 ); 308 );
@@ -319,38 +319,6 @@ int isci_task_send_lu_reset_sata(
319 /* Return the failure so that the LUN reset is escalated 319 /* Return the failure so that the LUN reset is escalated
320 * to a target reset. 320 * to a target reset.
321 */ 321 */
322 goto out;
323 } 322 }
324
325 /* Leave SRST high for a bit. */
326 #define ISCI_SRST_ASSERT_DELAY 100 /* usecs */
327 udelay(ISCI_SRST_ASSERT_DELAY);
328
329 /* Deassert SRST. */
330 isci_task_build_tmf(&tmf, isci_device, isci_tmf_sata_srst_low,
331 NULL, NULL
332 );
333 ret = isci_task_execute_tmf(isci_host, &tmf, ISCI_SRST_TIMEOUT_MS);
334
335 if (ret == TMF_RESP_FUNC_COMPLETE)
336 dev_dbg(&isci_host->pdev->dev,
337 "%s: SATA LUN reset passed (%p)\n",
338 __func__,
339 isci_device);
340 else
341 dev_warn(&isci_host->pdev->dev,
342 "%s: Deassert SRST failed (%p)=%x\n",
343 __func__,
344 isci_device,
345 ret);
346
347 out:
348 spin_lock_irqsave(&isci_host->scic_lock, flags);
349
350 /* Resume the device. */
351 scic_sds_remote_device_resume(to_sci_dev(isci_device));
352
353 spin_unlock_irqrestore(&isci_host->scic_lock, flags);
354
355 return ret; 323 return ret;
356} 324}