On Sun, 21 Apr 2013 15:46:03 +0100
Piotras <piot...@gmail.com> wrote:

> On Sun, Apr 21, 2013 at 1:12 PM, Thommy Jakobsson <thom...@gmail.com> wrote:
> >
> >
> > On Sun, 21 Apr 2013, Michael Büsch wrote:
> >
> >> On Sun, 21 Apr 2013 11:01:11 +0200 (CEST)
> >> Thommy Jakobsson <thom...@gmail.com> wrote:
> >>
> >> > Why is it set to to beyond the ring when it is initilised?
> >>
> >> That's what broadcom does in their implementation. I guess that's the only 
> >> reason.
> >>
> > Check, I'll give index-1 a go. It should be quite obvious if it works or
> > not.
> 
> Thommy,
> 
> I had the same thought, but notice that you also need to update
> ring->current_slot in b43_dma_rx_discard.

I don't think so.
We don't modify the descriptor pointer, but the stop index.

> I guess the following could be used to mark all descriptors for DMA
> use from RX underflow interrupt or whenever we decide that number of
> free descriptors is too low (not tested):
> 
>   slot = prev_slot(ring, ops->get_current_rxslot(ring));
>   wmb();
>   ops->set_current_rxslot(ring, slot);

get_current_rxslot() reads a different register than set_current_rxslot().

get_current_rxslot() returns the descriptor pointer that the device is pointing 
to.
set_current_rxslot() sets the _stop_ index.
Yes, at least the last one is misnamed.

> Not sure if FIFO overruns are really an issue and how to prevent them.
> Maybe RX underflow should be handled in top half and reprogram device
> to suspend receives (is this possible)?

What is "top half"?

-- 
Michael

Attachment: signature.asc
Description: PGP signature

_______________________________________________
b43-dev mailing list
b43-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/b43-dev

Reply via email to