Commit 80dab7c7 authored by Linas Vepstas's avatar Linas Vepstas Committed by Jeff Garzik

Spidernet RX Refill

The invocation of the rx ring refill routine is haphazard,
it can be called from a central location.
Signed-off-by: default avatarLinas Vepstas <linas@austin.ibm.com>
Cc: James K Lewis <jklewis@us.ibm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 7f7223b8
...@@ -980,17 +980,11 @@ spider_net_decode_one_descr(struct spider_net_card *card) ...@@ -980,17 +980,11 @@ spider_net_decode_one_descr(struct spider_net_card *card)
status = spider_net_get_descr_status(descr); status = spider_net_get_descr_status(descr);
/* nothing in the descriptor yet */ /* Nothing in the descriptor, or ring must be empty */
if (status == SPIDER_NET_DESCR_CARDOWNED) if ((status == SPIDER_NET_DESCR_CARDOWNED) ||
(status == SPIDER_NET_DESCR_NOT_IN_USE))
return 0; return 0;
if (status == SPIDER_NET_DESCR_NOT_IN_USE) {
/* not initialized yet, the ring must be empty */
spider_net_refill_rx_chain(card);
spider_net_enable_rxdmac(card);
return 0;
}
/* descriptor definitively used -- move on tail */ /* descriptor definitively used -- move on tail */
chain->tail = descr->next; chain->tail = descr->next;
...@@ -1074,6 +1068,7 @@ spider_net_poll(struct net_device *netdev, int *budget) ...@@ -1074,6 +1068,7 @@ spider_net_poll(struct net_device *netdev, int *budget)
netdev->quota -= packets_done; netdev->quota -= packets_done;
*budget -= packets_done; *budget -= packets_done;
spider_net_refill_rx_chain(card); spider_net_refill_rx_chain(card);
spider_net_enable_rxdmac(card);
/* if all packets are in the stack, enable interrupts and return 0 */ /* if all packets are in the stack, enable interrupts and return 0 */
/* if not, return 1 */ /* if not, return 1 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment