瀏覽代碼

[PATCH] bcm43xx: Set both, the DMAmask and the coherent DMAmask.

This has a potential to fix the >1G bug. But I can not test that, yet.

Signed-off-by: Michael Buesch <mbuesch@freenet.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Michael Buesch 19 年之前
父節點
當前提交
4d5a9e0eeb
共有 1 個文件被更改,包括 6 次插入3 次删除
  1. 6 3
      drivers/net/wireless/bcm43xx/bcm43xx_main.c

+ 6 - 3
drivers/net/wireless/bcm43xx/bcm43xx_main.c

@@ -3717,6 +3717,8 @@ static int bcm43xx_init_private(struct bcm43xx_private *bcm,
 				struct net_device *net_dev,
 				struct net_device *net_dev,
 				struct pci_dev *pci_dev)
 				struct pci_dev *pci_dev)
 {
 {
+	int err;
+
 	bcm->ieee = netdev_priv(net_dev);
 	bcm->ieee = netdev_priv(net_dev);
 	bcm->softmac = ieee80211_priv(net_dev);
 	bcm->softmac = ieee80211_priv(net_dev);
 	bcm->softmac->set_channel = bcm43xx_ieee80211_set_chan;
 	bcm->softmac->set_channel = bcm43xx_ieee80211_set_chan;
@@ -3735,8 +3737,7 @@ static int bcm43xx_init_private(struct bcm43xx_private *bcm,
 	bcm->irq_savedstate = BCM43xx_IRQ_INITIAL;
 	bcm->irq_savedstate = BCM43xx_IRQ_INITIAL;
 	bcm->pci_dev = pci_dev;
 	bcm->pci_dev = pci_dev;
 	bcm->net_dev = net_dev;
 	bcm->net_dev = net_dev;
-	if (modparam_bad_frames_preempt)
-		bcm->bad_frames_preempt = 1;
+	bcm->bad_frames_preempt = modparam_bad_frames_preempt;
 	spin_lock_init(&bcm->lock);
 	spin_lock_init(&bcm->lock);
 	tasklet_init(&bcm->isr_tasklet,
 	tasklet_init(&bcm->isr_tasklet,
 		     (void (*)(unsigned long))bcm43xx_interrupt_tasklet,
 		     (void (*)(unsigned long))bcm43xx_interrupt_tasklet,
@@ -3745,7 +3746,9 @@ static int bcm43xx_init_private(struct bcm43xx_private *bcm,
 	if (modparam_pio) {
 	if (modparam_pio) {
 		bcm->__using_pio = 1;
 		bcm->__using_pio = 1;
 	} else {
 	} else {
-		if (pci_set_dma_mask(pci_dev, DMA_30BIT_MASK)) {
+		err = pci_set_dma_mask(pci_dev, DMA_30BIT_MASK);
+		err |= pci_set_consistent_dma_mask(pci_dev, DMA_30BIT_MASK);
+		if (err) {
 #ifdef CONFIG_BCM43XX_PIO
 #ifdef CONFIG_BCM43XX_PIO
 			printk(KERN_WARNING PFX "DMA not supported. Falling back to PIO.\n");
 			printk(KERN_WARNING PFX "DMA not supported. Falling back to PIO.\n");
 			bcm->__using_pio = 1;
 			bcm->__using_pio = 1;