Will Dyson wrote:
On 11/15/06, Larry Finger <[EMAIL PROTECTED]> wrote:
My records show a patch sent for testing on 9/22/06, but I have no record of
when it went to
wireless-2.6; however, on my system it is in wireless-2.6 (Linville) and
2.6.19-rc5 (Torvalds).
Please check your sources using the command "grep bcm43xx_get_supported_dma_mask
drivers/net/wireless/bcm43xx/*" to see if it has been applied to your source.
If it has, I will be
sending your some special diagnostic patches to help debug this problem.
Larry,
Sorry for being slow to follow up on this. It certainly looks as if
the patch has been applied.
[EMAIL PROTECTED]:~/develop/kernel/linux-2.6$ grep
bcm43xx_get_supported_dma_mask drivers/net/wireless/bcm43xx/*
drivers/net/wireless/bcm43xx/bcm43xx_dma.c: u64 mask =
bcm43xx_get_supported_dma_mask(bcm);
drivers/net/wireless/bcm43xx/bcm43xx_dma.h:u64
bcm43xx_get_supported_dma_mask(struct bcm43xx_private *bcm)
Please try the attached patch and send me the logged output from the initialization. Using the
mem=1024M specification will be OK.
Larry
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_dma.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_dma.c
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_dma.c
@@ -715,8 +715,8 @@ int bcm43xx_dma_init(struct bcm43xx_priv
nobits = 32;
else
nobits = 30;
+ dprintkl(KERN_INFO PFX "nobits = %d, mask = 0x%llx\n", nobits, mask);
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."
@@ -729,6 +729,11 @@ int bcm43xx_dma_init(struct bcm43xx_priv
return -ENODEV;
#endif /* CONFIG_BCM43XX_PIO */
}
+ err = pci_set_consistent_dma_mask(bcm->pci_dev, mask);
+ if (err)
+ dprintkl(KERN_INFO PFX "Return value from
pci_set_consistent_dma_mask"
+ " is 0x%x\n", err);
+
/* setup TX DMA channels. */
ring = bcm43xx_setup_dmaring(bcm, 0, 1, dma64);
Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_dma.h
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_dma.h
+++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_dma.h
@@ -323,11 +323,14 @@ u64 bcm43xx_get_supported_dma_mask(struc
BCM43xx_SBTMSTATEHIGH_DMA64BIT;
u16 mmio_base = bcm43xx_dmacontroller_base(dma64, 0);
u32 mask = BCM43xx_DMA32_TXADDREXT_MASK;
+ int dmabits;
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)
+ dmabits = bcm43xx_read32(bcm, mmio_base + BCM43xx_DMA32_TXCTL) & mask;
+ dprintkl(KERN_INFO PFX "dmabits = 0x%x, mask = 0x%x\n", dmabits, mask);
+ if (dmabits)
return DMA_32BIT_MASK;
return DMA_30BIT_MASK;
}
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev