mirror of https://gitee.com/openkylin/linux.git
drivers: net: xgene: fix: Disable coalescing on v1 hardware
Since ethernet v1 hardware has a bug related to coalescing, disabling this feature. Signed-off-by: Iyappan Subramanian <isubramanian@apm.com> Signed-off-by: Toan Le <toanle@apm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
2c8657d226
commit
b5a4a3eb4e
|
@ -204,17 +204,6 @@ static u32 xgene_enet_ring_len(struct xgene_enet_desc_ring *ring)
|
||||||
return num_msgs;
|
return num_msgs;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xgene_enet_setup_coalescing(struct xgene_enet_desc_ring *ring)
|
|
||||||
{
|
|
||||||
u32 data = 0x7777;
|
|
||||||
|
|
||||||
xgene_enet_ring_wr32(ring, CSR_PBM_COAL, 0x8e);
|
|
||||||
xgene_enet_ring_wr32(ring, CSR_PBM_CTICK1, data);
|
|
||||||
xgene_enet_ring_wr32(ring, CSR_PBM_CTICK2, data << 16);
|
|
||||||
xgene_enet_ring_wr32(ring, CSR_THRESHOLD0_SET1, 0x40);
|
|
||||||
xgene_enet_ring_wr32(ring, CSR_THRESHOLD1_SET1, 0x80);
|
|
||||||
}
|
|
||||||
|
|
||||||
void xgene_enet_parse_error(struct xgene_enet_desc_ring *ring,
|
void xgene_enet_parse_error(struct xgene_enet_desc_ring *ring,
|
||||||
struct xgene_enet_pdata *pdata,
|
struct xgene_enet_pdata *pdata,
|
||||||
enum xgene_enet_err_code status)
|
enum xgene_enet_err_code status)
|
||||||
|
@ -929,5 +918,4 @@ struct xgene_ring_ops xgene_ring1_ops = {
|
||||||
.clear = xgene_enet_clear_ring,
|
.clear = xgene_enet_clear_ring,
|
||||||
.wr_cmd = xgene_enet_wr_cmd,
|
.wr_cmd = xgene_enet_wr_cmd,
|
||||||
.len = xgene_enet_ring_len,
|
.len = xgene_enet_ring_len,
|
||||||
.coalesce = xgene_enet_setup_coalescing,
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -1188,6 +1188,7 @@ static int xgene_enet_create_desc_rings(struct net_device *ndev)
|
||||||
tx_ring->dst_ring_num = xgene_enet_dst_ring_num(cp_ring);
|
tx_ring->dst_ring_num = xgene_enet_dst_ring_num(cp_ring);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pdata->ring_ops->coalesce)
|
||||||
pdata->ring_ops->coalesce(pdata->tx_ring[0]);
|
pdata->ring_ops->coalesce(pdata->tx_ring[0]);
|
||||||
pdata->tx_qcnt_hi = pdata->tx_ring[0]->slots - 128;
|
pdata->tx_qcnt_hi = pdata->tx_ring[0]->slots - 128;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue