diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c index 714af89..a373679 100644 --- a/drivers/net/ethernet/realtek/r8169.c +++ b/drivers/net/ethernet/realtek/r8169.c @@ -1918,12 +1918,23 @@ static int rtl8169_set_speed_xmi(struct net_device *dev, if (adv & ADVERTISED_10baseT_Half) auto_nego |= ADVERTISE_10HALF; - if (adv & ADVERTISED_10baseT_Full) - auto_nego |= ADVERTISE_10FULL; + if (!tp->mac_version == RTL_GIGA_MAC_VER_09) { + if (adv & ADVERTISED_10baseT_Full) + auto_nego |= ADVERTISE_10FULL; + } else { + netif_info(tp, link, dev, + "PHY does not support 10Mbps full duplex\n"); + } if (adv & ADVERTISED_100baseT_Half) auto_nego |= ADVERTISE_100HALF; - if (adv & ADVERTISED_100baseT_Full) - auto_nego |= ADVERTISE_100FULL; + if (!tp->mac_version == RTL_GIGA_MAC_VER_09) { + if (adv & ADVERTISED_100baseT_Full) + auto_nego |= ADVERTISE_100FULL; + } else { + netif_info(tp, link, dev, + "PHY does not support 100Mbps full duplex\n"); + } + auto_nego |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM;