|
@@ -1885,12 +1885,29 @@ static void ixgbe_configure_tx(struct ixgbe_adapter *adapter)
|
|
|
IXGBE_WRITE_REG(hw, IXGBE_TDT(j), 0);
|
|
|
adapter->tx_ring[i].head = IXGBE_TDH(j);
|
|
|
adapter->tx_ring[i].tail = IXGBE_TDT(j);
|
|
|
- /* Disable Tx Head Writeback RO bit, since this hoses
|
|
|
+ /*
|
|
|
+ * Disable Tx Head Writeback RO bit, since this hoses
|
|
|
* bookkeeping if things aren't delivered in order.
|
|
|
*/
|
|
|
- txctrl = IXGBE_READ_REG(hw, IXGBE_DCA_TXCTRL(j));
|
|
|
+ switch (hw->mac.type) {
|
|
|
+ case ixgbe_mac_82598EB:
|
|
|
+ txctrl = IXGBE_READ_REG(hw, IXGBE_DCA_TXCTRL(j));
|
|
|
+ break;
|
|
|
+ case ixgbe_mac_82599EB:
|
|
|
+ default:
|
|
|
+ txctrl = IXGBE_READ_REG(hw, IXGBE_DCA_TXCTRL_82599(j));
|
|
|
+ break;
|
|
|
+ }
|
|
|
txctrl &= ~IXGBE_DCA_TXCTRL_TX_WB_RO_EN;
|
|
|
- IXGBE_WRITE_REG(hw, IXGBE_DCA_TXCTRL(j), txctrl);
|
|
|
+ switch (hw->mac.type) {
|
|
|
+ case ixgbe_mac_82598EB:
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_DCA_TXCTRL(j), txctrl);
|
|
|
+ break;
|
|
|
+ case ixgbe_mac_82599EB:
|
|
|
+ default:
|
|
|
+ IXGBE_WRITE_REG(hw, IXGBE_DCA_TXCTRL_82599(j), txctrl);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
if (hw->mac.type == ixgbe_mac_82599EB) {
|
|
|
/* We enable 8 traffic classes, DCB only */
|