mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
[SCSI] pm80xx: Resetting the phy state.
Setting the phy state for hard reset response. After sending hard reset for a device ,phy down event sets the phy state to zero but for phy up event it will not set the phy state again.This will cause problem to successive hard resets. Signed-off-by: Nikith.Ganigarakoppal@pmcs.com Signed-off-by: Anandkumar.Santhanam@pmcs.com Reviewed-by: Jack Wang <jinpu.wang@profitbricks.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
34a9b81b47
commit
7d02900548
@ -3403,6 +3403,7 @@ hw_event_sas_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb)
|
||||
unsigned long flags;
|
||||
u8 deviceType = pPayload->sas_identify.dev_type;
|
||||
port->port_state = portstate;
|
||||
phy->phy_state = PHY_STATE_LINK_UP_SPC;
|
||||
PM8001_MSG_DBG(pm8001_ha,
|
||||
pm8001_printk("HW_EVENT_SAS_PHY_UP port id = %d, phy id = %d\n",
|
||||
port_id, phy_id));
|
||||
@ -3483,6 +3484,7 @@ hw_event_sata_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb)
|
||||
pm8001_printk("HW_EVENT_SATA_PHY_UP port id = %d,"
|
||||
" phy id = %d\n", port_id, phy_id));
|
||||
port->port_state = portstate;
|
||||
phy->phy_state = PHY_STATE_LINK_UP_SPC;
|
||||
port->port_attached = 1;
|
||||
pm8001_get_lrate_mode(phy, link_rate);
|
||||
phy->phy_type |= PORT_TYPE_SATA;
|
||||
|
@ -131,6 +131,10 @@
|
||||
#define LINKRATE_30 (0x02 << 8)
|
||||
#define LINKRATE_60 (0x04 << 8)
|
||||
|
||||
/* for phy state */
|
||||
|
||||
#define PHY_STATE_LINK_UP_SPC 0x1
|
||||
|
||||
/* for new SPC controllers MEMBASE III is shared between BIOS and DATA */
|
||||
#define GSM_SM_BASE 0x4F0000
|
||||
struct mpi_msg_hdr{
|
||||
|
@ -2894,6 +2894,7 @@ hw_event_sas_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb)
|
||||
unsigned long flags;
|
||||
u8 deviceType = pPayload->sas_identify.dev_type;
|
||||
port->port_state = portstate;
|
||||
phy->phy_state = PHY_STATE_LINK_UP_SPCV;
|
||||
PM8001_MSG_DBG(pm8001_ha, pm8001_printk(
|
||||
"portid:%d; phyid:%d; linkrate:%d; "
|
||||
"portstate:%x; devicetype:%x\n",
|
||||
@ -2978,6 +2979,7 @@ hw_event_sata_phy_up(struct pm8001_hba_info *pm8001_ha, void *piomb)
|
||||
port_id, phy_id, link_rate, portstate));
|
||||
|
||||
port->port_state = portstate;
|
||||
phy->phy_state = PHY_STATE_LINK_UP_SPCV;
|
||||
port->port_attached = 1;
|
||||
pm8001_get_lrate_mode(phy, link_rate);
|
||||
phy->phy_type |= PORT_TYPE_SATA;
|
||||
|
@ -215,6 +215,8 @@
|
||||
#define SAS_DOPNRJT_RTRY_TMO 128
|
||||
#define SAS_COPNRJT_RTRY_TMO 128
|
||||
|
||||
/* for phy state */
|
||||
#define PHY_STATE_LINK_UP_SPCV 0x2
|
||||
/*
|
||||
Making ORR bigger than IT NEXUS LOSS which is 2000000us = 2 second.
|
||||
Assuming a bigger value 3 second, 3000000/128 = 23437.5 where 128
|
||||
|
Loading…
Reference in New Issue
Block a user