[PATCH net 2/5] ethernet: 3c509: Fix AUI transceiver type selection
From: Maciej W. Rozycki
Date: Wed May 20 2026 - 07:19:57 EST
The transceiver type is held in bits 15:14 of the Address Configuration
Register, with the values of 0b00, 0b01, and 0b11 denoting TP, AUI, and
BNC types respectively. Therefore switching from BNC to AUI requires
bits to be cleared before setting bit 14 or the setting won't change.
NB this has always been wrong ever since this code was added in 2.5.42.
Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxx>
---
drivers/net/ethernet/3com/3c509.c | 1 +
1 file changed, 1 insertion(+)
linux-3c509-aui.diff
Index: linux-3c509/drivers/net/ethernet/3com/3c509.c
===================================================================
--- linux-3c509.orig/drivers/net/ethernet/3com/3c509.c
+++ linux-3c509/drivers/net/ethernet/3com/3c509.c
@@ -1099,6 +1099,7 @@ el3_netdev_set_ecmd(struct net_device *d
dev->if_port = 0;
break;
case PORT_AUI:
+ tmp &= ~(3<<14);
tmp |= (1<<14);
dev->if_port = 1;
break;