Linux kernel source tree
Go to file
Yoshihiro Shimoda 218c21043d dmaengine: sh: rcar-dmac: Should not stop the DMAC by rcar_dmac_sync_tcr()
rcar_dmac_chan_get_residue() should not stop the DMAC, because
the commit 538603c602 ("dmaengine: sh: rcar-dmac: avoid to write
CHCR.TE to 1 if TCR is set to 0") had fixed unexpected re-transferring
issue. But it had caused the next issue which might stop the cyclic
mode transferring. Thus, for example R-Car sound might be stopped
suddenly.

According to the commit 73a47bd0da ("dmaengine: rcar-dmac: use TCRB
instead of TCR for residue"), the purpose of clearing CHCR.DE bit is
flushing buffered data to calculate the exact residue.

Such the "exact" residue had been required by sh-sci driver. sh-sci
driver is calling dmaengine_pause() to stop transferring, and get
"exact" residue. Otherwise, it might receive extra data during
getting residue without pausing.

In rx_timer_fn() of sh-sci driver:
	dmaengine_tx_status();		/* For checking roughly */
 	dmaengine_pause();
	dmaengine_tx_status();		/* For getting residue */
	dmaengine_terminate_all();

But, unfortunately the rcar-dmac driver didn't support dmaengine_pause()
at that time. So, the sh-sci driver cannot get the "exact" residue
without stopping the transferring, because rcar-dmac is buffering data
inside.

Because of these backgrounds, rcar-dmac had been cleared/set CHCR.DE
bit in rcar_dmac_chan_get_residue() to synchronizing data and getting
"exact" residue.

However, rcar-dmac driver has rcar_dmac_chan_pause() now, and clearing
CHCR.DE bit in rcar_dmac_chan_get_residue() doesn't need anymore.
So, this patch removes the rcar_dmac_sync_tcr().

Fixes: 73a47bd0da ("dmaengine: rcar-dmac: use TCRB instead of TCR for residue")
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
2018-07-31 09:57:27 +05:30
arch Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
block for-linus-20180616 2018-06-17 05:37:55 +09:00
certs docs: Fix some broken references 2018-06-15 18:10:01 -03:00
crypto docs: Fix some broken references 2018-06-15 18:10:01 -03:00
Documentation dmaengine: rcar-dmac: Document R8A77990 bindings 2018-06-23 18:02:26 +05:30
drivers dmaengine: sh: rcar-dmac: Should not stop the DMAC by rcar_dmac_sync_tcr() 2018-07-31 09:57:27 +05:30
firmware kbuild: remove all dummy assignments to obj- 2017-11-18 11:46:06 +09:00
fs Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
include for-linus-20180616 2018-06-17 05:37:55 +09:00
init Kbuild updates for v4.18 (2nd) 2018-06-13 08:40:34 -07:00
ipc ipc: use new return type vm_fault_t 2018-06-15 07:55:25 +09:00
kernel Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
lib docs: Fix some broken references 2018-06-15 18:10:01 -03:00
LICENSES LICENSES: Add Linux-OpenIB license text 2018-04-27 16:41:53 -06:00
mm mm: fix oom_kill event handling 2018-06-15 07:55:25 +09:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-06-16 07:39:34 +09:00
samples VFIO updates for v4.18 2018-06-12 13:11:26 -07:00
scripts scripts/documentation-file-ref-check: check tools/*/Documentation 2018-06-15 18:10:01 -03:00
security docs: Fix some broken references 2018-06-15 18:10:01 -03:00
sound docs: Fix some broken references 2018-06-15 18:10:01 -03:00
tools Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
usr kbuild: rename built-in.o to built-in.a 2018-03-26 02:01:19 +09:00
virt - Error path bug fix for overflow tests (Dan) 2018-06-12 18:28:00 -07:00
.clang-format clang-format: add configuration file 2018-04-11 10:28:35 -07:00
.cocciconfig
.get_maintainer.ignore
.gitattributes .gitattributes: set git diff driver for C source code files 2016-10-07 18:46:30 -07:00
.gitignore Kbuild updates for v4.17 (2nd) 2018-04-15 17:21:30 -07:00
.mailmap Merge branch 'asoc-4.17' into asoc-4.18 for compress dependencies 2018-04-26 12:24:28 +01:00
COPYING COPYING: use the new text with points to the license files 2018-03-23 12:41:45 -06:00
CREDITS MAINTAINERS/CREDITS: Drop METAG ARCHITECTURE 2018-03-05 16:34:24 +00:00
Kbuild Kbuild updates for v4.15 2017-11-17 17:45:29 -08:00
Kconfig kconfig: add basic helper macros to scripts/Kconfig.include 2018-05-29 03:31:19 +09:00
MAINTAINERS Solve a series of broken links for files under Documentation: 2018-06-17 05:25:18 +09:00
Makefile Linux 4.18-rc1 2018-06-17 08:04:49 +09:00
README Docs: Added a pointer to the formatted docs to README 2018-03-21 09:02:53 -06:00

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.
See Documentation/00-INDEX for a list of what is contained in each file.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.