Skip to content

Commit

Permalink
net: airoha: read default PSE reserved pages value before updating
Browse files Browse the repository at this point in the history
Store the default value for the number of PSE reserved pages in orig_val
at the beginning of airoha_fe_set_pse_oq_rsv routine, before updating it
with airoha_fe_set_pse_queue_rsv_pages().
Introduce airoha_fe_get_pse_all_rsv utility routine.

Introduced by commit 23020f0 ("net: airoha: Introduce ethernet support
for EN7581 SoC")

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20241001-airoha-eth-pse-fix-v2-1-9a56cdffd074@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Lorenzo Bianconi authored and Jakub Kicinski committed Oct 4, 2024
1 parent 7d68b6f commit 1f3e7ff
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions drivers/net/ethernet/mediatek/airoha_eth.c
Original file line number Diff line number Diff line change
Expand Up @@ -1116,17 +1116,23 @@ static void airoha_fe_set_pse_queue_rsv_pages(struct airoha_eth *eth,
PSE_CFG_WR_EN_MASK | PSE_CFG_OQRSV_SEL_MASK);
}

static u32 airoha_fe_get_pse_all_rsv(struct airoha_eth *eth)
{
u32 val = airoha_fe_rr(eth, REG_FE_PSE_BUF_SET);

return FIELD_GET(PSE_ALLRSV_MASK, val);
}

static int airoha_fe_set_pse_oq_rsv(struct airoha_eth *eth,
u32 port, u32 queue, u32 val)
{
u32 orig_val, tmp, all_rsv, fq_limit;
u32 orig_val = airoha_fe_get_pse_queue_rsv_pages(eth, port, queue);
u32 tmp, all_rsv, fq_limit;

airoha_fe_set_pse_queue_rsv_pages(eth, port, queue, val);

/* modify all rsv */
orig_val = airoha_fe_get_pse_queue_rsv_pages(eth, port, queue);
tmp = airoha_fe_rr(eth, REG_FE_PSE_BUF_SET);
all_rsv = FIELD_GET(PSE_ALLRSV_MASK, tmp);
all_rsv = airoha_fe_get_pse_all_rsv(eth);
all_rsv += (val - orig_val);
airoha_fe_rmw(eth, REG_FE_PSE_BUF_SET, PSE_ALLRSV_MASK,
FIELD_PREP(PSE_ALLRSV_MASK, all_rsv));
Expand Down

0 comments on commit 1f3e7ff

Please sign in to comment.