Michael Buesch wrote: > On Wednesday 21 November 2007 20:31:53 Larry Finger wrote: >> The BCM94311MCG rev 02 chip has an 802.11 core with revision 13 and >> has not been supported until now. The changes include the following: >> >> (1) Add the 802.11 rev 13 device to the ssb_device_id table to load b43. >> (2) Add PHY revision 9 to the supported list. >> (3) Fix 64-bit addressing errors. >> (4) Remove some magic numbers in the DMA setup. >> >> The DMA implementation for this chip supports full 64-bit addressing with >> one exception. Whenever the Descriptor Ring Buffer is in high memory, a >> fatal DMA error occurs. This problem was not present in 2.6.24-rc2 due >> to code to "Bias the placement of kernel pages at lower PFNs". When >> commit 44048d70 reverted that code, the DMA error appeared. As a "fix", >> use the GFP_DMA flag when allocating the buffer for 64-bit DMA. At present, >> this problem is thought to arise from a hardware error. The present driver >> allocates one ring buffer for RX and six for TX; however, only one of the >> TX buffers is used. To minimize any system impact associated with using low >> memory, this patch removes the allocation of the unused buffers. >> >> This patch has been tested by Cédric Caumont <icare40@xxxxxxxxxxx>. >> > >> @@ -954,19 +955,21 @@ int b43_dma_init(struct b43_wldev *dev) >> >> err = -ENOMEM; >> /* setup TX DMA channels. */ >> - ring = b43_setup_dmaring(dev, 0, 1, dma64); >> + ring = b43_setup_dmaring(dev, 1, 1, dma64); >> if (!ring) >> goto out; >> - dma->tx_ring0 = ring; >> + dma->tx_ring1 = ring; >> >> - ring = b43_setup_dmaring(dev, 1, 1, dma64); >> + /* The driver only uses ring1 for TX - skip setup for the rest */ >> +#if 0 > > NACK. Are you NACKing the "if 0" or the elimination of the unused TX rings? Perhaps we could have if (ring->dma64) goto out; Larry - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html