[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4740F9A6.1030802@lwfinger.net>
Date: Sun, 18 Nov 2007 20:49:10 -0600
From: Larry Finger <larry.finger@...inger.net>
To: Arjan van de Ven <arjan@...radead.org>
CC: LKML <linux-kernel@...r.kernel.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: Regression in 2.6.24-rc3 - 64-bit DMA fails for BCM94311MCG rev
02
Arjan van de Ven wrote:
> On Sun, 18 Nov 2007 18:04:51 -0600
> Larry Finger <Larry.Finger@...inger.net> wrote:
>
>> I get a failure of 64-bit DMA on a BCM94311MCG rev 02 wireless
>> interface running on x86_64 using an AMD Turion 64 X2 processor on an
>> HP Pavilion dv2125nr laptop. The error code indicates that the
>> interface is getting a descriptor read error, even though the
>> descriptor ring and all the DMA buffers have been checked when
>> allocated. This particular card version is newly supported; however,
>> it was working correctly on 2.6.24-rc2.
>>
>
>
> worth adding a pci_set_dma_mask(pdev, DMA_32BIT_MASK); in the driver,
> just after pci_enable_device(); (also check if there's other
> pci_set_dma_mask functions, to make sure it doesn't get set back to 64
> bit)
The hardware for this driver comes in 30-, 32-, and 64-bit flavors. After determining which flavor
we have, the driver sends that information to the ssb driver, which actually handles the PCI
enabling. For the device that fails, I'm passing DMA_BIT_MASK(64) to the appropriate routine in ssb,
which calls dma_supported() with that mask. There are no other calls to any of the dma or pci mask
routines. I changed the dma_supported() to a set_dma_mask(), but it didn't make any difference. My
32-bit device works OK - just the 64-bit one fails.
Larry
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists