mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 03:53:37 +02:00
net: macb: simplify macb_adj_dma_desc_idx()
The function body uses a switch statement on bp->hw_dma_cap and handles
its four possible values: 0, is_64b, is_ptp, is_64b && is_ptp.
Instead, refactor by noticing that the return value is:
desc_size * MULT
with MULT = 3 if is_64b && is_ptp,
2 if is_64b || is_ptp,
1 otherwise.
MULT can be expressed as:
1 + is_64b + is_ptp
Signed-off-by: Théo Lebrun <theo.lebrun@bootlin.com>
Link: https://patch.msgid.link/20251014-macb-cleanup-v1-7-31cd266e22cd@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
94a164598d
commit
62e6c17463
|
|
@ -136,19 +136,13 @@ static unsigned int macb_dma_desc_get_size(struct macb *bp)
|
|||
static unsigned int macb_adj_dma_desc_idx(struct macb *bp, unsigned int desc_idx)
|
||||
{
|
||||
#ifdef MACB_EXT_DESC
|
||||
switch (bp->hw_dma_cap) {
|
||||
case HW_DMA_CAP_64B:
|
||||
case HW_DMA_CAP_PTP:
|
||||
desc_idx <<= 1;
|
||||
break;
|
||||
case HW_DMA_CAP_64B_PTP:
|
||||
desc_idx *= 3;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
bool is_ptp = bp->hw_dma_cap & HW_DMA_CAP_PTP;
|
||||
bool is_64b = bp->hw_dma_cap & HW_DMA_CAP_64B;
|
||||
|
||||
return desc_idx * (1 + is_64b + is_ptp);
|
||||
#else
|
||||
return desc_idx;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user