ethernet-rx.h (882B)
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 8void cvm_oct_poll_controller(struct net_device *dev); 9void cvm_oct_rx_initialize(void); 10void cvm_oct_rx_shutdown(void); 11 12static 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}