root/drivers/staging/octeon/ethernet-rx.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. cvm_oct_rx_refill_pool

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /*
   3  * This file is based on code from OCTEON SDK by Cavium Networks.
   4  *
   5  * Copyright (c) 2003-2007 Cavium Networks
   6  */
   7 
   8 void cvm_oct_poll_controller(struct net_device *dev);
   9 void cvm_oct_rx_initialize(void);
  10 void cvm_oct_rx_shutdown(void);
  11 
  12 static inline void cvm_oct_rx_refill_pool(int fill_threshold)
  13 {
  14         int number_to_free;
  15         int num_freed;
  16         /* Refill the packet buffer pool */
  17         number_to_free =
  18                 cvmx_fau_fetch_and_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE, 0);
  19 
  20         if (number_to_free > fill_threshold) {
  21                 cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE,
  22                                       -number_to_free);
  23                 num_freed = cvm_oct_mem_fill_fpa(CVMX_FPA_PACKET_POOL,
  24                                                  CVMX_FPA_PACKET_POOL_SIZE,
  25                                                  number_to_free);
  26                 if (num_freed != number_to_free) {
  27                         cvmx_fau_atomic_add32(FAU_NUM_PACKET_BUFFERS_TO_FREE,
  28                                               number_to_free - num_freed);
  29                 }
  30         }
  31 }

/* [<][>][^][v][top][bottom][index][help] */