W dniu 14 sierpnia 2011 00:17 użytkownik David Woodhouse
<[email protected]> napisał:
> On Sun, 2011-08-14 at 00:12 +0200, Rafał Miłecki wrote:
>> I've just checked wl and they don't do that anyway. The keep order
>> depending on the alignment bool.
>
> Ah, OK. So they still write TXCTL first, if the device can't support
> unaligned descriptors?
>
> 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);

I stripped the comments, which are simply wrong (copy&paste gone too fast).

Following is RX part, with the sane comment this time:

/* DMA engine with out alignment requirement requires table to be inited
 * before enabling the engine
 */
if (!di->aligndesc_4k)
        _dma_ddtable_init(di, DMA_RX, di->rxdpa);

_dma_rxenable(di);

if (di->aligndesc_4k)
        _dma_ddtable_init(di, DMA_RX, di->rxdpa);

-- 
Rafał

_______________________________________________
b43-dev mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/b43-dev

Reply via email to