b43: LCN-PHY: tweaks for channel switching
[deliverable/linux.git] / drivers / net / wireless / b43 / main.c
index b5e83057dab3719f38afc558dafc04811ce37e9e..24077023d4846d0af06c68d18d37d0beedb1eef1 100644 (file)
@@ -7,6 +7,7 @@
   Copyright (c) 2005-2009 Michael Buesch <m@bues.ch>
   Copyright (c) 2005 Danny van Dyk <kugelfang@gentoo.org>
   Copyright (c) 2005 Andreas Jaggi <andreas.jaggi@waterwave.ch>
+  Copyright (c) 2010-2011 Rafał Miłecki <zajec5@gmail.com>
 
   SDIO support
   Copyright (c) 2009 Albert Herranz <albert_herranz@yahoo.es>
@@ -64,9 +65,9 @@ MODULE_AUTHOR("Martin Langer");
 MODULE_AUTHOR("Stefano Brivio");
 MODULE_AUTHOR("Michael Buesch");
 MODULE_AUTHOR("Gábor Stefanik");
+MODULE_AUTHOR("Rafał Miłecki");
 MODULE_LICENSE("GPL");
 
-MODULE_FIRMWARE(B43_SUPPORTED_FIRMWARE_ID);
 MODULE_FIRMWARE("b43/ucode11.fw");
 MODULE_FIRMWARE("b43/ucode13.fw");
 MODULE_FIRMWARE("b43/ucode14.fw");
@@ -108,7 +109,7 @@ int b43_modparam_verbose = B43_VERBOSITY_DEFAULT;
 module_param_named(verbose, b43_modparam_verbose, int, 0644);
 MODULE_PARM_DESC(verbose, "Log message verbosity: 0=error, 1=warn, 2=info(default), 3=debug");
 
-static int b43_modparam_pio = B43_PIO_DEFAULT;
+static int b43_modparam_pio = 0;
 module_param_named(pio, b43_modparam_pio, int, 0644);
 MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO");
 
@@ -2954,6 +2955,7 @@ static void b43_rate_memory_init(struct b43_wldev *dev)
        case B43_PHYTYPE_N:
        case B43_PHYTYPE_LP:
        case B43_PHYTYPE_HT:
+       case B43_PHYTYPE_LCN:
                b43_rate_memory_write(dev, B43_OFDM_RATE_6MB, 1);
                b43_rate_memory_write(dev, B43_OFDM_RATE_12MB, 1);
                b43_rate_memory_write(dev, B43_OFDM_RATE_18MB, 1);
@@ -4132,10 +4134,13 @@ out_unlock:
  * because the core might be gone away while we unlocked the mutex. */
 static struct b43_wldev * b43_wireless_core_stop(struct b43_wldev *dev)
 {
-       struct b43_wl *wl = dev->wl;
+       struct b43_wl *wl;
        struct b43_wldev *orig_dev;
        u32 mask;
 
+       if (!dev)
+               return NULL;
+       wl = dev->wl;
 redo:
        if (!dev || b43_status(dev) < B43_STAT_STARTED)
                return dev;
@@ -4654,8 +4659,13 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
        b43_shm_write16(dev, B43_SHM_SCRATCH, B43_SHM_SC_MAXCONT, 0x3FF);
 
        if (b43_bus_host_is_pcmcia(dev->dev) ||
-           b43_bus_host_is_sdio(dev->dev) ||
-           dev->use_pio) {
+           b43_bus_host_is_sdio(dev->dev)) {
+               dev->__using_pio_transfers = 1;
+               err = b43_pio_init(dev);
+       } else if (dev->use_pio) {
+               b43warn(dev->wl, "Forced PIO by use_pio module parameter. "
+                       "This should not be needed and will result in lower "
+                       "performance.\n");
                dev->__using_pio_transfers = 1;
                err = b43_pio_init(dev);
        } else {
@@ -5455,8 +5465,7 @@ static void b43_print_driverinfo(void)
        feat_sdio = "S";
 #endif
        printk(KERN_INFO "Broadcom 43xx driver loaded "
-              "[ Features: %s%s%s%s%s, Firmware-ID: "
-              B43_SUPPORTED_FIRMWARE_ID " ]\n",
+              "[ Features: %s%s%s%s%s ]\n",
               feat_pci, feat_pcmcia, feat_nphy,
               feat_leds, feat_sdio);
 }
This page took 0.026497 seconds and 5 git commands to generate.