]> err.no Git - linux-2.6/blobdiff - drivers/net/wireless/bcm43xx/bcm43xx_main.c
[PATCH] bcm43xx: Remove dead configuration variable CONFIG_947XX
[linux-2.6] / drivers / net / wireless / bcm43xx / bcm43xx_main.c
index e594af46ff055f2f59bca4555f64ea0321f3ef17..ef6b253a92cec27d09039af365888cf18d3783d3 100644 (file)
@@ -61,10 +61,6 @@ MODULE_AUTHOR("Stefano Brivio");
 MODULE_AUTHOR("Michael Buesch");
 MODULE_LICENSE("GPL");
 
-#ifdef CONFIG_BCM947XX
-extern char *nvram_get(char *name);
-#endif
-
 #if defined(CONFIG_BCM43XX_DMA) && defined(CONFIG_BCM43XX_PIO)
 static int modparam_pio;
 module_param_named(pio, modparam_pio, int, 0444);
@@ -142,10 +138,6 @@ MODULE_PARM_DESC(fwpostfix, "Postfix for .fw files. Useful for using multiple fi
        { PCI_VENDOR_ID_BROADCOM, 0x4324, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
        /* Broadcom 43XG 802.11b/g */
        { PCI_VENDOR_ID_BROADCOM, 0x4325, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
-#ifdef CONFIG_BCM947XX
-       /* SB bus on BCM947xx */
-       { PCI_VENDOR_ID_BROADCOM, 0x0800, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
-#endif
        { 0 },
 };
 MODULE_DEVICE_TABLE(pci, bcm43xx_pci_tbl);
@@ -786,9 +778,6 @@ static int bcm43xx_sprom_extract(struct bcm43xx_private *bcm)
 {
        u16 value;
        u16 *sprom;
-#ifdef CONFIG_BCM947XX
-       char *c;
-#endif
 
        sprom = kzalloc(BCM43xx_SPROM_SIZE * sizeof(u16),
                        GFP_KERNEL);
@@ -796,28 +785,7 @@ static int bcm43xx_sprom_extract(struct bcm43xx_private *bcm)
                printk(KERN_ERR PFX "sprom_extract OOM\n");
                return -ENOMEM;
        }
-#ifdef CONFIG_BCM947XX
-       sprom[BCM43xx_SPROM_BOARDFLAGS2] = atoi(nvram_get("boardflags2"));
-       sprom[BCM43xx_SPROM_BOARDFLAGS] = atoi(nvram_get("boardflags"));
-
-       if ((c = nvram_get("il0macaddr")) != NULL)
-               e_aton(c, (char *) &(sprom[BCM43xx_SPROM_IL0MACADDR]));
-
-       if ((c = nvram_get("et1macaddr")) != NULL)
-               e_aton(c, (char *) &(sprom[BCM43xx_SPROM_ET1MACADDR]));
-
-       sprom[BCM43xx_SPROM_PA0B0] = atoi(nvram_get("pa0b0"));
-       sprom[BCM43xx_SPROM_PA0B1] = atoi(nvram_get("pa0b1"));
-       sprom[BCM43xx_SPROM_PA0B2] = atoi(nvram_get("pa0b2"));
-
-       sprom[BCM43xx_SPROM_PA1B0] = atoi(nvram_get("pa1b0"));
-       sprom[BCM43xx_SPROM_PA1B1] = atoi(nvram_get("pa1b1"));
-       sprom[BCM43xx_SPROM_PA1B2] = atoi(nvram_get("pa1b2"));
-
-       sprom[BCM43xx_SPROM_BOARDREV] = atoi(nvram_get("boardrev"));
-#else
        bcm43xx_sprom_read(bcm, sprom);
-#endif
 
        /* boardflags2 */
        value = sprom[BCM43xx_SPROM_BOARDFLAGS2];
@@ -946,6 +914,7 @@ static int bcm43xx_geo_init(struct bcm43xx_private *bcm)
        u8 channel;
        struct bcm43xx_phyinfo *phy;
        const char *iso_country;
+       u8 max_bg_channel;
 
        geo = kzalloc(sizeof(*geo), GFP_KERNEL);
        if (!geo)
@@ -967,6 +936,23 @@ static int bcm43xx_geo_init(struct bcm43xx_private *bcm)
        }
        iso_country = bcm43xx_locale_iso(bcm->sprom.locale);
 
+/* set the maximum channel based on locale set in sprom or witle locale option */
+       switch (bcm->sprom.locale) {
+       case BCM43xx_LOCALE_THAILAND:
+       case BCM43xx_LOCALE_ISRAEL:
+       case BCM43xx_LOCALE_JORDAN:
+       case BCM43xx_LOCALE_USA_CANADA_ANZ:
+       case BCM43xx_LOCALE_USA_LOW:
+               max_bg_channel = 11;
+               break;
+       case BCM43xx_LOCALE_JAPAN:
+       case BCM43xx_LOCALE_JAPAN_HIGH:
+               max_bg_channel = 14;
+               break;
+       default:
+               max_bg_channel = 13;
+       }
+
        if (have_a) {
                for (i = 0, channel = IEEE80211_52GHZ_MIN_CHANNEL;
                      channel <= IEEE80211_52GHZ_MAX_CHANNEL; channel++) {
@@ -978,7 +964,7 @@ static int bcm43xx_geo_init(struct bcm43xx_private *bcm)
        }
        if (have_bg) {
                for (i = 0, channel = IEEE80211_24GHZ_MIN_CHANNEL;
-                     channel <= IEEE80211_24GHZ_MAX_CHANNEL; channel++) {
+                     channel <= max_bg_channel; channel++) {
                        chan = &geo->bg[i++];
                        chan->freq = bcm43xx_channel_to_freq_bg(channel);
                        chan->channel = channel;
@@ -1207,12 +1193,6 @@ static int _switch_core(struct bcm43xx_private *bcm, int core)
                        goto error;
                udelay(10);
        }
-#ifdef CONFIG_BCM947XX
-       if (bcm->pci_dev->bus->number == 0)
-               bcm->current_core_offset = 0x1000 * core;
-       else
-               bcm->current_core_offset = 0;
-#endif
 
        return 0;
 error:
@@ -1369,19 +1349,6 @@ void bcm43xx_wireless_core_reset(struct bcm43xx_private *bcm, int connect_phy)
 
        if ((bcm43xx_core_enabled(bcm)) &&
            !bcm43xx_using_pio(bcm)) {
-//FIXME: Do we _really_ want #ifndef CONFIG_BCM947XX here?
-#if 0
-#ifndef CONFIG_BCM947XX
-               /* reset all used DMA controllers. */
-               bcm43xx_dmacontroller_tx_reset(bcm, BCM43xx_MMIO_DMA1_BASE);
-               bcm43xx_dmacontroller_tx_reset(bcm, BCM43xx_MMIO_DMA2_BASE);
-               bcm43xx_dmacontroller_tx_reset(bcm, BCM43xx_MMIO_DMA3_BASE);
-               bcm43xx_dmacontroller_tx_reset(bcm, BCM43xx_MMIO_DMA4_BASE);
-               bcm43xx_dmacontroller_rx_reset(bcm, BCM43xx_MMIO_DMA1_BASE);
-               if (bcm->current_core->rev < 5)
-                       bcm43xx_dmacontroller_rx_reset(bcm, BCM43xx_MMIO_DMA4_BASE);
-#endif
-#endif
        }
        if (bcm43xx_status(bcm) == BCM43xx_STAT_SHUTTINGDOWN) {
                bcm43xx_write32(bcm, BCM43xx_MMIO_STATUS_BITFIELD,
@@ -1389,7 +1356,7 @@ void bcm43xx_wireless_core_reset(struct bcm43xx_private *bcm, int connect_phy)
                                & ~(BCM43xx_SBF_MAC_ENABLED | 0x00000002));
        } else {
                if (connect_phy)
-                       flags |= 0x20000000;
+                       flags |= BCM43xx_SBTMSTATELOW_G_MODE_ENABLE;
                bcm43xx_phy_connect(bcm, connect_phy);
                bcm43xx_core_enable(bcm, flags);
                bcm43xx_write16(bcm, 0x03E6, 0x0000);
@@ -1858,9 +1825,6 @@ static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id)
 
        spin_lock(&bcm->irq_lock);
 
-       assert(bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED);
-       assert(bcm->current_core->id == BCM43xx_COREID_80211);
-
        reason = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON);
        if (reason == 0xffffffff) {
                /* irq not for us (shared irq) */
@@ -1871,6 +1835,9 @@ static irqreturn_t bcm43xx_interrupt_handler(int irq, void *dev_id)
        if (!reason)
                goto out;
 
+       assert(bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED);
+       assert(bcm->current_core->id == BCM43xx_COREID_80211);
+
        bcm->dma_reason[0] = bcm43xx_read32(bcm, BCM43xx_MMIO_DMA0_REASON)
                             & 0x0001DC00;
        bcm->dma_reason[1] = bcm43xx_read32(bcm, BCM43xx_MMIO_DMA1_REASON)
@@ -2122,32 +2089,11 @@ out:
        return err;
 }
 
-#ifdef CONFIG_BCM947XX
-static struct pci_device_id bcm43xx_47xx_ids[] = {
-       { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4324) },
-       { 0 }
-};
-#endif
-
 static int bcm43xx_initialize_irq(struct bcm43xx_private *bcm)
 {
        int err;
 
        bcm->irq = bcm->pci_dev->irq;
-#ifdef CONFIG_BCM947XX
-       if (bcm->pci_dev->bus->number == 0) {
-               struct pci_dev *d;
-               struct pci_device_id *id;
-               for (id = bcm43xx_47xx_ids; id->vendor; id++) {
-                       d = pci_get_device(id->vendor, id->device, NULL);
-                       if (d != NULL) {
-                               bcm->irq = d->irq;
-                               pci_dev_put(d);
-                               break;
-                       }
-               }
-       }
-#endif
        err = request_irq(bcm->irq, bcm43xx_interrupt_handler,
                          IRQF_SHARED, KBUILD_MODNAME, bcm);
        if (err)
@@ -2627,10 +2573,6 @@ static int bcm43xx_probe_cores(struct bcm43xx_private *bcm)
                        chip_id_16 = 0x4610;
                else if ((pci_device >= 0x4710) && (pci_device <= 0x4715))
                        chip_id_16 = 0x4710;
-#ifdef CONFIG_BCM947XX
-               else if ((pci_device >= 0x4320) && (pci_device <= 0x4325))
-                       chip_id_16 = 0x4309;
-#endif
                else {
                        printk(KERN_ERR PFX "Could not determine Chip ID\n");
                        return -ENODEV;
@@ -3586,7 +3528,7 @@ int bcm43xx_select_wireless_core(struct bcm43xx_private *bcm,
                u32 sbtmstatelow;
 
                sbtmstatelow = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATELOW);
-               sbtmstatelow |= 0x20000000;
+               sbtmstatelow |= BCM43xx_SBTMSTATELOW_G_MODE_ENABLE;
                bcm43xx_write32(bcm, BCM43xx_CIR_SBTMSTATELOW, sbtmstatelow);
        }
        err = wireless_core_up(bcm, 1);
@@ -4126,11 +4068,6 @@ static int __devinit bcm43xx_init_one(struct pci_dev *pdev,
        struct bcm43xx_private *bcm;
        int err;
 
-#ifdef CONFIG_BCM947XX
-       if ((pdev->bus->number == 0) && (pdev->device != 0x0800))
-               return -ENODEV;
-#endif
-
 #ifdef DEBUG_SINGLE_DEVICE_ONLY
        if (strcmp(pci_name(pdev), DEBUG_SINGLE_DEVICE_ONLY))
                return -ENODEV;