From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [1/2] usb: typec: tps6598x: handle block reads separately with plain-I2C adapters From: Guenter Roeck Message-Id: <20180420172608.GB8997@roeck-us.net> Date: Fri, 20 Apr 2018 10:26:08 -0700 To: Heikki Krogerus Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, stable@vger.kernel.org List-ID: T24gV2VkLCBBcHIgMTgsIDIwMTggYXQgMDM6MzQ6MDlQTSArMDMwMCwgSGVpa2tpIEtyb2dlcnVz IHdyb3RlOgo+IElmIHRoZSBJMkMgYWRhcHRlciB0aGF0IHRoZSBQRCBjb250cm9sbGVyIGlzIGF0 dGFjaGVkIHRvCj4gZG9lcyBub3Qgc3VwcG9ydCBTTUJ1cyBwcm90b2NvbCwgdGhlIGRyaXZlciBu ZWVkcyB0byBoYW5kbGUKPiBibG9jayByZWFkcyBzZXBhcmF0ZWx5LiBUaGUgZmlyc3QgYnl0ZSBy ZXR1cm5lZCBpbiBibG9jawo+IHJlYWQgcHJvdG9jb2wgd2lsbCBzaG93IHRoZSB0b3RhbCBudW1i ZXIgb2YgYnl0ZXMuIEl0IG5lZWRzCj4gdG8gYmUgc3RyaXBwZWQgYXdheS4KPiAKPiBUaGlzIGlz IGhhbmRsZWQgc2VwYXJhdGVseSBpbiB0aGUgZHJpdmVyIG9ubHkgYmVjYXVzZSByaWdodAo+IG5v dyB3ZSBoYXZlIG5vIHdheSBvZiByZXF1ZXN0aW5nIHRoZSB1c2VkIHByb3RvY29sIHdpdGgKPiBy ZWdtYXAtaTJjLiBUaGlzIGlzIGluIHByYWN0aWNlIGEgd29ya2Fyb3VuZCBmb3Igd2hhdCBpcwo+ IHJlYWxseSBhIHByb2JsZW0gaW4gcmVnbWFwLWkyYy4gVGhlIG90aGVyIG9wdGlvbiB3b3VsZCBo YXZlCj4gYmVlbiB0byByZWdpc3RlciBjdXN0b20gcmVnbWFwLCBvciBub3QgdXNlIHJlZ21hcCBh dCBhbGwsCj4gaG93ZXZlciwgc2luY2UgdGhlIHNvbHV0aW9uIGlzIHZlcnkgc2ltcGxlLCBJIGNo b29zZSB0byB1c2UKPiBpdCBpbiB0aGlzIGNhc2UgZm9yIGNvbnZlbmllbmNlLiBJdCBpcyBlYXN5 IHRvIHJlbW92ZSBvbmNlCj4gd2UgZmlndXJlIG91dCBob3cgdG8gaGFuZGxlIHRoaXMga2luZCBv ZiBjYXNlcyBpbgo+IHJlZ21hcC1pMmMuCj4gCj4gRml4ZXM6IDBhNGMwMDViZDE3MSAoInVzYjog dHlwZWM6IGRyaXZlciBmb3IgVEkgVFBTNjU5OHggVVNCIFBvd2VyIERlbGl2ZXJ5IGNvbnRyb2xs ZXJzIikKPiBTaWduZWQtb2ZmLWJ5OiBIZWlra2kgS3JvZ2VydXMgPGhlaWtraS5rcm9nZXJ1c0Bs aW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvdXNiL3R5cGVjL3RwczY1OTh4LmMgfCA0 MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQs IDM1IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL3R5cGVjL3RwczY1OTh4LmMgYi9kcml2ZXJzL3VzYi90eXBlYy90cHM2NTk4eC5jCj4g aW5kZXggOGI4NDA2ODY3YzAyLi44MmYwOWNkOTc5MmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91 c2IvdHlwZWMvdHBzNjU5OHguYwo+ICsrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3RwczY1OTh4LmMK PiBAQCAtNzMsNiArNzMsNyBAQCBzdHJ1Y3QgdHBzNjU5OHggewo+ICAJc3RydWN0IGRldmljZSAq ZGV2Owo+ICAJc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+ICAJc3RydWN0IG11dGV4IGxvY2s7IC8q IGRldmljZSBsb2NrICovCj4gKwl1OCBpMmNfcHJvdG9jb2w6MTsKPiAgCj4gIAlzdHJ1Y3QgdHlw ZWNfcG9ydCAqcG9ydDsKPiAgCXN0cnVjdCB0eXBlY19wYXJ0bmVyICpwYXJ0bmVyOwo+IEBAIC04 MCw2ICs4MSwyMyBAQCBzdHJ1Y3QgdHBzNjU5OHggewo+ICAJc3RydWN0IHR5cGVjX2NhcGFiaWxp dHkgdHlwZWNfY2FwOwo+ICB9Owo+ICAKPiArc3RhdGljIGludAo+ICt0cHM2NTk4eF9ibG9ja19y ZWFkKHN0cnVjdCB0cHM2NTk4eCAqdHBzLCB1OCByZWcsIHZvaWQgKnZhbCwgc3NpemVfdCBsZW4p Cj4gK3sKPiArCXU4IGRhdGFbbGVuICsgMV07Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmICghdHBz LT5pMmNfcHJvdG9jb2wpCj4gKwkJcmV0dXJuIHJlZ21hcF9yYXdfcmVhZCh0cHMtPnJlZ21hcCwg cmVnLCB2YWwsIGxlbik7Cj4gKwo+ICsJcmV0ID0gcmVnbWFwX3Jhd19yZWFkKHRwcy0+cmVnbWFw LCByZWcsIGRhdGEsIHNpemVvZihkYXRhKSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7 Cj4gKwoKU2FuaXR5IGNoZWNrID8KCWlmIChkYXRhWzBdICE9IGxlbikKCQlyZXR1cm4gLUVzb21l dGhpbmc7CgpPdGhlciB0aGFuIHRoYXQsCgpSZXZpZXdlZC1ieTogR3VlbnRlciBSb2VjayA8bGlu dXhAcm9lY2stdXMubmV0PgoKPiArCW1lbWNweSh2YWwsICZkYXRhWzFdLCBsZW4pOwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gIHN0YXRpYyBpbmxpbmUgaW50IHRwczY1OTh4X3JlYWQxNihzdHJ1 Y3QgdHBzNjU5OHggKnRwcywgdTggcmVnLCB1MTYgKnZhbCkKPiAgewo+ICAJcmV0dXJuIHJlZ21h cF9yYXdfcmVhZCh0cHMtPnJlZ21hcCwgcmVnLCB2YWwsIHNpemVvZih1MTYpKTsKPiBAQCAtODcs MTIgKzEwNSwxMiBAQCBzdGF0aWMgaW5saW5lIGludCB0cHM2NTk4eF9yZWFkMTYoc3RydWN0IHRw czY1OTh4ICp0cHMsIHU4IHJlZywgdTE2ICp2YWwpCj4gIAo+ICBzdGF0aWMgaW5saW5lIGludCB0 cHM2NTk4eF9yZWFkMzIoc3RydWN0IHRwczY1OTh4ICp0cHMsIHU4IHJlZywgdTMyICp2YWwpCj4g IHsKPiAtCXJldHVybiByZWdtYXBfcmF3X3JlYWQodHBzLT5yZWdtYXAsIHJlZywgdmFsLCBzaXpl b2YodTMyKSk7Cj4gKwlyZXR1cm4gdHBzNjU5OHhfYmxvY2tfcmVhZCh0cHMsIHJlZywgdmFsLCBz aXplb2YodTMyKSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbmxpbmUgaW50IHRwczY1OTh4X3JlYWQ2 NChzdHJ1Y3QgdHBzNjU5OHggKnRwcywgdTggcmVnLCB1NjQgKnZhbCkKPiAgewo+IC0JcmV0dXJu IHJlZ21hcF9yYXdfcmVhZCh0cHMtPnJlZ21hcCwgcmVnLCB2YWwsIHNpemVvZih1NjQpKTsKPiAr CXJldHVybiB0cHM2NTk4eF9ibG9ja19yZWFkKHRwcywgcmVnLCB2YWwsIHNpemVvZih1NjQpKTsK PiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBpbnQgdHBzNjU5OHhfd3JpdGUxNihzdHJ1Y3QgdHBz NjU5OHggKnRwcywgdTggcmVnLCB1MTYgdmFsKQo+IEBAIC0xMjEsOCArMTM5LDggQEAgc3RhdGlj IGludCB0cHM2NTk4eF9yZWFkX3BhcnRuZXJfaWRlbnRpdHkoc3RydWN0IHRwczY1OTh4ICp0cHMp Cj4gIAlzdHJ1Y3QgdHBzNjU5OHhfcnhfaWRlbnRpdHlfcmVnIGlkOwo+ICAJaW50IHJldDsKPiAg Cj4gLQlyZXQgPSByZWdtYXBfcmF3X3JlYWQodHBzLT5yZWdtYXAsIFRQU19SRUdfUlhfSURFTlRJ VFlfU09QLAo+IC0JCQkgICAgICAmaWQsIHNpemVvZihpZCkpOwo+ICsJcmV0ID0gdHBzNjU5OHhf YmxvY2tfcmVhZCh0cHMsIFRQU19SRUdfUlhfSURFTlRJVFlfU09QLAo+ICsJCQkJICAmaWQsIHNp emVvZihpZCkpOwo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiBAQCAtMjI0LDEz ICsyNDIsMTMgQEAgc3RhdGljIGludCB0cHM2NTk4eF9leGVjX2NtZChzdHJ1Y3QgdHBzNjU5OHgg KnRwcywgY29uc3QgY2hhciAqY21kLAo+ICAJfSB3aGlsZSAodmFsKTsKPiAgCj4gIAlpZiAob3V0 X2xlbikgewo+IC0JCXJldCA9IHJlZ21hcF9yYXdfcmVhZCh0cHMtPnJlZ21hcCwgVFBTX1JFR19E QVRBMSwKPiAtCQkJCSAgICAgIG91dF9kYXRhLCBvdXRfbGVuKTsKPiArCQlyZXQgPSB0cHM2NTk4 eF9ibG9ja19yZWFkKHRwcywgVFBTX1JFR19EQVRBMSwKPiArCQkJCQkgIG91dF9kYXRhLCBvdXRf bGVuKTsKPiAgCQlpZiAocmV0KQo+ICAJCQlyZXR1cm4gcmV0Owo+ICAJCXZhbCA9IG91dF9kYXRh WzBdOwo+ICAJfSBlbHNlIHsKPiAtCQlyZXQgPSByZWdtYXBfcmVhZCh0cHMtPnJlZ21hcCwgVFBT X1JFR19EQVRBMSwgJnZhbCk7Cj4gKwkJcmV0ID0gdHBzNjU5OHhfYmxvY2tfcmVhZCh0cHMsIFRQ U19SRUdfREFUQTEsICZ2YWwsIHNpemVvZih1OCkpOwo+ICAJCWlmIChyZXQpCj4gIAkJCXJldHVy biByZXQ7Cj4gIAl9Cj4gQEAgLTM4NSw2ICs0MDMsMTYgQEAgc3RhdGljIGludCB0cHM2NTk4eF9w cm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+ICAJaWYgKCF2aWQpCj4gIAkJcmV0dXJu IC1FTk9ERVY7Cj4gIAo+ICsJLyoKPiArCSAqIENoZWNraW5nIGNhbiB0aGUgYWRhcHRlciBoYW5k bGUgU01CdXMgcHJvdG9jb2wuIElmIGlmIGNhbiBub3QsIHRoZQo+ICsJICogZHJpdmVyIG5lZWRz IHRvIHRha2UgY2FyZSBvZiBibG9jayByZWFkcyBzZXBhcmF0ZWx5Lgo+ICsJICoKPiArCSAqIEZJ WE1FOiBUZXN0aW5nIHdpdGggSTJDX0ZVTkNfSTJDLiByZWdtYXAtaTJjIHVzZXMgSTJDIHByb3Rv Y29sCj4gKwkgKiB1bmNvbmRpdGlvbmFsbHkgaWYgdGhlIGFkYXB0ZXIgaGFzIEkyQ19GVU5DX0ky QyBzZXQuCj4gKwkgKi8KPiArCWlmIChpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShjbGllbnQtPmFk YXB0ZXIsIEkyQ19GVU5DX0kyQykpCj4gKwkJdHBzLT5pMmNfcHJvdG9jb2wgPSB0cnVlOwo+ICsK PiAgCXJldCA9IHRwczY1OTh4X3JlYWQzMih0cHMsIFRQU19SRUdfU1RBVFVTLCAmc3RhdHVzKTsK PiAgCWlmIChyZXQgPCAwKQo+ICAJCXJldHVybiByZXQ7Cj4gLS0gCj4gMi4xNy4wCj4KLS0tClRv IHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBs aW51eC11c2IiIGluCnRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJu ZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFq b3Jkb21vLWluZm8uaHRtbAo=