From: Green Wan <green.wan@sifive.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
devicetree@vger.kernel.org, Albert Ou <aou@eecs.berkeley.edu>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Jonathan Cameron <Jonathan.Cameron@huawei.com>,
Yash Shah <yash.shah@sifive.com>,
Green Wan <green.wan@sifive.com>, Bin Meng <bmeng.cn@gmail.com>,
dmaengine@vger.kernel.org, Vinod Koul <vkoul@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
Palmer Dabbelt <palmer@dabbelt.com>,
Sagar Kadam <sagar.kadam@sifive.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
Dan Williams <dan.j.williams@intel.com>,
"Paul E. McKenney" <paulmck@linux.ibm.com>,
linux-riscv@lists.infradead.org,
"David S. Miller" <davem@davemloft.net>,
linux-kernel@vger.kernel.org
Subject: [PATCH v6 0/4] dmaengine: sf-pdma: Add platform dma driver
Date: Thu, 7 Nov 2019 16:49:18 +0800 [thread overview]
Message-ID: <20191107084955.7580-1-green.wan@sifive.com> (raw)
Add PDMA driver support for SiFive HiFive Unleashed RevA00 board. Mainly follows
DMAengine controller doc[1] to implement and take other DMA drivers as reference.
Such as
- drivers/dma/fsl-edma.c
- drivers/dma/dw-edma/
- drivers/dma/pxa-dma.c
Using DMA test client[2] to test. Detailed datasheet is doc[3]. Driver supports:
- 4 physical DMA channels, share same DONE and error interrupt handler.
- Support MEM_TO_MEM
- Tested by DMA test client
- patches include DT Bindgins document and dts for fu450-c000 SoC. Separate dts
patch for easier review and apply to different branch or SoC platform.
- retry 1 time if DMA error occurs.
[Changelog]
- v6 patch
. Remove incorrect reviewer and fix commit number
. Revise sf_pdma_desc_residue() to report residue according to cookie. The tx
could be in completed, in-progress state or still in pending list.
. Refer to fsl-edma.c to free irq and kill tasklet before exit.
. Minor fixes include left-justisfied, empty line and unnecessary line.
[Reference Doc]
[1] ./Documentation/driver-api/dmaengine/provider.rst
[2] ./Documentation/driver-api/dmaengine/dmatest.rst
[3] https://static.dev.sifive.com/FU540-C000-v1.0.pdf
[Simple steps to test of DMA Test client]
$ echo 1 > /sys/module/dmatest/parameters/iterations
$ echo dma0chan0 > /sys/module/dmatest/parameters/channel
$ echo dma0chan1 > /sys/module/dmatest/parameters/channel
$ echo dma0chan2 > /sys/module/dmatest/parameters/channel
$ echo dma0chan3 > /sys/module/dmatest/parameters/channel
$ echo 1 > /sys/module/dmatest/parameters/run
[Expected test result]
[ 267.563323] dmatest: dma0chan0-copy0: summary 45629 tests, 0 failures 38769.01 iops 309661 KB/s (0)
[ 267.572427] dmatest: dma0chan1-copy0: summary 45863 tests, 0 failures 40286.85 iops 321643 KB/s (0)
[ 267.581392] dmatest: dma0chan2-copy0: summary 45975 tests, 0 failures 41178.48 iops 328740 KB/s (0)
[ 267.590542] dmatest: dma0chan3-copy0: summary 44768 tests, 0 failures 38560.29 iops 307726 KB/s (0)
Green Wan (4):
dt-bindings: dmaengine: sf-pdma: add bindins for SiFive PDMA
riscv: dts: add support for PDMA device of HiFive Unleashed Rev A00
dmaengine: sf-pdma: add platform DMA support for HiFive Unleashed A00
MAINTAINERS: Add Green as SiFive PDMA driver maintainer
.../bindings/dma/sifive,fu540-c000-pdma.yaml | 55 ++
MAINTAINERS | 6 +
arch/riscv/boot/dts/sifive/fu540-c000.dtsi | 7 +
drivers/dma/Kconfig | 2 +
drivers/dma/Makefile | 1 +
drivers/dma/sf-pdma/Kconfig | 6 +
drivers/dma/sf-pdma/Makefile | 1 +
drivers/dma/sf-pdma/sf-pdma.c | 621 ++++++++++++++++++
drivers/dma/sf-pdma/sf-pdma.h | 122 ++++
9 files changed, 821 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dma/sifive,fu540-c000-pdma.yaml
create mode 100644 drivers/dma/sf-pdma/Kconfig
create mode 100644 drivers/dma/sf-pdma/Makefile
create mode 100644 drivers/dma/sf-pdma/sf-pdma.c
create mode 100644 drivers/dma/sf-pdma/sf-pdma.h
base-commit: 4dd58158254c8a027f2bf5060b72ef64cafa3b9d
--
2.17.1
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next reply other threads:[~2019-11-07 8:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-07 8:49 Green Wan [this message]
2019-11-07 8:49 ` [PATCH v6 1/4] dt-bindings: dmaengine: sf-pdma: add bindins for SiFive PDMA Green Wan
2019-11-07 8:49 ` [PATCH v6 2/4] riscv: dts: add support for PDMA device of HiFive Unleashed Rev A00 Green Wan
2019-11-15 19:48 ` Paul Walmsley
2019-11-07 8:49 ` [PATCH v6 3/4] dmaengine: sf-pdma: add platform DMA support for HiFive Unleashed A00 Green Wan
2019-11-07 8:49 ` [PATCH v6 4/4] MAINTAINERS: Add Green as SiFive PDMA driver maintainer Green Wan
2019-11-14 7:15 ` [PATCH v6 0/4] dmaengine: sf-pdma: Add platform dma driver Vinod Koul
2019-11-14 10:53 ` Green Wan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191107084955.7580-1-green.wan@sifive.com \
--to=green.wan@sifive.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=aou@eecs.berkeley.edu \
--cc=bmeng.cn@gmail.com \
--cc=dan.j.williams@intel.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=mchehab+samsung@kernel.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=paulmck@linux.ibm.com \
--cc=robh+dt@kernel.org \
--cc=sagar.kadam@sifive.com \
--cc=vkoul@kernel.org \
--cc=yash.shah@sifive.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).