Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-02-01 Thread Dmitry Osipenko
01.02.2019 7:19, Sowjanya Komatineni пишет: >> +if (dma) { >> +if (i2c_dev->msg_read) { >> +chan = i2c_dev->rx_dma_chan; >> +tegra_i2c_config_fifo_trig(i2c_dev, >> xfer_size, >> + >> DATA_DMA_DIR_RX)

RE: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Sowjanya Komatineni
> > > > > + if (dma) { > > > > > + if (i2c_dev->msg_read) { > > > > > + chan = i2c_dev->rx_dma_chan; > > > > > + tegra_i2c_config_fifo_trig(i2c_dev, > > > > > xfer_size, > > > > > + > > > > > DATA_DMA_DIR_RX); > > > > > + > > > > > dma_sync_si

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
В Fri, 1 Feb 2019 01:11:06 + Sowjanya Komatineni пишет: > > > > + if (dma) { > > > > + if (i2c_dev->msg_read) { > > > > + chan = i2c_dev->rx_dma_chan; > > > > + tegra_i2c_config_fifo_trig(i2c_dev, > > > > xfer_size, > > > > + > >

RE: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Sowjanya Komatineni
> > > + if (dma) { > > > + if (i2c_dev->msg_read) { > > > + chan = i2c_dev->rx_dma_chan; > > > + tegra_i2c_config_fifo_trig(i2c_dev, > > > xfer_size, > > > + > > > DATA_DMA_DIR_RX); > > > + dma_sync_single_for_device(i2c_dev->dev, > > > + > >

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
В Thu, 31 Jan 2019 21:46:48 + Sowjanya Komatineni пишет: > > It works with this change: > > > > diff --git a/drivers/i2c/busses/i2c-tegra.c > > b/drivers/i2c/busses/i2c-tegra.c index fe5b89abc576..8e059e94b94e > > 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ > > b/drivers/i2c/busses/i2c-te

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
В Thu, 31 Jan 2019 13:44:23 +0100 Thierry Reding пишет: > On Wed, Jan 30, 2019 at 10:16:25PM -0800, Sowjanya Komatineni wrote: > > This patch adds DMA support for Tegra I2C. > > > > Tegra I2C TX and RX FIFO depth is 8 words. PIO mode is used for > > transfer size of the max FIFO depth and DMA mo

RE: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Sowjanya Komatineni
> It works with this change: > > diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c > index fe5b89abc576..8e059e94b94e 100644 > --- a/drivers/i2c/busses/i2c-tegra.c > +++ b/drivers/i2c/busses/i2c-tegra.c > @@ -1170,10 +1170,11 @@ static int tegra_i2c_xfer_msg(struct tegra

RE: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Sowjanya Komatineni
>>> >> BUG_ON line is not part of this change. It was already there in existing >> driver. >> Based on log, I see DMA transfer is done for 224 bytes followed by 1 >> successful PIO transfer and then on next PIO transfer it received packet >> xfer complete interrupt with incomplete transfer byt

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
31.01.2019 20:25, Dmitry Osipenko пишет: > 31.01.2019 20:11, Dmitry Osipenko пишет: >> 31.01.2019 19:56, Sowjanya Komatineni пишет: >>> >> drivers/i2c/busses/Kconfig | 2 +- >> drivers/i2c/busses/i2c-tegra.c | 362 >> ++--- >> 2 files chan

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
31.01.2019 20:11, Dmitry Osipenko пишет: > 31.01.2019 19:56, Sowjanya Komatineni пишет: >> > drivers/i2c/busses/Kconfig | 2 +- > drivers/i2c/busses/i2c-tegra.c | 362 > ++--- > 2 files changed, 339 insertions(+), 25 deletions(-)

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
31.01.2019 19:56, Sowjanya Komatineni пишет: > drivers/i2c/busses/Kconfig | 2 +- drivers/i2c/busses/i2c-tegra.c | 362 ++--- 2 files changed, 339 insertions(+), 25 deletions(-) >>> >>> Tegra20 crashes because of this patch: >>> >> [s

RE: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Sowjanya Komatineni
> >> drivers/i2c/busses/Kconfig | 2 +- > >> drivers/i2c/busses/i2c-tegra.c | 362 > >> ++--- > >> 2 files changed, 339 insertions(+), 25 deletions(-) > > > > Tegra20 crashes because of this patch: > > > [snip] > > <4>[3.395915] [ cut h

RE: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Sowjanya Komatineni
> > +static int tegra_i2c_init_dma_param(struct tegra_i2c_dev *i2c_dev) { > > + struct dma_chan *dma_chan; > > + u32 *dma_buf; > > + dma_addr_t dma_phys; > > + > > + if (!i2c_dev->has_dma) > > + return -EINVAL; > > + > > + if (!i2c_dev->rx_dma_chan) { > > + dma_chan =

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
31.01.2019 18:12, Dmitry Osipenko пишет: > 31.01.2019 9:16, Sowjanya Komatineni пишет: >> This patch adds DMA support for Tegra I2C. >> >> Tegra I2C TX and RX FIFO depth is 8 words. PIO mode is used for >> transfer size of the max FIFO depth and DMA mode is used for >> transfer size higher than max

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Dmitry Osipenko
31.01.2019 9:16, Sowjanya Komatineni пишет: > This patch adds DMA support for Tegra I2C. > > Tegra I2C TX and RX FIFO depth is 8 words. PIO mode is used for > transfer size of the max FIFO depth and DMA mode is used for > transfer size higher than max FIFO depth to save CPU overhead. > > PIO mode

Re: [PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-31 Thread Thierry Reding
On Wed, Jan 30, 2019 at 10:16:25PM -0800, Sowjanya Komatineni wrote: > This patch adds DMA support for Tegra I2C. > > Tegra I2C TX and RX FIFO depth is 8 words. PIO mode is used for > transfer size of the max FIFO depth and DMA mode is used for > transfer size higher than max FIFO depth to save CP

[PATCH V8 3/5] i2c: tegra: Add DMA Support

2019-01-30 Thread Sowjanya Komatineni
This patch adds DMA support for Tegra I2C. Tegra I2C TX and RX FIFO depth is 8 words. PIO mode is used for transfer size of the max FIFO depth and DMA mode is used for transfer size higher than max FIFO depth to save CPU overhead. PIO mode needs full intervention of CPU to fill or empty FIFO's an