#include <net/ip6_checksum.h>
#include "net_driver.h"
#include "tx_common.h"
#include "nic_common.h"
#include "mcdi_functions.h"
#include "ef100_regs.h"
#include "io.h"
#include "ef100_tx.h"
#include "ef100_nic.h"
int ef100_tx_probe(struct efx_tx_queue *tx_queue)
{ … }
void ef100_tx_init(struct efx_tx_queue *tx_queue)
{ … }
static bool ef100_tx_can_tso(struct efx_tx_queue *tx_queue, struct sk_buff *skb)
{ … }
static efx_oword_t *ef100_tx_desc(struct efx_tx_queue *tx_queue, unsigned int index)
{ … }
static void ef100_notify_tx_desc(struct efx_tx_queue *tx_queue)
{ … }
static void ef100_tx_push_buffers(struct efx_tx_queue *tx_queue)
{ … }
static void ef100_set_tx_csum_partial(const struct sk_buff *skb,
struct efx_tx_buffer *buffer, efx_oword_t *txd)
{ … }
static void ef100_set_tx_hw_vlan(const struct sk_buff *skb, efx_oword_t *txd)
{ … }
static void ef100_make_send_desc(struct efx_nic *efx,
const struct sk_buff *skb,
struct efx_tx_buffer *buffer, efx_oword_t *txd,
unsigned int segment_count)
{ … }
static void ef100_make_tso_desc(struct efx_nic *efx,
const struct sk_buff *skb,
struct efx_tx_buffer *buffer, efx_oword_t *txd,
unsigned int segment_count)
{ … }
static void ef100_tx_make_descriptors(struct efx_tx_queue *tx_queue,
const struct sk_buff *skb,
unsigned int segment_count,
struct efx_rep *efv)
{ … }
void ef100_tx_write(struct efx_tx_queue *tx_queue)
{ … }
int ef100_ev_tx(struct efx_channel *channel, const efx_qword_t *p_event)
{ … }
netdev_tx_t ef100_enqueue_skb(struct efx_tx_queue *tx_queue,
struct sk_buff *skb)
{ … }
int __ef100_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb,
struct efx_rep *efv)
{ … }