From: Hauke Mehrtens Date: Mon, 7 Jan 2013 22:51:39 +0000 (+0000) Subject: brcm47xx: BGMAC Driver corrections X-Git-Tag: reboot~11667 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=7b0af8193b7c301f48bd00c4ecbcf22014023077;p=oweals%2Fopenwrt.git brcm47xx: BGMAC Driver corrections 1) Fix what appears to be a logic error in bgmac_phy_advertise. 2) Fix bgmac_ioctl to use passed phy_id; needed for switch-robo interface w/ the driver to work correctly. I still have the issue with the interface always being HD when the speed/duplex is set manually (e.g., echo "100FD" > /proc/switch/eth0/port/N/media). Signed-off-by: Nathan Hintz SVN-Revision: 35052 --- diff --git a/target/linux/brcm47xx/patches-3.6/750-bgmac.patch b/target/linux/brcm47xx/patches-3.6/750-bgmac.patch index 13698dbf74..7668ad38b7 100644 --- a/target/linux/brcm47xx/patches-3.6/750-bgmac.patch +++ b/target/linux/brcm47xx/patches-3.6/750-bgmac.patch @@ -608,7 +608,7 @@ + if (bgmac->phyaddr == BGMAC_PHY_NOREGS) + return; + -+ if (bgmac->autoneg) ++ if (!bgmac->autoneg) + return; + + /* Adv selected 10/100 speeds */ @@ -1097,13 +1097,13 @@ + case SIOCGMIIREG: + if (!netif_running(net_dev)) + return -EAGAIN; -+ data->val_out = bgmac_phy_read(bgmac, bgmac->phyaddr, ++ data->val_out = bgmac_phy_read(bgmac, data->phy_id, + data->reg_num & 0x1f); + return 0; + case SIOCSMIIREG: + if (!netif_running(net_dev)) + return -EAGAIN; -+ bgmac_phy_write(bgmac, bgmac->phyaddr, data->reg_num & 0x1f, ++ bgmac_phy_write(bgmac, data->phy_id, data->reg_num & 0x1f, + data->val_in); + return 0; + default: