[PATCH] Fix alignment issues with DMA TX on BCM4331
Rafał Miłecki
zajec5 at gmail.com
Sun Aug 14 04:14:57 EDT 2011
W dniu 14 sierpnia 2011 10:04 użytkownik David Woodhouse
<dwmw2 at infradead.org> napisał:
> On Sun, 2011-08-14 at 09:35 +0200, Rafał Miłecki wrote:
>>
>> > The brcm80211 driver doesn't; it writes TXCTL last, unconditionally.
>>
>> Uh, you mead me read that code... OK:
>>
>> if (!di->aligndesc_4k)
>> _dma_ddtable_init(di, DMA_TX, di->txdpa);
>>
>> if ((di->dma.dmactrlflags & DMA_CTRL_PEN) == 0)
>> control |= D64_XC_PD;
>> OR_REG(&di->d64txregs->control, control);
>>
>> if (di->aligndesc_4k)
>> _dma_ddtable_init(di, DMA_TX, di->txdpa);
>
> Hm, so I lied. Sorry about that. Will send a new patch.
>
> I'll also have another look at the RX path. I had tried enabling RX
> after setting the addresses, but that had failed.
Dump from ndis on BCM4331 for RX ring:
write32 0xb0600228 <- 0x1f85e000 ADDR_LO
write32 0xb060022c <- 0x80000000 ADDR_HI
read32 0xb0600220 -> 0x00000040 CTL (Frame Offset: 0x20)
write32 0xb0600220 <- 0x0000084d CTL (Frame Offset: 0x26 | Parity Disable)
write32 0xb0600224 <- 0x1f85e200 DESC_STOP
--
Rafał
More information about the b43-dev
mailing list