diff mbox series

[v2] net: macb: Clean 64b dma addresses if they are not detected

Message ID 68051905ba59d7cfd74c63ef5bf0830dc2b9f6fe.1537857166.git.michal.simek@xilinx.com
State Accepted, archived
Delegated to: David Miller
Headers show
Series [v2] net: macb: Clean 64b dma addresses if they are not detected | expand

Commit Message

Michal Simek Sept. 25, 2018, 6:32 a.m. UTC
Clear ADDR64 dma bit in DMACFG register in case that HW_DMA_CAP_64B is
not detected on 64bit system.
The issue was observed when bootloader(u-boot) does not check macb
feature at DCFG6 register (DAW64_OFFSET) and enabling 64bit dma support
by default. Then macb driver is reading DMACFG register back and only
adding 64bit dma configuration but not cleaning it out.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

Changes in v2:
- Clean reg at the first place - Edgar
- Update commit message

 drivers/net/ethernet/cadence/macb_main.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Nicolas Ferre Sept. 25, 2018, 7 a.m. UTC | #1
On 25/09/2018 at 08:32, Michal Simek wrote:
> Clear ADDR64 dma bit in DMACFG register in case that HW_DMA_CAP_64B is
> not detected on 64bit system.
> The issue was observed when bootloader(u-boot) does not check macb
> feature at DCFG6 register (DAW64_OFFSET) and enabling 64bit dma support
> by default. Then macb driver is reading DMACFG register back and only
> adding 64bit dma configuration but not cleaning it out.
> 
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>

Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>

Thanks Michal. Best regards,
   Nicolas

> ---
> 
> Changes in v2:
> - Clean reg at the first place - Edgar
> - Update commit message
> 
>   drivers/net/ethernet/cadence/macb_main.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index 16e4ef7d7185..ed8a5c53467e 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -2160,6 +2160,7 @@ static void macb_configure_dma(struct macb *bp)
>   		else
>   			dmacfg &= ~GEM_BIT(TXCOEN);
>   
> +		dmacfg &= ~GEM_BIT(ADDR64);
>   #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
>   		if (bp->hw_dma_cap & HW_DMA_CAP_64B)
>   			dmacfg |= GEM_BIT(ADDR64);
>
David Miller Sept. 25, 2018, 5:37 p.m. UTC | #2
From: Michal Simek <michal.simek@xilinx.com>
Date: Tue, 25 Sep 2018 08:32:50 +0200

> Clear ADDR64 dma bit in DMACFG register in case that HW_DMA_CAP_64B is
> not detected on 64bit system.
> The issue was observed when bootloader(u-boot) does not check macb
> feature at DCFG6 register (DAW64_OFFSET) and enabling 64bit dma support
> by default. Then macb driver is reading DMACFG register back and only
> adding 64bit dma configuration but not cleaning it out.
> 
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
> 
> Changes in v2:
> - Clean reg at the first place - Edgar
> - Update commit message

Applied, thank you.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 16e4ef7d7185..ed8a5c53467e 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -2160,6 +2160,7 @@  static void macb_configure_dma(struct macb *bp)
 		else
 			dmacfg &= ~GEM_BIT(TXCOEN);
 
+		dmacfg &= ~GEM_BIT(ADDR64);
 #ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
 		if (bp->hw_dma_cap & HW_DMA_CAP_64B)
 			dmacfg |= GEM_BIT(ADDR64);