Message ID | 20220411173115.6619-1-biju.das.jz@bp.renesas.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 6f381481a5b236cb53d6de2c49c6ef83a4d0f432 |
Headers | show |
Series | spi: spi-rspi: Remove setting {src,dst}_{addr,addr_width} based on DMA direction | expand |
On Mon, Apr 11, 2022 at 7:31 PM Biju Das <biju.das.jz@bp.renesas.com> wrote: > The direction field in the DMA config is deprecated. The rspi driver > sets {src,dst}_{addr,addr_width} based on the DMA direction and > it results in dmaengine_slave_config() failure as RZ DMAC driver > validates {src,dst}_addr_width values independent of DMA direction. > > This patch fixes the issue by passing both {src,dst}_{addr,addr_width} > values independent of DMA direction. > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> > Suggested-by: Vinod Koul <vkoul@kernel.org> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> (QSPI on Koelsch) Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On 11-04-22, 18:31, Biju Das wrote: > The direction field in the DMA config is deprecated. The rspi driver > sets {src,dst}_{addr,addr_width} based on the DMA direction and > it results in dmaengine_slave_config() failure as RZ DMAC driver > validates {src,dst}_addr_width values independent of DMA direction. > > This patch fixes the issue by passing both {src,dst}_{addr,addr_width} > values independent of DMA direction. Reviewed-by: Vinod Koul <vkoul@kernel.org>
On Mon, 11 Apr 2022 18:31:15 +0100, Biju Das wrote: > The direction field in the DMA config is deprecated. The rspi driver > sets {src,dst}_{addr,addr_width} based on the DMA direction and > it results in dmaengine_slave_config() failure as RZ DMAC driver > validates {src,dst}_addr_width values independent of DMA direction. > > This patch fixes the issue by passing both {src,dst}_{addr,addr_width} > values independent of DMA direction. > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next Thanks! [1/1] spi: spi-rspi: Remove setting {src,dst}_{addr,addr_width} based on DMA direction commit: 6f381481a5b236cb53d6de2c49c6ef83a4d0f432 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark
diff --git a/drivers/spi/spi-rspi.c b/drivers/spi/spi-rspi.c index bd5708d7e5a1..7a014eeec2d0 100644 --- a/drivers/spi/spi-rspi.c +++ b/drivers/spi/spi-rspi.c @@ -1108,14 +1108,11 @@ static struct dma_chan *rspi_request_dma_chan(struct device *dev, } memset(&cfg, 0, sizeof(cfg)); + cfg.dst_addr = port_addr + RSPI_SPDR; + cfg.src_addr = port_addr + RSPI_SPDR; + cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE; + cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE; cfg.direction = dir; - if (dir == DMA_MEM_TO_DEV) { - cfg.dst_addr = port_addr; - cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE; - } else { - cfg.src_addr = port_addr; - cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_1_BYTE; - } ret = dmaengine_slave_config(chan, &cfg); if (ret) { @@ -1146,12 +1143,12 @@ static int rspi_request_dma(struct device *dev, struct spi_controller *ctlr, } ctlr->dma_tx = rspi_request_dma_chan(dev, DMA_MEM_TO_DEV, dma_tx_id, - res->start + RSPI_SPDR); + res->start); if (!ctlr->dma_tx) return -ENODEV; ctlr->dma_rx = rspi_request_dma_chan(dev, DMA_DEV_TO_MEM, dma_rx_id, - res->start + RSPI_SPDR); + res->start); if (!ctlr->dma_rx) { dma_release_channel(ctlr->dma_tx); ctlr->dma_tx = NULL;
The direction field in the DMA config is deprecated. The rspi driver sets {src,dst}_{addr,addr_width} based on the DMA direction and it results in dmaengine_slave_config() failure as RZ DMAC driver validates {src,dst}_addr_width values independent of DMA direction. This patch fixes the issue by passing both {src,dst}_{addr,addr_width} values independent of DMA direction. Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Suggested-by: Vinod Koul <vkoul@kernel.org> --- drivers/spi/spi-rspi.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)