On Sat, 20 Apr 2013, Michael Büsch wrote:
> On Sat, 20 Apr 2013 16:14:09 +0200 (CEST) > Thommy <thom...@gmail.com> wrote: > > > +void b43_dma_rx_discard(struct b43_dmaring *ring) > > +{ > > + B43_WARN_ON(ring->tx); > > + > > + /* Device has filled all buffers, drop all packets in buffers > > + * and let TCP decrease speed. > > + * Set index to one desc after the last one > > + * so the device will see all slots as free again > > + */ > > + /* > > + *TODO: How to increase rx_drop in mac80211? > > + */ > > + b43_dma_write(ring, B43_DMA32_RXINDEX, ring->nr_slots * > > + sizeof(struct b43_dmadesc32)); > > +} > > You need to check whether this is a 32bit or 64bit DMA engine and > write to B43_DMA32_RXINDEX or B43_DMA64_RXINDEX. > You could simply use the ring->ops->set_current_rxslot() dmaop for that. > Good point, I'll fix that > And I think you need to set ring->current_slot to the value of > ring->ops->get_current_slot(). > Not 100% sure, though, since it is years since I worked on that code. > Is that really needed? They should already be the same since the device has thrown the underflow interrupt, or do I miss some race condition? //thommy
_______________________________________________ b43-dev mailing list b43-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/b43-dev