From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753887AbcHPOAY (ORCPT ); Tue, 16 Aug 2016 10:00:24 -0400 Received: from mga01.intel.com ([192.55.52.88]:20173 "EHLO mga01.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753511AbcHPOAX (ORCPT ); Tue, 16 Aug 2016 10:00:23 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,529,1464678000"; d="scan'208";a="156562001" Subject: Re: [PATCH v3 3/3] i2c: designware: do not disable adapter after transfer To: Lucas De Marchi , linux-i2c@vger.kernel.org References: <1469743424-2480-1-git-send-email-lucas.demarchi@intel.com> <1469743424-2480-4-git-send-email-lucas.demarchi@intel.com> Cc: christian.ruppert@alitech.com, linux-kernel@vger.kernel.org, mika.westerberg@linux.intel.com, =?UTF-8?Q?Jos=c3=a9_Roberto_de_Souza?= From: Jarkko Nikula Message-ID: Date: Tue, 16 Aug 2016 17:00:20 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.2.0 MIME-Version: 1.0 In-Reply-To: <1469743424-2480-4-git-send-email-lucas.demarchi@intel.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > Signed-off-by: José Roberto de Souza > --- > drivers/i2c/busses/i2c-designware-core.c | 55 +++++++++++++++++++++----------- > 1 file changed, 37 insertions(+), 18 deletions(-) > Acked-by: Jarkko Nikula