|
@@ -364,9 +364,9 @@ static u16 t21040_csr15[] = { 0, 0, 0x0006, 0x0000, 0x0000, };
|
|
|
|
|
|
/* 21041 transceiver register settings: TP AUTO, BNC, AUI, TP, TP FD*/
|
|
|
static u16 t21041_csr13[] = { 0xEF01, 0xEF09, 0xEF09, 0xEF01, 0xEF09, };
|
|
|
-static u16 t21041_csr14[] = { 0xFFFF, 0xF7FD, 0xF7FD, 0x6F3F, 0x6F3D, };
|
|
|
+static u16 t21041_csr14[] = { 0xFFFF, 0xF7FD, 0xF7FD, 0x7F3F, 0x7F3D, };
|
|
|
/* If on-chip autonegotiation is broken, use half-duplex (FF3F) instead */
|
|
|
-static u16 t21041_csr14_brk[] = { 0xFF3F, 0xF7FD, 0xF7FD, 0x6F3F, 0x6F3D, };
|
|
|
+static u16 t21041_csr14_brk[] = { 0xFF3F, 0xF7FD, 0xF7FD, 0x7F3F, 0x7F3D, };
|
|
|
static u16 t21041_csr15[] = { 0x0008, 0x0006, 0x000E, 0x0008, 0x0008, };
|
|
|
|
|
|
|
|
@@ -1596,12 +1596,15 @@ static int __de_set_settings(struct de_private *de, struct ethtool_cmd *ecmd)
|
|
|
return 0; /* nothing to change */
|
|
|
|
|
|
de_link_down(de);
|
|
|
+ mod_timer(&de->media_timer, jiffies + DE_TIMER_NO_LINK);
|
|
|
de_stop_rxtx(de);
|
|
|
|
|
|
de->media_type = new_media;
|
|
|
de->media_lock = media_lock;
|
|
|
de->media_advertise = ecmd->advertising;
|
|
|
de_set_media(de);
|
|
|
+ if (netif_running(de->dev))
|
|
|
+ de_start_rxtx(de);
|
|
|
|
|
|
return 0;
|
|
|
}
|