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: Heikki Krogerus Message-Id: <20180418123410.72090-2-heikki.krogerus@linux.intel.com> Date: Wed, 18 Apr 2018 15:34:09 +0300 To: Greg Kroah-Hartman Cc: Guenter Roeck , linux-usb@vger.kernel.org, stable@vger.kernel.org List-ID: SWYgdGhlIEkyQyBhZGFwdGVyIHRoYXQgdGhlIFBEIGNvbnRyb2xsZXIgaXMgYXR0YWNoZWQgdG8K ZG9lcyBub3Qgc3VwcG9ydCBTTUJ1cyBwcm90b2NvbCwgdGhlIGRyaXZlciBuZWVkcyB0byBoYW5k bGUKYmxvY2sgcmVhZHMgc2VwYXJhdGVseS4gVGhlIGZpcnN0IGJ5dGUgcmV0dXJuZWQgaW4gYmxv Y2sKcmVhZCBwcm90b2NvbCB3aWxsIHNob3cgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcy4gSXQg bmVlZHMKdG8gYmUgc3RyaXBwZWQgYXdheS4KClRoaXMgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IGlu IHRoZSBkcml2ZXIgb25seSBiZWNhdXNlIHJpZ2h0Cm5vdyB3ZSBoYXZlIG5vIHdheSBvZiByZXF1 ZXN0aW5nIHRoZSB1c2VkIHByb3RvY29sIHdpdGgKcmVnbWFwLWkyYy4gVGhpcyBpcyBpbiBwcmFj dGljZSBhIHdvcmthcm91bmQgZm9yIHdoYXQgaXMKcmVhbGx5IGEgcHJvYmxlbSBpbiByZWdtYXAt aTJjLiBUaGUgb3RoZXIgb3B0aW9uIHdvdWxkIGhhdmUKYmVlbiB0byByZWdpc3RlciBjdXN0b20g cmVnbWFwLCBvciBub3QgdXNlIHJlZ21hcCBhdCBhbGwsCmhvd2V2ZXIsIHNpbmNlIHRoZSBzb2x1 dGlvbiBpcyB2ZXJ5IHNpbXBsZSwgSSBjaG9vc2UgdG8gdXNlCml0IGluIHRoaXMgY2FzZSBmb3Ig Y29udmVuaWVuY2UuIEl0IGlzIGVhc3kgdG8gcmVtb3ZlIG9uY2UKd2UgZmlndXJlIG91dCBob3cg dG8gaGFuZGxlIHRoaXMga2luZCBvZiBjYXNlcyBpbgpyZWdtYXAtaTJjLgoKRml4ZXM6IDBhNGMw MDViZDE3MSAoInVzYjogdHlwZWM6IGRyaXZlciBmb3IgVEkgVFBTNjU5OHggVVNCIFBvd2VyIERl bGl2ZXJ5IGNvbnRyb2xsZXJzIikKU2lnbmVkLW9mZi1ieTogSGVpa2tpIEtyb2dlcnVzIDxoZWlr a2kua3JvZ2VydXNAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvdXNiL3R5cGVjL3RwczY1 OTh4LmMgfCA0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL3R5cGVjL3RwczY1OTh4LmMgYi9kcml2ZXJzL3VzYi90eXBlYy90cHM2NTk4eC5j CmluZGV4IDhiODQwNjg2N2MwMi4uODJmMDljZDk3OTJkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Vz Yi90eXBlYy90cHM2NTk4eC5jCisrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3RwczY1OTh4LmMKQEAg LTczLDYgKzczLDcgQEAgc3RydWN0IHRwczY1OTh4IHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CiAJ c3RydWN0IHJlZ21hcCAqcmVnbWFwOwogCXN0cnVjdCBtdXRleCBsb2NrOyAvKiBkZXZpY2UgbG9j ayAqLworCXU4IGkyY19wcm90b2NvbDoxOwogCiAJc3RydWN0IHR5cGVjX3BvcnQgKnBvcnQ7CiAJ c3RydWN0IHR5cGVjX3BhcnRuZXIgKnBhcnRuZXI7CkBAIC04MCw2ICs4MSwyMyBAQCBzdHJ1Y3Qg dHBzNjU5OHggewogCXN0cnVjdCB0eXBlY19jYXBhYmlsaXR5IHR5cGVjX2NhcDsKIH07CiAKK3N0 YXRpYyBpbnQKK3RwczY1OTh4X2Jsb2NrX3JlYWQoc3RydWN0IHRwczY1OTh4ICp0cHMsIHU4IHJl Zywgdm9pZCAqdmFsLCBzc2l6ZV90IGxlbikKK3sKKwl1OCBkYXRhW2xlbiArIDFdOworCWludCBy ZXQ7CisKKwlpZiAoIXRwcy0+aTJjX3Byb3RvY29sKQorCQlyZXR1cm4gcmVnbWFwX3Jhd19yZWFk KHRwcy0+cmVnbWFwLCByZWcsIHZhbCwgbGVuKTsKKworCXJldCA9IHJlZ21hcF9yYXdfcmVhZCh0 cHMtPnJlZ21hcCwgcmVnLCBkYXRhLCBzaXplb2YoZGF0YSkpOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisKKwltZW1jcHkodmFsLCAmZGF0YVsxXSwgbGVuKTsKKwlyZXR1cm4gMDsKK30KKwog c3RhdGljIGlubGluZSBpbnQgdHBzNjU5OHhfcmVhZDE2KHN0cnVjdCB0cHM2NTk4eCAqdHBzLCB1 OCByZWcsIHUxNiAqdmFsKQogewogCXJldHVybiByZWdtYXBfcmF3X3JlYWQodHBzLT5yZWdtYXAs IHJlZywgdmFsLCBzaXplb2YodTE2KSk7CkBAIC04NywxMiArMTA1LDEyIEBAIHN0YXRpYyBpbmxp bmUgaW50IHRwczY1OTh4X3JlYWQxNihzdHJ1Y3QgdHBzNjU5OHggKnRwcywgdTggcmVnLCB1MTYg KnZhbCkKIAogc3RhdGljIGlubGluZSBpbnQgdHBzNjU5OHhfcmVhZDMyKHN0cnVjdCB0cHM2NTk4 eCAqdHBzLCB1OCByZWcsIHUzMiAqdmFsKQogewotCXJldHVybiByZWdtYXBfcmF3X3JlYWQodHBz LT5yZWdtYXAsIHJlZywgdmFsLCBzaXplb2YodTMyKSk7CisJcmV0dXJuIHRwczY1OTh4X2Jsb2Nr X3JlYWQodHBzLCByZWcsIHZhbCwgc2l6ZW9mKHUzMikpOwogfQogCiBzdGF0aWMgaW5saW5lIGlu dCB0cHM2NTk4eF9yZWFkNjQoc3RydWN0IHRwczY1OTh4ICp0cHMsIHU4IHJlZywgdTY0ICp2YWwp CiB7Ci0JcmV0dXJuIHJlZ21hcF9yYXdfcmVhZCh0cHMtPnJlZ21hcCwgcmVnLCB2YWwsIHNpemVv Zih1NjQpKTsKKwlyZXR1cm4gdHBzNjU5OHhfYmxvY2tfcmVhZCh0cHMsIHJlZywgdmFsLCBzaXpl b2YodTY0KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHRwczY1OTh4X3dyaXRlMTYoc3RydWN0 IHRwczY1OTh4ICp0cHMsIHU4IHJlZywgdTE2IHZhbCkKQEAgLTEyMSw4ICsxMzksOCBAQCBzdGF0 aWMgaW50IHRwczY1OTh4X3JlYWRfcGFydG5lcl9pZGVudGl0eShzdHJ1Y3QgdHBzNjU5OHggKnRw cykKIAlzdHJ1Y3QgdHBzNjU5OHhfcnhfaWRlbnRpdHlfcmVnIGlkOwogCWludCByZXQ7CiAKLQly ZXQgPSByZWdtYXBfcmF3X3JlYWQodHBzLT5yZWdtYXAsIFRQU19SRUdfUlhfSURFTlRJVFlfU09Q LAotCQkJICAgICAgJmlkLCBzaXplb2YoaWQpKTsKKwlyZXQgPSB0cHM2NTk4eF9ibG9ja19yZWFk KHRwcywgVFBTX1JFR19SWF9JREVOVElUWV9TT1AsCisJCQkJICAmaWQsIHNpemVvZihpZCkpOwog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTIyNCwxMyArMjQyLDEzIEBAIHN0YXRpYyBp bnQgdHBzNjU5OHhfZXhlY19jbWQoc3RydWN0IHRwczY1OTh4ICp0cHMsIGNvbnN0IGNoYXIgKmNt ZCwKIAl9IHdoaWxlICh2YWwpOwogCiAJaWYgKG91dF9sZW4pIHsKLQkJcmV0ID0gcmVnbWFwX3Jh d19yZWFkKHRwcy0+cmVnbWFwLCBUUFNfUkVHX0RBVEExLAotCQkJCSAgICAgIG91dF9kYXRhLCBv dXRfbGVuKTsKKwkJcmV0ID0gdHBzNjU5OHhfYmxvY2tfcmVhZCh0cHMsIFRQU19SRUdfREFUQTEs CisJCQkJCSAgb3V0X2RhdGEsIG91dF9sZW4pOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsK IAkJdmFsID0gb3V0X2RhdGFbMF07CiAJfSBlbHNlIHsKLQkJcmV0ID0gcmVnbWFwX3JlYWQodHBz LT5yZWdtYXAsIFRQU19SRUdfREFUQTEsICZ2YWwpOworCQlyZXQgPSB0cHM2NTk4eF9ibG9ja19y ZWFkKHRwcywgVFBTX1JFR19EQVRBMSwgJnZhbCwgc2l6ZW9mKHU4KSk7CiAJCWlmIChyZXQpCiAJ CQlyZXR1cm4gcmV0OwogCX0KQEAgLTM4NSw2ICs0MDMsMTYgQEAgc3RhdGljIGludCB0cHM2NTk4 eF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQogCWlmICghdmlkKQogCQlyZXR1cm4g LUVOT0RFVjsKIAorCS8qCisJICogQ2hlY2tpbmcgY2FuIHRoZSBhZGFwdGVyIGhhbmRsZSBTTUJ1 cyBwcm90b2NvbC4gSWYgaWYgY2FuIG5vdCwgdGhlCisJICogZHJpdmVyIG5lZWRzIHRvIHRha2Ug Y2FyZSBvZiBibG9jayByZWFkcyBzZXBhcmF0ZWx5LgorCSAqCisJICogRklYTUU6IFRlc3Rpbmcg d2l0aCBJMkNfRlVOQ19JMkMuIHJlZ21hcC1pMmMgdXNlcyBJMkMgcHJvdG9jb2wKKwkgKiB1bmNv bmRpdGlvbmFsbHkgaWYgdGhlIGFkYXB0ZXIgaGFzIEkyQ19GVU5DX0kyQyBzZXQuCisJICovCisJ aWYgKGkyY19jaGVja19mdW5jdGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwgSTJDX0ZVTkNfSTJD KSkKKwkJdHBzLT5pMmNfcHJvdG9jb2wgPSB0cnVlOworCiAJcmV0ID0gdHBzNjU5OHhfcmVhZDMy KHRwcywgVFBTX1JFR19TVEFUVVMsICZzdGF0dXMpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4g cmV0Owo=