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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,T_DKIMWL_WL_HIGH,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E9BF0C04AB5 for ; Thu, 6 Jun 2019 19:04:33 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id C87E52083D for ; Thu, 6 Jun 2019 19:04:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="CZth5pcm" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C87E52083D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org 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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=c1d8xFjT+Xn4Y/n0SnMIrRc44BJAgCp2R50HpY21fDM=; b=CZth5pcm9FWQe8 VK/7SAUMT1QgYC0fFxV9pQa+CiAZzkjQc4eK0XbaxjoGnyxYps1IM/NkatvOumePqZgvytlD3MXw4 jNghC9KEPeQf5QguVf8wjy1nbSFutQX95eqslzPVd34V+mV71ytT3tyQElHYFcBtfDUGlflGh+dey UlMgPcMI3wjn7ZQ3rb98VrzrWRCc0vxb1OmQ8ucp2GtA6sICpzAyjbSuLOP5pNRvTCAnmaIScUYFo fsulQ65dMA+15+kNI6IoZvsmd6R3XcvFwXCVrkX2T3RqexW19AF3sGIDrUImKfX9YXCUn3irzpiL4 gAAI5oFS/ZgUdzbIGt3w==; 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 1hYxgf-0003W5-Ab; Thu, 06 Jun 2019 19:04:33 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hYxgb-0003V7-RU for linux-i3c@lists.infradead.org; Thu, 06 Jun 2019 19:04:31 +0000 Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 2622F283ED2; Thu, 6 Jun 2019 20:04:28 +0100 (BST) Date: Thu, 6 Jun 2019 21:04:24 +0200 From: Boris Brezillon To: Vitor Soares Subject: Re: [PATCH v2 1/3] i3c: fix i2c and i3c scl rate by bus mode Message-ID: <20190606210424.0486903a@collabora.com> In-Reply-To: <13D59CF9CEBAF94592A12E8AE55501350AABE85C@DE02WEMBXB.internal.synopsys.com> References: <47de89f2335930df0ed6903be9afe6de4f46e503.1559821228.git.vitor.soares@synopsys.com> <20190606161844.4a6b759c@collabora.com> <13D59CF9CEBAF94592A12E8AE55501350AABE7FC@DE02WEMBXB.internal.synopsys.com> <20190606193540.680d391b@collabora.com> <13D59CF9CEBAF94592A12E8AE55501350AABE85C@DE02WEMBXB.internal.synopsys.com> Organization: Collabora X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190606_120430_152561_33154096 X-CRM114-Status: GOOD ( 33.25 ) X-BeenThere: linux-i3c@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux I3C List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linux-i3c@lists.infradead.org" , "Joao.Pinto@synopsys.com" , "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" , Boris Brezillon Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org T24gVGh1LCA2IEp1biAyMDE5IDE4OjA4OjExICswMDAwClZpdG9yIFNvYXJlcyA8Vml0b3IuU29h cmVzQHN5bm9wc3lzLmNvbT4gd3JvdGU6Cgo+IEZyb206IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMu YnJlemlsbG9uQGNvbGxhYm9yYS5jb20+Cj4gRGF0ZTogVGh1LCBKdW4gMDYsIDIwMTkgYXQgMTg6 MzU6NDAKPiAKPiA+IE9uIFRodSwgNiBKdW4gMjAxOSAxNzoxNjo1NSArMDAwMAo+ID4gVml0b3Ig U29hcmVzIDxWaXRvci5Tb2FyZXNAc3lub3BzeXMuY29tPiB3cm90ZToKPiA+ICAgCj4gPiA+IEZy b206IEJvcmlzIEJyZXppbGxvbiA8Ym9yaXMuYnJlemlsbG9uQGNvbGxhYm9yYS5jb20+Cj4gPiA+ IERhdGU6IFRodSwgSnVuIDA2LCAyMDE5IGF0IDE1OjE4OjQ0Cj4gPiA+ICAgCj4gPiA+ID4gT24g VGh1LCAgNiBKdW4gMjAxOSAxNjowMDowMSArMDIwMAo+ID4gPiA+IFZpdG9yIFNvYXJlcyA8Vml0 b3IuU29hcmVzQHN5bm9wc3lzLmNvbT4gd3JvdGU6Cj4gPiA+ID4gICAgIAo+ID4gPiA+ID4gQ3Vy cmVudGx5IHRoZSBJM0MgZnJhbWV3b3JrIGxpbWl0cyBTQ0wgZnJlcXVlbmN5IHRvIEZNIHNwZWVk IHdoZW4KPiA+ID4gPiA+IGRlYWxpbmcgd2l0aCBhIG1peGVkIHNsb3cgYnVzLCBldmVuIGlmIGFs bCBJMkMgZGV2aWNlcyBhcmUgRk0rIGNhcGFibGUuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFRoZSBj b3JlIHdhcyBhbHNvIG5vdCBhY2NvdW50aW5nIGZvciBJM0Mgc3BlZWQgbGltaXRhdGlvbnMgd2hl bgo+ID4gPiA+ID4gb3BlcmF0aW5nIGluIG1peGVkIHNsb3cgbW9kZSBhbmQgd2FzIGVycm9uZW91 c2x5IHVzaW5nIEZNKyBzcGVlZCBhcyB0aGUKPiA+ID4gPiA+IG1heCBJMkMgc3BlZWQgd2hlbiBv cGVyYXRpbmcgaW4gbWl4ZWQgZmFzdCBtb2RlLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBGaXhlczog M2EzNzliYmNlYTBhICgiaTNjOiBBZGQgY29yZSBJM0MgaW5mcmFzdHJ1Y3R1cmUiKQo+ID4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogVml0b3IgU29hcmVzIDx2aXRvci5zb2FyZXNAc3lub3BzeXMuY29t Pgo+ID4gPiA+ID4gQ2M6IEJvcmlzIEJyZXppbGxvbiA8YmJyZXppbGxvbkBrZXJuZWwub3JnPgo+ ID4gPiA+ID4gQ2M6IDxzdGFibGVAdmdlci5rZXJuZWwub3JnPgo+ID4gPiA+ID4gQ2M6IDxsaW51 eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnPgo+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiBDaGFuZ2Vz IGluIHYyOgo+ID4gPiA+ID4gICBFbmhhbmNlIGNvbW1pdCBtZXNzYWdlCj4gPiA+ID4gPiAgIEFk ZCBkZXZfd2FybigpIGluIGNhc2UgdXNlci1kZWZpbmVkIGkyYyByYXRlIGRvZXNuJ3QgbWF0Y2gg TFZSIGNvbnN0cmFpbnQKPiA+ID4gPiA+ICAgQWRkIGRldl93YXJuKCkgaW4gY2FzZSB1c2VyLWRl ZmluZWQgaTNjIHJhdGUgbG93ZXIgdGhhbiBpMmMgcmF0ZS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4g IGRyaXZlcnMvaTNjL21hc3Rlci5jIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLQo+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA0OCBpbnNl cnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKPiA+ID4gPiA+IAo+ID4gPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvaTNjL21hc3Rlci5jIGIvZHJpdmVycy9pM2MvbWFzdGVyLmMKPiA+ID4gPiA+ IGluZGV4IDVmNGJkNTIuLjhjZDU4MjQgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2kz Yy9tYXN0ZXIuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9pM2MvbWFzdGVyLmMKPiA+ID4gPiA+ IEBAIC05MSw2ICs5MSwxMiBAQCB2b2lkIGkzY19idXNfbm9ybWFsdXNlX3VubG9jayhzdHJ1Y3Qg aTNjX2J1cyAqYnVzKQo+ID4gPiA+ID4gIAl1cF9yZWFkKCZidXMtPmxvY2spOwo+ID4gPiA+ID4g IH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGkzY19tYXN0ZXJfY29udHJv bGxlciAqCj4gPiA+ID4gPiAraTNjX2J1c190b19pM2NfbWFzdGVyKHN0cnVjdCBpM2NfYnVzICpp M2NidXMpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlyZXR1cm4gY29udGFpbmVyX29mKGkzY2J1 cywgc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlciwgYnVzKTsKPiA+ID4gPiA+ICt9Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiAgc3RhdGljIHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKmRl dl90b19pM2NtYXN0ZXIoc3RydWN0IGRldmljZSAqZGV2KQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ ICAJcmV0dXJuIGNvbnRhaW5lcl9vZihkZXYsIHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIs IGRldik7Cj4gPiA+ID4gPiBAQCAtNTY1LDIwICs1NzEsNDggQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkZXZpY2VfdHlwZSBpM2NfbWFzdGVyZGV2X3R5cGUgPSB7Cj4gPiA+ID4gPiAgCS5ncm91cHMJ PSBpM2NfbWFzdGVyZGV2X2dyb3VwcywKPiA+ID4gPiA+ICB9Owo+ID4gPiA+ID4gIAo+ID4gPiA+ ID4gLWludCBpM2NfYnVzX3NldF9tb2RlKHN0cnVjdCBpM2NfYnVzICppM2NidXMsIGVudW0gaTNj X2J1c19tb2RlIG1vZGUpCj4gPiA+ID4gPiAraW50IGkzY19idXNfc2V0X21vZGUoc3RydWN0IGkz Y19idXMgKmkzY2J1cywgZW51bSBpM2NfYnVzX21vZGUgbW9kZSwKPiA+ID4gPiA+ICsJCSAgICAg dW5zaWduZWQgbG9uZyBtYXhfaTJjX3NjbF9yYXRlKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+IC0J aTNjYnVzLT5tb2RlID0gbW9kZTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IC0JaWYgKCFpM2NidXMt PnNjbF9yYXRlLmkzYykKPiA+ID4gPiA+IC0JCWkzY2J1cy0+c2NsX3JhdGUuaTNjID0gSTNDX0JV U19UWVBfSTNDX1NDTF9SQVRFOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9s bGVyICptYXN0ZXIgPSBpM2NfYnVzX3RvX2kzY19tYXN0ZXIoaTNjYnVzKTsKPiA+ID4gPiA+ICAK PiA+ID4gPiA+IC0JaWYgKCFpM2NidXMtPnNjbF9yYXRlLmkyYykgewo+ID4gPiA+ID4gLQkJaWYg KGkzY2J1cy0+bW9kZSA9PSBJM0NfQlVTX01PREVfTUlYRURfU0xPVykKPiA+ID4gPiA+IC0JCQlp M2NidXMtPnNjbF9yYXRlLmkyYyA9IEkzQ19CVVNfSTJDX0ZNX1NDTF9SQVRFOwo+ID4gPiA+ID4g LQkJZWxzZQo+ID4gPiA+ID4gLQkJCWkzY2J1cy0+c2NsX3JhdGUuaTJjID0gSTNDX0JVU19JMkNf Rk1fUExVU19TQ0xfUkFURTsKPiA+ID4gPiA+ICsJaTNjYnVzLT5tb2RlID0gbW9kZTsKPiA+ID4g PiA+ICsKPiA+ID4gPiA+ICsJc3dpdGNoIChpM2NidXMtPm1vZGUpIHsKPiA+ID4gPiA+ICsJY2Fz ZSBJM0NfQlVTX01PREVfUFVSRToKPiA+ID4gPiA+ICsJCWlmICghaTNjYnVzLT5zY2xfcmF0ZS5p M2MpCj4gPiA+ID4gPiArCQkJaTNjYnVzLT5zY2xfcmF0ZS5pM2MgPSBJM0NfQlVTX1RZUF9JM0Nf U0NMX1JBVEU7Cj4gPiA+ID4gPiArCQlicmVhazsKPiA+ID4gPiA+ICsJY2FzZSBJM0NfQlVTX01P REVfTUlYRURfRkFTVDoKPiA+ID4gPiA+ICsJCWlmICghaTNjYnVzLT5zY2xfcmF0ZS5pM2MpCj4g PiA+ID4gPiArCQkJaTNjYnVzLT5zY2xfcmF0ZS5pM2MgPSBJM0NfQlVTX1RZUF9JM0NfU0NMX1JB VEU7Cj4gPiA+ID4gPiArCQlpZiAoIWkzY2J1cy0+c2NsX3JhdGUuaTJjKQo+ID4gPiA+ID4gKwkJ CWkzY2J1cy0+c2NsX3JhdGUuaTJjID0gbWF4X2kyY19zY2xfcmF0ZTsKPiA+ID4gPiA+ICsJCWJy ZWFrOwo+ID4gPiA+ID4gKwljYXNlIEkzQ19CVVNfTU9ERV9NSVhFRF9TTE9XOgo+ID4gPiA+ID4g KwkJaWYgKCFpM2NidXMtPnNjbF9yYXRlLmkyYykKPiA+ID4gPiA+ICsJCQlpM2NidXMtPnNjbF9y YXRlLmkyYyA9IG1heF9pMmNfc2NsX3JhdGU7Cj4gPiA+ID4gPiArCQlpZiAoIWkzY2J1cy0+c2Ns X3JhdGUuaTNjIHx8Cj4gPiA+ID4gPiArCQkgICAgaTNjYnVzLT5zY2xfcmF0ZS5pM2MgPiBpM2Ni dXMtPnNjbF9yYXRlLmkyYykKPiA+ID4gPiA+ICsJCQlpM2NidXMtPnNjbF9yYXRlLmkzYyA9IGkz Y2J1cy0+c2NsX3JhdGUuaTJjOwo+ID4gPiA+ID4gKwkJYnJlYWs7Cj4gPiA+ID4gPiArCWRlZmF1 bHQ6Cj4gPiA+ID4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4g IAo+ID4gPiA+ID4gKwlpZiAoaTNjYnVzLT5zY2xfcmF0ZS5pM2MgPCBpM2NidXMtPnNjbF9yYXRl LmkyYykKPiA+ID4gPiA+ICsJCWRldl93YXJuKCZtYXN0ZXItPmRldiwKPiA+ID4gPiA+ICsJCQkg ImkzYy1zY2wtaHo9JWxkIGxvd2VyIHRoYW4gaTJjLXNjbC1oej0lbGRcbiIsCj4gPiA+ID4gPiAr CQkJIGkzY2J1cy0+c2NsX3JhdGUuaTNjLCBpM2NidXMtPnNjbF9yYXRlLmkyYyk7Cj4gPiA+ID4g PiArCj4gPiA+ID4gPiArCWlmIChpM2NidXMtPnNjbF9yYXRlLmkyYyAhPSBJM0NfQlVTX0kyQ19G TV9TQ0xfUkFURSAmJgo+ID4gPiA+ID4gKwkgICAgaTNjYnVzLT5zY2xfcmF0ZS5pMmMgIT0gSTND X0JVU19JMkNfRk1fUExVU19TQ0xfUkFURSAmJgo+ID4gPiA+ID4gKwkgICAgaTNjYnVzLT5tb2Rl ICE9IEkzQ19CVVNfTU9ERV9QVVJFKSAgICAKPiA+ID4gPiAKPiA+ID4gPiBJZiB5b3UgYXJlIHNv IHN0cmljdCwgdGhlcmUncyBjbGVhcmx5IG5vIHBvaW50IGV4cG9zaW5nIGFuIGkyYy1zY2wtaHoK PiA+ID4gPiBwcm9wZXJ0eS4gSSdtIHN0aWxsIG5vdCBjb252aW5jZWQgaGF2aW5nIGFuIGkyYyBy YXRlIHRoYXQncyBzbG93ZXIgdGhhbgo+ID4gPiA+IHdoYXQgdGhlIEkyQy9JM0Mgc3BlYyBkZWZp bmVzIGFzIHRoZSAqdHlwaWNhbCogcmF0ZSBpcyBhIGJhZCB0aGluZywgICAgIAo+ID4gPiAKPiA+ ID4gSSdtIG5vdCBiZWVuIHN0cmljdGl2ZSwgSSBqdXN0IGluZm9ybSB0aGUgdXNlciBhYm91dCB0 aGF0IGNhc2UuICAKPiA+IAo+ID4gVGhlbiB1c2UgZGV2X2RlYnVnKCkgYW5kIGRvbid0IG1ha2Ug dGhlIHRyYWNlIGNvbmRpdGlvbmFsIG9uCj4gPiBpMmNfcmF0ZSAhPSB0eXBpY2FsX3JhdGUuICAg Cj4gCj4gT2suIEkgd2lsbCBjaGFuZ2UgdG8gZGV2X2RlYnVnKCkuCj4gCj4gPiBUaGUgb25seSBj YXNlIHdoZXJlIHdlIHNob3VsZCB3YXJuIHVzZXJzCj4gPiBpcyBpMmNfcmF0ZSA+IHR5cGljYWxf cmF0ZSwgYmVjYXVzZSB0aGF0IG1pZ2h0IGxlYWQgdG8gbWFsZnVuY3Rpb25zLiAgCj4gCj4gQ2Fu IHlvdSBleHBsYWluIHdoeT8KCkJlY2F1c2UgdGhlIHNwZWVkIGlzIGxpbWl0ZWQgYnkgdGhlIGRl dmljZSBjYXBhYmlsaXRpZXMuIFVzaW5nIGEgc2xvd2VyCmZyZXEgd29ya3MsIGRyaXZpbmcgdGhl IFNMQyBsaW5lIGZhc3RlciB0aGFuIHdoYXQncyBzdXBwb3J0ZWQgYnkgSTJDCnNsYXZlcyBkb2Vz bid0LgoKPiAKPiA+ICAgCj4gPiA+ICAgCj4gPiA+ID4ganVzdAo+ID4gPiA+IGxpa2UgSSdtIG5v dCBjb252aW5jZWQgaGF2aW5nIGFuIEkzQyByYXRlIHRoYXQncyBzbG93ZXIgdGhhbiB0aGUgSTJD Cj4gPiA+ID4gb25lIGlzIGEgcHJvYmxlbSAoaXQncyBkZWZpbml0ZWx5IGEgd2VpcmQgc2l0dWF0 aW9uLCBidXQgdGhlcmUncyBub3RoaW5nCj4gPiA+ID4gcHJldmVudGluZyB0aGF0IGluIHRoZSBz cGVjKS4gICAgCj4gPiA+IAo+ID4gPiBZb3UgYWdyZWUgdGhhdCB0aGVyZSBpcyBubyBwb2ludCBm b3IgY2FzZSB3aGVyZSBpM2MgcmF0ZSA8IGkyYyByYXRlIHlldCAKPiA+ID4geW91IGFyZSBub3Qg Y29udmluY2VkLiAgCj4gPiAKPiA+IEkgZGlkbid0IHNheSB0aGF0LCB0aGVyZSBtaWdodCBiZSB1 c2UgY2FzZXMgd2hlcmUgb25lIHdhbnRzIHRvIHNsb3cKPiA+IGRvd24gdGhlIEkzQyBidXMgdG8g YmUgYWJsZSB0byBwcm9iZSBpdCBvciB1c2UgYSBzbG93ZXIgcmF0ZSB3aGVuCj4gPiB0aGluZ3Mg ZG8gbm90IHdvcmsgcHJvcGVybHkuIEl0J3MgcmF0aGVyIHVubGlrZWx5IHRvIGhhcHBlbiwgYnV0 IEkKPiA+IGRvbid0IHRoaW5rIGl0IGRlc2VydmVzIGEgd2FybmluZyBtZXNzYWdlIHdoZW4gdGhh dCdzIHRoZSBjYXNlLgo+ID4gICAKPiA+ID4gRG8geW91IHRoaW5nIHRoYXQgd2lsbCBiZSB1c2Vy cyBmb3IgdGhpcyBjYXNlPwo+ID4gPiAKPiA+ID4gQW55d2F5LCB0aGlzIGlzbid0IGEgaGlnaCBy ZXF1aXJlbWVudCBmb3IgbWUuIFRoZSBhbGwgcG9pbnQgb2YgdGhpcyBwYXRjaCAKPiA+ID4gaXMg dG8gaW50cm9kdWNlIHRoZSBsaW1pdGVkIGJ1cyBjb25maWd1cmF0aW9uLiAgCj4gPiAKPiA+IEFu ZCB5ZXQsIHlvdSBrZWVwIGluc2lzdGluZyAoYW5kIGlnbm9yaW5nIG15IGZlZWRiYWNrKSBvbiB0 aGF0IHBvaW50IDpQLiAgCj4gCj4gSWYgeW91IGNoZWNrIHRoZSBwcmV2aW91cyB2ZXJzaW9uIHlv dSBzZWUgdGhhdCBJJ20gdHJ5aW5nIHRvIGZvbGxvdyDwn5iJCj4gSSB3aWxsIGNoYW5nZSB0aGUg ZGV2X3dhcm4oKSB0byBkZXZfZGJnKCkgZHVlIHRoZSB0cmFjZSBpcyBpbmRlZWQgdG9vIAo+IG11 Y2guCgpJIGhhdmUgdGhlIGZlZWxpbmcgdGhhdCB5b3UgZW5kbGVzc2x5IGFyZ3VlIG9uIGRldGFp bHMgd2hpbGUgdGhlIHZhc3QKbWFqb3JpdHkgb2YgY2hhbmdlcyBhcmUgb2theSwgd2hpY2ggbWVh bnMgd2UgYm90aCBzcGVuZCBhIGxvdCBvZiB0aW1lCm9uIHRoaW5ncyB0aGF0IGFyZSBub3Qgc3Vw ZXIgaW1wb3J0YW50LgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtaTNjIG1haWxpbmcgbGlzdApsaW51eC1pM2NAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWkzYwo= 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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A802BC28EB4 for ; Thu, 6 Jun 2019 19:04:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 86F4A208C0 for ; Thu, 6 Jun 2019 19:04:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728735AbfFFTEa convert rfc822-to-8bit (ORCPT ); Thu, 6 Jun 2019 15:04:30 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:60232 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728472AbfFFTEa (ORCPT ); Thu, 6 Jun 2019 15:04:30 -0400 Received: from localhost (unknown [IPv6:2a01:e0a:2c:6930:5cf4:84a1:2763:fe0d]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) (Authenticated sender: bbrezillon) by bhuna.collabora.co.uk (Postfix) with ESMTPSA id 2622F283ED2; Thu, 6 Jun 2019 20:04:28 +0100 (BST) Date: Thu, 6 Jun 2019 21:04:24 +0200 From: Boris Brezillon To: Vitor Soares Cc: "linux-i3c@lists.infradead.org" , "Joao.Pinto@synopsys.com" , Boris Brezillon , "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" Subject: Re: [PATCH v2 1/3] i3c: fix i2c and i3c scl rate by bus mode Message-ID: <20190606210424.0486903a@collabora.com> In-Reply-To: <13D59CF9CEBAF94592A12E8AE55501350AABE85C@DE02WEMBXB.internal.synopsys.com> References: <47de89f2335930df0ed6903be9afe6de4f46e503.1559821228.git.vitor.soares@synopsys.com> <20190606161844.4a6b759c@collabora.com> <13D59CF9CEBAF94592A12E8AE55501350AABE7FC@DE02WEMBXB.internal.synopsys.com> <20190606193540.680d391b@collabora.com> <13D59CF9CEBAF94592A12E8AE55501350AABE85C@DE02WEMBXB.internal.synopsys.com> Organization: Collabora X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 6 Jun 2019 18:08:11 +0000 Vitor Soares wrote: > From: Boris Brezillon > Date: Thu, Jun 06, 2019 at 18:35:40 > > > On Thu, 6 Jun 2019 17:16:55 +0000 > > Vitor Soares wrote: > > > > > From: Boris Brezillon > > > Date: Thu, Jun 06, 2019 at 15:18:44 > > > > > > > On Thu, 6 Jun 2019 16:00:01 +0200 > > > > Vitor Soares wrote: > > > > > > > > > Currently the I3C framework limits SCL frequency to FM speed when > > > > > dealing with a mixed slow bus, even if all I2C devices are FM+ capable. > > > > > > > > > > The core was also not accounting for I3C speed limitations when > > > > > operating in mixed slow mode and was erroneously using FM+ speed as the > > > > > max I2C speed when operating in mixed fast mode. > > > > > > > > > > Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure") > > > > > Signed-off-by: Vitor Soares > > > > > Cc: Boris Brezillon > > > > > Cc: > > > > > Cc: > > > > > --- > > > > > Changes in v2: > > > > > Enhance commit message > > > > > Add dev_warn() in case user-defined i2c rate doesn't match LVR constraint > > > > > Add dev_warn() in case user-defined i3c rate lower than i2c rate. > > > > > > > > > > drivers/i3c/master.c | 61 +++++++++++++++++++++++++++++++++++++++++----------- > > > > > 1 file changed, 48 insertions(+), 13 deletions(-) > > > > > > > > > > diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c > > > > > index 5f4bd52..8cd5824 100644 > > > > > --- a/drivers/i3c/master.c > > > > > +++ b/drivers/i3c/master.c > > > > > @@ -91,6 +91,12 @@ void i3c_bus_normaluse_unlock(struct i3c_bus *bus) > > > > > up_read(&bus->lock); > > > > > } > > > > > > > > > > +static struct i3c_master_controller * > > > > > +i3c_bus_to_i3c_master(struct i3c_bus *i3cbus) > > > > > +{ > > > > > + return container_of(i3cbus, struct i3c_master_controller, bus); > > > > > +} > > > > > + > > > > > static struct i3c_master_controller *dev_to_i3cmaster(struct device *dev) > > > > > { > > > > > return container_of(dev, struct i3c_master_controller, dev); > > > > > @@ -565,20 +571,48 @@ static const struct device_type i3c_masterdev_type = { > > > > > .groups = i3c_masterdev_groups, > > > > > }; > > > > > > > > > > -int i3c_bus_set_mode(struct i3c_bus *i3cbus, enum i3c_bus_mode mode) > > > > > +int i3c_bus_set_mode(struct i3c_bus *i3cbus, enum i3c_bus_mode mode, > > > > > + unsigned long max_i2c_scl_rate) > > > > > { > > > > > - i3cbus->mode = mode; > > > > > > > > > > - if (!i3cbus->scl_rate.i3c) > > > > > - i3cbus->scl_rate.i3c = I3C_BUS_TYP_I3C_SCL_RATE; > > > > > + struct i3c_master_controller *master = i3c_bus_to_i3c_master(i3cbus); > > > > > > > > > > - if (!i3cbus->scl_rate.i2c) { > > > > > - if (i3cbus->mode == I3C_BUS_MODE_MIXED_SLOW) > > > > > - i3cbus->scl_rate.i2c = I3C_BUS_I2C_FM_SCL_RATE; > > > > > - else > > > > > - i3cbus->scl_rate.i2c = I3C_BUS_I2C_FM_PLUS_SCL_RATE; > > > > > + i3cbus->mode = mode; > > > > > + > > > > > + switch (i3cbus->mode) { > > > > > + case I3C_BUS_MODE_PURE: > > > > > + if (!i3cbus->scl_rate.i3c) > > > > > + i3cbus->scl_rate.i3c = I3C_BUS_TYP_I3C_SCL_RATE; > > > > > + break; > > > > > + case I3C_BUS_MODE_MIXED_FAST: > > > > > + if (!i3cbus->scl_rate.i3c) > > > > > + i3cbus->scl_rate.i3c = I3C_BUS_TYP_I3C_SCL_RATE; > > > > > + if (!i3cbus->scl_rate.i2c) > > > > > + i3cbus->scl_rate.i2c = max_i2c_scl_rate; > > > > > + break; > > > > > + case I3C_BUS_MODE_MIXED_SLOW: > > > > > + if (!i3cbus->scl_rate.i2c) > > > > > + i3cbus->scl_rate.i2c = max_i2c_scl_rate; > > > > > + if (!i3cbus->scl_rate.i3c || > > > > > + i3cbus->scl_rate.i3c > i3cbus->scl_rate.i2c) > > > > > + i3cbus->scl_rate.i3c = i3cbus->scl_rate.i2c; > > > > > + break; > > > > > + default: > > > > > + return -EINVAL; > > > > > } > > > > > > > > > > + if (i3cbus->scl_rate.i3c < i3cbus->scl_rate.i2c) > > > > > + dev_warn(&master->dev, > > > > > + "i3c-scl-hz=%ld lower than i2c-scl-hz=%ld\n", > > > > > + i3cbus->scl_rate.i3c, i3cbus->scl_rate.i2c); > > > > > + > > > > > + if (i3cbus->scl_rate.i2c != I3C_BUS_I2C_FM_SCL_RATE && > > > > > + i3cbus->scl_rate.i2c != I3C_BUS_I2C_FM_PLUS_SCL_RATE && > > > > > + i3cbus->mode != I3C_BUS_MODE_PURE) > > > > > > > > If you are so strict, there's clearly no point exposing an i2c-scl-hz > > > > property. I'm still not convinced having an i2c rate that's slower than > > > > what the I2C/I3C spec defines as the *typical* rate is a bad thing, > > > > > > I'm not been strictive, I just inform the user about that case. > > > > Then use dev_debug() and don't make the trace conditional on > > i2c_rate != typical_rate. > > Ok. I will change to dev_debug(). > > > The only case where we should warn users > > is i2c_rate > typical_rate, because that might lead to malfunctions. > > Can you explain why? Because the speed is limited by the device capabilities. Using a slower freq works, driving the SLC line faster than what's supported by I2C slaves doesn't. > > > > > > > > > > just > > > > like I'm not convinced having an I3C rate that's slower than the I2C > > > > one is a problem (it's definitely a weird situation, but there's nothing > > > > preventing that in the spec). > > > > > > You agree that there is no point for case where i3c rate < i2c rate yet > > > you are not convinced. > > > > I didn't say that, there might be use cases where one wants to slow > > down the I3C bus to be able to probe it or use a slower rate when > > things do not work properly. It's rather unlikely to happen, but I > > don't think it deserves a warning message when that's the case. > > > > > Do you thing that will be users for this case? > > > > > > Anyway, this isn't a high requirement for me. The all point of this patch > > > is to introduce the limited bus configuration. > > > > And yet, you keep insisting (and ignoring my feedback) on that point :P. > > If you check the previous version you see that I'm trying to follow 😉 > I will change the dev_warn() to dev_dbg() due the trace is indeed too > much. I have the feeling that you endlessly argue on details while the vast majority of changes are okay, which means we both spend a lot of time on things that are not super important.