summaryrefslogtreecommitdiffstats
path: root/drivers/i2c/muxes/i2c-arb-gpio-challenge.c
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.demarchi@intel.com>2016-08-23 19:18:56 -0300
committerWolfram Sang <wsa@the-dreams.de>2016-08-26 00:42:16 +0200
commit0317e6c0f1dc1ba86b8d9dccc010c5e77b8355fa (patch)
tree3fb8e409c228e367a131a3d93bf27164b9d9dbfc /drivers/i2c/muxes/i2c-arb-gpio-challenge.c
parent63d0f0a6952a1a02bc4f116b7da7c7887e46efa3 (diff)
downloadop-kernel-dev-0317e6c0f1dc1ba86b8d9dccc010c5e77b8355fa.zip
op-kernel-dev-0317e6c0f1dc1ba86b8d9dccc010c5e77b8355fa.tar.gz
i2c: designware: do not disable adapter after transfer
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> Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Tested-by: Christian Ruppert <christian.ruppert@alitech.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c/muxes/i2c-arb-gpio-challenge.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud