net: dsa: b53: split reading search entry into their own functions

Split reading search entries into a function for each format.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/20251107080749.26936-6-jonas.gorski@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jonas Gorski 2025-11-07 09:07:46 +01:00 committed by Jakub Kicinski
parent 1716be6db0
commit e0c476f325

View File

@ -2076,28 +2076,48 @@ static int b53_arl_search_wait(struct b53_device *dev)
return -ETIMEDOUT;
}
static void b53_arl_search_rd(struct b53_device *dev, u8 idx,
struct b53_arl_entry *ent)
static void b53_arl_search_read_25(struct b53_device *dev, u8 idx,
struct b53_arl_entry *ent)
{
u64 mac_vid;
if (is5325(dev)) {
b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_25,
&mac_vid);
b53_arl_to_entry_25(ent, mac_vid);
} else if (is5365(dev)) {
b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_65,
&mac_vid);
b53_arl_to_entry_25(ent, mac_vid);
} else {
u32 fwd_entry;
b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_25,
&mac_vid);
b53_arl_to_entry_25(ent, mac_vid);
}
b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_MACVID(idx),
&mac_vid);
b53_read32(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL(idx),
&fwd_entry);
b53_arl_to_entry(ent, mac_vid, fwd_entry);
}
static void b53_arl_search_read_65(struct b53_device *dev, u8 idx,
struct b53_arl_entry *ent)
{
u64 mac_vid;
b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_0_MACVID_65,
&mac_vid);
b53_arl_to_entry_25(ent, mac_vid);
}
static void b53_arl_search_read_95(struct b53_device *dev, u8 idx,
struct b53_arl_entry *ent)
{
u32 fwd_entry;
u64 mac_vid;
b53_read64(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL_MACVID(idx),
&mac_vid);
b53_read32(dev, B53_ARLIO_PAGE, B53_ARL_SRCH_RSTL(idx),
&fwd_entry);
b53_arl_to_entry(ent, mac_vid, fwd_entry);
}
static void b53_arl_search_rd(struct b53_device *dev, u8 idx,
struct b53_arl_entry *ent)
{
if (is5325(dev))
b53_arl_search_read_25(dev, idx, ent);
else if (is5365(dev))
b53_arl_search_read_65(dev, idx, ent);
else
b53_arl_search_read_95(dev, idx, ent);
}
static int b53_fdb_copy(int port, const struct b53_arl_entry *ent,