Deleted Added
sdiff udiff text old ( 287990 ) new ( 295323 )
full compact
1/******************************************************************************
2
3 Copyright (c) 2001-2015, Intel Corporation
4 All rights reserved.
5
6 Redistribution and use in source and binary forms, with or without
7 modification, are permitted provided that the following conditions are met:
8

--- 16 unchanged lines hidden (view full) ---

25 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 POSSIBILITY OF SUCH DAMAGE.
31
32******************************************************************************/
33/*$FreeBSD: head/sys/dev/e1000/e1000_80003es2lan.c 295323 2016-02-05 17:14:37Z erj $*/
34
35/* 80003ES2LAN Gigabit Ethernet Controller (Copper)
36 * 80003ES2LAN Gigabit Ethernet Controller (Serdes)
37 */
38
39#include "e1000_api.h"
40
41static s32 e1000_acquire_phy_80003es2lan(struct e1000_hw *hw);

--- 804 unchanged lines hidden (view full) ---

846 if (ret_val)
847 return ret_val;
848
849 DEBUGOUT("Issuing a global reset to MAC\n");
850 E1000_WRITE_REG(hw, E1000_CTRL, ctrl | E1000_CTRL_RST);
851 e1000_release_phy_80003es2lan(hw);
852
853 /* Disable IBIST slave mode (far-end loopback) */
854 ret_val = e1000_read_kmrn_reg_80003es2lan(hw,
855 E1000_KMRNCTRLSTA_INBAND_PARAM, &kum_reg_data);
856 if (!ret_val) {
857 kum_reg_data |= E1000_KMRNCTRLSTA_IBIST_DISABLE;
858 ret_val = e1000_write_kmrn_reg_80003es2lan(hw,
859 E1000_KMRNCTRLSTA_INBAND_PARAM,
860 kum_reg_data);
861 if (ret_val)
862 DEBUGOUT("Error disabling far-end loopback\n");
863 } else
864 DEBUGOUT("Error disabling far-end loopback\n");
865
866 ret_val = e1000_get_auto_rd_done_generic(hw);
867 if (ret_val)
868 /* We don't want to continue accessing MAC registers. */
869 return ret_val;
870
871 /* Clear any pending interrupt events. */
872 E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);

--- 39 unchanged lines hidden (view full) ---

912 E1000_WRITE_REG_ARRAY(hw, E1000_MTA, i, 0);
913
914 /* Setup link and flow control */
915 ret_val = mac->ops.setup_link(hw);
916 if (ret_val)
917 return ret_val;
918
919 /* Disable IBIST slave mode (far-end loopback) */
920 ret_val =
921 e1000_read_kmrn_reg_80003es2lan(hw, E1000_KMRNCTRLSTA_INBAND_PARAM,
922 &kum_reg_data);
923 if (!ret_val) {
924 kum_reg_data |= E1000_KMRNCTRLSTA_IBIST_DISABLE;
925 ret_val = e1000_write_kmrn_reg_80003es2lan(hw,
926 E1000_KMRNCTRLSTA_INBAND_PARAM,
927 kum_reg_data);
928 if (ret_val)
929 DEBUGOUT("Error disabling far-end loopback\n");
930 } else
931 DEBUGOUT("Error disabling far-end loopback\n");
932
933 /* Set the transmit descriptor write-back policy */
934 reg_data = E1000_READ_REG(hw, E1000_TXDCTL(0));
935 reg_data = ((reg_data & ~E1000_TXDCTL_WTHRESH) |
936 E1000_TXDCTL_FULL_TX_DESC_WB | E1000_TXDCTL_COUNT_DESC);
937 E1000_WRITE_REG(hw, E1000_TXDCTL(0), reg_data);
938
939 /* ...for both queues. */

--- 587 unchanged lines hidden ---