diff options
Diffstat (limited to 'target/linux/brcm-2.4/patches/010-bcm47xx-cam_absent.patch')
-rw-r--r-- | target/linux/brcm-2.4/patches/010-bcm47xx-cam_absent.patch | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/target/linux/brcm-2.4/patches/010-bcm47xx-cam_absent.patch b/target/linux/brcm-2.4/patches/010-bcm47xx-cam_absent.patch deleted file mode 100644 index 18799cbc76..0000000000 --- a/target/linux/brcm-2.4/patches/010-bcm47xx-cam_absent.patch +++ /dev/null @@ -1,42 +0,0 @@ ---- a/drivers/net/b44.h -+++ b/drivers/net/b44.h -@@ -122,6 +122,7 @@ - #define RXCONFIG_FLOW 0x00000020 /* Flow Control Enable */ - #define RXCONFIG_FLOW_ACCEPT 0x00000040 /* Accept Unicast Flow Control Frame */ - #define RXCONFIG_RFILT 0x00000080 /* Reject Filter */ -+#define RXCONFIG_CAM_ABSENT 0x00000100 /* CAM Absent */ - #define B44_RXMAXLEN 0x0404UL /* EMAC RX Max Packet Length */ - #define B44_TXMAXLEN 0x0408UL /* EMAC TX Max Packet Length */ - #define B44_MDIO_CTRL 0x0410UL /* EMAC MDIO Control */ ---- a/drivers/net/b44.c -+++ b/drivers/net/b44.c -@@ -1299,6 +1299,7 @@ static int b44_set_mac_addr(struct net_d - { - struct b44 *bp = dev->priv; - struct sockaddr *addr = p; -+ u32 val; - - if (netif_running(dev)) - return -EBUSY; -@@ -1306,7 +1307,11 @@ static int b44_set_mac_addr(struct net_d - memcpy(dev->dev_addr, addr->sa_data, dev->addr_len); - - spin_lock_irq(&bp->lock); -- __b44_set_mac_addr(bp); -+ -+ val = br32(B44_RXCONFIG); -+ if (!(val & RXCONFIG_CAM_ABSENT)) -+ __b44_set_mac_addr(bp); -+ - spin_unlock_irq(&bp->lock); - - return 0; -@@ -1493,7 +1498,7 @@ static void __b44_set_rx_mode(struct net - - val = br32(B44_RXCONFIG); - val &= ~(RXCONFIG_PROMISC | RXCONFIG_ALLMULTI); -- if (dev->flags & IFF_PROMISC) { -+ if ((dev->flags & IFF_PROMISC) || (val & RXCONFIG_CAM_ABSENT)) { - val |= RXCONFIG_PROMISC; - bw32(B44_RXCONFIG, val); - } else { |