From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 68E51C433EF for ; Tue, 29 Mar 2022 19:59:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241119AbiC2UAx (ORCPT ); Tue, 29 Mar 2022 16:00:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41278 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241108AbiC2UAu (ORCPT ); Tue, 29 Mar 2022 16:00:50 -0400 Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80B9315FFE; Tue, 29 Mar 2022 12:59:06 -0700 (PDT) Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 660C65C01BB; Tue, 29 Mar 2022 15:59:05 -0400 (EDT) Received: from imap47 ([10.202.2.97]) by compute3.internal (MEProxy); Tue, 29 Mar 2022 15:59:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=svenpeter.dev; h=cc:cc:content-transfer-encoding:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; bh=ECeje11hlUWWc7 ahU+melr+v3923TUV1SOEn+aMSwfc=; b=IDkyQ8wvClEa9bEVHsgEqxUSqV0Cqf 0X7a5NoChmomd/wU1PWKAzdiPjS8DgkvrrqPi6Wv0Uta2ngB9z/OnTkK5lkyVx0q 1u7KmRN4XcTAFWSq/SH4SBA7jOUsYsvH/VoZQt6NCJ3z4hD5abm1Z2qOHjFTUDil UpwTPJa4ZNACsyT38uouIFQA4nBUP+5bcJsy8XlvSA8IqWhcbOPQ5szbncCB78NC ZXaHGW8YBtjqX9rNqG4PN0pvyRZqPlTOuNRrpj6rntgWEaMXEyyXLoFj3pr3XwNS cBWpfnOPwud9JERKOCiPSNm+DA92TbRbK3iZyC0XX+AKrdvqsi6LwYtQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=ECeje11hlUWWc7ahU+melr+v3923TUV1SOEn+aMSw fc=; b=MXBIEYDu0Diu7AlV79qmpfV03zUCN1oIh30QqCzW2JH0EBCCiKmllCFjl FHIBVeFNemPwI9U8LbzqFRgJTWgO9ot149wgeULc9+lmBHKkMV2+Jo55eLcauOJd VaV1TND7gvEFTXr9vmsL0M3pjb/8diL9ECBh4QUYpHqALVeY0KBTeStCNi9rVXMb YR7l392wToBSdZ2rfhDFUJZMes3IlZFNrO43zIBI4prttkCZxYoVaV5lS2qdbdLT f47kBEaKl7ZKNtOhosOFwnliOXguDnQ/lvyFGzg7gdRxtLwLiuj60Bxb//dOFmMc OTLQfju6c7tMuFomfwDq2g0CANarA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudeitddguddukecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefofgggkfgjfhffhffvufgtgfesthhqredtreerjeenucfhrhhomhepfdfu vhgvnhcurfgvthgvrhdfuceoshhvvghnsehsvhgvnhhpvghtvghrrdguvghvqeenucggtf frrghtthgvrhhnpeetueduleetfeeuledvleehheeivedvhfekheejjeduhfeileffffdu hfekieelgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh hmpehsvhgvnhesshhvvghnphgvthgvrhdruggvvh X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id 8FE2F2740137; Tue, 29 Mar 2022 15:59:03 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.5.0-alpha0-4911-g925b585eab-fm-20220323.003-g925b585e Mime-Version: 1.0 Message-Id: <74a36bce-3d6e-4124-add1-8ed44ba2c80d@www.fastmail.com> In-Reply-To: <20220329183817.21656-1-povik+lin@cutebit.org> References: <20220329183817.21656-1-povik+lin@cutebit.org> Date: Tue, 29 Mar 2022 21:58:43 +0200 From: "Sven Peter" To: =?UTF-8?Q?Martin_Povi=C5=A1er?= , "Hector Martin" , "Michael Ellerman" Cc: "Alyssa Rosenzweig" , "Benjamin Herrenschmidt" , "Paul Mackerras" , "Jean Delvare" , "Olof Johansson" , linux-arm-kernel@lists.infradead.org, linuxppc-dev , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, "Janne Grunau" Subject: Re: [PATCH] i2c: pasemi: Wait for write xfers to finish Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 29, 2022, at 20:38, Martin Povi=C5=A1er wrote: > Wait for completion of write transfers before returning from the drive= r. > At first sight it may seem advantageous to leave write transfers queued > for the controller to carry out on its own time, but there's a couple = of > issues with it: > > * Driver doesn't check for FIFO space. Maybe we should also check that in a follow-up patch :-) > > * The queued writes can complete while the driver is in its I2C read > transfer path which means it will get confused by the raising of > XEN (the 'transaction ended' signal). This can cause a spurious > ENODATA error due to premature reading of the MRXFIFO register. > > Adding the wait fixes some unreliability issues with the driver. There= 's > some efficiency cost to it (especially with pasemi_smb_waitready doing > its polling), but that will be alleviated once the driver receives > interrupt support. > > Fixes: beb58aa39e6e ("i2c: PA Semi SMBus driver") > Signed-off-by: Martin Povi=C5=A1er > --- Reviewed-by: Sven Peter > > Tested on Apple's t8103 chip. To my knowledge the PA Semi controller > in its pre-Apple occurences behaves the same as far as this patch is > concerned. > > drivers/i2c/busses/i2c-pasemi-core.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/i2c/busses/i2c-pasemi-core.c=20 > b/drivers/i2c/busses/i2c-pasemi-core.c > index 7728c8460dc0..9028ffb58cc0 100644 > --- a/drivers/i2c/busses/i2c-pasemi-core.c > +++ b/drivers/i2c/busses/i2c-pasemi-core.c > @@ -137,6 +137,12 @@ static int pasemi_i2c_xfer_msg(struct i2c_adapter=20 > *adapter, >=20 > TXFIFO_WR(smbus, msg->buf[msg->len-1] | > (stop ? MTXFIFO_STOP : 0)); > + > + if (stop) { > + err =3D pasemi_smb_waitready(smbus); > + if (err) > + goto reset_out; > + } Looks like pasemi_smb_xfer doesn't suffer from the same issue. I wonder if every device connected to the bus on the original PA Semi bo= ards only used that path and that's why no one noticed it. Sven From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D346EC433EF for ; Tue, 29 Mar 2022 20:00:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Subject:Cc:To:From:Date:References: In-Reply-To:Message-Id:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ukCACCe3PDEFHEqtlzmJa2HS1GIMPeTPKGkFolcLghI=; b=s4YMuabey/7OoJ Itf0isNOaAz97JN0Tfc4Zcalxmq/ACfCQ+KFe3dpvBlWaE9uy30xwnic6vpy4kjMBlwQzjurhU46b yFXP5kFsgDv9jbbdO3aIO/Birr7JQryjBpdAkO9CrdvfvjVesZ62IDtEy4AraBxP4UpErTfnnZgjW 8TSvsqTUnuVGZ4qYWjADWmTy+pynTIV/tStTN1Ym3qp3XgiXhk/f5V9e/MpznjnotbSouVIgvT6Ja k7ancFxuuOLaNdz87BW7P2G9RgyM72cJpPKbTLvkMyMaJMtBgcnT2thgfcXOyP0Xh6MJOJ0p9afQC d4Nm8LiVF2OTEIJMPBBQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nZHzm-00DP5p-D9; Tue, 29 Mar 2022 19:59:14 +0000 Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nZHzj-00DP4M-7y for linux-arm-kernel@lists.infradead.org; Tue, 29 Mar 2022 19:59:12 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 660C65C01BB; Tue, 29 Mar 2022 15:59:05 -0400 (EDT) Received: from imap47 ([10.202.2.97]) by compute3.internal (MEProxy); Tue, 29 Mar 2022 15:59:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=svenpeter.dev; h=cc:cc:content-transfer-encoding:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; bh=ECeje11hlUWWc7 ahU+melr+v3923TUV1SOEn+aMSwfc=; b=IDkyQ8wvClEa9bEVHsgEqxUSqV0Cqf 0X7a5NoChmomd/wU1PWKAzdiPjS8DgkvrrqPi6Wv0Uta2ngB9z/OnTkK5lkyVx0q 1u7KmRN4XcTAFWSq/SH4SBA7jOUsYsvH/VoZQt6NCJ3z4hD5abm1Z2qOHjFTUDil UpwTPJa4ZNACsyT38uouIFQA4nBUP+5bcJsy8XlvSA8IqWhcbOPQ5szbncCB78NC ZXaHGW8YBtjqX9rNqG4PN0pvyRZqPlTOuNRrpj6rntgWEaMXEyyXLoFj3pr3XwNS cBWpfnOPwud9JERKOCiPSNm+DA92TbRbK3iZyC0XX+AKrdvqsi6LwYtQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=ECeje11hlUWWc7ahU+melr+v3923TUV1SOEn+aMSw fc=; b=MXBIEYDu0Diu7AlV79qmpfV03zUCN1oIh30QqCzW2JH0EBCCiKmllCFjl FHIBVeFNemPwI9U8LbzqFRgJTWgO9ot149wgeULc9+lmBHKkMV2+Jo55eLcauOJd VaV1TND7gvEFTXr9vmsL0M3pjb/8diL9ECBh4QUYpHqALVeY0KBTeStCNi9rVXMb YR7l392wToBSdZ2rfhDFUJZMes3IlZFNrO43zIBI4prttkCZxYoVaV5lS2qdbdLT f47kBEaKl7ZKNtOhosOFwnliOXguDnQ/lvyFGzg7gdRxtLwLiuj60Bxb//dOFmMc OTLQfju6c7tMuFomfwDq2g0CANarA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudeitddguddukecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefofgggkfgjfhffhffvufgtgfesthhqredtreerjeenucfhrhhomhepfdfu vhgvnhcurfgvthgvrhdfuceoshhvvghnsehsvhgvnhhpvghtvghrrdguvghvqeenucggtf frrghtthgvrhhnpeetueduleetfeeuledvleehheeivedvhfekheejjeduhfeileffffdu hfekieelgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh hmpehsvhgvnhesshhvvghnphgvthgvrhdruggvvh X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id 8FE2F2740137; Tue, 29 Mar 2022 15:59:03 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.5.0-alpha0-4911-g925b585eab-fm-20220323.003-g925b585e Mime-Version: 1.0 Message-Id: <74a36bce-3d6e-4124-add1-8ed44ba2c80d@www.fastmail.com> In-Reply-To: <20220329183817.21656-1-povik+lin@cutebit.org> References: <20220329183817.21656-1-povik+lin@cutebit.org> Date: Tue, 29 Mar 2022 21:58:43 +0200 From: "Sven Peter" To: =?UTF-8?Q?Martin_Povi=C5=A1er?= , "Hector Martin" , "Michael Ellerman" Cc: "Alyssa Rosenzweig" , "Benjamin Herrenschmidt" , "Paul Mackerras" , "Jean Delvare" , "Olof Johansson" , linux-arm-kernel@lists.infradead.org, linuxppc-dev , linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, "Janne Grunau" Subject: Re: [PATCH] i2c: pasemi: Wait for write xfers to finish X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220329_125911_446778_DBF8A133 X-CRM114-Status: GOOD ( 22.87 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBNYXIgMjksIDIwMjIsIGF0IDIwOjM4LCBNYXJ0aW4gUG92acWhZXIgd3JvdGU6Cj4g V2FpdCBmb3IgY29tcGxldGlvbiBvZiB3cml0ZSB0cmFuc2ZlcnMgYmVmb3JlIHJldHVybmluZyBm cm9tIHRoZSBkcml2ZXIuCj4gQXQgZmlyc3Qgc2lnaHQgaXQgbWF5IHNlZW0gYWR2YW50YWdlb3Vz IHRvIGxlYXZlIHdyaXRlIHRyYW5zZmVycyBxdWV1ZWQKPiBmb3IgdGhlIGNvbnRyb2xsZXIgdG8g Y2Fycnkgb3V0IG9uIGl0cyBvd24gdGltZSwgYnV0IHRoZXJlJ3MgYSBjb3VwbGUgb2YKPiBpc3N1 ZXMgd2l0aCBpdDoKPgo+ICAqIERyaXZlciBkb2Vzbid0IGNoZWNrIGZvciBGSUZPIHNwYWNlLgoK TWF5YmUgd2Ugc2hvdWxkIGFsc28gY2hlY2sgdGhhdCBpbiBhIGZvbGxvdy11cCBwYXRjaCA6LSkK Cj4KPiAgKiBUaGUgcXVldWVkIHdyaXRlcyBjYW4gY29tcGxldGUgd2hpbGUgdGhlIGRyaXZlciBp cyBpbiBpdHMgSTJDIHJlYWQKPiAgICB0cmFuc2ZlciBwYXRoIHdoaWNoIG1lYW5zIGl0IHdpbGwg Z2V0IGNvbmZ1c2VkIGJ5IHRoZSByYWlzaW5nIG9mCj4gICAgWEVOICh0aGUgJ3RyYW5zYWN0aW9u IGVuZGVkJyBzaWduYWwpLiBUaGlzIGNhbiBjYXVzZSBhIHNwdXJpb3VzCj4gICAgRU5PREFUQSBl cnJvciBkdWUgdG8gcHJlbWF0dXJlIHJlYWRpbmcgb2YgdGhlIE1SWEZJRk8gcmVnaXN0ZXIuCj4K PiBBZGRpbmcgdGhlIHdhaXQgZml4ZXMgc29tZSB1bnJlbGlhYmlsaXR5IGlzc3VlcyB3aXRoIHRo ZSBkcml2ZXIuIFRoZXJlJ3MKPiBzb21lIGVmZmljaWVuY3kgY29zdCB0byBpdCAoZXNwZWNpYWxs eSB3aXRoIHBhc2VtaV9zbWJfd2FpdHJlYWR5IGRvaW5nCj4gaXRzIHBvbGxpbmcpLCBidXQgdGhh dCB3aWxsIGJlIGFsbGV2aWF0ZWQgb25jZSB0aGUgZHJpdmVyIHJlY2VpdmVzCj4gaW50ZXJydXB0 IHN1cHBvcnQuCj4KPiBGaXhlczogYmViNThhYTM5ZTZlICgiaTJjOiBQQSBTZW1pIFNNQnVzIGRy aXZlciIpCj4gU2lnbmVkLW9mZi1ieTogTWFydGluIFBvdmnFoWVyIDxwb3ZpaytsaW5AY3V0ZWJp dC5vcmc+Cj4gLS0tCgpSZXZpZXdlZC1ieTogU3ZlbiBQZXRlciA8c3ZlbkBzdmVucGV0ZXIuZGV2 PgoKPgo+IFRlc3RlZCBvbiBBcHBsZSdzIHQ4MTAzIGNoaXAuIFRvIG15IGtub3dsZWRnZSB0aGUg UEEgU2VtaSBjb250cm9sbGVyCj4gaW4gaXRzIHByZS1BcHBsZSBvY2N1cmVuY2VzIGJlaGF2ZXMg dGhlIHNhbWUgYXMgZmFyIGFzIHRoaXMgcGF0Y2ggaXMKPiBjb25jZXJuZWQuCj4KPiAgZHJpdmVy cy9pMmMvYnVzc2VzL2kyYy1wYXNlbWktY29yZS5jIHwgNiArKysrKysKPiAgMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9p MmMtcGFzZW1pLWNvcmUuYyAKPiBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtcGFzZW1pLWNvcmUu Ywo+IGluZGV4IDc3MjhjODQ2MGRjMC4uOTAyOGZmYjU4Y2MwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvaTJjL2J1c3Nlcy9pMmMtcGFzZW1pLWNvcmUuYwo+ICsrKyBiL2RyaXZlcnMvaTJjL2J1c3Nl cy9pMmMtcGFzZW1pLWNvcmUuYwo+IEBAIC0xMzcsNiArMTM3LDEyIEBAIHN0YXRpYyBpbnQgcGFz ZW1pX2kyY194ZmVyX21zZyhzdHJ1Y3QgaTJjX2FkYXB0ZXIgCj4gKmFkYXB0ZXIsCj4gCj4gIAkJ VFhGSUZPX1dSKHNtYnVzLCBtc2ctPmJ1Zlttc2ctPmxlbi0xXSB8Cj4gIAkJCSAgKHN0b3AgPyBN VFhGSUZPX1NUT1AgOiAwKSk7Cj4gKwo+ICsJCWlmIChzdG9wKSB7Cj4gKwkJCWVyciA9IHBhc2Vt aV9zbWJfd2FpdHJlYWR5KHNtYnVzKTsKPiArCQkJaWYgKGVycikKPiArCQkJCWdvdG8gcmVzZXRf b3V0Owo+ICsJCX0KCkxvb2tzIGxpa2UgcGFzZW1pX3NtYl94ZmVyIGRvZXNuJ3Qgc3VmZmVyIGZy b20gdGhlIHNhbWUgaXNzdWUuCkkgd29uZGVyIGlmIGV2ZXJ5IGRldmljZSBjb25uZWN0ZWQgdG8g dGhlIGJ1cyBvbiB0aGUgb3JpZ2luYWwgUEEgU2VtaSBib2FyZHMKb25seSB1c2VkIHRoYXQgcGF0 aCBhbmQgdGhhdCdzIHdoeSBubyBvbmUgbm90aWNlZCBpdC4KCgpTdmVuCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 930EDC433F5 for ; Tue, 29 Mar 2022 20:06:32 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4KSgYy6Fkmz3c29 for ; Wed, 30 Mar 2022 07:06:30 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=svenpeter.dev header.i=@svenpeter.dev header.a=rsa-sha256 header.s=fm1 header.b=IDkyQ8wv; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.a=rsa-sha256 header.s=fm3 header.b=MXBIEYDu; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=svenpeter.dev (client-ip=66.111.4.29; helo=out5-smtp.messagingengine.com; envelope-from=sven@svenpeter.dev; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=svenpeter.dev header.i=@svenpeter.dev header.a=rsa-sha256 header.s=fm1 header.b=IDkyQ8wv; dkim=pass (2048-bit key; unprotected) header.d=messagingengine.com header.i=@messagingengine.com header.a=rsa-sha256 header.s=fm3 header.b=MXBIEYDu; dkim-atps=neutral X-Greylist: delayed 397 seconds by postgrey-1.36 at boromir; Wed, 30 Mar 2022 07:05:47 AEDT Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4KSgY76ybmz2xsW for ; Wed, 30 Mar 2022 07:05:47 +1100 (AEDT) Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 660C65C01BB; Tue, 29 Mar 2022 15:59:05 -0400 (EDT) Received: from imap47 ([10.202.2.97]) by compute3.internal (MEProxy); Tue, 29 Mar 2022 15:59:05 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=svenpeter.dev; h=cc:cc:content-transfer-encoding:content-type:date:date:from :from:in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; bh=ECeje11hlUWWc7 ahU+melr+v3923TUV1SOEn+aMSwfc=; b=IDkyQ8wvClEa9bEVHsgEqxUSqV0Cqf 0X7a5NoChmomd/wU1PWKAzdiPjS8DgkvrrqPi6Wv0Uta2ngB9z/OnTkK5lkyVx0q 1u7KmRN4XcTAFWSq/SH4SBA7jOUsYsvH/VoZQt6NCJ3z4hD5abm1Z2qOHjFTUDil UpwTPJa4ZNACsyT38uouIFQA4nBUP+5bcJsy8XlvSA8IqWhcbOPQ5szbncCB78NC ZXaHGW8YBtjqX9rNqG4PN0pvyRZqPlTOuNRrpj6rntgWEaMXEyyXLoFj3pr3XwNS cBWpfnOPwud9JERKOCiPSNm+DA92TbRbK3iZyC0XX+AKrdvqsi6LwYtQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=ECeje11hlUWWc7ahU+melr+v3923TUV1SOEn+aMSw fc=; b=MXBIEYDu0Diu7AlV79qmpfV03zUCN1oIh30QqCzW2JH0EBCCiKmllCFjl FHIBVeFNemPwI9U8LbzqFRgJTWgO9ot149wgeULc9+lmBHKkMV2+Jo55eLcauOJd VaV1TND7gvEFTXr9vmsL0M3pjb/8diL9ECBh4QUYpHqALVeY0KBTeStCNi9rVXMb YR7l392wToBSdZ2rfhDFUJZMes3IlZFNrO43zIBI4prttkCZxYoVaV5lS2qdbdLT f47kBEaKl7ZKNtOhosOFwnliOXguDnQ/lvyFGzg7gdRxtLwLiuj60Bxb//dOFmMc OTLQfju6c7tMuFomfwDq2g0CANarA== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudeitddguddukecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefofgggkfgjfhffhffvufgtgfesthhqredtreerjeenucfhrhhomhepfdfu vhgvnhcurfgvthgvrhdfuceoshhvvghnsehsvhgvnhhpvghtvghrrdguvghvqeenucggtf frrghtthgvrhhnpeetueduleetfeeuledvleehheeivedvhfekheejjeduhfeileffffdu hfekieelgeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhroh hmpehsvhgvnhesshhvvghnphgvthgvrhdruggvvh X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id 8FE2F2740137; Tue, 29 Mar 2022 15:59:03 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.5.0-alpha0-4911-g925b585eab-fm-20220323.003-g925b585e Mime-Version: 1.0 Message-Id: <74a36bce-3d6e-4124-add1-8ed44ba2c80d@www.fastmail.com> In-Reply-To: <20220329183817.21656-1-povik+lin@cutebit.org> References: <20220329183817.21656-1-povik+lin@cutebit.org> Date: Tue, 29 Mar 2022 21:58:43 +0200 From: "Sven Peter" To: =?UTF-8?Q?Martin_Povi=C5=A1er?= , "Hector Martin" , "Michael Ellerman" Subject: Re: [PATCH] i2c: pasemi: Wait for write xfers to finish Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-kernel@vger.kernel.org, Olof Johansson , Paul Mackerras , Alyssa Rosenzweig , Jean Delvare , Janne Grunau , linuxppc-dev , linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" On Tue, Mar 29, 2022, at 20:38, Martin Povi=C5=A1er wrote: > Wait for completion of write transfers before returning from the drive= r. > At first sight it may seem advantageous to leave write transfers queued > for the controller to carry out on its own time, but there's a couple = of > issues with it: > > * Driver doesn't check for FIFO space. Maybe we should also check that in a follow-up patch :-) > > * The queued writes can complete while the driver is in its I2C read > transfer path which means it will get confused by the raising of > XEN (the 'transaction ended' signal). This can cause a spurious > ENODATA error due to premature reading of the MRXFIFO register. > > Adding the wait fixes some unreliability issues with the driver. There= 's > some efficiency cost to it (especially with pasemi_smb_waitready doing > its polling), but that will be alleviated once the driver receives > interrupt support. > > Fixes: beb58aa39e6e ("i2c: PA Semi SMBus driver") > Signed-off-by: Martin Povi=C5=A1er > --- Reviewed-by: Sven Peter > > Tested on Apple's t8103 chip. To my knowledge the PA Semi controller > in its pre-Apple occurences behaves the same as far as this patch is > concerned. > > drivers/i2c/busses/i2c-pasemi-core.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/i2c/busses/i2c-pasemi-core.c=20 > b/drivers/i2c/busses/i2c-pasemi-core.c > index 7728c8460dc0..9028ffb58cc0 100644 > --- a/drivers/i2c/busses/i2c-pasemi-core.c > +++ b/drivers/i2c/busses/i2c-pasemi-core.c > @@ -137,6 +137,12 @@ static int pasemi_i2c_xfer_msg(struct i2c_adapter=20 > *adapter, >=20 > TXFIFO_WR(smbus, msg->buf[msg->len-1] | > (stop ? MTXFIFO_STOP : 0)); > + > + if (stop) { > + err =3D pasemi_smb_waitready(smbus); > + if (err) > + goto reset_out; > + } Looks like pasemi_smb_xfer doesn't suffer from the same issue. I wonder if every device connected to the bus on the original PA Semi bo= ards only used that path and that's why no one noticed it. Sven