|
@@ -3757,7 +3757,8 @@ static void rtl_hw_start_8168(struct net_device *dev)
|
|
RTL_W16(IntrMitigate, 0x5151);
|
|
RTL_W16(IntrMitigate, 0x5151);
|
|
|
|
|
|
/* Work around for RxFIFO overflow. */
|
|
/* Work around for RxFIFO overflow. */
|
|
- if (tp->mac_version == RTL_GIGA_MAC_VER_11) {
|
|
|
|
|
|
+ if (tp->mac_version == RTL_GIGA_MAC_VER_11 ||
|
|
|
|
+ tp->mac_version == RTL_GIGA_MAC_VER_22) {
|
|
tp->intr_event |= RxFIFOOver | PCSTimeout;
|
|
tp->intr_event |= RxFIFOOver | PCSTimeout;
|
|
tp->intr_event &= ~RxOverflow;
|
|
tp->intr_event &= ~RxOverflow;
|
|
}
|
|
}
|
|
@@ -4641,7 +4642,8 @@ static irqreturn_t rtl8169_interrupt(int irq, void *dev_instance)
|
|
|
|
|
|
/* Work around for rx fifo overflow */
|
|
/* Work around for rx fifo overflow */
|
|
if (unlikely(status & RxFIFOOver) &&
|
|
if (unlikely(status & RxFIFOOver) &&
|
|
- (tp->mac_version == RTL_GIGA_MAC_VER_11)) {
|
|
|
|
|
|
+ (tp->mac_version == RTL_GIGA_MAC_VER_11 ||
|
|
|
|
+ tp->mac_version == RTL_GIGA_MAC_VER_22)) {
|
|
netif_stop_queue(dev);
|
|
netif_stop_queue(dev);
|
|
rtl8169_tx_timeout(dev);
|
|
rtl8169_tx_timeout(dev);
|
|
break;
|
|
break;
|