All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] Major code reorganization to make all i2c transfers working
@ 2018-02-03  7:58 Abhishek Sahu
  2018-02-03  7:58 ` [PATCH 01/12] i2c: qup: fixed releasing dma without flush operation completion Abhishek Sahu
                   ` (11 more replies)
  0 siblings, 12 replies; 57+ messages in thread
From: Abhishek Sahu @ 2018-02-03  7:58 UTC (permalink / raw)
  To: Andy Gross, Wolfram Sang
  Cc: David Brown, Sricharan R, linux-arm-msm, linux-soc, linux-i2c,
	linux-kernel, Abhishek Sahu

The current driver is failing in following test case
1. Handling of failure cases is not working in long run for BAM
   mode. It generates error message “bam-dma-engine 7884000.dma: Cannot
   free busy channel” sometimes.
2. Following I2C transfers are failing
   a. Single transfer with multiple read messages
   b. Single transfer with multiple read/write message with maximum
      allowed length per message (65K) in BAM mode
   c. Single transfer with write greater than 32 bytes in QUP v1 and
      write greater than 64 bytes in QUP v2 for non-DMA mode.
3. No handling is present for Block/FIFO interrupts. Any non-error
   interrupts are being treated as the transfer completion and then
   polling is being done for available/free bytes in FIFO.

To fix all these issues, major code changes are required. This patch
series fixes all the above issues and makes the driver interrupt based
instead of polling based. After these changes, all the mentioned test
cases are working properly.

The code changes have been tested for QUP v1 (IPQ8064) and QUP
v2 (IPQ8074) with sample application written over i2c-dev.

Abhishek Sahu (12):
  i2c: qup: fixed releasing dma without flush operation completion
  i2c: qup: minor code reorganization for use_dma
  i2c: qup: remove redundant variables for BAM SG count
  i2c: qup: schedule EOT and FLUSH tags at the end of transfer
  i2c: qup: fix the transfer length for BAM rx EOT FLUSH tags
  i2c: qup: proper error handling for i2c error in BAM mode
  i2c: qup: use the complete transfer length to choose DMA mode
  i2c: qup: change completion timeout according to transfer length
  i2c: qup: fix buffer overflow for multiple msg of maximum xfer len
  i2c: qup: send NACK for last read sub transfers
  i2c: qup: reorganization of driver code to remove polling for qup v1
  i2c: qup: reorganization of driver code to remove polling for qup v2

 drivers/i2c/busses/i2c-qup.c | 1538 +++++++++++++++++++++++++-----------------
 1 file changed, 924 insertions(+), 614 deletions(-)

-- 
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

^ permalink raw reply	[flat|nested] 57+ messages in thread

end of thread, other threads:[~2018-03-12 13:58 UTC | newest]

Thread overview: 57+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-03  7:58 [PATCH 00/12] Major code reorganization to make all i2c transfers working Abhishek Sahu
2018-02-03  7:58 ` [PATCH 01/12] i2c: qup: fixed releasing dma without flush operation completion Abhishek Sahu
2018-02-08 14:03   ` Sricharan R
2018-02-19 10:24     ` Abhishek Sahu
2018-02-27 21:46   ` Christ, Austin
2018-02-27 22:24   ` Andy Gross
2018-02-03  7:58 ` [PATCH 02/12] i2c: qup: minor code reorganization for use_dma Abhishek Sahu
2018-02-27 21:48   ` Christ, Austin
2018-02-27 22:26   ` Andy Gross
2018-02-03  7:58 ` [PATCH 03/12] i2c: qup: remove redundant variables for BAM SG count Abhishek Sahu
2018-02-09  2:16   ` Sricharan R
2018-02-19 10:26     ` Abhishek Sahu
2018-02-27 21:51   ` Christ, Austin
2018-02-27 22:28   ` Andy Gross
2018-02-03  7:58 ` [PATCH 04/12] i2c: qup: schedule EOT and FLUSH tags at the end of transfer Abhishek Sahu
2018-02-15 14:31   ` Sricharan R
2018-02-19 10:34     ` Abhishek Sahu
2018-02-27 22:36   ` Andy Gross
2018-03-08 13:40     ` Abhishek Sahu
2018-02-03  7:58 ` [PATCH 05/12] i2c: qup: fix the transfer length for BAM rx EOT FLUSH tags Abhishek Sahu
2018-02-27 22:38   ` Andy Gross
2018-02-03  7:58 ` [PATCH 06/12] i2c: qup: proper error handling for i2c error in BAM mode Abhishek Sahu
2018-02-16  4:33   ` Sricharan R
2018-02-27 22:00   ` Christ, Austin
2018-02-27 22:58   ` Andy Gross
2018-03-12 12:34     ` Abhishek Sahu
2018-02-03  7:58 ` [PATCH 07/12] i2c: qup: use the complete transfer length to choose DMA mode Abhishek Sahu
2018-02-16  4:35   ` Sricharan R
2018-02-19 10:49     ` Abhishek Sahu
2018-02-27 22:01   ` Christ, Austin
2018-02-27 22:59   ` Andy Gross
2018-02-03  7:58 ` [PATCH 08/12] i2c: qup: change completion timeout according to transfer length Abhishek Sahu
2018-02-16  4:48   ` Sricharan R
2018-02-19 10:56     ` Abhishek Sahu
2018-02-27 23:05       ` Andy Gross
2018-02-03  7:58 ` [PATCH 09/12] i2c: qup: fix buffer overflow for multiple msg of maximum xfer len Abhishek Sahu
2018-02-16  5:21   ` Sricharan R
2018-02-19 11:24     ` Abhishek Sahu
2018-02-27 22:06   ` Christ, Austin
2018-03-12 13:55     ` Abhishek Sahu
2018-02-27 23:15   ` Andy Gross
2018-03-12 12:28     ` Abhishek Sahu
2018-02-03  7:58 ` [PATCH 10/12] i2c: qup: send NACK for last read sub transfers Abhishek Sahu
2018-02-16  5:39   ` Sricharan R
2018-02-27 22:07   ` Christ, Austin
2018-02-27 23:17   ` Andy Gross
2018-02-03  7:58 ` [PATCH 11/12] i2c: qup: reorganization of driver code to remove polling for qup v1 Abhishek Sahu
2018-02-05 23:03   ` kbuild test robot
2018-02-05 23:03     ` kbuild test robot
2018-02-16  7:44   ` Sricharan R
2018-02-19 13:21     ` Abhishek Sahu
2018-02-20  4:32       ` Sricharan R
2018-02-03  7:58 ` [PATCH 12/12] i2c: qup: reorganization of driver code to remove polling for qup v2 Abhishek Sahu
2018-02-16 11:23   ` Sricharan R
2018-02-19 14:08     ` Abhishek Sahu
2018-02-27 23:24   ` Christ, Austin
2018-03-12 13:58     ` Abhishek Sahu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.