isci: Manage the LLHANG timer enable/disable per-device.

The LLHANG timer should be enabled once per device.  This patch corrects
both the timer enable and the timer disable for the remote device.

Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This commit is contained in:
Jeff Skirvin
2012-03-08 22:42:00 -08:00
committed by Dan Williams
vanhempi 447bfbcee0
commit 9608b6408e
3 muutettua tiedostoa jossa 20 lisäystä ja 8 poistoa

Näytä tiedosto

@@ -1520,3 +1520,20 @@ enum sci_status isci_remote_device_reset_complete(
return status;
}
void isci_dev_set_hang_detection_timeout(
struct isci_remote_device *idev,
u32 timeout)
{
if (dev_is_sata(idev->domain_dev)) {
if (timeout) {
if (test_and_set_bit(IDEV_RNC_LLHANG_ENABLED,
&idev->flags))
return; /* Already enabled. */
} else if (!test_and_clear_bit(IDEV_RNC_LLHANG_ENABLED,
&idev->flags))
return; /* Not enabled. */
sci_port_set_hang_detection_timeout(idev->owning_port,
timeout);
}
}