brcm47xx: BGMAC Driver corrections
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 7 Jan 2013 22:51:39 +0000 (22:51 +0000)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 7 Jan 2013 22:51:39 +0000 (22:51 +0000)
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 <nlhintz@hotmail.com>
SVN-Revision: 35052

target/linux/brcm47xx/patches-3.6/750-bgmac.patch

index 13698dbf74a1af7ead8fa05133f92af793bdbfa3..7668ad38b7c85f8c81085cb709d777b8d83ce063 100644 (file)
 +      if (bgmac->phyaddr == BGMAC_PHY_NOREGS)
 +              return;
 +
-+      if (bgmac->autoneg)
++      if (!bgmac->autoneg)
 +              return;
 +
 +      /* Adv selected 10/100 speeds */
 +      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: