Loading drivers/net/wireless/airo.c +76 −29 Original line number Original line Diff line number Diff line Loading @@ -2897,6 +2897,8 @@ static struct net_device *_init_airo_card( unsigned short irq, int port, goto err_out_map; goto err_out_map; } } ai->wifidev = init_wifidev(ai, dev); ai->wifidev = init_wifidev(ai, dev); if (!ai->wifidev) goto err_out_reg; set_bit(FLAG_REGISTERED,&ai->flags); set_bit(FLAG_REGISTERED,&ai->flags); airo_print_info(dev->name, "MAC enabled %x:%x:%x:%x:%x:%x", airo_print_info(dev->name, "MAC enabled %x:%x:%x:%x:%x:%x", Loading @@ -2908,11 +2910,18 @@ static struct net_device *_init_airo_card( unsigned short irq, int port, for( i = 0; i < MAX_FIDS; i++ ) for( i = 0; i < MAX_FIDS; i++ ) ai->fids[i] = transmit_allocate(ai,AIRO_DEF_MTU,i>=MAX_FIDS/2); ai->fids[i] = transmit_allocate(ai,AIRO_DEF_MTU,i>=MAX_FIDS/2); setup_proc_entry( dev, dev->priv ); /* XXX check for failure */ if (setup_proc_entry(dev, dev->priv) < 0) goto err_out_wifi; netif_start_queue(dev); netif_start_queue(dev); SET_MODULE_OWNER(dev); SET_MODULE_OWNER(dev); return dev; return dev; err_out_wifi: unregister_netdev(ai->wifidev); free_netdev(ai->wifidev); err_out_reg: unregister_netdev(dev); err_out_map: err_out_map: if (test_bit(FLAG_MPI,&ai->flags) && pci) { if (test_bit(FLAG_MPI,&ai->flags) && pci) { pci_free_consistent(pci, PCI_SHARED_LEN, ai->shared, ai->shared_dma); pci_free_consistent(pci, PCI_SHARED_LEN, ai->shared, ai->shared_dma); Loading Loading @@ -3089,7 +3098,8 @@ static int airo_thread(void *data) { set_bit(JOB_AUTOWEP, &ai->jobs); set_bit(JOB_AUTOWEP, &ai->jobs); break; break; } } if (!kthread_should_stop()) { if (!kthread_should_stop() && !freezing(current)) { unsigned long wake_at; unsigned long wake_at; if (!ai->expires || !ai->scan_timeout) { if (!ai->expires || !ai->scan_timeout) { wake_at = max(ai->expires, wake_at = max(ai->expires, Loading @@ -3101,7 +3111,8 @@ static int airo_thread(void *data) { schedule_timeout(wake_at - jiffies); schedule_timeout(wake_at - jiffies); continue; continue; } } } else if (!kthread_should_stop()) { } else if (!kthread_should_stop() && !freezing(current)) { schedule(); schedule(); continue; continue; } } Loading Loading @@ -4495,6 +4506,8 @@ static int setup_proc_entry( struct net_device *dev, apriv->proc_entry = create_proc_entry(apriv->proc_name, apriv->proc_entry = create_proc_entry(apriv->proc_name, S_IFDIR|airo_perm, S_IFDIR|airo_perm, airo_entry); airo_entry); if (!apriv->proc_entry) goto fail; apriv->proc_entry->uid = proc_uid; apriv->proc_entry->uid = proc_uid; apriv->proc_entry->gid = proc_gid; apriv->proc_entry->gid = proc_gid; apriv->proc_entry->owner = THIS_MODULE; apriv->proc_entry->owner = THIS_MODULE; Loading @@ -4503,6 +4516,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("StatsDelta", entry = create_proc_entry("StatsDelta", S_IFREG | (S_IRUGO&proc_perm), S_IFREG | (S_IRUGO&proc_perm), apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_stats_delta; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4513,6 +4528,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("Stats", entry = create_proc_entry("Stats", S_IFREG | (S_IRUGO&proc_perm), S_IFREG | (S_IRUGO&proc_perm), apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_stats; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4523,6 +4540,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("Status", entry = create_proc_entry("Status", S_IFREG | (S_IRUGO&proc_perm), S_IFREG | (S_IRUGO&proc_perm), apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_status; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4533,6 +4552,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("Config", entry = create_proc_entry("Config", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_config; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4543,6 +4564,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("SSID", entry = create_proc_entry("SSID", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_ssid; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4553,6 +4576,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("APList", entry = create_proc_entry("APList", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_aplist; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4563,6 +4588,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("BSSList", entry = create_proc_entry("BSSList", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_bsslist; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4573,6 +4600,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("WepKey", entry = create_proc_entry("WepKey", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_wepkey; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4580,6 +4609,25 @@ static int setup_proc_entry( struct net_device *dev, SETPROC_OPS(entry, proc_wepkey_ops); SETPROC_OPS(entry, proc_wepkey_ops); return 0; return 0; fail_wepkey: remove_proc_entry("BSSList", apriv->proc_entry); fail_bsslist: remove_proc_entry("APList", apriv->proc_entry); fail_aplist: remove_proc_entry("SSID", apriv->proc_entry); fail_ssid: remove_proc_entry("Config", apriv->proc_entry); fail_config: remove_proc_entry("Status", apriv->proc_entry); fail_status: remove_proc_entry("Stats", apriv->proc_entry); fail_stats: remove_proc_entry("StatsDelta", apriv->proc_entry); fail_stats_delta: remove_proc_entry(apriv->proc_name, airo_entry); fail: return -ENOMEM; } } static int takedown_proc_entry( struct net_device *dev, static int takedown_proc_entry( struct net_device *dev, Loading Loading @@ -5924,7 +5972,6 @@ static int airo_get_essid(struct net_device *dev, /* Get the current SSID */ /* Get the current SSID */ memcpy(extra, status_rid.SSID, status_rid.SSIDlen); memcpy(extra, status_rid.SSID, status_rid.SSIDlen); extra[status_rid.SSIDlen] = '\0'; /* If none, we may want to get the one that was set */ /* If none, we may want to get the one that was set */ /* Push it out ! */ /* Push it out ! */ Loading drivers/net/wireless/atmel.c +0 −2 Original line number Original line Diff line number Diff line Loading @@ -1678,11 +1678,9 @@ static int atmel_get_essid(struct net_device *dev, /* Get the current SSID */ /* Get the current SSID */ if (priv->new_SSID_size != 0) { if (priv->new_SSID_size != 0) { memcpy(extra, priv->new_SSID, priv->new_SSID_size); memcpy(extra, priv->new_SSID, priv->new_SSID_size); extra[priv->new_SSID_size] = '\0'; dwrq->length = priv->new_SSID_size; dwrq->length = priv->new_SSID_size; } else { } else { memcpy(extra, priv->SSID, priv->SSID_size); memcpy(extra, priv->SSID, priv->SSID_size); extra[priv->SSID_size] = '\0'; dwrq->length = priv->SSID_size; dwrq->length = priv->SSID_size; } } Loading drivers/net/wireless/bcm43xx/bcm43xx_dma.c +23 −5 Original line number Original line Diff line number Diff line Loading @@ -705,11 +705,30 @@ int bcm43xx_dma_init(struct bcm43xx_private *bcm) struct bcm43xx_dmaring *ring; struct bcm43xx_dmaring *ring; int err = -ENOMEM; int err = -ENOMEM; int dma64 = 0; int dma64 = 0; u32 sbtmstatehi; u64 mask = bcm43xx_get_supported_dma_mask(bcm); int nobits; sbtmstatehi = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATEHIGH); if (mask == DMA_64BIT_MASK) { if (sbtmstatehi & BCM43xx_SBTMSTATEHIGH_DMA64BIT) dma64 = 1; dma64 = 1; nobits = 64; } else if (mask == DMA_32BIT_MASK) nobits = 32; else nobits = 30; err = pci_set_dma_mask(bcm->pci_dev, mask); err |= pci_set_consistent_dma_mask(bcm->pci_dev, mask); if (err) { #ifdef CONFIG_BCM43XX_PIO printk(KERN_WARNING PFX "DMA not supported on this device." " Falling back to PIO.\n"); bcm->__using_pio = 1; return -ENOSYS; #else printk(KERN_ERR PFX "FATAL: DMA not supported and PIO not configured. " "Please recompile the driver with PIO support.\n"); return -ENODEV; #endif /* CONFIG_BCM43XX_PIO */ } /* setup TX DMA channels. */ /* setup TX DMA channels. */ ring = bcm43xx_setup_dmaring(bcm, 0, 1, dma64); ring = bcm43xx_setup_dmaring(bcm, 0, 1, dma64); Loading Loading @@ -755,8 +774,7 @@ int bcm43xx_dma_init(struct bcm43xx_private *bcm) dma->rx_ring3 = ring; dma->rx_ring3 = ring; } } dprintk(KERN_INFO PFX "%s DMA initialized\n", dprintk(KERN_INFO PFX "%d-bit DMA initialized\n", nobits); dma64 ? "64-bit" : "32-bit"); err = 0; err = 0; out: out: return err; return err; Loading drivers/net/wireless/bcm43xx/bcm43xx_dma.h +17 −0 Original line number Original line Diff line number Diff line Loading @@ -314,6 +314,23 @@ int bcm43xx_dma_tx(struct bcm43xx_private *bcm, struct ieee80211_txb *txb); struct ieee80211_txb *txb); void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring); void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring); /* Helper function that returns the dma mask for this device. */ static inline u64 bcm43xx_get_supported_dma_mask(struct bcm43xx_private *bcm) { int dma64 = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATEHIGH) & BCM43xx_SBTMSTATEHIGH_DMA64BIT; u16 mmio_base = bcm43xx_dmacontroller_base(dma64, 0); u32 mask = BCM43xx_DMA32_TXADDREXT_MASK; if (dma64) return DMA_64BIT_MASK; bcm43xx_write32(bcm, mmio_base + BCM43xx_DMA32_TXCTL, mask); if (bcm43xx_read32(bcm, mmio_base + BCM43xx_DMA32_TXCTL) & mask) return DMA_32BIT_MASK; return DMA_30BIT_MASK; } #else /* CONFIG_BCM43XX_DMA */ #else /* CONFIG_BCM43XX_DMA */ Loading drivers/net/wireless/bcm43xx/bcm43xx_leds.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -242,7 +242,7 @@ void bcm43xx_leds_update(struct bcm43xx_private *bcm, int activity) //TODO //TODO break; break; case BCM43xx_LED_ASSOC: case BCM43xx_LED_ASSOC: if (bcm->softmac->associated) if (bcm->softmac->associnfo.associated) turn_on = 1; turn_on = 1; break; break; #ifdef CONFIG_BCM43XX_DEBUG #ifdef CONFIG_BCM43XX_DEBUG Loading Loading
drivers/net/wireless/airo.c +76 −29 Original line number Original line Diff line number Diff line Loading @@ -2897,6 +2897,8 @@ static struct net_device *_init_airo_card( unsigned short irq, int port, goto err_out_map; goto err_out_map; } } ai->wifidev = init_wifidev(ai, dev); ai->wifidev = init_wifidev(ai, dev); if (!ai->wifidev) goto err_out_reg; set_bit(FLAG_REGISTERED,&ai->flags); set_bit(FLAG_REGISTERED,&ai->flags); airo_print_info(dev->name, "MAC enabled %x:%x:%x:%x:%x:%x", airo_print_info(dev->name, "MAC enabled %x:%x:%x:%x:%x:%x", Loading @@ -2908,11 +2910,18 @@ static struct net_device *_init_airo_card( unsigned short irq, int port, for( i = 0; i < MAX_FIDS; i++ ) for( i = 0; i < MAX_FIDS; i++ ) ai->fids[i] = transmit_allocate(ai,AIRO_DEF_MTU,i>=MAX_FIDS/2); ai->fids[i] = transmit_allocate(ai,AIRO_DEF_MTU,i>=MAX_FIDS/2); setup_proc_entry( dev, dev->priv ); /* XXX check for failure */ if (setup_proc_entry(dev, dev->priv) < 0) goto err_out_wifi; netif_start_queue(dev); netif_start_queue(dev); SET_MODULE_OWNER(dev); SET_MODULE_OWNER(dev); return dev; return dev; err_out_wifi: unregister_netdev(ai->wifidev); free_netdev(ai->wifidev); err_out_reg: unregister_netdev(dev); err_out_map: err_out_map: if (test_bit(FLAG_MPI,&ai->flags) && pci) { if (test_bit(FLAG_MPI,&ai->flags) && pci) { pci_free_consistent(pci, PCI_SHARED_LEN, ai->shared, ai->shared_dma); pci_free_consistent(pci, PCI_SHARED_LEN, ai->shared, ai->shared_dma); Loading Loading @@ -3089,7 +3098,8 @@ static int airo_thread(void *data) { set_bit(JOB_AUTOWEP, &ai->jobs); set_bit(JOB_AUTOWEP, &ai->jobs); break; break; } } if (!kthread_should_stop()) { if (!kthread_should_stop() && !freezing(current)) { unsigned long wake_at; unsigned long wake_at; if (!ai->expires || !ai->scan_timeout) { if (!ai->expires || !ai->scan_timeout) { wake_at = max(ai->expires, wake_at = max(ai->expires, Loading @@ -3101,7 +3111,8 @@ static int airo_thread(void *data) { schedule_timeout(wake_at - jiffies); schedule_timeout(wake_at - jiffies); continue; continue; } } } else if (!kthread_should_stop()) { } else if (!kthread_should_stop() && !freezing(current)) { schedule(); schedule(); continue; continue; } } Loading Loading @@ -4495,6 +4506,8 @@ static int setup_proc_entry( struct net_device *dev, apriv->proc_entry = create_proc_entry(apriv->proc_name, apriv->proc_entry = create_proc_entry(apriv->proc_name, S_IFDIR|airo_perm, S_IFDIR|airo_perm, airo_entry); airo_entry); if (!apriv->proc_entry) goto fail; apriv->proc_entry->uid = proc_uid; apriv->proc_entry->uid = proc_uid; apriv->proc_entry->gid = proc_gid; apriv->proc_entry->gid = proc_gid; apriv->proc_entry->owner = THIS_MODULE; apriv->proc_entry->owner = THIS_MODULE; Loading @@ -4503,6 +4516,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("StatsDelta", entry = create_proc_entry("StatsDelta", S_IFREG | (S_IRUGO&proc_perm), S_IFREG | (S_IRUGO&proc_perm), apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_stats_delta; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4513,6 +4528,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("Stats", entry = create_proc_entry("Stats", S_IFREG | (S_IRUGO&proc_perm), S_IFREG | (S_IRUGO&proc_perm), apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_stats; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4523,6 +4540,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("Status", entry = create_proc_entry("Status", S_IFREG | (S_IRUGO&proc_perm), S_IFREG | (S_IRUGO&proc_perm), apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_status; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4533,6 +4552,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("Config", entry = create_proc_entry("Config", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_config; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4543,6 +4564,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("SSID", entry = create_proc_entry("SSID", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_ssid; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4553,6 +4576,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("APList", entry = create_proc_entry("APList", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_aplist; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4563,6 +4588,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("BSSList", entry = create_proc_entry("BSSList", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_bsslist; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4573,6 +4600,8 @@ static int setup_proc_entry( struct net_device *dev, entry = create_proc_entry("WepKey", entry = create_proc_entry("WepKey", S_IFREG | proc_perm, S_IFREG | proc_perm, apriv->proc_entry); apriv->proc_entry); if (!entry) goto fail_wepkey; entry->uid = proc_uid; entry->uid = proc_uid; entry->gid = proc_gid; entry->gid = proc_gid; entry->data = dev; entry->data = dev; Loading @@ -4580,6 +4609,25 @@ static int setup_proc_entry( struct net_device *dev, SETPROC_OPS(entry, proc_wepkey_ops); SETPROC_OPS(entry, proc_wepkey_ops); return 0; return 0; fail_wepkey: remove_proc_entry("BSSList", apriv->proc_entry); fail_bsslist: remove_proc_entry("APList", apriv->proc_entry); fail_aplist: remove_proc_entry("SSID", apriv->proc_entry); fail_ssid: remove_proc_entry("Config", apriv->proc_entry); fail_config: remove_proc_entry("Status", apriv->proc_entry); fail_status: remove_proc_entry("Stats", apriv->proc_entry); fail_stats: remove_proc_entry("StatsDelta", apriv->proc_entry); fail_stats_delta: remove_proc_entry(apriv->proc_name, airo_entry); fail: return -ENOMEM; } } static int takedown_proc_entry( struct net_device *dev, static int takedown_proc_entry( struct net_device *dev, Loading Loading @@ -5924,7 +5972,6 @@ static int airo_get_essid(struct net_device *dev, /* Get the current SSID */ /* Get the current SSID */ memcpy(extra, status_rid.SSID, status_rid.SSIDlen); memcpy(extra, status_rid.SSID, status_rid.SSIDlen); extra[status_rid.SSIDlen] = '\0'; /* If none, we may want to get the one that was set */ /* If none, we may want to get the one that was set */ /* Push it out ! */ /* Push it out ! */ Loading
drivers/net/wireless/atmel.c +0 −2 Original line number Original line Diff line number Diff line Loading @@ -1678,11 +1678,9 @@ static int atmel_get_essid(struct net_device *dev, /* Get the current SSID */ /* Get the current SSID */ if (priv->new_SSID_size != 0) { if (priv->new_SSID_size != 0) { memcpy(extra, priv->new_SSID, priv->new_SSID_size); memcpy(extra, priv->new_SSID, priv->new_SSID_size); extra[priv->new_SSID_size] = '\0'; dwrq->length = priv->new_SSID_size; dwrq->length = priv->new_SSID_size; } else { } else { memcpy(extra, priv->SSID, priv->SSID_size); memcpy(extra, priv->SSID, priv->SSID_size); extra[priv->SSID_size] = '\0'; dwrq->length = priv->SSID_size; dwrq->length = priv->SSID_size; } } Loading
drivers/net/wireless/bcm43xx/bcm43xx_dma.c +23 −5 Original line number Original line Diff line number Diff line Loading @@ -705,11 +705,30 @@ int bcm43xx_dma_init(struct bcm43xx_private *bcm) struct bcm43xx_dmaring *ring; struct bcm43xx_dmaring *ring; int err = -ENOMEM; int err = -ENOMEM; int dma64 = 0; int dma64 = 0; u32 sbtmstatehi; u64 mask = bcm43xx_get_supported_dma_mask(bcm); int nobits; sbtmstatehi = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATEHIGH); if (mask == DMA_64BIT_MASK) { if (sbtmstatehi & BCM43xx_SBTMSTATEHIGH_DMA64BIT) dma64 = 1; dma64 = 1; nobits = 64; } else if (mask == DMA_32BIT_MASK) nobits = 32; else nobits = 30; err = pci_set_dma_mask(bcm->pci_dev, mask); err |= pci_set_consistent_dma_mask(bcm->pci_dev, mask); if (err) { #ifdef CONFIG_BCM43XX_PIO printk(KERN_WARNING PFX "DMA not supported on this device." " Falling back to PIO.\n"); bcm->__using_pio = 1; return -ENOSYS; #else printk(KERN_ERR PFX "FATAL: DMA not supported and PIO not configured. " "Please recompile the driver with PIO support.\n"); return -ENODEV; #endif /* CONFIG_BCM43XX_PIO */ } /* setup TX DMA channels. */ /* setup TX DMA channels. */ ring = bcm43xx_setup_dmaring(bcm, 0, 1, dma64); ring = bcm43xx_setup_dmaring(bcm, 0, 1, dma64); Loading Loading @@ -755,8 +774,7 @@ int bcm43xx_dma_init(struct bcm43xx_private *bcm) dma->rx_ring3 = ring; dma->rx_ring3 = ring; } } dprintk(KERN_INFO PFX "%s DMA initialized\n", dprintk(KERN_INFO PFX "%d-bit DMA initialized\n", nobits); dma64 ? "64-bit" : "32-bit"); err = 0; err = 0; out: out: return err; return err; Loading
drivers/net/wireless/bcm43xx/bcm43xx_dma.h +17 −0 Original line number Original line Diff line number Diff line Loading @@ -314,6 +314,23 @@ int bcm43xx_dma_tx(struct bcm43xx_private *bcm, struct ieee80211_txb *txb); struct ieee80211_txb *txb); void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring); void bcm43xx_dma_rx(struct bcm43xx_dmaring *ring); /* Helper function that returns the dma mask for this device. */ static inline u64 bcm43xx_get_supported_dma_mask(struct bcm43xx_private *bcm) { int dma64 = bcm43xx_read32(bcm, BCM43xx_CIR_SBTMSTATEHIGH) & BCM43xx_SBTMSTATEHIGH_DMA64BIT; u16 mmio_base = bcm43xx_dmacontroller_base(dma64, 0); u32 mask = BCM43xx_DMA32_TXADDREXT_MASK; if (dma64) return DMA_64BIT_MASK; bcm43xx_write32(bcm, mmio_base + BCM43xx_DMA32_TXCTL, mask); if (bcm43xx_read32(bcm, mmio_base + BCM43xx_DMA32_TXCTL) & mask) return DMA_32BIT_MASK; return DMA_30BIT_MASK; } #else /* CONFIG_BCM43XX_DMA */ #else /* CONFIG_BCM43XX_DMA */ Loading
drivers/net/wireless/bcm43xx/bcm43xx_leds.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -242,7 +242,7 @@ void bcm43xx_leds_update(struct bcm43xx_private *bcm, int activity) //TODO //TODO break; break; case BCM43xx_LED_ASSOC: case BCM43xx_LED_ASSOC: if (bcm->softmac->associated) if (bcm->softmac->associnfo.associated) turn_on = 1; turn_on = 1; break; break; #ifdef CONFIG_BCM43XX_DEBUG #ifdef CONFIG_BCM43XX_DEBUG Loading