forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave…
…-dma Pull slave-dmaengine updates from Vinod Koul: "This time we have dmatest improvements from Andy along with dw_dmac fixes. He has also done support for acpi for dmanegine. Also we have bunch of fixes going in DT support for dmanegine for various folks. Then Haswell and other ioat changes from Dave and SUDMAC support from Shimoda." * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (53 commits) dma: tegra: implement suspend/resume callbacks dma:of: Use a mutex to protect the of_dma_list dma: of: Fix of_node reference leak dmaengine: sirf: move driver init from module_init to subsys_initcall sudmac: add support for SUDMAC dma: sh: add Kconfig at_hdmac: move to generic DMA binding ioatdma: ioat3_alloc_sed can be static ioatdma: Adding write back descriptor error status support for ioatdma 3.3 ioatdma: S1200 platforms ioatdma channel 2 and 3 falsely advertise RAID cap ioatdma: Adding support for 16 src PQ ops and super extended descriptors ioatdma: Removing hw bug workaround for CB3.x .2 and earlier dw_dmac: add ACPI support dmaengine: call acpi_dma_request_slave_channel as well dma: acpi-dma: introduce ACPI DMA helpers dma: of: Remove unnecessary list_empty check DMA: OF: Check properties value before running be32_to_cpup() on it DMA: of: Constant names ioatdma: skip silicon bug workaround for pq_align for cb3.3 ioatdma: Removing PQ val disable for cb3.3 ...
- Loading branch information
Showing
39 changed files
with
3,215 additions
and
517 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,39 @@ | ||
* Atmel Direct Memory Access Controller (DMA) | ||
|
||
Required properties: | ||
- compatible: Should be "atmel,<chip>-dma" | ||
- reg: Should contain DMA registers location and length | ||
- interrupts: Should contain DMA interrupt | ||
- compatible: Should be "atmel,<chip>-dma". | ||
- reg: Should contain DMA registers location and length. | ||
- interrupts: Should contain DMA interrupt. | ||
- #dma-cells: Must be <2>, used to represent the number of integer cells in | ||
the dmas property of client devices. | ||
|
||
Examples: | ||
Example: | ||
|
||
dma@ffffec00 { | ||
dma0: dma@ffffec00 { | ||
compatible = "atmel,at91sam9g45-dma"; | ||
reg = <0xffffec00 0x200>; | ||
interrupts = <21>; | ||
#dma-cells = <2>; | ||
}; | ||
|
||
DMA clients connected to the Atmel DMA controller must use the format | ||
described in the dma.txt file, using a three-cell specifier for each channel: | ||
a phandle plus two interger cells. | ||
The three cells in order are: | ||
|
||
1. A phandle pointing to the DMA controller. | ||
2. The memory interface (16 most significant bits), the peripheral interface | ||
(16 less significant bits). | ||
3. The peripheral identifier for the hardware handshaking interface. The | ||
identifier can be different for tx and rx. | ||
|
||
Example: | ||
|
||
i2c0@i2c@f8010000 { | ||
compatible = "atmel,at91sam9x5-i2c"; | ||
reg = <0xf8010000 0x100>; | ||
interrupts = <9 4 6>; | ||
dmas = <&dma0 1 7>, | ||
<&dma0 1 8>; | ||
dma-names = "tx", "rx"; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
DMA Test Guide | ||
============== | ||
|
||
Andy Shevchenko <[email protected]> | ||
|
||
This small document introduces how to test DMA drivers using dmatest module. | ||
|
||
Part 1 - How to build the test module | ||
|
||
The menuconfig contains an option that could be found by following path: | ||
Device Drivers -> DMA Engine support -> DMA Test client | ||
|
||
In the configuration file the option called CONFIG_DMATEST. The dmatest could | ||
be built as module or inside kernel. Let's consider those cases. | ||
|
||
Part 2 - When dmatest is built as a module... | ||
|
||
After mounting debugfs and loading the module, the /sys/kernel/debug/dmatest | ||
folder with nodes will be created. They are the same as module parameters with | ||
addition of the 'run' node that controls run and stop phases of the test. | ||
|
||
Note that in this case test will not run on load automatically. | ||
|
||
Example of usage: | ||
% echo dma0chan0 > /sys/kernel/debug/dmatest/channel | ||
% echo 2000 > /sys/kernel/debug/dmatest/timeout | ||
% echo 1 > /sys/kernel/debug/dmatest/iterations | ||
% echo 1 > /sys/kernel/debug/dmatest/run | ||
|
||
Hint: available channel list could be extracted by running the following | ||
command: | ||
% ls -1 /sys/class/dma/ | ||
|
||
After a while you will start to get messages about current status or error like | ||
in the original code. | ||
|
||
Note that running a new test will stop any in progress test. | ||
|
||
The following command should return actual state of the test. | ||
% cat /sys/kernel/debug/dmatest/run | ||
|
||
To wait for test done the user may perform a busy loop that checks the state. | ||
|
||
% while [ $(cat /sys/kernel/debug/dmatest/run) = "Y" ] | ||
> do | ||
> echo -n "." | ||
> sleep 1 | ||
> done | ||
> echo | ||
|
||
Part 3 - When built-in in the kernel... | ||
|
||
The module parameters that is supplied to the kernel command line will be used | ||
for the first performed test. After user gets a control, the test could be | ||
interrupted or re-run with same or different parameters. For the details see | ||
the above section "Part 2 - When dmatest is built as a module..." | ||
|
||
In both cases the module parameters are used as initial values for the test case. | ||
You always could check them at run-time by running | ||
% grep -H . /sys/module/dmatest/parameters/* | ||
|
||
Part 4 - Gathering the test results | ||
|
||
The module provides a storage for the test results in the memory. The gathered | ||
data could be used after test is done. | ||
|
||
The special file 'results' in the debugfs represents gathered data of the in | ||
progress test. The messages collected are printed to the kernel log as well. | ||
|
||
Example of output: | ||
% cat /sys/kernel/debug/dmatest/results | ||
dma0chan0-copy0: #1: No errors with src_off=0x7bf dst_off=0x8ad len=0x3fea (0) | ||
|
||
The message format is unified across the different types of errors. A number in | ||
the parens represents additional information, e.g. error code, error counter, | ||
or status. | ||
|
||
Comparison between buffers is stored to the dedicated structure. | ||
|
||
Note that the verify result is now accessible only via file 'results' in the | ||
debugfs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.