mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From: Felix Fietkau <nbd@nbd.name>
 | |
| Date: Fri, 8 Apr 2022 10:59:45 +0200
 | |
| Subject: [PATCH] net: ethernet: mtk_eth_soc/wed: fix sparse endian warnings
 | |
| 
 | |
| Descriptor fields are little-endian
 | |
| 
 | |
| Fixes: 804775dfc288 ("net: ethernet: mtk_eth_soc: add support for Wireless Ethernet Dispatch (WED)")
 | |
| Reported-by: kernel test robot <lkp@intel.com>
 | |
| Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | |
| Signed-off-by: David S. Miller <davem@davemloft.net>
 | |
| ---
 | |
| 
 | |
| --- a/drivers/net/ethernet/mediatek/mtk_wed.c
 | |
| +++ b/drivers/net/ethernet/mediatek/mtk_wed.c
 | |
| @@ -144,16 +144,17 @@ mtk_wed_buffer_alloc(struct mtk_wed_devi
 | |
|  
 | |
|  		for (s = 0; s < MTK_WED_BUF_PER_PAGE; s++) {
 | |
|  			u32 txd_size;
 | |
| +			u32 ctrl;
 | |
|  
 | |
|  			txd_size = dev->wlan.init_buf(buf, buf_phys, token++);
 | |
|  
 | |
| -			desc->buf0 = buf_phys;
 | |
| -			desc->buf1 = buf_phys + txd_size;
 | |
| -			desc->ctrl = FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN0,
 | |
| -						txd_size) |
 | |
| -				     FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN1,
 | |
| -						MTK_WED_BUF_SIZE - txd_size) |
 | |
| -				     MTK_WDMA_DESC_CTRL_LAST_SEG1;
 | |
| +			desc->buf0 = cpu_to_le32(buf_phys);
 | |
| +			desc->buf1 = cpu_to_le32(buf_phys + txd_size);
 | |
| +			ctrl = FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN0, txd_size) |
 | |
| +			       FIELD_PREP(MTK_WDMA_DESC_CTRL_LEN1,
 | |
| +					  MTK_WED_BUF_SIZE - txd_size) |
 | |
| +			       MTK_WDMA_DESC_CTRL_LAST_SEG1;
 | |
| +			desc->ctrl = cpu_to_le32(ctrl);
 | |
|  			desc->info = 0;
 | |
|  			desc++;
 | |
|  
 | |
| @@ -184,12 +185,14 @@ mtk_wed_free_buffer(struct mtk_wed_devic
 | |
|  
 | |
|  	for (i = 0, page_idx = 0; i < dev->buf_ring.size; i += MTK_WED_BUF_PER_PAGE) {
 | |
|  		void *page = page_list[page_idx++];
 | |
| +		dma_addr_t buf_addr;
 | |
|  
 | |
|  		if (!page)
 | |
|  			break;
 | |
|  
 | |
| -		dma_unmap_page(dev->hw->dev, desc[i].buf0,
 | |
| -			       PAGE_SIZE, DMA_BIDIRECTIONAL);
 | |
| +		buf_addr = le32_to_cpu(desc[i].buf0);
 | |
| +		dma_unmap_page(dev->hw->dev, buf_addr, PAGE_SIZE,
 | |
| +			       DMA_BIDIRECTIONAL);
 | |
|  		__free_page(page);
 | |
|  	}
 | |
|  
 |