|
@@ -822,8 +822,13 @@ static void sky2_mac_init(struct sky2_hw *hw, unsigned port)
|
|
|
|
|
|
sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), rx_reg);
|
|
|
|
|
|
- /* Flush Rx MAC FIFO on any flow control or error */
|
|
|
- sky2_write16(hw, SK_REG(port, RX_GMF_FL_MSK), GMR_FS_ANY_ERR);
|
|
|
+ if (hw->chip_id == CHIP_ID_YUKON_XL) {
|
|
|
+ /* Hardware errata - clear flush mask */
|
|
|
+ sky2_write16(hw, SK_REG(port, RX_GMF_FL_MSK), 0);
|
|
|
+ } else {
|
|
|
+ /* Flush Rx MAC FIFO on any flow control or error */
|
|
|
+ sky2_write16(hw, SK_REG(port, RX_GMF_FL_MSK), GMR_FS_ANY_ERR);
|
|
|
+ }
|
|
|
|
|
|
/* Set threshold to 0xa (64 bytes) + 1 to workaround pause bug */
|
|
|
reg = RX_GMF_FL_THR_DEF + 1;
|