I am porting the e1000 driver to C++ and have some problems in getting the forced speed and duplex settings right. I understand that when forcing link speed, to reflect the PHY settings in MAC, we use PSSTAT.SPEED. [http://www.linux-m32r.org/lxr/http/source/drivers/net/e1000/e1000_hw.c#L2483] Can anyone tell where does PSSTAT.SPEED (the PHY) get the value from ? I am asking this because I have set both CTRL and PHY_CTRL[ as in e1000_phy_force_speed_duplex()] to 100Mbps and even after the PHY reset, PSSTAT.SPEED is *not* reflecting 100Mbps. Note that I have also made sure that the other PHY and MAC initializations are done as per e1000 [initializations that happen from and after e1000_setup_copper_link()]. Why isn't the PHY taking the settings? Am I missing something ? Any pointers are welcome. Thanks in advance, K -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/