diff options
author | Jon Hunter <jonathanh@nvidia.com> | 2015-05-05 15:17:58 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-05-10 19:12:19 +0200 |
commit | d92aca3a76662d2da8fe843ab124c45b47ea127d (patch) | |
tree | c4f29d50055518e0e76a4e4573d7b3b3b1cef9d4 /fs/ecryptfs/crypto.c | |
parent | 49433c802cb3405e62d3394b9c663f6c9ad329e5 (diff) |
serial: tegra: Correct shutdown of UARTs
There are two issues in the shutdown path of the UARTs which are:
1. The function tegra_uart_shutdown() calls tegra_uart_flush_buffer()
to stop DMA TX transfers. However, tegra_uart_flush_buffer() is
called after the DMA channels have already been freed and so actually
does nothing.
2. The function that frees the DMA channels
(tegra_uart_dma_channel_free()), unmaps the dma buffer before
freeing the DMA channel and does not ensure the DMA has been
stopped.
Resolve this by fixing the code in tegra_uart_dma_channel_free() to
ensure the DMA is stopped, free the DMA channel and then unmap the DMA
buffer. Finally, remove the unnecessary call to tegra_uart_flush_buffer().
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/ecryptfs/crypto.c')
0 files changed, 0 insertions, 0 deletions