162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/****************************************************************************
362306a36Sopenharmony_ci * Driver for Solarflare network controllers and boards
462306a36Sopenharmony_ci * Copyright 2018 Solarflare Communications Inc.
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * This program is free software; you can redistribute it and/or modify it
762306a36Sopenharmony_ci * under the terms of the GNU General Public License version 2 as published
862306a36Sopenharmony_ci * by the Free Software Foundation, incorporated herein by reference.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#ifndef EFX_SIENA_CHANNELS_H
1262306a36Sopenharmony_ci#define EFX_SIENA_CHANNELS_H
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciextern unsigned int efx_siena_interrupt_mode;
1562306a36Sopenharmony_ciextern unsigned int efx_siena_rss_cpus;
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciint efx_siena_probe_interrupts(struct efx_nic *efx);
1862306a36Sopenharmony_civoid efx_siena_remove_interrupts(struct efx_nic *efx);
1962306a36Sopenharmony_ciint efx_siena_enable_interrupts(struct efx_nic *efx);
2062306a36Sopenharmony_civoid efx_siena_disable_interrupts(struct efx_nic *efx);
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_civoid efx_siena_set_interrupt_affinity(struct efx_nic *efx);
2362306a36Sopenharmony_civoid efx_siena_clear_interrupt_affinity(struct efx_nic *efx);
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_civoid efx_siena_start_eventq(struct efx_channel *channel);
2662306a36Sopenharmony_civoid efx_siena_stop_eventq(struct efx_channel *channel);
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciint efx_siena_realloc_channels(struct efx_nic *efx, u32 rxq_entries,
2962306a36Sopenharmony_ci			       u32 txq_entries);
3062306a36Sopenharmony_civoid efx_siena_set_channel_names(struct efx_nic *efx);
3162306a36Sopenharmony_ciint efx_siena_init_channels(struct efx_nic *efx);
3262306a36Sopenharmony_ciint efx_siena_probe_channels(struct efx_nic *efx);
3362306a36Sopenharmony_ciint efx_siena_set_channels(struct efx_nic *efx);
3462306a36Sopenharmony_civoid efx_siena_remove_channel(struct efx_channel *channel);
3562306a36Sopenharmony_civoid efx_siena_remove_channels(struct efx_nic *efx);
3662306a36Sopenharmony_civoid efx_siena_fini_channels(struct efx_nic *efx);
3762306a36Sopenharmony_civoid efx_siena_start_channels(struct efx_nic *efx);
3862306a36Sopenharmony_civoid efx_siena_stop_channels(struct efx_nic *efx);
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_civoid efx_siena_init_napi(struct efx_nic *efx);
4162306a36Sopenharmony_civoid efx_siena_fini_napi(struct efx_nic *efx);
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_civoid efx_siena_channel_dummy_op_void(struct efx_channel *channel);
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#endif
46