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 |
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); >
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 --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);
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(+)