Datasheet says, page: 98 -> http://www.smsc.com/main/datasheets/9115.pdf

"MAC_CR_RCVOWN_ should be reset when the Full 
Duplex Mode bit is set" and "When MAC_CR_FDPX_ set, the MAC operates in 
Full-Duplex mode, in which it can transmit and receive simultaneously." 

Signed-off-by: Bora Sahin <[EMAIL PROTECTED]>

Index: linux-2.6.18-rc4/drivers/net/smc911x.c
===================================================================
--- linux-2.6.18-rc4.orig/drivers/net/smc911x.c 2006-08-06 21:20:11.000000000 
+0300
+++ linux-2.6.18-rc4/drivers/net/smc911x.c      2006-09-04 13:54:26.621458832 
+0300
@@ -927,14 +923,15 @@
                /* duplex state has changed */
                SMC_GET_PHY_BMCR(phyaddr, bmcr);
                SMC_GET_MAC_CR(cr);
+               cr &= ~(MAC_CR_RCVOWN_ | MAC_CR_FDPX_);
                if (lp->mii.full_duplex) {
                        DBG(SMC_DEBUG_MISC, "%s: Configuring for full-duplex 
mode\n", dev->name);
                        bmcr |= BMCR_FULLDPLX;
-                       cr |= MAC_CR_RCVOWN_;
+                       cr |= MAC_CR_FDPX_;
                } else {
                        DBG(SMC_DEBUG_MISC, "%s: Configuring for half-duplex 
mode\n", dev->name);
                        bmcr &= ~BMCR_FULLDPLX;
-                       cr &= ~MAC_CR_RCVOWN_;
+                       cr |= MAC_CR_RCVOWN_;
                }
                SMC_SET_PHY_BMCR(phyaddr, bmcr);
                SMC_SET_MAC_CR(cr);
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to