> The driver calls dma_set_coherent_mask() but never dma_set_mask(), > leaving the streaming DMA mask at the bus default. On the non-coherent > EN7581 platform (Cortex-A53), this causes the NPU mailbox to hang > after approximately 41 calls when using streaming DMA mappings. > > Replace dma_set_coherent_mask() with dma_set_mask_and_coherent() to > set both the streaming and coherent DMA masks, matching standard > driver practice. > > Fixes: 6f884eb87a79 ("net: airoha: Fix DMA direction for NPU mailbox buffer") > Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20260814110017.2795022-1-pawlik.dan@gmail.com/ > Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20260809152813.585797-1-pawlik.dan@gmail.com/ > Link: https://patchwork.kernel.org/project/linux-mediatek/patch/20260805070851.2885888-1-pawlik.dan@gmail.com/ > Assisted-by: Claude:claude-opus-4-6 > Signed-off-by: Daniel Pawlik Acked-by: Lorenzo Bianconi > --- > drivers/net/ethernet/airoha/airoha_npu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/airoha/airoha_npu.c b/drivers/net/ethernet/airoha/airoha_npu.c > index b679bed952de..4045d1eb93ea 100644 > --- a/drivers/net/ethernet/airoha/airoha_npu.c > +++ b/drivers/net/ethernet/airoha/airoha_npu.c > @@ -766,7 +766,7 @@ static int airoha_npu_probe(struct platform_device *pdev) > npu->irqs[i] = irq; > } > > - err = dma_set_coherent_mask(dev, DMA_BIT_MASK(32)); > + err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32)); > if (err) > return err; > > -- > 2.55.0 >