From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: Re: [PATCH v2 2/6] i2c: at91: implement i2c bus recovery Date: Thu, 9 Jan 2020 10:54:37 +0000 Message-ID: References: <20200103094821.13185-1-codrin.ciubotariu@microchip.com> <20200103094821.13185-3-codrin.ciubotariu@microchip.com> <20200109074819.rhlaxg3sgwlng5xm@M43218.corp.atmel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20200109074819.rhlaxg3sgwlng5xm-cg6aFISJjbMT2m6MMfBamRL4W9x8LtSr@public.gmane.org> Content-Language: en-US Content-ID: <203E1782E0105E47A8AF6EFA8A148B22-Hry67jCOGbCcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> Sender: devicetree-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, kamel.bouhara-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org, wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org, Nicolas.Ferre-UWL1GkI3JZL3oGB3hsPCZA@public.gmane.org, alexandre.belloni-LDxbnhwyfcJBDgjK7y7TUQ@public.gmane.org, robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org List-Id: linux-i2c@vger.kernel.org T24gMDkuMDEuMjAyMCAwOTo0OCwgTHVkb3ZpYyBEZXNyb2NoZXMgd3JvdGU6DQo+IE9uIEZyaSwg SmFuIDAzLCAyMDIwIGF0IDA5OjQ5OjA3QU0gKzAwMDAsIENvZHJpbiBDaXVib3Rhcml1IC0gTTE5 OTQwIHdyb3RlOg0KPj4gRnJvbTogS2FtZWwgQm91aGFyYSA8a2FtZWwuYm91aGFyYUBib290bGlu LmNvbT4NCj4+DQo+PiBJbXBsZW1lbnQgaTJjIGJ1cyByZWNvdmVyeSB3aGVuIHNsYXZlcyBkZXZp Y2VzIG1pZ2h0IGhvbGQgU0RBIGxvdy4NCj4+IEluIHRoaXMgY2FzZSByZS1hc3NpZ24gU0NML1NE QSB0byBncGlvcyBhbmQgaXNzdWUgOSBkdW1teSBjbG9jayBwdWxzZXMNCj4+IHVudGlsIHRoZSBz bGF2ZSByZWxlYXNlIFNEQS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBLYW1lbCBCb3VoYXJhIDxr YW1lbC5ib3VoYXJhQGJvb3RsaW4uY29tPg0KPj4gW2NvZHJpbi5jaXVib3Rhcml1QG1pY3JvY2hp cC5jb206IHJlbGVhc2UgZ3Bpb3Mgb24gZXJyb3I7IG1vdmUgaTJjX3JlY292ZXJfYnVzXQ0KPj4g U2lnbmVkLW9mZi1ieTogQ29kcmluIENpdWJvdGFyaXUgPGNvZHJpbi5jaXVib3Rhcml1QG1pY3Jv Y2hpcC5jb20+DQo+PiAtLS0NCj4+DQo+PiBDaGFuZ2VzIGluIHYyOg0KPj4gICAtIGNhbGxlZCBp MmNfcmVjb3Zlcl9idXMoKSBhZnRlciBhbiBlcnJvciBvY2N1cnMsIGlmIFNEQSBpcyBkb3duOw0K Pj4gICAtIHJlbGVhc2UgZ3Bpb3MgaWYgcmVjb3ZlcnkgaW5mb3JtYXRpb24gaXMgaW5jb21wbGV0 ZTsNCj4+DQo+PiAgIGRyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtYXQ5MS1tYXN0ZXIuYyB8IDc5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ICAgZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1h dDkxLmggICAgICAgIHwgIDggKysrDQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9u cygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWF0OTEtbWFz dGVyLmMgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWF0OTEtbWFzdGVyLmMNCj4+IGluZGV4IDdh ODYyZTAwYjQ3NS4uYzU1ZThmZjM1MjAxIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9pMmMvYnVz c2VzL2kyYy1hdDkxLW1hc3Rlci5jDQo+PiArKysgYi9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWF0 OTEtbWFzdGVyLmMNCj4+IEBAIC0xOCwxMSArMTgsMTMgQEANCj4+ICAgI2luY2x1ZGUgPGxpbnV4 L2RtYS1tYXBwaW5nLmg+DQo+PiAgICNpbmNsdWRlIDxsaW51eC9kbWFlbmdpbmUuaD4NCj4+ICAg I2luY2x1ZGUgPGxpbnV4L2Vyci5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9ncGlvL2NvbnN1bWVy Lmg+DQo+PiAgICNpbmNsdWRlIDxsaW51eC9pMmMuaD4NCj4+ICAgI2luY2x1ZGUgPGxpbnV4L2lu dGVycnVwdC5oPg0KPj4gICAjaW5jbHVkZSA8bGludXgvaW8uaD4NCj4+ICAgI2luY2x1ZGUgPGxp bnV4L29mLmg+DQo+PiAgICNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCj4+ICsjaW5jbHVk ZSA8bGludXgvcGluY3RybC9jb25zdW1lci5oPg0KPj4gICAjaW5jbHVkZSA8bGludXgvcGxhdGZv cm1fZGV2aWNlLmg+DQo+PiAgICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kYXRhL2RtYS1hdG1l bC5oPg0KPj4gICAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPg0KPj4gQEAgLTQ3OCw2ICs0 ODAsNyBAQCBzdGF0aWMgaW50IGF0OTFfZG9fdHdpX3RyYW5zZmVyKHN0cnVjdCBhdDkxX3R3aV9k ZXYgKmRldikNCj4+ICAgCXVuc2lnbmVkIGxvbmcgdGltZV9sZWZ0Ow0KPj4gICAJYm9vbCBoYXNf dW5yZV9mbGFnID0gZGV2LT5wZGF0YS0+aGFzX3VucmVfZmxhZzsNCj4+ICAgCWJvb2wgaGFzX2Fs dF9jbWQgPSBkZXYtPnBkYXRhLT5oYXNfYWx0X2NtZDsNCj4+ICsJc3RydWN0IGkyY19idXNfcmVj b3ZlcnlfaW5mbyAqcmluZm8gPSAmZGV2LT5yaW5mbzsNCj4+ICAgDQo+PiAgIAkvKg0KPj4gICAJ ICogV0FSTklORzogdGhlIFRYQ09NUCBiaXQgaW4gdGhlIFN0YXR1cyBSZWdpc3RlciBpcyBOT1Qg YSBjbGVhciBvbg0KPj4gQEAgLTYzNyw2ICs2NDAsMTMgQEAgc3RhdGljIGludCBhdDkxX2RvX3R3 aV90cmFuc2ZlcihzdHJ1Y3QgYXQ5MV90d2lfZGV2ICpkZXYpDQo+PiAgIAkJYXQ5MV90d2lfd3Jp dGUoZGV2LCBBVDkxX1RXSV9DUiwNCj4+ICAgCQkJICAgICAgIEFUOTFfVFdJX1RIUkNMUiB8IEFU OTFfVFdJX0xPQ0tDTFIpOw0KPj4gICAJfQ0KPj4gKw0KPj4gKwlpZiAocmluZm8tPmdldF9zZGEg JiYgIShyaW5mby0+Z2V0X3NkYSgmZGV2LT5hZGFwdGVyKSkpIHsNCj4+ICsJCWRldl9kYmcoZGV2 LT5kZXYsDQo+PiArCQkJIlNEQSBpcyBkb3duOyBjbGVhciBidXMgdXNpbmcgZ3Bpb1xuIik7DQo+ PiArCQlpMmNfcmVjb3Zlcl9idXMoJmRldi0+YWRhcHRlcik7DQo+PiArCX0NCj4+ICsNCj4+ICAg CXJldHVybiByZXQ7DQo+PiAgIH0NCj4+ICAgDQo+PiBAQCAtODA2LDYgKzgxNiw3MSBAQCBzdGF0 aWMgaW50IGF0OTFfdHdpX2NvbmZpZ3VyZV9kbWEoc3RydWN0IGF0OTFfdHdpX2RldiAqZGV2LCB1 MzIgcGh5X2FkZHIpDQo+PiAgIAlyZXR1cm4gcmV0Ow0KPj4gICB9DQo+PiAgIA0KPj4gK3N0YXRp YyB2b2lkIGF0OTFfcHJlcGFyZV90d2lfcmVjb3Zlcnkoc3RydWN0IGkyY19hZGFwdGVyICphZGFw KQ0KPj4gK3sNCj4+ICsJc3RydWN0IGF0OTFfdHdpX2RldiAqZGV2ID0gaTJjX2dldF9hZGFwZGF0 YShhZGFwKTsNCj4+ICsNCj4+ICsJcGluY3RybF9zZWxlY3Rfc3RhdGUoZGV2LT5waW5jdHJsLCBk ZXYtPnBpbmN0cmxfcGluc19ncGlvKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgYXQ5 MV91bnByZXBhcmVfdHdpX3JlY292ZXJ5KHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcCkNCj4+ICt7 DQo+PiArCXN0cnVjdCBhdDkxX3R3aV9kZXYgKmRldiA9IGkyY19nZXRfYWRhcGRhdGEoYWRhcCk7 DQo+PiArDQo+PiArCXBpbmN0cmxfc2VsZWN0X3N0YXRlKGRldi0+cGluY3RybCwgZGV2LT5waW5j dHJsX3BpbnNfZGVmYXVsdCk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBpbnQgYXQ5MV9pbml0 X3R3aV9yZWNvdmVyeV9pbmZvKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQo+PiArCQkJ CSAgICAgICBzdHJ1Y3QgYXQ5MV90d2lfZGV2ICpkZXYpDQo+PiArew0KPj4gKwlzdHJ1Y3QgaTJj X2J1c19yZWNvdmVyeV9pbmZvICpyaW5mbyA9ICZkZXYtPnJpbmZvOw0KPj4gKw0KPj4gKwlkZXYt PnBpbmN0cmwgPSBkZXZtX3BpbmN0cmxfZ2V0KCZwZGV2LT5kZXYpOw0KPj4gKwlpZiAoIWRldi0+ cGluY3RybCB8fCBJU19FUlIoZGV2LT5waW5jdHJsKSkgew0KPj4gKwkJZGV2X2luZm8oZGV2LT5k ZXYsICJjYW4ndCBnZXQgcGluY3RybCwgYnVzIHJlY292ZXJ5IG5vdCBzdXBwb3J0ZWRcbiIpOw0K Pj4gKwkJcmV0dXJuIFBUUl9FUlIoZGV2LT5waW5jdHJsKTsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlk ZXYtPnBpbmN0cmxfcGluc19kZWZhdWx0ID0gcGluY3RybF9sb29rdXBfc3RhdGUoZGV2LT5waW5j dHJsLA0KPj4gKwkJCQkJCQkgUElOQ1RSTF9TVEFURV9ERUZBVUxUKTsNCj4+ICsJZGV2LT5waW5j dHJsX3BpbnNfZ3BpbyA9IHBpbmN0cmxfbG9va3VwX3N0YXRlKGRldi0+cGluY3RybCwNCj4+ICsJ CQkJCQkgICAgICAiZ3BpbyIpOw0KPj4gKwlyaW5mby0+c2RhX2dwaW9kID0gZGV2bV9ncGlvZF9n ZXQoJnBkZXYtPmRldiwgInNkYSIsIEdQSU9EX0lOKTsNCj4+ICsJaWYgKFBUUl9FUlIocmluZm8t PnNkYV9ncGlvZCkgPT0gLUVQUk9CRV9ERUZFUikNCj4+ICsJCXJldHVybiAtRVBST0JFX0RFRkVS Ow0KPj4gKw0KPj4gKwlyaW5mby0+c2NsX2dwaW9kID0gZGV2bV9ncGlvZF9nZXQoJnBkZXYtPmRl diwgInNjbCIsDQo+PiArCQkJCQkgIEdQSU9EX09VVF9ISUdIX09QRU5fRFJBSU4pOw0KPj4gKwlp ZiAoUFRSX0VSUihyaW5mby0+c2NsX2dwaW9kKSA9PSAtRVBST0JFX0RFRkVSKQ0KPj4gKwkJcmV0 dXJuIC1FUFJPQkVfREVGRVI7DQo+PiArDQo+PiArCWlmIChJU19FUlIocmluZm8tPnNkYV9ncGlv ZCkgfHwNCj4+ICsJICAgIElTX0VSUihyaW5mby0+c2NsX2dwaW9kKSB8fA0KPj4gKwkgICAgSVNf RVJSKGRldi0+cGluY3RybF9waW5zX2RlZmF1bHQpIHx8DQo+PiArCSAgICBJU19FUlIoZGV2LT5w aW5jdHJsX3BpbnNfZ3BpbykpIHsNCj4+ICsJCWRldl9pbmZvKCZwZGV2LT5kZXYsICJyZWNvdmVy eSBpbmZvcm1hdGlvbiBpbmNvbXBsZXRlXG4iKTsNCj4+ICsJCWlmICghSVNfRVJSKHJpbmZvLT5z ZGFfZ3Bpb2QpKSB7DQo+PiArCQkJZ3Bpb2RfcHV0KHJpbmZvLT5zZGFfZ3Bpb2QpOw0KPj4gKwkJ CXJpbmZvLT5zZGFfZ3Bpb2QgPSBOVUxMOw0KPj4gKwkJfQ0KPj4gKwkJaWYgKCFJU19FUlIocmlu Zm8tPnNjbF9ncGlvZCkpIHsNCj4+ICsJCQlncGlvZF9wdXQocmluZm8tPnNjbF9ncGlvZCk7DQo+ PiArCQkJcmluZm8tPnNjbF9ncGlvZCA9IE5VTEw7DQo+PiArCQl9DQo+PiArCQlyZXR1cm4gLUVJ TlZBTDsNCj4+ICsJfQ0KPj4gKw0KPj4gKwlkZXZfaW5mbygmcGRldi0+ZGV2LCAidXNpbmcgc2Ns JXMgZm9yIHJlY292ZXJ5XG4iLA0KPj4gKwkJIHJpbmZvLT5zZGFfZ3Bpb2QgPyAiLHNkYSIgOiAi Iik7DQo+IA0KPiBJcyBpdCBwb3NzaWJsZSB0byBoYXZlIHNjbCB3aXRob3V0IHNkYT8gRnJvbSB0 aGUgY29uZGl0aW9uIGJlZm9yZSwgaWYNCj4gdGhlcmUgaXMgYW4gZXJyb3IgZm9yIHNkYSBvciBz Y2wsIGFuIGVycm9yIGlzIHJldHVybmVkLg0KDQpObywgaXQncyBub3QuIFdlIG5lZWQgYm90aCBz ZGEgYW5kIHNjbCBncGlvcy4gSSB3aWxsIGZpeCBpdC4NCg0KPiANCj4+ICsNCj4+ICsJcmluZm8t PnByZXBhcmVfcmVjb3ZlcnkgPSBhdDkxX3ByZXBhcmVfdHdpX3JlY292ZXJ5Ow0KPj4gKwlyaW5m by0+dW5wcmVwYXJlX3JlY292ZXJ5ID0gYXQ5MV91bnByZXBhcmVfdHdpX3JlY292ZXJ5Ow0KPj4g KwlyaW5mby0+cmVjb3Zlcl9idXMgPSBpMmNfZ2VuZXJpY19zY2xfcmVjb3Zlcnk7DQo+PiArCWRl di0+YWRhcHRlci5idXNfcmVjb3ZlcnlfaW5mbyA9IHJpbmZvOw0KPj4gKw0KPj4gKwlyZXR1cm4g MDsNCj4+ICt9DQo+PiArDQo+PiAgIGludCBhdDkxX3R3aV9wcm9iZV9tYXN0ZXIoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiwNCj4+ICAgCQkJICB1MzIgcGh5X2FkZHIsIHN0cnVjdCBhdDkx X3R3aV9kZXYgKmRldikNCj4+ICAgew0KPj4gQEAgLTgzOCw2ICs5MTMsMTAgQEAgaW50IGF0OTFf dHdpX3Byb2JlX21hc3RlcihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LA0KPj4gICAJCQkJ CQkgICAgICJpMmMtYW5hbG9nLWZpbHRlciIpOw0KPj4gICAJYXQ5MV9jYWxjX3R3aV9jbG9jayhk ZXYpOw0KPj4gICANCj4+ICsJcmMgPSBhdDkxX2luaXRfdHdpX3JlY292ZXJ5X2luZm8ocGRldiwg ZGV2KTsNCj4+ICsJaWYgKHJjID09IC1FUFJPQkVfREVGRVIpDQo+PiArCQlyZXR1cm4gcmM7DQo+ PiArDQo+PiAgIAlkZXYtPmFkYXB0ZXIuYWxnbyA9ICZhdDkxX3R3aV9hbGdvcml0aG07DQo+PiAg IAlkZXYtPmFkYXB0ZXIucXVpcmtzID0gJmF0OTFfdHdpX3F1aXJrczsNCj4+ICAgDQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hdDkxLmggYi9kcml2ZXJzL2kyYy9idXNz ZXMvaTJjLWF0OTEuaA0KPj4gaW5kZXggOTc3YTY3YmMwZjg4Li5lYjMzNWI3MWU3NzUgMTAwNjQ0 DQo+PiAtLS0gYS9kcml2ZXJzL2kyYy9idXNzZXMvaTJjLWF0OTEuaA0KPj4gKysrIGIvZHJpdmVy cy9pMmMvYnVzc2VzL2kyYy1hdDkxLmgNCj4+IEBAIC0xNTEsNiArMTUxLDEwIEBAIHN0cnVjdCBh dDkxX3R3aV9kZXYgew0KPj4gICAJdTMyIGZpZm9fc2l6ZTsNCj4+ICAgCXN0cnVjdCBhdDkxX3R3 aV9kbWEgZG1hOw0KPj4gICAJYm9vbCBzbGF2ZV9kZXRlY3RlZDsNCj4+ICsJc3RydWN0IGkyY19i dXNfcmVjb3ZlcnlfaW5mbyByaW5mbzsNCj4+ICsJc3RydWN0IHBpbmN0cmwgKnBpbmN0cmw7DQo+ PiArCXN0cnVjdCBwaW5jdHJsX3N0YXRlICpwaW5jdHJsX3BpbnNfZGVmYXVsdDsNCj4+ICsJc3Ry dWN0IHBpbmN0cmxfc3RhdGUgKnBpbmN0cmxfcGluc19ncGlvOw0KPj4gICAjaWZkZWYgQ09ORklH X0kyQ19BVDkxX1NMQVZFX0VYUEVSSU1FTlRBTA0KPj4gICAJdW5zaWduZWQgc21yOw0KPj4gICAJ c3RydWN0IGkyY19jbGllbnQgKnNsYXZlOw0KPj4gQEAgLTE3MSw2ICsxNzUsMTAgQEAgdm9pZCBh dDkxX2luaXRfdHdpX2J1c19tYXN0ZXIoc3RydWN0IGF0OTFfdHdpX2RldiAqZGV2KTsNCj4+ICAg aW50IGF0OTFfdHdpX3Byb2JlX21hc3RlcihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1 MzIgcGh5X2FkZHIsDQo+PiAgIAkJCSAgc3RydWN0IGF0OTFfdHdpX2RldiAqZGV2KTsNCj4+ICAg DQo+IA0KPiBXcm9uZyBuYW1lcyBoZXJlOg0KPiANCj4+ICt2b2lkIGF0OTFfdHdpX3ByZXBhcmVf cmVjb3Zlcnkoc3RydWN0IGkyY19hZGFwdGVyICphZGFwKTsNCj4gYXQ5MV9wcmVwYXJlX3R3aV9y ZWNvdmVyeQ0KPiANCj4+ICt2b2lkIGF0OTFfdHdpX3VucHJlcGFyZV9yZWNvdmVyeShzdHJ1Y3Qg aTJjX2FkYXB0ZXIgKmFkYXApOw0KPiBhdDkxX3VucHJlcGFyZV90d2lfcmVjb3ZlcnkNCj4gDQo+ PiArdm9pZCBhdDkxX3R3aV9pbml0X3JlY292ZXJ5X2luZm8oc3RydWN0IGF0OTFfdHdpX2RldiAq ZGV2KTsNCj4gYXQ5MV9pbml0X3R3aV9yZWNvdmVyeV9pbmZvDQo+IA0KPiBBcmUgdGhlc2UgZGVj bGFyYXRpb25zIHN0aWxsIG5lZWRlZD8NCg0KTm8sIHRoZXJlIGlzIG5vdC4gVGhleSBhcmUgdXNl ZCBvbmx5IGluIHRoZSBtYXN0ZXIgbW9kZSBvZiB0aGUgZHJpdmVyLiBJIA0Kd2lsbCByZW1vdmUg dGhlbS4NCg0KVGhhbmsgeW91IGZvciB5b3VyIHJldmlldyBMdWRvdmljLg0KDQpCZXN0IHJlZ2Fy ZHMsDQpDb2RyaW4=