net: dsa: microchip: ksz8: Refactor ksz8_r_dyn_mac_table() for readability
Move the code out of a long if statement scope in ksz8_r_dyn_mac_table() to improve code readability. Reviewed-by: Vladimir Oltean <olteanv@gmail.com> Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com> Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://lore.kernel.org/r/20240403125039.3414824-5-o.rempel@pengutronix.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
0499bb09f4
commit
5f1b7f838f
@ -416,7 +416,9 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr,
|
||||
const u32 *masks;
|
||||
const u16 *regs;
|
||||
u16 ctrl_addr;
|
||||
u64 buf = 0;
|
||||
u8 data;
|
||||
int cnt;
|
||||
int rc;
|
||||
|
||||
shifts = dev->info->shifts;
|
||||
@ -432,38 +434,38 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr,
|
||||
if (rc == -EAGAIN) {
|
||||
if (addr == 0)
|
||||
*entries = 0;
|
||||
goto unlock_alu;
|
||||
} else if (rc == -ENXIO) {
|
||||
*entries = 0;
|
||||
/* At least one valid entry in the table. */
|
||||
} else {
|
||||
u64 buf = 0;
|
||||
int cnt;
|
||||
|
||||
ksz_read64(dev, regs[REG_IND_DATA_HI], &buf);
|
||||
data_hi = (u32)(buf >> 32);
|
||||
data_lo = (u32)buf;
|
||||
|
||||
/* Check out how many valid entry in the table. */
|
||||
cnt = data & masks[DYNAMIC_MAC_TABLE_ENTRIES_H];
|
||||
cnt <<= shifts[DYNAMIC_MAC_ENTRIES_H];
|
||||
cnt |= (data_hi & masks[DYNAMIC_MAC_TABLE_ENTRIES]) >>
|
||||
shifts[DYNAMIC_MAC_ENTRIES];
|
||||
*entries = cnt + 1;
|
||||
|
||||
*fid = (data_hi & masks[DYNAMIC_MAC_TABLE_FID]) >>
|
||||
shifts[DYNAMIC_MAC_FID];
|
||||
*src_port = (data_hi & masks[DYNAMIC_MAC_TABLE_SRC_PORT]) >>
|
||||
shifts[DYNAMIC_MAC_SRC_PORT];
|
||||
|
||||
mac_addr[5] = (u8)data_lo;
|
||||
mac_addr[4] = (u8)(data_lo >> 8);
|
||||
mac_addr[3] = (u8)(data_lo >> 16);
|
||||
mac_addr[2] = (u8)(data_lo >> 24);
|
||||
|
||||
mac_addr[1] = (u8)data_hi;
|
||||
mac_addr[0] = (u8)(data_hi >> 8);
|
||||
rc = 0;
|
||||
goto unlock_alu;
|
||||
}
|
||||
|
||||
ksz_read64(dev, regs[REG_IND_DATA_HI], &buf);
|
||||
data_hi = (u32)(buf >> 32);
|
||||
data_lo = (u32)buf;
|
||||
|
||||
/* Check out how many valid entry in the table. */
|
||||
cnt = data & masks[DYNAMIC_MAC_TABLE_ENTRIES_H];
|
||||
cnt <<= shifts[DYNAMIC_MAC_ENTRIES_H];
|
||||
cnt |= (data_hi & masks[DYNAMIC_MAC_TABLE_ENTRIES]) >>
|
||||
shifts[DYNAMIC_MAC_ENTRIES];
|
||||
*entries = cnt + 1;
|
||||
|
||||
*fid = (data_hi & masks[DYNAMIC_MAC_TABLE_FID]) >>
|
||||
shifts[DYNAMIC_MAC_FID];
|
||||
*src_port = (data_hi & masks[DYNAMIC_MAC_TABLE_SRC_PORT]) >>
|
||||
shifts[DYNAMIC_MAC_SRC_PORT];
|
||||
|
||||
mac_addr[5] = (u8)data_lo;
|
||||
mac_addr[4] = (u8)(data_lo >> 8);
|
||||
mac_addr[3] = (u8)(data_lo >> 16);
|
||||
mac_addr[2] = (u8)(data_lo >> 24);
|
||||
|
||||
mac_addr[1] = (u8)data_hi;
|
||||
mac_addr[0] = (u8)(data_hi >> 8);
|
||||
rc = 0;
|
||||
|
||||
unlock_alu:
|
||||
mutex_unlock(&dev->alu_mutex);
|
||||
|
||||
return rc;
|
||||
|
Loading…
x
Reference in New Issue
Block a user