Commit 29b4eafb authored by Iyappan Subramanian's avatar Iyappan Subramanian Committed by David S. Miller

drivers: net: xgene: Fix RSS indirection table fields

This patch fixes FPSel and NxtFPSel fields length to 5-bit value.
Signed-off-by: default avatarQuan Nguyen <qnguyen@apm.com>
Signed-off-by: default avatarIyappan Subramanian <isubramanian@apm.com>
Tested-by: default avatarFushen Chen <fchen@apm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cecd6e51
...@@ -32,12 +32,19 @@ static void xgene_cle_sband_to_hw(u8 frag, enum xgene_cle_prot_version ver, ...@@ -32,12 +32,19 @@ static void xgene_cle_sband_to_hw(u8 frag, enum xgene_cle_prot_version ver,
SET_VAL(SB_HDRLEN, len); SET_VAL(SB_HDRLEN, len);
} }
static void xgene_cle_idt_to_hw(u32 dstqid, u32 fpsel, static void xgene_cle_idt_to_hw(struct xgene_enet_pdata *pdata,
u32 dstqid, u32 fpsel,
u32 nfpsel, u32 *idt_reg) u32 nfpsel, u32 *idt_reg)
{ {
*idt_reg = SET_VAL(IDT_DSTQID, dstqid) | if (pdata->enet_id == XGENE_ENET1) {
SET_VAL(IDT_FPSEL, fpsel) | *idt_reg = SET_VAL(IDT_DSTQID, dstqid) |
SET_VAL(IDT_NFPSEL, nfpsel); SET_VAL(IDT_FPSEL1, fpsel) |
SET_VAL(IDT_NFPSEL1, nfpsel);
} else {
*idt_reg = SET_VAL(IDT_DSTQID, dstqid) |
SET_VAL(IDT_FPSEL, fpsel) |
SET_VAL(IDT_NFPSEL, nfpsel);
}
} }
static void xgene_cle_dbptr_to_hw(struct xgene_enet_pdata *pdata, static void xgene_cle_dbptr_to_hw(struct xgene_enet_pdata *pdata,
...@@ -344,7 +351,7 @@ static int xgene_cle_set_rss_idt(struct xgene_enet_pdata *pdata) ...@@ -344,7 +351,7 @@ static int xgene_cle_set_rss_idt(struct xgene_enet_pdata *pdata)
nfpsel = 0; nfpsel = 0;
idt_reg = 0; idt_reg = 0;
xgene_cle_idt_to_hw(dstqid, fpsel, nfpsel, &idt_reg); xgene_cle_idt_to_hw(pdata, dstqid, fpsel, nfpsel, &idt_reg);
ret = xgene_cle_dram_wr(&pdata->cle, &idt_reg, 1, i, ret = xgene_cle_dram_wr(&pdata->cle, &idt_reg, 1, i,
RSS_IDT, CLE_CMD_WR); RSS_IDT, CLE_CMD_WR);
if (ret) if (ret)
......
...@@ -196,9 +196,13 @@ enum xgene_cle_ptree_dbptrs { ...@@ -196,9 +196,13 @@ enum xgene_cle_ptree_dbptrs {
#define IDT_DSTQID_POS 0 #define IDT_DSTQID_POS 0
#define IDT_DSTQID_LEN 12 #define IDT_DSTQID_LEN 12
#define IDT_FPSEL_POS 12 #define IDT_FPSEL_POS 12
#define IDT_FPSEL_LEN 4 #define IDT_FPSEL_LEN 5
#define IDT_NFPSEL_POS 16 #define IDT_NFPSEL_POS 17
#define IDT_NFPSEL_LEN 4 #define IDT_NFPSEL_LEN 5
#define IDT_FPSEL1_POS 12
#define IDT_FPSEL1_LEN 4
#define IDT_NFPSEL1_POS 16
#define IDT_NFPSEL1_LEN 4
struct xgene_cle_ptree_branch { struct xgene_cle_ptree_branch {
bool valid; bool valid;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment