Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /****************************************************************************
0003  * Driver for Solarflare network controllers and boards
0004  * Copyright 2018 Solarflare Communications Inc.
0005  *
0006  * This program is free software; you can redistribute it and/or modify it
0007  * under the terms of the GNU General Public License version 2 as published
0008  * by the Free Software Foundation, incorporated herein by reference.
0009  */
0010 
0011 #ifndef EFX_CHANNELS_H
0012 #define EFX_CHANNELS_H
0013 
0014 extern unsigned int efx_interrupt_mode;
0015 extern unsigned int rss_cpus;
0016 
0017 int efx_probe_interrupts(struct efx_nic *efx);
0018 void efx_remove_interrupts(struct efx_nic *efx);
0019 int efx_soft_enable_interrupts(struct efx_nic *efx);
0020 void efx_soft_disable_interrupts(struct efx_nic *efx);
0021 int efx_enable_interrupts(struct efx_nic *efx);
0022 void efx_disable_interrupts(struct efx_nic *efx);
0023 
0024 void efx_set_interrupt_affinity(struct efx_nic *efx);
0025 void efx_clear_interrupt_affinity(struct efx_nic *efx);
0026 
0027 int efx_probe_eventq(struct efx_channel *channel);
0028 int efx_init_eventq(struct efx_channel *channel);
0029 void efx_start_eventq(struct efx_channel *channel);
0030 void efx_stop_eventq(struct efx_channel *channel);
0031 void efx_fini_eventq(struct efx_channel *channel);
0032 void efx_remove_eventq(struct efx_channel *channel);
0033 
0034 int efx_realloc_channels(struct efx_nic *efx, u32 rxq_entries, u32 txq_entries);
0035 void efx_set_channel_names(struct efx_nic *efx);
0036 int efx_init_channels(struct efx_nic *efx);
0037 int efx_probe_channels(struct efx_nic *efx);
0038 int efx_set_channels(struct efx_nic *efx);
0039 void efx_remove_channel(struct efx_channel *channel);
0040 void efx_remove_channels(struct efx_nic *efx);
0041 void efx_fini_channels(struct efx_nic *efx);
0042 struct efx_channel *efx_copy_channel(const struct efx_channel *old_channel);
0043 void efx_start_channels(struct efx_nic *efx);
0044 void efx_stop_channels(struct efx_nic *efx);
0045 
0046 void efx_init_napi_channel(struct efx_channel *channel);
0047 void efx_init_napi(struct efx_nic *efx);
0048 void efx_fini_napi_channel(struct efx_channel *channel);
0049 void efx_fini_napi(struct efx_nic *efx);
0050 
0051 void efx_channel_dummy_op_void(struct efx_channel *channel);
0052 
0053 #endif