rename the Profile template that the image builder uses to prevent name conflicts...
[openwrt.git] / target / linux / brcm-2.6 / patches / 010-bcm47xx-cam_absent.patch
1 diff -urN linux-2.6.19.ref/drivers/net/b44.c linux-2.6.19/drivers/net/b44.c
2 --- linux-2.6.19.ref/drivers/net/b44.c  2006-12-04 21:34:14.000000000 +0100
3 +++ linux-2.6.19/drivers/net/b44.c      2006-12-04 21:34:19.000000000 +0100
4 @@ -1445,6 +1445,7 @@
5  {
6         struct b44 *bp = netdev_priv(dev);
7         struct sockaddr *addr = p;
8 +       u32 val;
9  
10         if (netif_running(dev))
11                 return -EBUSY;
12 @@ -1455,7 +1456,11 @@
13         memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
14  
15         spin_lock_irq(&bp->lock);
16 -       __b44_set_mac_addr(bp);
17 +
18 +       val = br32(bp, B44_RXCONFIG);
19 +       if (!(val & RXCONFIG_CAM_ABSENT))
20 +               __b44_set_mac_addr(bp);
21 +
22         spin_unlock_irq(&bp->lock);
23  
24         return 0;
25 @@ -1797,7 +1802,7 @@
26  
27         val = br32(bp, B44_RXCONFIG);
28         val &= ~(RXCONFIG_PROMISC | RXCONFIG_ALLMULTI);
29 -       if (dev->flags & IFF_PROMISC) {
30 +       if ((dev->flags & IFF_PROMISC) || (val & RXCONFIG_CAM_ABSENT)) {
31                 val |= RXCONFIG_PROMISC;
32                 bw32(bp, B44_RXCONFIG, val);
33         } else {
34 diff -urN linux-2.6.19.ref/drivers/net/b44.h linux-2.6.19/drivers/net/b44.h
35 --- linux-2.6.19.ref/drivers/net/b44.h  2006-12-04 21:34:14.000000000 +0100
36 +++ linux-2.6.19/drivers/net/b44.h      2006-12-04 21:34:19.000000000 +0100
37 @@ -129,6 +129,7 @@
38  #define  RXCONFIG_FLOW         0x00000020 /* Flow Control Enable */
39  #define  RXCONFIG_FLOW_ACCEPT  0x00000040 /* Accept Unicast Flow Control Frame */
40  #define  RXCONFIG_RFILT                0x00000080 /* Reject Filter */
41 +#define  RXCONFIG_CAM_ABSENT   0x00000100 /* CAM Absent */
42  #define B44_RXMAXLEN   0x0404UL /* EMAC RX Max Packet Length */
43  #define B44_TXMAXLEN   0x0408UL /* EMAC TX Max Packet Length */
44  #define B44_MDIO_CTRL  0x0410UL /* EMAC MDIO Control */