Re: [PATCH v6] sun4i-emac.c: add dma support
From: Corentin Labbe <clabbe.montjoie@gmail.com>
Date: 2022-01-03 11:43:05
Also in:
linux-arm-kernel, linux-sunxi, lkml
Le Mon, Jan 03, 2022 at 10:55:04AM +0800, Conley Lee a écrit :
On 01/02/22 at 06:38下午, Corentin Labbe wrote:quoted
Date: Sun, 2 Jan 2022 18:38:51 +0100 From: Corentin Labbe <clabbe.montjoie@gmail.com> To: Conley Lee <redacted> Cc: davem@davemloft.net, kuba@kernel.org, mripard@kernel.org, wens@csie.org, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-sunxi@lists.linux.dev, jernej.skrabec@gmail.com Subject: Re: [PATCH v6] sun4i-emac.c: add dma support Le Sat, Jan 01, 2022 at 03:09:01PM +0800, Conley Lee a écrit :quoted
On 12/31/21 at 11:43上午, Corentin Labbe wrote:quoted
Date: Fri, 31 Dec 2021 11:43:53 +0100 From: Corentin Labbe <clabbe.montjoie@gmail.com> To: conleylee@foxmail.com Cc: davem@davemloft.net, kuba@kernel.org, mripard@kernel.org, wens@csie.org, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v6] sun4i-emac.c: add dma support Le Wed, Dec 29, 2021 at 09:43:51AM +0800, conleylee@foxmail.com a écrit :quoted
From: Conley Lee <redacted> 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 issueHello 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 ? RegardsSorry. 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 <clabbe.montjoie@gmail.com> Tested-on: sun4i-a10-olinuxino-lime RegardsThanks 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