From patchwork Mon Sep 10 21:45:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jae Hyun Yoo X-Patchwork-Id: 10594791 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CFF9C14BD for ; Mon, 10 Sep 2018 21:46:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BC9E428E9B for ; Mon, 10 Sep 2018 21:46:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B070929250; Mon, 10 Sep 2018 21:46:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 25B5D28E9B for ; Mon, 10 Sep 2018 21:46:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=uKor95JM8+vR7qgTVUh3eaxnNcRxGJTN8FCWR3ogcDo=; b=U3U YqwTGOdYOiN1k2HSCUqmDkqKMbc//CULPpr0lvV/lb5f3EwtelzzTaQcu14TbqpUevnorf80+zof5 /923zGccPkYyrmLpONHsa5I2NiOZBkR6ClMwDuZwLKMzVWlyDK5rlEUUgGwVEV9XekqJiIfyPN9JK To5RlHhETFMMp82Cz8Upn4aH6fbE7TN2SCHv0CmZN/+w8wkPgxQ8UbL087/yme+i6GosaXKjuf3HS gOkrMIGsBIUds/wx+/QjPNmoz5BLB/eL6P1Y5osB+4IMhNbIXquRki27JMXdOKUIqYYxEPTp2WjEO fsJhGmcUiF94+F0FtlgF4kAHV8nGe9g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1fzU0S-0005N0-0U; Mon, 10 Sep 2018 21:46:04 +0000 Received: from mga14.intel.com ([192.55.52.115]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1fzU0N-0005Kg-L7 for linux-arm-kernel@lists.infradead.org; Mon, 10 Sep 2018 21:46:01 +0000 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Sep 2018 14:45:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,357,1531810800"; d="scan'208";a="256062306" Received: from maru.jf.intel.com ([10.54.51.80]) by orsmga005.jf.intel.com with ESMTP; 10 Sep 2018 14:45:33 -0700 From: Jae Hyun Yoo To: Brendan Higgins , Benjamin Herrenschmidt , Joel Stanley , Andrew Jeffery , linux-i2c@vger.kernel.org, openbmc@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH i2c-next 0/2] i2c: aspeed: Add bus idle waiting logic for multi-master use cases Date: Mon, 10 Sep 2018 14:45:17 -0700 Message-Id: <20180910214519.14126-1-jae.hyun.yoo@linux.intel.com> X-Mailer: git-send-email 2.18.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180910_144559_701453_50D888D8 X-CRM114-Status: GOOD ( 10.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Vernon Mauery , Jae Hyun Yoo , Jarkko Nikula , James Feist MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP In multi-master environment, this driver side master cannot know exactly when peer master sends data to this side master so a case can be happened that this master tries to send data through the master_xfer function but slave data from peer master is still being processed by this driver. To prevent state corruption in the case, this patch adds checking if any slave operation is ongoing and it wait up to the timeout duration before starting a master_xfer operation. Please review this patch set. Thanks, -Jae Jae Hyun Yoo (2): dt-bindings: i2c: aspeed: Add 'idle-wait-timeout-ms' setting i2c: aspeed: Add bus idle waiting logic for multi-master use cases .../devicetree/bindings/i2c/i2c-aspeed.txt | 10 ++- drivers/i2c/busses/i2c-aspeed.c | 70 +++++++++++++++---- 2 files changed, 62 insertions(+), 18 deletions(-)