Skip to content

Commit

Permalink
isci: Fix use of SATA soft reset state machine.
Browse files Browse the repository at this point in the history
The driver SATA LUN reset function incorrectly sent an SRST deassert
FIS, which is unnecessary because the core initiates the entire SATA
soft reset state machine from the assert request.

Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
  • Loading branch information
Jeff Skirvin authored and Dan Williams committed Jul 3, 2011
1 parent ce4f75d commit 26e953b
Showing 1 changed file with 2 additions and 34 deletions.
36 changes: 2 additions & 34 deletions drivers/scsi/isci/sata.c
Original file line number Diff line number Diff line change
Expand Up @@ -301,8 +301,8 @@ int isci_task_send_lu_reset_sata(
int ret = TMF_RESP_FUNC_FAILED;
unsigned long flags;

/* Send the initial SRST to the target */
#define ISCI_SRST_TIMEOUT_MS 20 /* 20 ms timeout. */
/* Send the soft reset to the target */
#define ISCI_SRST_TIMEOUT_MS 25000 /* 25 second timeout. */
isci_task_build_tmf(&tmf, isci_device, isci_tmf_sata_srst_high,
NULL, NULL
);
Expand All @@ -319,38 +319,6 @@ int isci_task_send_lu_reset_sata(
/* Return the failure so that the LUN reset is escalated
* to a target reset.
*/
goto out;
}

/* Leave SRST high for a bit. */
#define ISCI_SRST_ASSERT_DELAY 100 /* usecs */
udelay(ISCI_SRST_ASSERT_DELAY);

/* Deassert SRST. */
isci_task_build_tmf(&tmf, isci_device, isci_tmf_sata_srst_low,
NULL, NULL
);
ret = isci_task_execute_tmf(isci_host, &tmf, ISCI_SRST_TIMEOUT_MS);

if (ret == TMF_RESP_FUNC_COMPLETE)
dev_dbg(&isci_host->pdev->dev,
"%s: SATA LUN reset passed (%p)\n",
__func__,
isci_device);
else
dev_warn(&isci_host->pdev->dev,
"%s: Deassert SRST failed (%p)=%x\n",
__func__,
isci_device,
ret);

out:
spin_lock_irqsave(&isci_host->scic_lock, flags);

/* Resume the device. */
scic_sds_remote_device_resume(to_sci_dev(isci_device));

spin_unlock_irqrestore(&isci_host->scic_lock, flags);

return ret;
}

0 comments on commit 26e953b

Please sign in to comment.