mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 14:13:16 +00:00
8fe5ad5d33
This change makes the names of Broadcom targets consistent by using the common notation based on SoC/CPU ID (which is used internally anyway), bcmXXXX instead of brcmXXXX. This is even used for target TITLE in make menuconfig already, only the short target name used brcm so far. Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
55 lines
1.4 KiB
Diff
55 lines
1.4 KiB
Diff
--- a/drivers/net/ethernet/broadcom/b44.c
|
|
+++ b/drivers/net/ethernet/broadcom/b44.c
|
|
@@ -431,10 +431,34 @@ static void b44_wap54g10_workaround(stru
|
|
error:
|
|
pr_warn("PHY: cannot reset MII transceiver isolate bit\n");
|
|
}
|
|
+
|
|
+static void b44_bcm47xx_workarounds(struct b44 *bp)
|
|
+{
|
|
+ char buf[20];
|
|
+ struct ssb_device *sdev = bp->sdev;
|
|
+
|
|
+ /* Toshiba WRC-1000, Siemens SE505 v1, Askey RT-210W, RT-220W */
|
|
+ if (sdev->bus->sprom.board_num == 100) {
|
|
+ bp->phy_addr = B44_PHY_ADDR_NO_LOCAL_PHY;
|
|
+ } else {
|
|
+ /* WL-HDD */
|
|
+ if (bcm47xx_nvram_getenv("hardware_version", buf, sizeof(buf)) >= 0 &&
|
|
+ !strncmp(buf, "WL300-", strlen("WL300-"))) {
|
|
+ if (sdev->bus->sprom.et0phyaddr == 0 &&
|
|
+ sdev->bus->sprom.et1phyaddr == 1)
|
|
+ bp->phy_addr = B44_PHY_ADDR_NO_LOCAL_PHY;
|
|
+ }
|
|
+ }
|
|
+ return;
|
|
+}
|
|
#else
|
|
static inline void b44_wap54g10_workaround(struct b44 *bp)
|
|
{
|
|
}
|
|
+
|
|
+static inline void b44_bcm47xx_workarounds(struct b44 *bp)
|
|
+{
|
|
+}
|
|
#endif
|
|
|
|
static int b44_setup_phy(struct b44 *bp)
|
|
@@ -443,6 +467,7 @@ static int b44_setup_phy(struct b44 *bp)
|
|
int err;
|
|
|
|
b44_wap54g10_workaround(bp);
|
|
+ b44_bcm47xx_workarounds(bp);
|
|
|
|
if (bp->flags & B44_FLAG_EXTERNAL_PHY)
|
|
return 0;
|
|
@@ -2179,6 +2204,8 @@ static int b44_get_invariants(struct b44
|
|
* valid PHY address. */
|
|
bp->phy_addr &= 0x1F;
|
|
|
|
+ b44_bcm47xx_workarounds(bp);
|
|
+
|
|
memcpy(bp->dev->dev_addr, addr, ETH_ALEN);
|
|
|
|
if (!is_valid_ether_addr(&bp->dev->dev_addr[0])){
|