Messages in this thread | | | Subject | Re: [PATCH v3 3/3] i2c: designware: do not disable adapter after transfer | From | Jarkko Nikula <> | Date | Tue, 16 Aug 2016 17:00:20 +0300 |
| |
Hi, + Wolfram
On 07/29/2016 01:03 AM, Lucas De Marchi wrote: > Disabling the adapter after each transfer adds additional delays > for each I2C transfer. Even if we don't wait for it to be disabled > anymore, on next transfer we will need to if we have several transfers > in a row. > > Now during the transfer init we check if IC_TAR can be changed > dynamically, the status register for no activity and TX buffer being > empty. In this case we don't need to disable it > > When a transfer fails the adapter will still be disabled - this is a > conservative approach. When transfers succeed, the adapter is left > enabled and it's configured so to disable interrupts. > > Alternating register reads on 2 slaves: > perf stat -r4 chrt -f 10 ./i2c-test /dev/i2c-1 25000 0x40 0x6 0x1e 0x00 > > Before: > 8.638705161 seconds time elapsed ( +- 5.90% ) > After: > 7.516821591 seconds time elapsed ( +- 0.11% ) > > Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> > --- > drivers/i2c/busses/i2c-designware-core.c | 55 +++++++++++++++++++++----------- > 1 file changed, 37 insertions(+), 18 deletions(-) > Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
| |