phy_info->downshift = hw->speed_downgraded; 
phy_info->downshift = (e1000_downshift)hw->speed_downgraded; 
e1000_phy_igp_get_info(struct e1000_hw *hw,                       struct e1000_phy_info *phy_info){    int32_t ret_val;    uint16_t phy_data, polarity, min_length, max_length, average;    DEBUGFUNC("e1000_phy_igp_get_info");    /* The downshift status is checked only once, after link is established,     * and it stored in the hw->speed_downgraded parameter. */    phy_info->downshift = hw->speed_downgraded;    /* IGP01E1000 does not need to support it. */    phy_info->extended_10bt_distance = e1000_10bt_ext_dist_enable_normal;    /* IGP01E1000 always correct polarity reversal */    phy_info->polarity_correction = e1000_polarity_reversal_enabled;    /* Check polarity status */    ret_val = e1000_check_polarity(hw, &polarity);    if(ret_val)        return ret_val;    phy_info->cable_polarity = polarity;    ret_val = e1000_read_phy_reg(hw, IGP01E1000_PHY_PORT_STATUS, &phy_data);    if(ret_val)        return ret_val;    phy_info->mdix_mode = (phy_data & IGP01E1000_PSSR_MDIX) >>                          IGP01E1000_PSSR_MDIX_SHIFT;    if((phy_data & IGP01E1000_PSSR_SPEED_MASK) ==       IGP01E1000_PSSR_SPEED_1000MBPS) {        /* Local/Remote Receiver Information are only valid at 1000 Mbps */        ret_val = e1000_read_phy_reg(hw, PHY_1000T_STATUS, &phy_data);        if(ret_val)            return ret_val;        phy_info->local_rx = (phy_data & SR_1000T_LOCAL_RX_STATUS) >>                             SR_1000T_LOCAL_RX_STATUS_SHIFT;        phy_info->remote_rx = (phy_data & SR_1000T_REMOTE_RX_STATUS) >>                              SR_1000T_REMOTE_RX_STATUS_SHIFT;        /* Get cable length */        ret_val = e1000_get_cable_length(hw, &min_length, &max_length);        if(ret_val)            return ret_val;        /* transalte to old method */        average = (max_length + min_length) / 2;        if(average <= e1000_igp_cable_length_50)            phy_info->cable_length = e1000_cable_length_50;        else if(average <= e1000_igp_cable_length_80)            phy_info->cable_length = e1000_cable_length_50_80;        else if(average <= e1000_igp_cable_length_110)            phy_info->cable_length = e1000_cable_length_80_110;        else if(average <= e1000_igp_cable_length_140)            phy_info->cable_length = e1000_cable_length_110_140;        else            phy_info->cable_length = e1000_cable_length_140;    }    return E1000_SUCCESS;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/2d7edb923a823660b081bd4c660300ee19adca8d/e1000_hw.c/clean/drivers/net/e1000/e1000_hw.c