Subject: Re: [PATCH v6] sun4i-emac.c: add dma support

From: Corentin Labbe <[email-masked]>
Date: Mon, 3 Jan 2022 12:42:58 +0100

Le Mon, Jan 03, 2022 at 10:55:04AM +0800, Conley Lee a écrit :
> On 01/02/22 at 06:38下午, Corentin Labbe wrote:
> > Date: Sun, 2 Jan 2022 18:38:51 +0100
> > From: Corentin Labbe <[email-masked]>
> > To: Conley Lee <[email-masked]>
> > Cc: [email-masked], [email-masked], [email-masked],
> >  [email-masked], [email-masked],
> >  [email-masked], [email-masked],
> >  [email-masked], [email-masked]
> > Subject: Re: [PATCH v6] sun4i-emac.c: add dma support
> > 
> > Le Sat, Jan 01, 2022 at 03:09:01PM +0800, Conley Lee a écrit :
> > > On 12/31/21 at 11:43上午, Corentin Labbe wrote:
> > > > Date: Fri, 31 Dec 2021 11:43:53 +0100
> > > > From: Corentin Labbe <[email-masked]>
> > > > To: [email-masked]
> > > > Cc: [email-masked], [email-masked], [email-masked],
> > > >  [email-masked], [email-masked],
> > > >  [email-masked], [email-masked]
> > > > Subject: Re: [PATCH v6] sun4i-emac.c: add dma support
> > > > 
> > > > Le Wed, Dec 29, 2021 at 09:43:51AM +0800, [email-masked] a écrit :
> > > > > From: Conley Lee <[email-masked]>
> > > > > 
> > > > > Thanks for your review. Here is the new version for this patch.
> > > > > 
> > > > > This patch adds support for the emac rx dma present on sun4i. The emac
> > > > > is able to move packets from rx fifo to RAM by using dma.
> > > > > 
> > > > > Change since v4.
> > > > >   - rename sbk field to skb
> > > > >   - rename alloc_emac_dma_req to emac_alloc_dma_req
> > > > >   - using kzalloc(..., GPF_ATOMIC) in interrupt context to avoid
> > > > >     sleeping
> > > > >   - retry by using emac_inblk_32bit when emac_dma_inblk_32bit fails
> > > > >   - fix some code style issues 
> > > > > 
> > > > > Change since v5.
> > > > >   - fix some code style issue
> > > > > 
> > > > 
> > > > Hello
> > > > 
> > > > I just tested this on a sun4i-a10-olinuxino-lime
> > > > 
> > > > I got:
> > > > [    2.922812] sun4i-emac 1c0b000.ethernet (unnamed net_device) (uninitialized): get io resource from device: 0x1c0b000, size = 4096
> > > > [    2.934512] sun4i-emac 1c0b000.ethernet (unnamed net_device) (uninitialized): failed to request dma channel. dma is disabled
> > > > [    2.945740] sun4i-emac 1c0b000.ethernet (unnamed net_device) (uninitialized): configure dma failed. disable dma.
> > > > [    2.957887] sun4i-emac 1c0b000.ethernet: eth0: at (ptrval), IRQ 19 MAC: 02:49:09:40:ab:3d
> > > > 
> > > > On which board did you test it and how ?
> > > > 
> > > > Regards
> > > 
> > > Sorry. I sent the email with text/html format. This email is an clean version.
> > > 
> > > In order to enable dma rx channel. `dmas` and `dma-names` properties
> > > should be added to emac section in dts:
> > > 
> > > emac: ethernet@1c0b000 {
> > > 	...
> > > 	dmas = <&dma SUN4I_DMA_DEDICATED 7>;
> > > 	dma-names = "rx";
> > > 	...
> > > }
> > 
> > Helo
> > 
> > Yes I figured that out. But you should have done a patch serie adding this.
> > Your patch is now applied but it is a useless change without the dtb change.
> > You should also probably update the driver binding (Documentation/devicetree/bindings/net/allwinner,sun4i-a10-emac.yaml) since you add new members to DT node.
> > 
> > Furthermore, why did you add RX only and not TX dma also ?
> > 
> > Probably it is too late since patch is applied but it is:
> > Tested-by: Corentin Labbe <[email-masked]>
> > Tested-on: sun4i-a10-olinuxino-lime
> > 
> > Regards
> 
> Thanks for your suggestion. I will submit a patch to add those changes
> later. 
> 
> And the reason why I didn't add TX support is becasuse there is no any
> public page to describe sun4i emac TX DMA register map. So, I don't known
> how to enable TX DMA at hardware level. If you has any page or datasheet
> about EMAC TX DMA, can you share with me ? Thanks.

Hello

You can find TX DMA info on the R40 Use manual (8.10.5.2 Register Name: EMAC_TX_MODE)

You should keep all people in CC when you answer to someone.

Regards