151b35a45SEdward Cree /* SPDX-License-Identifier: GPL-2.0-only */
251b35a45SEdward Cree /****************************************************************************
351b35a45SEdward Cree  * Driver for Solarflare network controllers and boards
451b35a45SEdward Cree  * Copyright 2019 Solarflare Communications Inc.
551b35a45SEdward Cree  * Copyright 2019-2020 Xilinx Inc.
651b35a45SEdward Cree  *
751b35a45SEdward Cree  * This program is free software; you can redistribute it and/or modify it
851b35a45SEdward Cree  * under the terms of the GNU General Public License version 2 as published
951b35a45SEdward Cree  * by the Free Software Foundation, incorporated herein by reference.
1051b35a45SEdward Cree  */
1151b35a45SEdward Cree 
1251b35a45SEdward Cree #ifndef EFX_EF100_TX_H
1351b35a45SEdward Cree #define EFX_EF100_TX_H
1451b35a45SEdward Cree 
1551b35a45SEdward Cree #include "net_driver.h"
1602443ab8SEdward Cree #include "ef100_rep.h"
1751b35a45SEdward Cree 
18965b549fSEdward Cree int ef100_tx_probe(struct efx_tx_queue *tx_queue);
19965b549fSEdward Cree void ef100_tx_init(struct efx_tx_queue *tx_queue);
20965b549fSEdward Cree void ef100_tx_write(struct efx_tx_queue *tx_queue);
21d19a5372SEdward Cree unsigned int ef100_tx_max_skb_descs(struct efx_nic *efx);
22d19a5372SEdward Cree 
23*4aaf2c52SÍñigo Huguet int ef100_ev_tx(struct efx_channel *channel, const efx_qword_t *p_event);
24965b549fSEdward Cree 
2551b35a45SEdward Cree netdev_tx_t ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb);
2602443ab8SEdward Cree int __ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb,
2702443ab8SEdward Cree 			struct efx_rep *efv);
2851b35a45SEdward Cree #endif
29