]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
i2c: rcar: handle RXDMA HW behaviour on Gen3
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 28 Jun 2018 20:45:38 +0000 (22:45 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 1 Mar 2019 13:21:08 +0000 (14:21 +0100)
commitfde773d555fdaee9fba7daa796cd4c74d96fd564
treebee0bc8b0b0a4fed98c16ad50df2350a63982c9e
parentd59b80ad6d6069136ac6738d0e0fa0938b266502
i2c: rcar: handle RXDMA HW behaviour on Gen3

BugLink: http://bugs.launchpad.net/bugs/1815234
commit 2b16fd63059ab9a46d473620749672dc342e1d21 upstream.

On Gen3, we can only do RXDMA once per transfer reliably. For that, we
must reset the device, then we can have RXDMA once. This patch
implements this. When there is no reset controller or the reset fails,
RXDMA will be blocked completely. Otherwise, it will be disabled after
the first RXDMA transfer. Based on a commit from the BSP by Hiromitsu
Yamasaki, yet completely refactored to handle multiple read messages
within one transfer.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: stable@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/i2c/busses/i2c-rcar.c