Re: [PATCH RESEND net] net: airoha: Fix NPU RX DMA descriptor bits

From: Lorenzo Bianconi

Date: Mon May 18 2026 - 10:53:38 EST


> In an internal review from Airoha, it was notice that the RX DMA descriptor
> bits and mask are wrong. These values probably refer to an old NPU firmware
> never published. The previous value works correctly but it was reported
> that in some specific condition in mixed scenario with both Ethernet and
> WiFi offload it's possible that RX DMA descriptor signal wrong value with
> the problem to the RX ring or packets getting dropped.
>
> To handle these specific scenario, apply the new suggested bits mask from
> Airoha.
>
> Correct functionality of both AN7581 NPU and MT7996 variant were verified
> and confirmed working.
>
> Fixes: a7fc8c641cab ("net: airoha: Fix npu rx DMA definitions")
> Signed-off-by: Christian Marangi <ansuelsmth@xxxxxxxxx>

Acked-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx>

> ---
> include/linux/soc/airoha/airoha_offload.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/soc/airoha/airoha_offload.h b/include/linux/soc/airoha/airoha_offload.h
> index d01ef4a6b3d7..7589fccfeef6 100644
> --- a/include/linux/soc/airoha/airoha_offload.h
> +++ b/include/linux/soc/airoha/airoha_offload.h
> @@ -71,9 +71,9 @@ static inline void airoha_ppe_dev_check_skb(struct airoha_ppe_dev *dev,
> #define NPU_RX1_DESC_NUM 512
>
> /* CTRL */
> -#define NPU_RX_DMA_DESC_LAST_MASK BIT(27)
> -#define NPU_RX_DMA_DESC_LEN_MASK GENMASK(26, 14)
> -#define NPU_RX_DMA_DESC_CUR_LEN_MASK GENMASK(13, 1)
> +#define NPU_RX_DMA_DESC_LAST_MASK BIT(29)
> +#define NPU_RX_DMA_DESC_LEN_MASK GENMASK(28, 15)
> +#define NPU_RX_DMA_DESC_CUR_LEN_MASK GENMASK(14, 1)
> #define NPU_RX_DMA_DESC_DONE_MASK BIT(0)
> /* INFO */
> #define NPU_RX_DMA_PKT_COUNT_MASK GENMASK(31, 29)
> --
> 2.53.0
>

Attachment: signature.asc
Description: PGP signature