Cleanup.

Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>

Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx.h
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx.h   
2007-08-08 22:17:10.000000000 +0200
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx.h        
2007-08-08 22:17:20.000000000 +0200
@@ -1,20 +1,11 @@
 #ifndef BCM43xx_H_
 #define BCM43xx_H_
 
-#include <linux/hw_random.h>
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
 #include <linux/interrupt.h>
-#include <linux/stringify.h>
-#include <linux/netdevice.h>
-#include <linux/pci.h>
-#include <asm/atomic.h>
-#include <asm/io.h>
-
+#include <linux/hw_random.h>
 #include <linux/ssb/ssb.h>
-#include <linux/ssb/ssb_driver_chipcommon.h>
-
-#include <linux/wireless.h>
 #include <net/mac80211.h>
 
 #include "bcm43xx_debugfs.h"
@@ -30,10 +21,6 @@
 #endif
 
 
-#define BCM43xx_IRQWAIT_MAX_RETRIES    50
-
-#define BCM43xx_IO_SIZE                        8192
-
 #define BCM43xx_RX_MAX_SSI             60
 
 /* MMIO offsets */
@@ -50,7 +37,6 @@
 #define BCM43xx_MMIO_DMA5_REASON       0x48
 #define BCM43xx_MMIO_DMA5_IRQ_MASK     0x4C
 #define BCM43xx_MMIO_MACCTL            0x120
-#define BCM43xx_MMIO_STATUS_BITFIELD   0x120//TODO replace all instances by 
MACCTL
 #define BCM43xx_MMIO_STATUS2_BITFIELD  0x124
 #define BCM43xx_MMIO_GEN_IRQ_REASON    0x128
 #define BCM43xx_MMIO_GEN_IRQ_MASK      0x12C
@@ -336,25 +322,6 @@ enum {
 #define BCM43xx_MACCTL_DISCPMQ         0x40000000 /* Discard Power Management 
Queue */
 #define BCM43xx_MACCTL_GMODE           0x80000000 /* G Mode */
 
-/* StatusBitField *///FIXME rename these all
-#define BCM43xx_SBF_MAC_ENABLED                0x00000001
-#define BCM43xx_SBF_2                  0x00000002 /*FIXME: fix name*/
-#define BCM43xx_SBF_CORE_READY         0x00000004
-#define BCM43xx_SBF_400                        0x00000400 /*FIXME: fix name*/
-#define BCM43xx_SBF_4000               0x00004000 /*FIXME: fix name*/
-#define BCM43xx_SBF_8000               0x00008000 /*FIXME: fix name*/
-#define BCM43xx_SBF_XFER_REG_BYTESWAP  0x00010000
-#define BCM43xx_SBF_MODE_NOTADHOC      0x00020000
-#define BCM43xx_SBF_MODE_AP            0x00040000
-#define BCM43xx_SBF_RADIOREG_LOCK      0x00080000
-#define BCM43xx_SBF_MODE_MONITOR       0x00400000
-#define BCM43xx_SBF_MODE_PROMISC       0x01000000
-#define BCM43xx_SBF_PS1                        0x02000000
-#define BCM43xx_SBF_PS2                        0x04000000
-#define BCM43xx_SBF_NO_SSID_BCAST      0x08000000
-#define BCM43xx_SBF_TIME_UPDATE                0x10000000
-#define BCM43xx_SBF_80000000           0x80000000 /*FIXME: fix name*/
-
 /* 802.11 core specific TM State Low flags */
 #define BCM43xx_TMSLOW_GMODE           0x20000000 /* G Mode Enable */
 #define BCM43xx_TMSLOW_PLLREFSEL       0x00200000 /* PLL Frequency Reference 
Select */
@@ -441,8 +408,6 @@ enum {
 };
 
 
-struct net_device;
-struct pci_dev;
 struct bcm43xx_dmaring;
 struct bcm43xx_pioqueue;
 
Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c      
2007-08-08 22:17:10.000000000 +0200
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_main.c   
2007-08-08 22:17:20.000000000 +0200
@@ -263,12 +263,12 @@ void bcmdbg(struct bcm43xx_wl *wl, const
 
 static void bcm43xx_ram_write(struct bcm43xx_wldev *dev, u16 offset, u32 val)
 {
-       u32 status;
+       u32 macctl;
 
        BCM43xx_WARN_ON(offset % 4 != 0);
 
-       status = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       if (status & BCM43xx_SBF_XFER_REG_BYTESWAP)
+       macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
+       if (macctl & BCM43xx_MACCTL_BE)
                val = swab32(val);
 
        bcm43xx_write32(dev, BCM43xx_MMIO_RAM_CONTROL, offset);
@@ -462,21 +462,24 @@ void bcm43xx_tsf_read(struct bcm43xx_wld
 
 static void bcm43xx_time_lock(struct bcm43xx_wldev *dev)
 {
-       u32 status;
+       u32 macctl;
 
-       status = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       status |= BCM43xx_SBF_TIME_UPDATE;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, status);
-       mmiowb();
+       macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
+       macctl |= BCM43xx_MACCTL_TBTTHOLD;
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL, macctl);
+       /* Commit the write */
+       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
 }
 
 static void bcm43xx_time_unlock(struct bcm43xx_wldev *dev)
 {
-       u32 status;
+       u32 macctl;
 
-       status = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       status &= ~BCM43xx_SBF_TIME_UPDATE;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, status);
+       macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
+       macctl &= ~BCM43xx_MACCTL_TBTTHOLD;
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL, macctl);
+       /* Commit the write */
+       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
 }
 
 static void bcm43xx_tsf_write_locked(struct bcm43xx_wldev *dev, u64 tsf)
@@ -674,7 +677,8 @@ void bcm43xx_dummy_transmission(struct b
        for (i = 0; i < 5; i++)
                bcm43xx_ram_write(dev, i * 4, buffer[i]);
 
-       bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD); /* dummy read */
+       /* Commit writes */
+       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
 
        bcm43xx_write16(dev, 0x0568, 0x0000);
        bcm43xx_write16(dev, 0x07C0, 0x0000);
@@ -1722,7 +1726,10 @@ static int bcm43xx_upload_microcode(stru
        }
 
        bcm43xx_write32(dev, BCM43xx_MMIO_GEN_IRQ_REASON, BCM43xx_IRQ_ALL);
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, 0x00020402);
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                       BCM43xx_MACCTL_PSM_RUN |
+                       BCM43xx_MACCTL_IHR_ENABLED |
+                       BCM43xx_MACCTL_INFRA);
 
        /* Wait for the microcode to load and respond */
        i = 0;
@@ -1731,7 +1738,7 @@ static int bcm43xx_upload_microcode(stru
                if (tmp == BCM43xx_IRQ_MAC_SUSPENDED)
                        break;
                i++;
-               if (i >= BCM43xx_IRQWAIT_MAX_RETRIES) {
+               if (i >= 50) {
                        bcmerr(dev->wl, "Microcode not responding\n");
                        err = -ENODEV;
                        goto out;
@@ -1754,7 +1761,7 @@ static int bcm43xx_upload_microcode(stru
                bcmerr(dev->wl, "YOUR FIRMWARE IS TOO OLD. Firmware from "
                       "binary drivers older than version 4.x is unsupported. "
                       "You must upgrade your firmware files.\n");
-               bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, 0);
+               bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL, 0);
                err = -EOPNOTSUPP;
                goto out;
        }
@@ -1831,9 +1838,9 @@ static int bcm43xx_gpio_init(struct bcm4
        struct ssb_device *gpiodev, *pcidev = NULL;
        u32 mask, set;
 
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD,
-                       bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD)
-                       & 0xFFFF3FFF);
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                       & ~BCM43xx_MACCTL_GPOUTSMSK);
 
        bcm43xx_leds_switch_all(dev, 0);
        bcm43xx_write16(dev, BCM43xx_MMIO_GPIO_MASK,
@@ -1897,13 +1904,14 @@ void bcm43xx_mac_enable(struct bcm43xx_w
        dev->mac_suspended--;
        BCM43xx_WARN_ON(dev->mac_suspended < 0);
        if (dev->mac_suspended == 0) {
-               bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD,
-                               bcm43xx_read32(dev, 
BCM43xx_MMIO_STATUS_BITFIELD)
-                               | BCM43xx_SBF_MAC_ENABLED);
+               bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                               bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                               | BCM43xx_MACCTL_ENABLED);
                bcm43xx_write32(dev, BCM43xx_MMIO_GEN_IRQ_REASON,
                                BCM43xx_IRQ_MAC_SUSPENDED);
-               bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD); /* dummy 
read */
-               bcm43xx_read32(dev, BCM43xx_MMIO_GEN_IRQ_REASON); /* dummy read 
*/
+               /* Commit writes */
+               bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
+               bcm43xx_read32(dev, BCM43xx_MMIO_GEN_IRQ_REASON);
                bcm43xx_power_saving_ctl_bits(dev, -1, -1);
        }
 }
@@ -1917,11 +1925,11 @@ void bcm43xx_mac_suspend(struct bcm43xx_
        BCM43xx_WARN_ON(dev->mac_suspended < 0);
        if (dev->mac_suspended == 0) {
                bcm43xx_power_saving_ctl_bits(dev, -1, 1);
-               bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD,
-                               bcm43xx_read32(dev, 
BCM43xx_MMIO_STATUS_BITFIELD)
-                               & ~BCM43xx_SBF_MAC_ENABLED);
+               bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                               bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                               & ~BCM43xx_MACCTL_ENABLED);
                /* force pci to flush the write */
-               bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
+               bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
                for (i = 10000; i; i--) {
                        tmp = bcm43xx_read32(dev, BCM43xx_MMIO_GEN_IRQ_REASON);
                        if (tmp & BCM43xx_IRQ_MAC_SUSPENDED)
@@ -2100,9 +2108,9 @@ static int bcm43xx_chip_init(struct bcm4
        u32 value32;
        u16 value16;
 
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD,
-                       BCM43xx_SBF_CORE_READY
-                       | BCM43xx_SBF_400);
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                       BCM43xx_MACCTL_PSM_JMP0 |
+                       BCM43xx_MACCTL_IHR_ENABLED);
 
        err = bcm43xx_request_firmware(dev);
        if (err)
@@ -2144,16 +2152,16 @@ static int bcm43xx_chip_init(struct bcm4
        if (dev->dev->id.revision < 5)
                bcm43xx_write32(dev, 0x010C, 0x01000000);
 
-       value32 = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       value32 &= ~ BCM43xx_SBF_MODE_NOTADHOC;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, value32);
-       value32 = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       value32 |= BCM43xx_SBF_MODE_NOTADHOC;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, value32);
-
-       value32 = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       value32 |= 0x100000;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, value32);
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                       & ~BCM43xx_MACCTL_INFRA);
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                       | BCM43xx_MACCTL_INFRA);
+       /* Let beacons come through */
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                       | BCM43xx_MACCTL_BEACPROMISC);
 
        if (bcm43xx_using_pio(dev)) {
                bcm43xx_write32(dev, 0x0210, 0x00000100);
@@ -2776,13 +2784,13 @@ static int bcm43xx_dev_config(struct iee
 
        /* Hide/Show the SSID (AP mode only). */
        if (conf->flags & IEEE80211_CONF_SSID_HIDDEN) {
-               bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD,
-                               bcm43xx_read32(dev, 
BCM43xx_MMIO_STATUS_BITFIELD)
-                               | BCM43xx_SBF_NO_SSID_BCAST);
+               bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                               bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                               | BCM43xx_MACCTL_CLOSEDNET);
        } else {
-               bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD,
-                               bcm43xx_read32(dev, 
BCM43xx_MMIO_STATUS_BITFIELD)
-                               & ~BCM43xx_SBF_NO_SSID_BCAST);
+               bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                               bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                               & ~BCM43xx_MACCTL_CLOSEDNET);
        }
 
        /* Antennas for RX and management frame TX. */
Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.c
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.c       
2007-08-08 22:17:10.000000000 +0200
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_phy.c    
2007-08-08 22:17:20.000000000 +0200
@@ -232,10 +232,12 @@ void bcm43xx_raw_phy_lock(struct bcm43xx
        struct bcm43xx_phy *phy = &dev->phy;
 
        BCM43xx_WARN_ON(!irqs_disabled());
-       if (bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD) == 0) {
-               phy->locked = 0;
-               return;
-       }
+
+       /* We had a check for MACCTL==0 here, but I think that doesn't
+        * make sense, as MACCTL is never 0 when this is called.
+        *      --mb */
+       BCM43xx_WARN_ON(bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL) == 0);
+
        if (dev->dev->id.revision < 3) {
                bcm43xx_mac_suspend(dev);
                spin_lock(&phy->lock);
@@ -494,7 +496,9 @@ void bcm43xx_phy_early_init(struct bcm43
        default_radio_attenuation(dev, &phy->rfatt);
        phy->tx_control = (default_tx_control(dev) << 4);
 
-       bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD); /* Dummy read. */
+       /* Commit previous writes */
+       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
+
        if (phy->type == BCM43xx_PHYTYPE_B ||
            phy->type == BCM43xx_PHYTYPE_G) {
                generate_rfatt_list(dev, &lo->rfatt_list);
@@ -2445,24 +2449,27 @@ u16 channel2freq_a(u8 channel)
 
 void bcm43xx_radio_lock(struct bcm43xx_wldev *dev)
 {
-       u32 status;
+       u32 macctl;
 
-       status = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       status |= BCM43xx_SBF_RADIOREG_LOCK;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, status);
-       mmiowb();
+       macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
+       macctl |= BCM43xx_MACCTL_RADIOLOCK;
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL, macctl);
+       /* Commit the write and wait for the device
+        * to exit any radio register access. */
+       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
        udelay(10);
 }
 
 void bcm43xx_radio_unlock(struct bcm43xx_wldev *dev)
 {
-       u32 status;
+       u32 macctl;
 
-       bcm43xx_read16(dev, BCM43xx_MMIO_PHY_VER); /* dummy read */
-       status = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       status &= ~BCM43xx_SBF_RADIOREG_LOCK;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, status);
-       mmiowb();
+       /* Commit any write */
+       bcm43xx_read16(dev, BCM43xx_MMIO_PHY_VER);
+       /* unlock */
+       macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
+       macctl &= ~BCM43xx_MACCTL_RADIOLOCK;
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL, macctl);
 }
 
 u16 bcm43xx_radio_read16(struct bcm43xx_wldev *dev, u16 offset)
Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.c
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.c       
2007-08-08 22:17:10.000000000 +0200
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_pio.c    
2007-08-08 22:17:20.000000000 +0200
@@ -312,7 +312,6 @@ struct bcm43xx_pioqueue * bcm43xx_setup_
                                                 u16 pio_mmio_base)
 {
        struct bcm43xx_pioqueue *queue;
-       u32 value;
        u16 qsize;
 
        queue = kzalloc(sizeof(*queue), GFP_KERNEL);
@@ -329,9 +328,9 @@ struct bcm43xx_pioqueue * bcm43xx_setup_
        tasklet_init(&queue->txtask, tx_tasklet,
                     (unsigned long)queue);
 
-       value = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
-       value &= ~BCM43xx_SBF_XFER_REG_BYTESWAP;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, value);
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL,
+                       bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL)
+                       & ~BCM43xx_MACCTL_BE);
 
        qsize = bcm43xx_read16(dev, queue->mmio_base + BCM43xx_PIO_TXQBUFSIZE);
        if (qsize == 0) {
Index: wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_power.c
===================================================================
--- wireless-dev.orig/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_power.c     
2007-08-08 22:09:47.000000000 +0200
+++ wireless-dev/drivers/net/wireless/bcm43xx-mac80211/bcm43xx_power.c  
2007-08-08 22:17:20.000000000 +0200
@@ -47,7 +47,7 @@ void bcm43xx_power_saving_ctl_bits(struc
                                   int bit25, int bit26)
 {
        int i;
-       u32 status;
+       u32 macctl;
 
 //FIXME: Force 25 to off and 26 to on for now:
 bit25 = 0;
@@ -62,16 +62,16 @@ bit26 = 1;
                //      or we are associated, or FIXME, or the latest PS-Poll 
packet sent was
                //      successful, set bit26
        }
-       status = bcm43xx_read32(dev, BCM43xx_MMIO_STATUS_BITFIELD);
+       macctl = bcm43xx_read32(dev, BCM43xx_MMIO_MACCTL);
        if (bit25)
-               status |= BCM43xx_SBF_PS1;
+               macctl |= BCM43xx_MACCTL_HWPS;
        else
-               status &= ~BCM43xx_SBF_PS1;
+               macctl &= ~BCM43xx_MACCTL_HWPS;
        if (bit26)
-               status |= BCM43xx_SBF_PS2;
+               macctl |= BCM43xx_MACCTL_AWAKE;
        else
-               status &= ~BCM43xx_SBF_PS2;
-       bcm43xx_write32(dev, BCM43xx_MMIO_STATUS_BITFIELD, status);
+               macctl &= ~BCM43xx_MACCTL_AWAKE;
+       bcm43xx_write32(dev, BCM43xx_MMIO_MACCTL, macctl);
        if (bit26 && dev->dev->id.revision >= 5) {
                for (i = 0; i < 100; i++) {
                        if (bcm43xx_shm_read32(dev, BCM43xx_SHM_SHARED, 0x0040) 
!= 4)

--

_______________________________________________
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to