pm80xx: Corrected device state changes in I_T_Nexus_Reset.
In Nexus reset the device state request are not needed. Signed-off-by: Viswas G <Viswas.G@pmcs.com> Reviewed-by: Suresh Thiagarajan <Suresh.Thiagarajan@pmcs.com> Acked-by: Jack Wang <jinpu.wang@profitbricks.com> Reviewed-by: Tomas Henzl <thenzl@redhat.com> Signed-off-by: James Bottomley <JBottomley@Odin.com>
This commit is contained in:
parent
b093d59036
commit
3a1ae96774
@ -975,19 +975,27 @@ int pm8001_I_T_nexus_reset(struct domain_device *dev)
|
||||
phy = sas_get_local_phy(dev);
|
||||
|
||||
if (dev_is_sata(dev)) {
|
||||
DECLARE_COMPLETION_ONSTACK(completion_setstate);
|
||||
if (scsi_is_sas_phy_local(phy)) {
|
||||
rc = 0;
|
||||
goto out;
|
||||
}
|
||||
rc = sas_phy_reset(phy, 1);
|
||||
if (rc) {
|
||||
PM8001_EH_DBG(pm8001_ha,
|
||||
pm8001_printk("phy reset failed for device %x\n"
|
||||
"with rc %d\n", pm8001_dev->device_id, rc));
|
||||
rc = TMF_RESP_FUNC_FAILED;
|
||||
goto out;
|
||||
}
|
||||
msleep(2000);
|
||||
rc = pm8001_exec_internal_task_abort(pm8001_ha, pm8001_dev ,
|
||||
dev, 1, 0);
|
||||
pm8001_dev->setds_completion = &completion_setstate;
|
||||
rc = PM8001_CHIP_DISP->set_dev_state_req(pm8001_ha,
|
||||
pm8001_dev, 0x01);
|
||||
wait_for_completion(&completion_setstate);
|
||||
if (rc) {
|
||||
PM8001_EH_DBG(pm8001_ha,
|
||||
pm8001_printk("task abort failed %x\n"
|
||||
"with rc %d\n", pm8001_dev->device_id, rc));
|
||||
rc = TMF_RESP_FUNC_FAILED;
|
||||
}
|
||||
} else {
|
||||
rc = sas_phy_reset(phy, 1);
|
||||
msleep(2000);
|
||||
|
@ -569,6 +569,14 @@ struct pm8001_fw_image_header {
|
||||
#define NCQ_READ_LOG_FLAG 0x80000000
|
||||
#define NCQ_ABORT_ALL_FLAG 0x40000000
|
||||
#define NCQ_2ND_RLE_FLAG 0x20000000
|
||||
|
||||
/* Device states */
|
||||
#define DS_OPERATIONAL 0x01
|
||||
#define DS_PORT_IN_RESET 0x02
|
||||
#define DS_IN_RECOVERY 0x03
|
||||
#define DS_IN_ERROR 0x04
|
||||
#define DS_NON_OPERATIONAL 0x07
|
||||
|
||||
/**
|
||||
* brief param structure for firmware flash update.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user