mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 09:09:55 -04:00
Octeontx2-af: Disable stale DMAC filters
During driver initialization disable stale DMAC filters in CGX/RPM set by firmware. Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Signed-off-by: Hariprasad Kelam <hkelam@marvell.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20250720163638.1560323-3-hkelam@marvell.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
dd47fc6769
commit
83d17aba92
@@ -1704,9 +1704,11 @@ unsigned long cgx_get_lmac_bmap(void *cgxd)
|
||||
|
||||
static int cgx_lmac_init(struct cgx *cgx)
|
||||
{
|
||||
u8 max_dmac_filters;
|
||||
struct lmac *lmac;
|
||||
u64 lmac_list;
|
||||
int i, err;
|
||||
int filter;
|
||||
|
||||
/* lmac_list specifies which lmacs are enabled
|
||||
* when bit n is set to 1, LMAC[n] is enabled
|
||||
@@ -1745,6 +1747,8 @@ static int cgx_lmac_init(struct cgx *cgx)
|
||||
cgx->mac_ops->dmac_filter_count /
|
||||
cgx->lmac_count;
|
||||
|
||||
max_dmac_filters = lmac->mac_to_index_bmap.max;
|
||||
|
||||
err = rvu_alloc_bitmap(&lmac->mac_to_index_bmap);
|
||||
if (err)
|
||||
goto err_name_free;
|
||||
@@ -1774,6 +1778,15 @@ static int cgx_lmac_init(struct cgx *cgx)
|
||||
set_bit(lmac->lmac_id, &cgx->lmac_bmap);
|
||||
cgx->mac_ops->mac_pause_frm_config(cgx, lmac->lmac_id, true);
|
||||
lmac->lmac_type = cgx->mac_ops->get_lmac_type(cgx, lmac->lmac_id);
|
||||
|
||||
/* Disable stale DMAC filters for sane state */
|
||||
for (filter = 0; filter < max_dmac_filters; filter++)
|
||||
cgx_lmac_addr_del(cgx->cgx_id, lmac->lmac_id, filter);
|
||||
|
||||
/* As cgx_lmac_addr_del does not clear entry for index 0
|
||||
* so it needs to be done explicitly
|
||||
*/
|
||||
cgx_lmac_addr_reset(cgx->cgx_id, lmac->lmac_id);
|
||||
}
|
||||
|
||||
/* Start X2P reset on given MAC block */
|
||||
|
||||
Reference in New Issue
Block a user