On 10/20/2009 04:56 PM, Chris Vine wrote:
> On Mon, 19 Oct 2009 16:53:24 -0500
> Larry Finger <[email protected]> wrote:
>> This set of dmesg outputs was better; however, please set
>> CONFIG_B43_DEBUG=y in your configuration and rebuild the kernel.
>> Please post the full dmesg for warm and cold reboot.
Thanks for the output. Unfortunately, it all looks normal.
On auditing the DMA code for b43, I re-discovered a work-around that
was necessary for the first card that had 64-bit DMA, namely a 4311/2.
The fix for that is not needed for the 4315 card. Please apply the
attached patch (b43_change_dma_flags) to see if it fixes the problem.
If this patch does not fix the problem, I am working on a second to
try to do further debugging.
Larry
Index: wireless-testing/drivers/net/wireless/b43/dma.c
===================================================================
--- wireless-testing.orig/drivers/net/wireless/b43/dma.c
+++ wireless-testing/drivers/net/wireless/b43/dma.c
@@ -398,7 +398,7 @@ static int alloc_ringmemory(struct b43_d
*
* The flags here must match the flags in free_ringmemory below!
*/
- if (ring->type == B43_DMA_64BIT)
+ if (ring->type == B43_DMA_64BIT && ring->dev->phy.type == B43_PHYTYPE_G)
flags |= GFP_DMA;
ring->descbase = ssb_dma_alloc_consistent(ring->dev->dev,
B43_DMA_RINGMEMSIZE,
@@ -416,7 +416,7 @@ static void free_ringmemory(struct b43_d
{
gfp_t flags = GFP_KERNEL;
- if (ring->type == B43_DMA_64BIT)
+ if (ring->type == B43_DMA_64BIT && ring->dev->phy.type == B43_PHYTYPE_G)
flags |= GFP_DMA;
ssb_dma_free_consistent(ring->dev->dev, B43_DMA_RINGMEMSIZE,
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev