mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-01 19:34:35 +08:00
net: enetc: remove forward-declarations of enetc_clean_{rx,tx}_ring
This patch moves the NAPI enetc_poll after enetc_clean_rx_ring such that we can delete the forward declarations. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7f071a450b
commit
8580b3c3d7
@ -242,10 +242,6 @@ static irqreturn_t enetc_msix(int irq, void *data)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
static bool enetc_clean_tx_ring(struct enetc_bdr *tx_ring, int napi_budget);
|
||||
static int enetc_clean_rx_ring(struct enetc_bdr *rx_ring,
|
||||
struct napi_struct *napi, int work_limit);
|
||||
|
||||
static void enetc_rx_dim_work(struct work_struct *w)
|
||||
{
|
||||
struct dim *dim = container_of(w, struct dim, work);
|
||||
@ -274,50 +270,6 @@ static void enetc_rx_net_dim(struct enetc_int_vector *v)
|
||||
net_dim(&v->rx_dim, dim_sample);
|
||||
}
|
||||
|
||||
static int enetc_poll(struct napi_struct *napi, int budget)
|
||||
{
|
||||
struct enetc_int_vector
|
||||
*v = container_of(napi, struct enetc_int_vector, napi);
|
||||
bool complete = true;
|
||||
int work_done;
|
||||
int i;
|
||||
|
||||
enetc_lock_mdio();
|
||||
|
||||
for (i = 0; i < v->count_tx_rings; i++)
|
||||
if (!enetc_clean_tx_ring(&v->tx_ring[i], budget))
|
||||
complete = false;
|
||||
|
||||
work_done = enetc_clean_rx_ring(&v->rx_ring, napi, budget);
|
||||
if (work_done == budget)
|
||||
complete = false;
|
||||
if (work_done)
|
||||
v->rx_napi_work = true;
|
||||
|
||||
if (!complete) {
|
||||
enetc_unlock_mdio();
|
||||
return budget;
|
||||
}
|
||||
|
||||
napi_complete_done(napi, work_done);
|
||||
|
||||
if (likely(v->rx_dim_en))
|
||||
enetc_rx_net_dim(v);
|
||||
|
||||
v->rx_napi_work = false;
|
||||
|
||||
/* enable interrupts */
|
||||
enetc_wr_reg_hot(v->rbier, ENETC_RBIER_RXTIE);
|
||||
|
||||
for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS)
|
||||
enetc_wr_reg_hot(v->tbier_base + ENETC_BDR_OFF(i),
|
||||
ENETC_TBIER_TXTIE);
|
||||
|
||||
enetc_unlock_mdio();
|
||||
|
||||
return work_done;
|
||||
}
|
||||
|
||||
static int enetc_bd_ready_count(struct enetc_bdr *tx_ring, int ci)
|
||||
{
|
||||
int pi = enetc_rd_reg_hot(tx_ring->tcir) & ENETC_TBCIR_IDX_MASK;
|
||||
@ -747,6 +699,50 @@ static int enetc_clean_rx_ring(struct enetc_bdr *rx_ring,
|
||||
return rx_frm_cnt;
|
||||
}
|
||||
|
||||
static int enetc_poll(struct napi_struct *napi, int budget)
|
||||
{
|
||||
struct enetc_int_vector
|
||||
*v = container_of(napi, struct enetc_int_vector, napi);
|
||||
bool complete = true;
|
||||
int work_done;
|
||||
int i;
|
||||
|
||||
enetc_lock_mdio();
|
||||
|
||||
for (i = 0; i < v->count_tx_rings; i++)
|
||||
if (!enetc_clean_tx_ring(&v->tx_ring[i], budget))
|
||||
complete = false;
|
||||
|
||||
work_done = enetc_clean_rx_ring(&v->rx_ring, napi, budget);
|
||||
if (work_done == budget)
|
||||
complete = false;
|
||||
if (work_done)
|
||||
v->rx_napi_work = true;
|
||||
|
||||
if (!complete) {
|
||||
enetc_unlock_mdio();
|
||||
return budget;
|
||||
}
|
||||
|
||||
napi_complete_done(napi, work_done);
|
||||
|
||||
if (likely(v->rx_dim_en))
|
||||
enetc_rx_net_dim(v);
|
||||
|
||||
v->rx_napi_work = false;
|
||||
|
||||
/* enable interrupts */
|
||||
enetc_wr_reg_hot(v->rbier, ENETC_RBIER_RXTIE);
|
||||
|
||||
for_each_set_bit(i, &v->tx_rings_map, ENETC_MAX_NUM_TXQS)
|
||||
enetc_wr_reg_hot(v->tbier_base + ENETC_BDR_OFF(i),
|
||||
ENETC_TBIER_TXTIE);
|
||||
|
||||
enetc_unlock_mdio();
|
||||
|
||||
return work_done;
|
||||
}
|
||||
|
||||
/* Probing and Init */
|
||||
#define ENETC_MAX_RFS_SIZE 64
|
||||
void enetc_get_si_caps(struct enetc_si *si)
|
||||
|
Loading…
Reference in New Issue
Block a user