Lines Matching refs:phy
76 struct e1000_phy_info *phy = &hw->phy; in igb_get_phy_id() local
82 phy->ops.write_reg(hw, I347AT4_PAGE_SELECT, 0); in igb_get_phy_id()
84 ret_val = phy->ops.read_reg(hw, PHY_ID1, &phy_id); in igb_get_phy_id()
88 phy->id = (u32)(phy_id << 16); in igb_get_phy_id()
90 ret_val = phy->ops.read_reg(hw, PHY_ID2, &phy_id); in igb_get_phy_id()
94 phy->id |= (u32)(phy_id & PHY_REVISION_MASK); in igb_get_phy_id()
95 phy->revision = (u32)(phy_id & ~PHY_REVISION_MASK); in igb_get_phy_id()
111 if (!(hw->phy.ops.write_reg)) in igb_phy_reset_dsp()
114 ret_val = hw->phy.ops.write_reg(hw, M88E1000_PHY_GEN_CONTROL, 0xC1); in igb_phy_reset_dsp()
118 ret_val = hw->phy.ops.write_reg(hw, M88E1000_PHY_GEN_CONTROL, 0); in igb_phy_reset_dsp()
135 struct e1000_phy_info *phy = &hw->phy; in igb_read_phy_reg_mdic() local
150 (phy->addr << E1000_MDIC_PHY_SHIFT) | in igb_read_phy_reg_mdic()
191 struct e1000_phy_info *phy = &hw->phy; in igb_write_phy_reg_mdic() local
207 (phy->addr << E1000_MDIC_PHY_SHIFT) | in igb_write_phy_reg_mdic()
248 struct e1000_phy_info *phy = &hw->phy; in igb_read_phy_reg_i2c() local
256 (phy->addr << E1000_I2CCMD_PHY_ADDR_SHIFT) | in igb_read_phy_reg_i2c()
293 struct e1000_phy_info *phy = &hw->phy; in igb_write_phy_reg_i2c() local
298 if ((hw->phy.addr == 0) || (hw->phy.addr > 7)) { in igb_write_phy_reg_i2c()
300 hw->phy.addr); in igb_write_phy_reg_i2c()
312 (phy->addr << E1000_I2CCMD_PHY_ADDR_SHIFT) | in igb_write_phy_reg_i2c()
404 if (!(hw->phy.ops.acquire)) in igb_read_phy_reg_igp()
407 ret_val = hw->phy.ops.acquire(hw); in igb_read_phy_reg_igp()
416 hw->phy.ops.release(hw); in igb_read_phy_reg_igp()
424 hw->phy.ops.release(hw); in igb_read_phy_reg_igp()
443 if (!(hw->phy.ops.acquire)) in igb_write_phy_reg_igp()
446 ret_val = hw->phy.ops.acquire(hw); in igb_write_phy_reg_igp()
455 hw->phy.ops.release(hw); in igb_write_phy_reg_igp()
463 hw->phy.ops.release(hw); in igb_write_phy_reg_igp()
477 struct e1000_phy_info *phy = &hw->phy; in igb_copper_link_setup_82580() local
481 if (phy->reset_disable) { in igb_copper_link_setup_82580()
486 if (phy->type == e1000_phy_82580) { in igb_copper_link_setup_82580()
487 ret_val = hw->phy.ops.reset(hw); in igb_copper_link_setup_82580()
495 ret_val = phy->ops.read_reg(hw, I82580_CFG_REG, &phy_data); in igb_copper_link_setup_82580()
504 ret_val = phy->ops.write_reg(hw, I82580_CFG_REG, phy_data); in igb_copper_link_setup_82580()
509 ret_val = phy->ops.read_reg(hw, I82580_PHY_CTRL_2, &phy_data); in igb_copper_link_setup_82580()
518 switch (hw->phy.mdix) { in igb_copper_link_setup_82580()
529 ret_val = hw->phy.ops.write_reg(hw, I82580_PHY_CTRL_2, phy_data); in igb_copper_link_setup_82580()
544 struct e1000_phy_info *phy = &hw->phy; in igb_copper_link_setup_m88() local
548 if (phy->reset_disable) { in igb_copper_link_setup_m88()
554 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); in igb_copper_link_setup_m88()
569 switch (phy->mdix) { in igb_copper_link_setup_m88()
592 if (phy->disable_polarity_correction == 1) in igb_copper_link_setup_m88()
595 ret_val = phy->ops.write_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data); in igb_copper_link_setup_m88()
599 if (phy->revision < E1000_REVISION_4) { in igb_copper_link_setup_m88()
603 ret_val = phy->ops.read_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, in igb_copper_link_setup_m88()
610 if ((phy->revision == E1000_REVISION_2) && in igb_copper_link_setup_m88()
611 (phy->id == M88E1111_I_PHY_ID)) { in igb_copper_link_setup_m88()
622 ret_val = phy->ops.write_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, in igb_copper_link_setup_m88()
648 struct e1000_phy_info *phy = &hw->phy; in igb_copper_link_setup_m88_gen2() local
652 if (phy->reset_disable) in igb_copper_link_setup_m88_gen2()
656 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); in igb_copper_link_setup_m88_gen2()
669 switch (phy->mdix) { in igb_copper_link_setup_m88_gen2()
678 if (phy->id != M88E1112_E_PHY_ID) { in igb_copper_link_setup_m88_gen2()
695 if (phy->disable_polarity_correction == 1) in igb_copper_link_setup_m88_gen2()
699 if (phy->id == M88E1543_E_PHY_ID) { in igb_copper_link_setup_m88_gen2()
702 phy->ops.write_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data); in igb_copper_link_setup_m88_gen2()
717 ret_val = phy->ops.write_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data); in igb_copper_link_setup_m88_gen2()
743 struct e1000_phy_info *phy = &hw->phy; in igb_copper_link_setup_igp() local
747 if (phy->reset_disable) { in igb_copper_link_setup_igp()
752 ret_val = phy->ops.reset(hw); in igb_copper_link_setup_igp()
766 if (phy->type == e1000_phy_igp) { in igb_copper_link_setup_igp()
768 if (phy->ops.set_d3_lplu_state) in igb_copper_link_setup_igp()
769 ret_val = phy->ops.set_d3_lplu_state(hw, false); in igb_copper_link_setup_igp()
777 ret_val = phy->ops.set_d0_lplu_state(hw, false); in igb_copper_link_setup_igp()
783 ret_val = phy->ops.read_reg(hw, IGP01E1000_PHY_PORT_CTRL, &data); in igb_copper_link_setup_igp()
789 switch (phy->mdix) { in igb_copper_link_setup_igp()
801 ret_val = phy->ops.write_reg(hw, IGP01E1000_PHY_PORT_CTRL, data); in igb_copper_link_setup_igp()
811 if (phy->autoneg_advertised == ADVERTISE_1000_FULL) { in igb_copper_link_setup_igp()
813 ret_val = phy->ops.read_reg(hw, in igb_copper_link_setup_igp()
820 ret_val = phy->ops.write_reg(hw, in igb_copper_link_setup_igp()
827 ret_val = phy->ops.read_reg(hw, PHY_1000T_CTRL, &data); in igb_copper_link_setup_igp()
832 ret_val = phy->ops.write_reg(hw, PHY_1000T_CTRL, data); in igb_copper_link_setup_igp()
837 ret_val = phy->ops.read_reg(hw, PHY_1000T_CTRL, &data); in igb_copper_link_setup_igp()
842 phy->original_ms_type = (data & CR_1000T_MS_ENABLE) ? in igb_copper_link_setup_igp()
848 switch (phy->ms_type) { in igb_copper_link_setup_igp()
861 ret_val = phy->ops.write_reg(hw, PHY_1000T_CTRL, data); in igb_copper_link_setup_igp()
881 struct e1000_phy_info *phy = &hw->phy; in igb_copper_link_autoneg() local
888 phy->autoneg_advertised &= phy->autoneg_mask; in igb_copper_link_autoneg()
893 if (phy->autoneg_advertised == 0) in igb_copper_link_autoneg()
894 phy->autoneg_advertised = phy->autoneg_mask; in igb_copper_link_autoneg()
907 ret_val = phy->ops.read_reg(hw, PHY_CONTROL, &phy_ctrl); in igb_copper_link_autoneg()
912 ret_val = phy->ops.write_reg(hw, PHY_CONTROL, phy_ctrl); in igb_copper_link_autoneg()
919 if (phy->autoneg_wait_to_complete) { in igb_copper_link_autoneg()
944 struct e1000_phy_info *phy = &hw->phy; in igb_phy_setup_autoneg() local
949 phy->autoneg_advertised &= phy->autoneg_mask; in igb_phy_setup_autoneg()
952 ret_val = phy->ops.read_reg(hw, PHY_AUTONEG_ADV, &mii_autoneg_adv_reg); in igb_phy_setup_autoneg()
956 if (phy->autoneg_mask & ADVERTISE_1000_FULL) { in igb_phy_setup_autoneg()
958 ret_val = phy->ops.read_reg(hw, PHY_1000T_CTRL, in igb_phy_setup_autoneg()
981 hw_dbg("autoneg_advertised %x\n", phy->autoneg_advertised); in igb_phy_setup_autoneg()
984 if (phy->autoneg_advertised & ADVERTISE_10_HALF) { in igb_phy_setup_autoneg()
990 if (phy->autoneg_advertised & ADVERTISE_10_FULL) { in igb_phy_setup_autoneg()
996 if (phy->autoneg_advertised & ADVERTISE_100_HALF) { in igb_phy_setup_autoneg()
1002 if (phy->autoneg_advertised & ADVERTISE_100_FULL) { in igb_phy_setup_autoneg()
1008 if (phy->autoneg_advertised & ADVERTISE_1000_HALF) in igb_phy_setup_autoneg()
1012 if (phy->autoneg_advertised & ADVERTISE_1000_FULL) { in igb_phy_setup_autoneg()
1072 ret_val = phy->ops.write_reg(hw, PHY_AUTONEG_ADV, mii_autoneg_adv_reg); in igb_phy_setup_autoneg()
1078 if (phy->autoneg_mask & ADVERTISE_1000_FULL) { in igb_phy_setup_autoneg()
1079 ret_val = phy->ops.write_reg(hw, in igb_phy_setup_autoneg()
1116 ret_val = hw->phy.ops.force_speed_duplex(hw); in igb_setup_copper_link()
1152 struct e1000_phy_info *phy = &hw->phy; in igb_phy_force_speed_duplex_igp() local
1157 ret_val = phy->ops.read_reg(hw, PHY_CONTROL, &phy_data); in igb_phy_force_speed_duplex_igp()
1163 ret_val = phy->ops.write_reg(hw, PHY_CONTROL, phy_data); in igb_phy_force_speed_duplex_igp()
1170 ret_val = phy->ops.read_reg(hw, IGP01E1000_PHY_PORT_CTRL, &phy_data); in igb_phy_force_speed_duplex_igp()
1177 ret_val = phy->ops.write_reg(hw, IGP01E1000_PHY_PORT_CTRL, phy_data); in igb_phy_force_speed_duplex_igp()
1185 if (phy->autoneg_wait_to_complete) { in igb_phy_force_speed_duplex_igp()
1217 struct e1000_phy_info *phy = &hw->phy; in igb_phy_force_speed_duplex_m88() local
1223 if (phy->type != e1000_phy_i210) { in igb_phy_force_speed_duplex_m88()
1227 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_CTRL, in igb_phy_force_speed_duplex_m88()
1233 ret_val = phy->ops.write_reg(hw, M88E1000_PHY_SPEC_CTRL, in igb_phy_force_speed_duplex_m88()
1241 ret_val = phy->ops.read_reg(hw, PHY_CONTROL, &phy_data); in igb_phy_force_speed_duplex_m88()
1247 ret_val = phy->ops.write_reg(hw, PHY_CONTROL, phy_data); in igb_phy_force_speed_duplex_m88()
1256 if (phy->autoneg_wait_to_complete) { in igb_phy_force_speed_duplex_m88()
1266 switch (hw->phy.id) { in igb_phy_force_speed_duplex_m88()
1275 if (hw->phy.type != e1000_phy_m88) in igb_phy_force_speed_duplex_m88()
1285 ret_val = phy->ops.write_reg(hw, in igb_phy_force_speed_duplex_m88()
1303 if (hw->phy.type != e1000_phy_m88 || in igb_phy_force_speed_duplex_m88()
1304 hw->phy.id == I347AT4_E_PHY_ID || in igb_phy_force_speed_duplex_m88()
1305 hw->phy.id == M88E1112_E_PHY_ID || in igb_phy_force_speed_duplex_m88()
1306 hw->phy.id == M88E1543_E_PHY_ID || in igb_phy_force_speed_duplex_m88()
1307 hw->phy.id == M88E1512_E_PHY_ID || in igb_phy_force_speed_duplex_m88()
1308 hw->phy.id == I210_I_PHY_ID) in igb_phy_force_speed_duplex_m88()
1311 ret_val = phy->ops.read_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, &phy_data); in igb_phy_force_speed_duplex_m88()
1320 ret_val = phy->ops.write_reg(hw, M88E1000_EXT_PHY_SPEC_CTRL, phy_data); in igb_phy_force_speed_duplex_m88()
1327 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); in igb_phy_force_speed_duplex_m88()
1332 ret_val = phy->ops.write_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data); in igb_phy_force_speed_duplex_m88()
1415 struct e1000_phy_info *phy = &hw->phy; in igb_set_d3_lplu_state() local
1419 if (!(hw->phy.ops.read_reg)) in igb_set_d3_lplu_state()
1422 ret_val = phy->ops.read_reg(hw, IGP02E1000_PHY_POWER_MGMT, &data); in igb_set_d3_lplu_state()
1428 ret_val = phy->ops.write_reg(hw, IGP02E1000_PHY_POWER_MGMT, in igb_set_d3_lplu_state()
1437 if (phy->smart_speed == e1000_smart_speed_on) { in igb_set_d3_lplu_state()
1438 ret_val = phy->ops.read_reg(hw, in igb_set_d3_lplu_state()
1445 ret_val = phy->ops.write_reg(hw, in igb_set_d3_lplu_state()
1450 } else if (phy->smart_speed == e1000_smart_speed_off) { in igb_set_d3_lplu_state()
1451 ret_val = phy->ops.read_reg(hw, in igb_set_d3_lplu_state()
1458 ret_val = phy->ops.write_reg(hw, in igb_set_d3_lplu_state()
1464 } else if ((phy->autoneg_advertised == E1000_ALL_SPEED_DUPLEX) || in igb_set_d3_lplu_state()
1465 (phy->autoneg_advertised == E1000_ALL_NOT_GIG) || in igb_set_d3_lplu_state()
1466 (phy->autoneg_advertised == E1000_ALL_10_SPEED)) { in igb_set_d3_lplu_state()
1468 ret_val = phy->ops.write_reg(hw, IGP02E1000_PHY_POWER_MGMT, in igb_set_d3_lplu_state()
1474 ret_val = phy->ops.read_reg(hw, IGP01E1000_PHY_PORT_CONFIG, in igb_set_d3_lplu_state()
1480 ret_val = phy->ops.write_reg(hw, IGP01E1000_PHY_PORT_CONFIG, in igb_set_d3_lplu_state()
1498 struct e1000_phy_info *phy = &hw->phy; in igb_check_downshift() local
1502 switch (phy->type) { in igb_check_downshift()
1517 phy->speed_downgraded = false; in igb_check_downshift()
1522 ret_val = phy->ops.read_reg(hw, offset, &phy_data); in igb_check_downshift()
1525 phy->speed_downgraded = (phy_data & mask) ? true : false; in igb_check_downshift()
1541 struct e1000_phy_info *phy = &hw->phy; in igb_check_polarity_m88() local
1545 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_STATUS, &data); in igb_check_polarity_m88()
1548 phy->cable_polarity = (data & M88E1000_PSSR_REV_POLARITY) in igb_check_polarity_m88()
1566 struct e1000_phy_info *phy = &hw->phy; in igb_check_polarity_igp() local
1573 ret_val = phy->ops.read_reg(hw, IGP01E1000_PHY_PORT_STATUS, &data); in igb_check_polarity_igp()
1589 ret_val = phy->ops.read_reg(hw, offset, &data); in igb_check_polarity_igp()
1592 phy->cable_polarity = (data & mask) in igb_check_polarity_igp()
1614 ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); in igb_wait_autoneg()
1617 ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); in igb_wait_autoneg()
1651 ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); in igb_phy_has_link()
1662 ret_val = hw->phy.ops.read_reg(hw, PHY_STATUS, &phy_status); in igb_phy_has_link()
1695 struct e1000_phy_info *phy = &hw->phy; in igb_get_cable_length_m88() local
1699 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_STATUS, &phy_data); in igb_get_cable_length_m88()
1710 phy->min_cable_length = e1000_m88_cable_length_table[index]; in igb_get_cable_length_m88()
1711 phy->max_cable_length = e1000_m88_cable_length_table[index + 1]; in igb_get_cable_length_m88()
1713 phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; in igb_get_cable_length_m88()
1721 struct e1000_phy_info *phy = &hw->phy; in igb_get_cable_length_m88_gen2() local
1728 switch (hw->phy.id) { in igb_get_cable_length_m88_gen2()
1734 ret_val = phy->ops.read_reg(hw, I347AT4_PAGE_SELECT, in igb_get_cable_length_m88_gen2()
1739 ret_val = phy->ops.write_reg(hw, I347AT4_PAGE_SELECT, 0x07); in igb_get_cable_length_m88_gen2()
1744 ret_val = phy->ops.read_reg(hw, I347AT4_PCDC, &phy_data2); in igb_get_cable_length_m88_gen2()
1751 ret_val = phy->ops.read_reg(hw, I347AT4_PCDL0, &phy_data); in igb_get_cable_length_m88_gen2()
1755 phy->pair_length[0] = phy_data / (is_cm ? 100 : 1); in igb_get_cable_length_m88_gen2()
1756 len_tot = phy->pair_length[0]; in igb_get_cable_length_m88_gen2()
1757 len_min = phy->pair_length[0]; in igb_get_cable_length_m88_gen2()
1758 len_max = phy->pair_length[0]; in igb_get_cable_length_m88_gen2()
1761 ret_val = phy->ops.read_reg(hw, I347AT4_PCDL1, &phy_data); in igb_get_cable_length_m88_gen2()
1765 phy->pair_length[1] = phy_data / (is_cm ? 100 : 1); in igb_get_cable_length_m88_gen2()
1766 len_tot += phy->pair_length[1]; in igb_get_cable_length_m88_gen2()
1767 len_min = min(len_min, phy->pair_length[1]); in igb_get_cable_length_m88_gen2()
1768 len_max = max(len_max, phy->pair_length[1]); in igb_get_cable_length_m88_gen2()
1771 ret_val = phy->ops.read_reg(hw, I347AT4_PCDL2, &phy_data); in igb_get_cable_length_m88_gen2()
1775 phy->pair_length[2] = phy_data / (is_cm ? 100 : 1); in igb_get_cable_length_m88_gen2()
1776 len_tot += phy->pair_length[2]; in igb_get_cable_length_m88_gen2()
1777 len_min = min(len_min, phy->pair_length[2]); in igb_get_cable_length_m88_gen2()
1778 len_max = max(len_max, phy->pair_length[2]); in igb_get_cable_length_m88_gen2()
1781 ret_val = phy->ops.read_reg(hw, I347AT4_PCDL3, &phy_data); in igb_get_cable_length_m88_gen2()
1785 phy->pair_length[3] = phy_data / (is_cm ? 100 : 1); in igb_get_cable_length_m88_gen2()
1786 len_tot += phy->pair_length[3]; in igb_get_cable_length_m88_gen2()
1787 len_min = min(len_min, phy->pair_length[3]); in igb_get_cable_length_m88_gen2()
1788 len_max = max(len_max, phy->pair_length[3]); in igb_get_cable_length_m88_gen2()
1791 phy->min_cable_length = len_min; in igb_get_cable_length_m88_gen2()
1792 phy->max_cable_length = len_max; in igb_get_cable_length_m88_gen2()
1793 phy->cable_length = len_tot / 4; in igb_get_cable_length_m88_gen2()
1796 ret_val = phy->ops.write_reg(hw, I347AT4_PAGE_SELECT, in igb_get_cable_length_m88_gen2()
1803 ret_val = phy->ops.read_reg(hw, I347AT4_PAGE_SELECT, in igb_get_cable_length_m88_gen2()
1808 ret_val = phy->ops.write_reg(hw, I347AT4_PAGE_SELECT, 0x05); in igb_get_cable_length_m88_gen2()
1812 ret_val = phy->ops.read_reg(hw, M88E1112_VCT_DSP_DISTANCE, in igb_get_cable_length_m88_gen2()
1824 phy->min_cable_length = e1000_m88_cable_length_table[index]; in igb_get_cable_length_m88_gen2()
1825 phy->max_cable_length = e1000_m88_cable_length_table[index + 1]; in igb_get_cable_length_m88_gen2()
1827 phy->cable_length = (phy->min_cable_length + in igb_get_cable_length_m88_gen2()
1828 phy->max_cable_length) / 2; in igb_get_cable_length_m88_gen2()
1831 ret_val = phy->ops.write_reg(hw, I347AT4_PAGE_SELECT, in igb_get_cable_length_m88_gen2()
1859 struct e1000_phy_info *phy = &hw->phy; in igb_get_cable_length_igp_2() local
1873 ret_val = phy->ops.read_reg(hw, agc_reg_array[i], &phy_data); in igb_get_cable_length_igp_2()
1908 phy->min_cable_length = ((agc_value - IGP02E1000_AGC_RANGE) > 0) ? in igb_get_cable_length_igp_2()
1910 phy->max_cable_length = agc_value + IGP02E1000_AGC_RANGE; in igb_get_cable_length_igp_2()
1912 phy->cable_length = (phy->min_cable_length + phy->max_cable_length) / 2; in igb_get_cable_length_igp_2()
1930 struct e1000_phy_info *phy = &hw->phy; in igb_get_phy_info_m88() local
1935 if (phy->media_type != e1000_media_type_copper) { in igb_get_phy_info_m88()
1951 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); in igb_get_phy_info_m88()
1955 phy->polarity_correction = (phy_data & M88E1000_PSCR_POLARITY_REVERSAL) in igb_get_phy_info_m88()
1962 ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_STATUS, &phy_data); in igb_get_phy_info_m88()
1966 phy->is_mdix = (phy_data & M88E1000_PSSR_MDIX) ? true : false; in igb_get_phy_info_m88()
1969 ret_val = phy->ops.get_cable_length(hw); in igb_get_phy_info_m88()
1973 ret_val = phy->ops.read_reg(hw, PHY_1000T_STATUS, &phy_data); in igb_get_phy_info_m88()
1977 phy->local_rx = (phy_data & SR_1000T_LOCAL_RX_STATUS) in igb_get_phy_info_m88()
1981 phy->remote_rx = (phy_data & SR_1000T_REMOTE_RX_STATUS) in igb_get_phy_info_m88()
1986 phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; in igb_get_phy_info_m88()
1987 phy->local_rx = e1000_1000t_rx_status_undefined; in igb_get_phy_info_m88()
1988 phy->remote_rx = e1000_1000t_rx_status_undefined; in igb_get_phy_info_m88()
2006 struct e1000_phy_info *phy = &hw->phy; in igb_get_phy_info_igp() local
2021 phy->polarity_correction = true; in igb_get_phy_info_igp()
2027 ret_val = phy->ops.read_reg(hw, IGP01E1000_PHY_PORT_STATUS, &data); in igb_get_phy_info_igp()
2031 phy->is_mdix = (data & IGP01E1000_PSSR_MDIX) ? true : false; in igb_get_phy_info_igp()
2035 ret_val = phy->ops.get_cable_length(hw); in igb_get_phy_info_igp()
2039 ret_val = phy->ops.read_reg(hw, PHY_1000T_STATUS, &data); in igb_get_phy_info_igp()
2043 phy->local_rx = (data & SR_1000T_LOCAL_RX_STATUS) in igb_get_phy_info_igp()
2047 phy->remote_rx = (data & SR_1000T_REMOTE_RX_STATUS) in igb_get_phy_info_igp()
2051 phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; in igb_get_phy_info_igp()
2052 phy->local_rx = e1000_1000t_rx_status_undefined; in igb_get_phy_info_igp()
2053 phy->remote_rx = e1000_1000t_rx_status_undefined; in igb_get_phy_info_igp()
2072 if (!(hw->phy.ops.read_reg)) in igb_phy_sw_reset()
2075 ret_val = hw->phy.ops.read_reg(hw, PHY_CONTROL, &phy_ctrl); in igb_phy_sw_reset()
2080 ret_val = hw->phy.ops.write_reg(hw, PHY_CONTROL, phy_ctrl); in igb_phy_sw_reset()
2101 struct e1000_phy_info *phy = &hw->phy; in igb_phy_hw_reset() local
2111 ret_val = phy->ops.acquire(hw); in igb_phy_hw_reset()
2119 udelay(phy->reset_delay_us); in igb_phy_hw_reset()
2126 phy->ops.release(hw); in igb_phy_hw_reset()
2128 ret_val = phy->ops.get_cfg_done(hw); in igb_phy_hw_reset()
2146 hw->phy.ops.write_reg(hw, 0x2F5B, 0x9018); in igb_phy_init_script_igp3()
2148 hw->phy.ops.write_reg(hw, 0x2F52, 0x0000); in igb_phy_init_script_igp3()
2150 hw->phy.ops.write_reg(hw, 0x2FB1, 0x8B24); in igb_phy_init_script_igp3()
2152 hw->phy.ops.write_reg(hw, 0x2FB2, 0xF8F0); in igb_phy_init_script_igp3()
2154 hw->phy.ops.write_reg(hw, 0x2010, 0x10B0); in igb_phy_init_script_igp3()
2156 hw->phy.ops.write_reg(hw, 0x2011, 0x0000); in igb_phy_init_script_igp3()
2158 hw->phy.ops.write_reg(hw, 0x20DD, 0x249A); in igb_phy_init_script_igp3()
2160 hw->phy.ops.write_reg(hw, 0x20DE, 0x00D3); in igb_phy_init_script_igp3()
2162 hw->phy.ops.write_reg(hw, 0x28B4, 0x04CE); in igb_phy_init_script_igp3()
2164 hw->phy.ops.write_reg(hw, 0x2F70, 0x29E4); in igb_phy_init_script_igp3()
2166 hw->phy.ops.write_reg(hw, 0x0000, 0x0140); in igb_phy_init_script_igp3()
2168 hw->phy.ops.write_reg(hw, 0x1F30, 0x1606); in igb_phy_init_script_igp3()
2170 hw->phy.ops.write_reg(hw, 0x1F31, 0xB814); in igb_phy_init_script_igp3()
2172 hw->phy.ops.write_reg(hw, 0x1F35, 0x002A); in igb_phy_init_script_igp3()
2174 hw->phy.ops.write_reg(hw, 0x1F3E, 0x0067); in igb_phy_init_script_igp3()
2176 hw->phy.ops.write_reg(hw, 0x1F54, 0x0065); in igb_phy_init_script_igp3()
2178 hw->phy.ops.write_reg(hw, 0x1F55, 0x002A); in igb_phy_init_script_igp3()
2180 hw->phy.ops.write_reg(hw, 0x1F56, 0x002A); in igb_phy_init_script_igp3()
2182 hw->phy.ops.write_reg(hw, 0x1F72, 0x3FB0); in igb_phy_init_script_igp3()
2184 hw->phy.ops.write_reg(hw, 0x1F76, 0xC0FF); in igb_phy_init_script_igp3()
2186 hw->phy.ops.write_reg(hw, 0x1F77, 0x1DEC); in igb_phy_init_script_igp3()
2188 hw->phy.ops.write_reg(hw, 0x1F78, 0xF9EF); in igb_phy_init_script_igp3()
2190 hw->phy.ops.write_reg(hw, 0x1F79, 0x0210); in igb_phy_init_script_igp3()
2192 hw->phy.ops.write_reg(hw, 0x1895, 0x0003); in igb_phy_init_script_igp3()
2194 hw->phy.ops.write_reg(hw, 0x1796, 0x0008); in igb_phy_init_script_igp3()
2196 hw->phy.ops.write_reg(hw, 0x1798, 0xD008); in igb_phy_init_script_igp3()
2200 hw->phy.ops.write_reg(hw, 0x1898, 0xD918); in igb_phy_init_script_igp3()
2202 hw->phy.ops.write_reg(hw, 0x187A, 0x0800); in igb_phy_init_script_igp3()
2206 hw->phy.ops.write_reg(hw, 0x0019, 0x008D); in igb_phy_init_script_igp3()
2208 hw->phy.ops.write_reg(hw, 0x001B, 0x2080); in igb_phy_init_script_igp3()
2210 hw->phy.ops.write_reg(hw, 0x0014, 0x0045); in igb_phy_init_script_igp3()
2212 hw->phy.ops.write_reg(hw, 0x0000, 0x1340); in igb_phy_init_script_igp3()
2225 struct e1000_phy_info *phy = &hw->phy; in igb_initialize_M88E1512_phy() local
2229 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FF); in igb_initialize_M88E1512_phy()
2233 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x214B); in igb_initialize_M88E1512_phy()
2237 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2144); in igb_initialize_M88E1512_phy()
2241 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x0C28); in igb_initialize_M88E1512_phy()
2245 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2146); in igb_initialize_M88E1512_phy()
2249 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xB233); in igb_initialize_M88E1512_phy()
2253 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x214D); in igb_initialize_M88E1512_phy()
2257 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xCC0C); in igb_initialize_M88E1512_phy()
2261 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2159); in igb_initialize_M88E1512_phy()
2266 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FB); in igb_initialize_M88E1512_phy()
2270 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_3, 0x000D); in igb_initialize_M88E1512_phy()
2275 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x12); in igb_initialize_M88E1512_phy()
2280 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_MODE, 0x8001); in igb_initialize_M88E1512_phy()
2285 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0); in igb_initialize_M88E1512_phy()
2309 struct e1000_phy_info *phy = &hw->phy; in igb_initialize_M88E1543_phy() local
2313 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FF); in igb_initialize_M88E1543_phy()
2317 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x214B); in igb_initialize_M88E1543_phy()
2321 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2144); in igb_initialize_M88E1543_phy()
2325 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x0C28); in igb_initialize_M88E1543_phy()
2329 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2146); in igb_initialize_M88E1543_phy()
2333 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xB233); in igb_initialize_M88E1543_phy()
2337 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x214D); in igb_initialize_M88E1543_phy()
2341 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xDC0C); in igb_initialize_M88E1543_phy()
2345 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2159); in igb_initialize_M88E1543_phy()
2350 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FB); in igb_initialize_M88E1543_phy()
2354 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_3, 0x0C0D); in igb_initialize_M88E1543_phy()
2359 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x12); in igb_initialize_M88E1543_phy()
2364 ret_val = phy->ops.write_reg(hw, E1000_M88E1512_MODE, 0x8001); in igb_initialize_M88E1543_phy()
2369 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x1); in igb_initialize_M88E1543_phy()
2374 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_FIBER_CTRL, 0x9140); in igb_initialize_M88E1543_phy()
2379 ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0); in igb_initialize_M88E1543_phy()
2407 hw->phy.ops.read_reg(hw, PHY_CONTROL, &mii_reg); in igb_power_up_phy_copper()
2409 hw->phy.ops.write_reg(hw, PHY_CONTROL, mii_reg); in igb_power_up_phy_copper()
2424 hw->phy.ops.read_reg(hw, PHY_CONTROL, &mii_reg); in igb_power_down_phy_copper()
2426 hw->phy.ops.write_reg(hw, PHY_CONTROL, mii_reg); in igb_power_down_phy_copper()
2440 struct e1000_phy_info *phy = &hw->phy; in igb_check_polarity_82580() local
2445 ret_val = phy->ops.read_reg(hw, I82580_PHY_STATUS_2, &data); in igb_check_polarity_82580()
2448 phy->cable_polarity = (data & I82580_PHY_STATUS2_REV_POLARITY) in igb_check_polarity_82580()
2465 struct e1000_phy_info *phy = &hw->phy; in igb_phy_force_speed_duplex_82580() local
2470 ret_val = phy->ops.read_reg(hw, PHY_CONTROL, &phy_data); in igb_phy_force_speed_duplex_82580()
2476 ret_val = phy->ops.write_reg(hw, PHY_CONTROL, phy_data); in igb_phy_force_speed_duplex_82580()
2483 ret_val = phy->ops.read_reg(hw, I82580_PHY_CTRL_2, &phy_data); in igb_phy_force_speed_duplex_82580()
2489 ret_val = phy->ops.write_reg(hw, I82580_PHY_CTRL_2, phy_data); in igb_phy_force_speed_duplex_82580()
2497 if (phy->autoneg_wait_to_complete) { in igb_phy_force_speed_duplex_82580()
2528 struct e1000_phy_info *phy = &hw->phy; in igb_get_phy_info_82580() local
2543 phy->polarity_correction = true; in igb_get_phy_info_82580()
2549 ret_val = phy->ops.read_reg(hw, I82580_PHY_STATUS_2, &data); in igb_get_phy_info_82580()
2553 phy->is_mdix = (data & I82580_PHY_STATUS2_MDIX) ? true : false; in igb_get_phy_info_82580()
2557 ret_val = hw->phy.ops.get_cable_length(hw); in igb_get_phy_info_82580()
2561 ret_val = phy->ops.read_reg(hw, PHY_1000T_STATUS, &data); in igb_get_phy_info_82580()
2565 phy->local_rx = (data & SR_1000T_LOCAL_RX_STATUS) in igb_get_phy_info_82580()
2569 phy->remote_rx = (data & SR_1000T_REMOTE_RX_STATUS) in igb_get_phy_info_82580()
2573 phy->cable_length = E1000_CABLE_LENGTH_UNDEFINED; in igb_get_phy_info_82580()
2574 phy->local_rx = e1000_1000t_rx_status_undefined; in igb_get_phy_info_82580()
2575 phy->remote_rx = e1000_1000t_rx_status_undefined; in igb_get_phy_info_82580()
2591 struct e1000_phy_info *phy = &hw->phy; in igb_get_cable_length_82580() local
2595 ret_val = phy->ops.read_reg(hw, I82580_PHY_DIAG_STATUS, &phy_data); in igb_get_cable_length_82580()
2605 phy->cable_length = length; in igb_get_cable_length_82580()
2623 ret_val = hw->phy.ops.read_reg(hw, PHY_1000T_CTRL, &phy_data); in igb_set_master_slave_mode()
2628 hw->phy.original_ms_type = (phy_data & CR_1000T_MS_ENABLE) ? in igb_set_master_slave_mode()
2633 switch (hw->phy.ms_type) { in igb_set_master_slave_mode()
2648 return hw->phy.ops.write_reg(hw, PHY_1000T_CTRL, phy_data); in igb_set_master_slave_mode()