Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b216a4d8 authored by David S. Miller's avatar David S. Miller
Browse files


Jeff Kirsher says:

====================
This series contains updates to igb and ixgbevf.

v2: updated patch description in 04 patch (ixgbevf: scheduling while
    atomic in reset hw path)
 ...
Akeem G. Abodunrin (1):
  igb: Support to enable EEE on all eee_supported devices

Alexander Duyck (2):
  igb: Remove artificial restriction on RQDPC stat reading
  ixgbevf: Add support for VF API negotiation

John Fastabend (1):
  ixgbevf: scheduling while atomic in reset hw path
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 127a4794 012dc19a
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -2223,11 +2223,10 @@ static s32 igb_update_nvm_checksum_i350(struct e1000_hw *hw)
s32 igb_set_eee_i350(struct e1000_hw *hw)
{
	s32 ret_val = 0;
	u32 ipcnfg, eeer, ctrl_ext;
	u32 ipcnfg, eeer;

	ctrl_ext = rd32(E1000_CTRL_EXT);
	if ((hw->mac.type != e1000_i350) ||
	    (ctrl_ext & E1000_CTRL_EXT_LINK_MODE_MASK))
	if ((hw->mac.type < e1000_i350) ||
	    (hw->phy.media_type != e1000_media_type_copper))
		goto out;
	ipcnfg = rd32(E1000_IPCNFG);
	eeer = rd32(E1000_EEER);
@@ -2240,6 +2239,14 @@ s32 igb_set_eee_i350(struct e1000_hw *hw)
			E1000_EEER_RX_LPI_EN |
			E1000_EEER_LPI_FC);

		/* keep the LPI clock running before EEE is enabled */
		if (hw->mac.type == e1000_i210 || hw->mac.type == e1000_i211) {
			u32 eee_su;
			eee_su = rd32(E1000_EEE_SU);
			eee_su &= ~E1000_EEE_SU_LPI_CLK_STP;
			wr32(E1000_EEE_SU, eee_su);
		}

	} else {
		ipcnfg &= ~(E1000_IPCNFG_EEE_1G_AN |
			E1000_IPCNFG_EEE_100M_AN);
@@ -2249,6 +2256,8 @@ s32 igb_set_eee_i350(struct e1000_hw *hw)
	}
	wr32(E1000_IPCNFG, ipcnfg);
	wr32(E1000_EEER, eeer);
	rd32(E1000_IPCNFG);
	rd32(E1000_EEER);
out:

	return ret_val;
+2 −1
Original line number Diff line number Diff line
@@ -859,6 +859,7 @@
#define E1000_EEER_RX_LPI_EN         0x00020000  /* EEE Rx LPI Enable */
#define E1000_EEER_FRC_AN            0x10000000  /* Enable EEE in loopback */
#define E1000_EEER_LPI_FC            0x00040000  /* EEE Enable on FC */
#define E1000_EEE_SU_LPI_CLK_STP     0X00800000  /* EEE LPI Clock Stop */

/* SerDes Control */
#define E1000_GEN_CTL_READY             0x80000000
+1 −0
Original line number Diff line number Diff line
@@ -349,6 +349,7 @@
/* Energy Efficient Ethernet "EEE" register */
#define E1000_IPCNFG  0x0E38  /* Internal PHY Configuration */
#define E1000_EEER    0x0E30  /* Energy Efficient Ethernet */
#define E1000_EEE_SU  0X0E34  /* EEE Setup */

/* Thermal Sensor Register */
#define E1000_THSTAT    0x08110 /* Thermal Sensor Status */
+5 −3
Original line number Diff line number Diff line
@@ -4681,11 +4681,13 @@ void igb_update_stats(struct igb_adapter *adapter,
	bytes = 0;
	packets = 0;
	for (i = 0; i < adapter->num_rx_queues; i++) {
		u32 rqdpc_tmp = rd32(E1000_RQDPC(i)) & 0x0FFF;
		u32 rqdpc = rd32(E1000_RQDPC(i));
		struct igb_ring *ring = adapter->rx_ring[i];

		ring->rx_stats.drops += rqdpc_tmp;
		net_stats->rx_fifo_errors += rqdpc_tmp;
		if (rqdpc) {
			ring->rx_stats.drops += rqdpc;
			net_stats->rx_fifo_errors += rqdpc;
		}

		do {
			start = u64_stats_fetch_begin_bh(&ring->rx_syncp);
+1 −0
Original line number Diff line number Diff line
@@ -272,5 +272,6 @@ struct ixgbe_adv_tx_context_desc {
/* Error Codes */
#define IXGBE_ERR_INVALID_MAC_ADDR              -1
#define IXGBE_ERR_RESET_FAILED                  -2
#define IXGBE_ERR_INVALID_ARGUMENT              -3

#endif /* _IXGBEVF_DEFINES_H_ */
Loading