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; 15e4ff3232SEdward Cree 16e1253f39SAlex Maftei (amaftei) int efx_probe_interrupts(struct efx_nic *efx); 17e1253f39SAlex Maftei (amaftei) void efx_remove_interrupts(struct efx_nic *efx); 18e1253f39SAlex Maftei (amaftei) int efx_soft_enable_interrupts(struct efx_nic *efx); 19e1253f39SAlex Maftei (amaftei) void efx_soft_disable_interrupts(struct efx_nic *efx); 20e1253f39SAlex Maftei (amaftei) int efx_enable_interrupts(struct efx_nic *efx); 21e1253f39SAlex Maftei (amaftei) void efx_disable_interrupts(struct efx_nic *efx); 22e1253f39SAlex Maftei (amaftei) 23e1253f39SAlex Maftei (amaftei) void efx_set_interrupt_affinity(struct efx_nic *efx); 24e1253f39SAlex Maftei (amaftei) void efx_clear_interrupt_affinity(struct efx_nic *efx); 25e1253f39SAlex Maftei (amaftei) 26e1253f39SAlex Maftei (amaftei) int efx_probe_eventq(struct efx_channel *channel); 27e1253f39SAlex Maftei (amaftei) int efx_init_eventq(struct efx_channel *channel); 28e1253f39SAlex Maftei (amaftei) void efx_start_eventq(struct efx_channel *channel); 29e1253f39SAlex Maftei (amaftei) void efx_stop_eventq(struct efx_channel *channel); 30e1253f39SAlex Maftei (amaftei) void efx_fini_eventq(struct efx_channel *channel); 31e1253f39SAlex Maftei (amaftei) void efx_remove_eventq(struct efx_channel *channel); 32e1253f39SAlex Maftei (amaftei) 33e1253f39SAlex Maftei (amaftei) struct efx_channel * 34e1253f39SAlex Maftei (amaftei) efx_alloc_channel(struct efx_nic *efx, int i, struct efx_channel *old_channel); 35e1253f39SAlex Maftei (amaftei) int efx_realloc_channels(struct efx_nic *efx, u32 rxq_entries, u32 txq_entries); 36e1253f39SAlex Maftei (amaftei) void efx_get_channel_name(struct efx_channel *channel, char *buf, size_t len); 37e1253f39SAlex Maftei (amaftei) void efx_set_channel_names(struct efx_nic *efx); 38e1253f39SAlex Maftei (amaftei) int efx_init_channels(struct efx_nic *efx); 39e1253f39SAlex Maftei (amaftei) int efx_probe_channels(struct efx_nic *efx); 40e1253f39SAlex Maftei (amaftei) int efx_set_channels(struct efx_nic *efx); 41e1253f39SAlex Maftei (amaftei) bool efx_default_channel_want_txqs(struct efx_channel *channel); 42e1253f39SAlex Maftei (amaftei) void efx_remove_channel(struct efx_channel *channel); 43e1253f39SAlex Maftei (amaftei) void efx_remove_channels(struct efx_nic *efx); 44e1253f39SAlex Maftei (amaftei) void efx_fini_channels(struct efx_nic *efx); 45e1253f39SAlex Maftei (amaftei) struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel); 46e1253f39SAlex Maftei (amaftei) void efx_start_channels(struct efx_nic *efx); 47e1253f39SAlex Maftei (amaftei) void efx_stop_channels(struct efx_nic *efx); 48e1253f39SAlex Maftei (amaftei) 49e1253f39SAlex Maftei (amaftei) void efx_init_napi_channel(struct efx_channel *channel); 50e1253f39SAlex Maftei (amaftei) void efx_init_napi(struct efx_nic *efx); 51e1253f39SAlex Maftei (amaftei) void efx_fini_napi_channel(struct efx_channel *channel); 52e1253f39SAlex Maftei (amaftei) void efx_fini_napi(struct efx_nic *efx); 53e1253f39SAlex Maftei (amaftei) 54e1253f39SAlex Maftei (amaftei) int efx_channel_dummy_op_int(struct efx_channel *channel); 55e1253f39SAlex Maftei (amaftei) void efx_channel_dummy_op_void(struct efx_channel *channel); 56e1253f39SAlex Maftei (amaftei) 57e1253f39SAlex Maftei (amaftei) #endif 58