1e1253f39SAlex Maftei (amaftei) /* SPDX-License-Identifier: GPL-2.0-only */ 2e1253f39SAlex Maftei (amaftei) /**************************************************************************** 3e1253f39SAlex Maftei (amaftei) * Driver for Solarflare network controllers and boards 4e1253f39SAlex Maftei (amaftei) * Copyright 2018 Solarflare Communications Inc. 5e1253f39SAlex Maftei (amaftei) * 6e1253f39SAlex Maftei (amaftei) * This program is free software; you can redistribute it and/or modify it 7e1253f39SAlex Maftei (amaftei) * under the terms of the GNU General Public License version 2 as published 8e1253f39SAlex Maftei (amaftei) * by the Free Software Foundation, incorporated herein by reference. 9e1253f39SAlex Maftei (amaftei) */ 10e1253f39SAlex Maftei (amaftei) 11e1253f39SAlex Maftei (amaftei) #ifndef EFX_CHANNELS_H 12e1253f39SAlex Maftei (amaftei) #define EFX_CHANNELS_H 13e1253f39SAlex Maftei (amaftei) 14e4ff3232SEdward Cree extern unsigned int efx_interrupt_mode; 1567e6398eSEdward Cree extern unsigned int rss_cpus; 16e4ff3232SEdward Cree 17e1253f39SAlex Maftei (amaftei) int efx_probe_interrupts(struct efx_nic *efx); 18e1253f39SAlex Maftei (amaftei) void efx_remove_interrupts(struct efx_nic *efx); 19e1253f39SAlex Maftei (amaftei) int efx_soft_enable_interrupts(struct efx_nic *efx); 20e1253f39SAlex Maftei (amaftei) void efx_soft_disable_interrupts(struct efx_nic *efx); 21e1253f39SAlex Maftei (amaftei) int efx_enable_interrupts(struct efx_nic *efx); 22e1253f39SAlex Maftei (amaftei) void efx_disable_interrupts(struct efx_nic *efx); 23e1253f39SAlex Maftei (amaftei) 24e1253f39SAlex Maftei (amaftei) void efx_set_interrupt_affinity(struct efx_nic *efx); 25e1253f39SAlex Maftei (amaftei) void efx_clear_interrupt_affinity(struct efx_nic *efx); 26e1253f39SAlex Maftei (amaftei) 27e1253f39SAlex Maftei (amaftei) int efx_probe_eventq(struct efx_channel *channel); 28e1253f39SAlex Maftei (amaftei) int efx_init_eventq(struct efx_channel *channel); 29e1253f39SAlex Maftei (amaftei) void efx_start_eventq(struct efx_channel *channel); 30e1253f39SAlex Maftei (amaftei) void efx_stop_eventq(struct efx_channel *channel); 31e1253f39SAlex Maftei (amaftei) void efx_fini_eventq(struct efx_channel *channel); 32e1253f39SAlex Maftei (amaftei) void efx_remove_eventq(struct efx_channel *channel); 33e1253f39SAlex Maftei (amaftei) 34e1253f39SAlex Maftei (amaftei) int efx_realloc_channels(struct efx_nic *efx, u32 rxq_entries, u32 txq_entries); 35e1253f39SAlex Maftei (amaftei) void efx_set_channel_names(struct efx_nic *efx); 36e1253f39SAlex Maftei (amaftei) int efx_init_channels(struct efx_nic *efx); 37e1253f39SAlex Maftei (amaftei) int efx_probe_channels(struct efx_nic *efx); 38e1253f39SAlex Maftei (amaftei) int efx_set_channels(struct efx_nic *efx); 39e1253f39SAlex Maftei (amaftei) void efx_remove_channel(struct efx_channel *channel); 40e1253f39SAlex Maftei (amaftei) void efx_remove_channels(struct efx_nic *efx); 41e1253f39SAlex Maftei (amaftei) void efx_fini_channels(struct efx_nic *efx); 42e1253f39SAlex Maftei (amaftei) struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel); 43e1253f39SAlex Maftei (amaftei) void efx_start_channels(struct efx_nic *efx); 44e1253f39SAlex Maftei (amaftei) void efx_stop_channels(struct efx_nic *efx); 45e1253f39SAlex Maftei (amaftei) 46e1253f39SAlex Maftei (amaftei) void efx_init_napi_channel(struct efx_channel *channel); 47e1253f39SAlex Maftei (amaftei) void efx_init_napi(struct efx_nic *efx); 48e1253f39SAlex Maftei (amaftei) void efx_fini_napi_channel(struct efx_channel *channel); 49e1253f39SAlex Maftei (amaftei) void efx_fini_napi(struct efx_nic *efx); 50e1253f39SAlex Maftei (amaftei) 51e1253f39SAlex Maftei (amaftei) void efx_channel_dummy_op_void(struct efx_channel *channel); 52e1253f39SAlex Maftei (amaftei) 53 #endif 54