[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