aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
diff options
context:
space:
mode:
authorIyappan Subramanian <isubramanian@apm.com>2016-02-17 15:00:41 -0800
committerDavid S. Miller <davem@davemloft.net>2016-02-17 22:08:34 -0500
commit107dec2749fed1b4172f77c091961b15221419db (patch)
treebd34138c7c0116fa9263ffd9c1e0f0a07a3284f7 /drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
parentdrivers: net: xgene: Add support for RSS (diff)
downloadlinux-dev-107dec2749fed1b4172f77c091961b15221419db.tar.xz
linux-dev-107dec2749fed1b4172f77c091961b15221419db.zip
drivers: net: xgene: Add support for multiple queues
Signed-off-by: Iyappan Subramanian <isubramanian@apm.com> Signed-off-by: Khuong Dinh <kdinh@apm.com> Signed-off-by: Tanmay Inamdar <tinamdar@apm.com> Tested-by: Toan Le <toanle@apm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/apm/xgene/xgene_enet_cle.c')
-rw-r--r--drivers/net/ethernet/apm/xgene/xgene_enet_cle.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_cle.c b/drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
index c00749727e6a..b212488606da 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_cle.c
@@ -331,14 +331,15 @@ static int xgene_cle_set_rss_skeys(struct xgene_enet_cle *cle)
static int xgene_cle_set_rss_idt(struct xgene_enet_pdata *pdata)
{
- u32 fpsel, dstqid, nfpsel, idt_reg;
+ u32 fpsel, dstqid, nfpsel, idt_reg, idx;
int i, ret = 0;
u16 pool_id;
for (i = 0; i < XGENE_CLE_IDT_ENTRIES; i++) {
- pool_id = pdata->rx_ring->buf_pool->id;
+ idx = i % pdata->rxq_cnt;
+ pool_id = pdata->rx_ring[idx]->buf_pool->id;
fpsel = xgene_enet_ring_bufnum(pool_id) - 0x20;
- dstqid = xgene_enet_dst_ring_num(pdata->rx_ring);
+ dstqid = xgene_enet_dst_ring_num(pdata->rx_ring[idx]);
nfpsel = 0;
idt_reg = 0;
@@ -695,8 +696,8 @@ static int xgene_enet_cle_init(struct xgene_enet_pdata *pdata)
br->mask = 0xffff;
}
- def_qid = xgene_enet_dst_ring_num(pdata->rx_ring);
- pool_id = pdata->rx_ring->buf_pool->id;
+ def_qid = xgene_enet_dst_ring_num(pdata->rx_ring[0]);
+ pool_id = pdata->rx_ring[0]->buf_pool->id;
def_fpsel = xgene_enet_ring_bufnum(pool_id) - 0x20;
memset(dbptr, 0, sizeof(struct xgene_cle_dbptr) * DB_MAX_PTRS);