]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: airoha: Get rid of dma_sync_single_for_device() in airoha_qdma_fill_rx_queue()
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 25 Jun 2025 14:43:15 +0000 (16:43 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 27 Jun 2025 00:11:01 +0000 (17:11 -0700)
Since the page_pool for airoha_eth driver is created with
PP_FLAG_DMA_SYNC_DEV flag, we do not need to sync_for_device each page
received from the pool since it is already done by the page_pool codebase.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Link: https://patch.msgid.link/20250625-airoha-sync-for-device-v1-1-923741deaabf@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/airoha/airoha_eth.c

index 06dea3a13e77ce11f35dbd36966a34c5ef229c11..10a167224bf5ff60e60655306b8748253d2f52e5 100644 (file)
@@ -551,9 +551,7 @@ static int airoha_fe_init(struct airoha_eth *eth)
 
 static int airoha_qdma_fill_rx_queue(struct airoha_queue *q)
 {
-       enum dma_data_direction dir = page_pool_get_dma_dir(q->page_pool);
        struct airoha_qdma *qdma = q->qdma;
-       struct airoha_eth *eth = qdma->eth;
        int qid = q - &qdma->q_rx[0];
        int nframes = 0;
 
@@ -577,9 +575,6 @@ static int airoha_qdma_fill_rx_queue(struct airoha_queue *q)
                e->dma_addr = page_pool_get_dma_addr(page) + offset;
                e->dma_len = SKB_WITH_OVERHEAD(q->buf_size);
 
-               dma_sync_single_for_device(eth->dev, e->dma_addr, e->dma_len,
-                                          dir);
-
                val = FIELD_PREP(QDMA_DESC_LEN_MASK, e->dma_len);
                WRITE_ONCE(desc->ctrl, cpu_to_le32(val));
                WRITE_ONCE(desc->addr, cpu_to_le32(e->dma_addr));