Merge branch 'upstream-fixes' into upstream
authorJohn W. Linville <linville@tuxdriver.com>
Wed, 17 May 2006 18:54:09 +0000 (14:54 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 17 May 2006 18:54:09 +0000 (14:54 -0400)
1  2 
drivers/net/wireless/bcm43xx/bcm43xx_main.c

@@@ -128,15 -128,13 +128,15 @@@ MODULE_PARM_DESC(fwpostfix, "Postfix fo
        static struct pci_device_id bcm43xx_pci_tbl[] = {
        /* Broadcom 4303 802.11b */
        { PCI_VENDOR_ID_BROADCOM, 0x4301, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
 -              /* Broadcom 4307 802.11b */
 +      /* Broadcom 4307 802.11b */
        { PCI_VENDOR_ID_BROADCOM, 0x4307, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
 -              /* Broadcom 4318 802.11b/g */
 +      /* Broadcom 4318 802.11b/g */
        { PCI_VENDOR_ID_BROADCOM, 0x4318, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
 +      /* Broadcom 4319 802.11a/b/g */
 +      { PCI_VENDOR_ID_BROADCOM, 0x4319, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
        /* Broadcom 4306 802.11b/g */
        { PCI_VENDOR_ID_BROADCOM, 0x4320, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
 -              /* Broadcom 4306 802.11a */
 +      /* Broadcom 4306 802.11a */
  //    { PCI_VENDOR_ID_BROADCOM, 0x4321, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
        /* Broadcom 4309 802.11a/b/g */
        { PCI_VENDOR_ID_BROADCOM, 0x4324, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
@@@ -3273,6 -3271,9 +3273,9 @@@ static int bcm43xx_init_board(struct bc
        bcm43xx_sysfs_register(bcm);
        //FIXME: check for bcm43xx_sysfs_register failure. This function is a bit messy regarding unwinding, though...
  
+       /*FIXME: This should be handled by softmac instead. */
+       schedule_work(&bcm->softmac->associnfo.work);
        assert(err == 0);
  out:
        return err;
@@@ -3298,7 -3299,8 +3301,7 @@@ static void bcm43xx_detach_board(struc
  
        bcm43xx_chipset_detach(bcm);
        /* Do _not_ access the chip, after it is detached. */
 -      iounmap(bcm->mmio_addr);
 -      
 +      pci_iounmap(pci_dev, bcm->mmio_addr);
        pci_release_regions(pci_dev);
        pci_disable_device(pci_dev);
  
@@@ -3388,26 -3390,40 +3391,26 @@@ static int bcm43xx_attach_board(struct 
        struct net_device *net_dev = bcm->net_dev;
        int err;
        int i;
 -      unsigned long mmio_start, mmio_flags, mmio_len;
        u32 coremask;
  
        err = pci_enable_device(pci_dev);
        if (err) {
 -              printk(KERN_ERR PFX "unable to wake up pci device (%i)\n", err);
 +              printk(KERN_ERR PFX "pci_enable_device() failed\n");
                goto out;
        }
 -      mmio_start = pci_resource_start(pci_dev, 0);
 -      mmio_flags = pci_resource_flags(pci_dev, 0);
 -      mmio_len = pci_resource_len(pci_dev, 0);
 -      if (!(mmio_flags & IORESOURCE_MEM)) {
 -              printk(KERN_ERR PFX
 -                     "%s, region #0 not an MMIO resource, aborting\n",
 -                     pci_name(pci_dev));
 -              err = -ENODEV;
 -              goto err_pci_disable;
 -      }
        err = pci_request_regions(pci_dev, KBUILD_MODNAME);
        if (err) {
 -              printk(KERN_ERR PFX
 -                     "could not access PCI resources (%i)\n", err);
 +              printk(KERN_ERR PFX "pci_request_regions() failed\n");
                goto err_pci_disable;
        }
        /* enable PCI bus-mastering */
        pci_set_master(pci_dev);
 -      bcm->mmio_addr = ioremap(mmio_start, mmio_len);
 +      bcm->mmio_addr = pci_iomap(pci_dev, 0, ~0UL);
        if (!bcm->mmio_addr) {
 -              printk(KERN_ERR PFX "%s: cannot remap MMIO, aborting\n",
 -                     pci_name(pci_dev));
 +              printk(KERN_ERR PFX "pci_iomap() failed\n");
                err = -EIO;
                goto err_pci_release;
        }
 -      bcm->mmio_len = mmio_len;
        net_dev->base_addr = (unsigned long)bcm->mmio_addr;
  
        bcm43xx_pci_read_config16(bcm, PCI_SUBSYSTEM_VENDOR_ID,
@@@ -3501,7 -3517,7 +3504,7 @@@ err_80211_unwind
  err_chipset_detach:
        bcm43xx_chipset_detach(bcm);
  err_iounmap:
 -      iounmap(bcm->mmio_addr);
 +      pci_iounmap(pci_dev, bcm->mmio_addr);
  err_pci_release:
        pci_release_regions(pci_dev);
  err_pci_disable:
@@@ -3933,9 -3949,6 +3936,6 @@@ static int bcm43xx_resume(struct pci_de
  
        netif_device_attach(net_dev);
        
-       /*FIXME: This should be handled by softmac instead. */
-       schedule_work(&bcm->softmac->associnfo.work);
        dprintk(KERN_INFO PFX "Device resumed.\n");
  
        return 0;