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: staging: typec: handle vendor defined part and modify drp toggling flow From: ShuFanLee Message-Id: <1518600244-29949-1-git-send-email-leechu729@gmail.com> Date: Wed, 14 Feb 2018 17:24:04 +0800 To: heikki.krogerus@linux.intel.com, linux@roeck-us.net Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, cy_huang@richtek.com, shufan_lee@richtek.com List-ID: RnJvbTogU2h1RmFuTGVlIDxzaHVmYW5fbGVlQHJpY2h0ZWsuY29tPgoKSGFuZGxlIHZlbmRvciBk ZWZpbmVkIGJlaGF2aW9yIGluIHRjcGNpX2luaXQgYW5kIHRjcGNpX2lycS4KTW9yZSBvcGVyYXRp b25zIGNhbiBiZSBleHRlbmRlZCBpbiB0Y3BjaV92ZW5kb3JfZGF0YSBpZiBuZWVkZWQuCkFjY29y ZGluZyB0byBUQ1BDSSBzcGVjaWZpY2F0aW9uLCA0LjQuNS4yIFJPTEVfQ09OVFJPTCwKVENQQyBz aGFsbCBub3Qgc3RhcnQgRFJQIHRvZ2dsaW5nIHVudGlsIHN1YnNlcXVlbnRseSB0aGUgVENQTQp3 cml0ZXMgdG8gdGhlIENPTU1BTkQgcmVnaXN0ZXIgdG8gc3RhcnQgRFJQIHRvZ2dsaW5nLgpEUlAg dG9nZ2xpbmcgZmxvdyBpcyBjaGFnbmVkIGFzIGZvbGxvd2luZzoKICAtIFdyaXRlIERSUCA9IDAg JiBSZC9SZAogIC0gV3JpdGUgRFJQID0gMQogIC0gU2V0IExPT0s0Q09OTkVDVElPTiBjb21tYW5k CgpTaWduZWQtb2ZmLWJ5OiBTaHVGYW5MZWUgPHNodWZhbl9sZWVAcmljaHRlay5jb20+Ci0tLQog ZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMgfCA5OCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvdHlwZWMvdGNwY2kuaCB8IDE1 ICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3R5cGVjL3RjcGNpLmMgYi9kcml2ZXJz L3N0YWdpbmcvdHlwZWMvdGNwY2kuYwppbmRleCA5YmQ0NDEyLi5iM2E5N2IzIDEwMDY0NAotLS0g YS9kcml2ZXJzL3N0YWdpbmcvdHlwZWMvdGNwY2kuYworKysgYi9kcml2ZXJzL3N0YWdpbmcvdHlw ZWMvdGNwY2kuYwpAQCAtMzAsNiArMzAsNyBAQCBzdHJ1Y3QgdGNwY2kgewogCWJvb2wgY29udHJv bHNfdmJ1czsKIAogCXN0cnVjdCB0Y3BjX2RldiB0Y3BjOworCXN0cnVjdCB0Y3BjaV92ZW5kb3Jf ZGF0YSAqdmRhdGE7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCB0Y3BjaSAqdGNwY190b190 Y3BjaShzdHJ1Y3QgdGNwY19kZXYgKnRjcGMpCkBAIC0zNywxNiArMzgsMjkgQEAgc3RhdGljIGlu bGluZSBzdHJ1Y3QgdGNwY2kgKnRjcGNfdG9fdGNwY2koc3RydWN0IHRjcGNfZGV2ICp0Y3BjKQog CXJldHVybiBjb250YWluZXJfb2YodGNwYywgc3RydWN0IHRjcGNpLCB0Y3BjKTsKIH0KIAotc3Rh dGljIGludCB0Y3BjaV9yZWFkMTYoc3RydWN0IHRjcGNpICp0Y3BjaSwgdW5zaWduZWQgaW50IHJl ZywKLQkJCXUxNiAqdmFsKQoraW50IHRjcGNpX3JlYWQxNihzdHJ1Y3QgdGNwY2kgKnRjcGNpLCB1 bnNpZ25lZCBpbnQgcmVnLCB1MTYgKnZhbCkKIHsKIAlyZXR1cm4gcmVnbWFwX3Jhd19yZWFkKHRj cGNpLT5yZWdtYXAsIHJlZywgdmFsLCBzaXplb2YodTE2KSk7CiB9CitFWFBPUlRfU1lNQk9MX0dQ TCh0Y3BjaV9yZWFkMTYpOwogCi1zdGF0aWMgaW50IHRjcGNpX3dyaXRlMTYoc3RydWN0IHRjcGNp ICp0Y3BjaSwgdW5zaWduZWQgaW50IHJlZywgdTE2IHZhbCkKK2ludCB0Y3BjaV93cml0ZTE2KHN0 cnVjdCB0Y3BjaSAqdGNwY2ksIHVuc2lnbmVkIGludCByZWcsIHUxNiB2YWwpCiB7CiAJcmV0dXJu IHJlZ21hcF9yYXdfd3JpdGUodGNwY2ktPnJlZ21hcCwgcmVnLCAmdmFsLCBzaXplb2YodTE2KSk7 CiB9CitFWFBPUlRfU1lNQk9MX0dQTCh0Y3BjaV93cml0ZTE2KTsKKworaW50IHRjcGNpX3JlYWQ4 KHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHVuc2lnbmVkIGludCByZWcsIHU4ICp2YWwpCit7CisJcmV0 dXJuIHJlZ21hcF9yYXdfcmVhZCh0Y3BjaS0+cmVnbWFwLCByZWcsIHZhbCwgc2l6ZW9mKHU4KSk7 Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh0Y3BjaV9yZWFkOCk7CisKK2ludCB0Y3BjaV93cml0ZTgo c3RydWN0IHRjcGNpICp0Y3BjaSwgdW5zaWduZWQgaW50IHJlZywgdTggdmFsKQoreworCXJldHVy biByZWdtYXBfcmF3X3dyaXRlKHRjcGNpLT5yZWdtYXAsIHJlZywgJnZhbCwgc2l6ZW9mKHU4KSk7 Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh0Y3BjaV93cml0ZTgpOwogCiBzdGF0aWMgaW50IHRjcGNp X3NldF9jYyhzdHJ1Y3QgdGNwY19kZXYgKnRjcGMsIGVudW0gdHlwZWNfY2Nfc3RhdHVzIGNjKQog ewpAQCAtOTgsOCArMTEyLDEwIEBAIHN0YXRpYyBpbnQgdGNwY2lfc2V0X2NjKHN0cnVjdCB0Y3Bj X2RldiAqdGNwYywgZW51bSB0eXBlY19jY19zdGF0dXMgY2MpCiBzdGF0aWMgaW50IHRjcGNpX3N0 YXJ0X2RycF90b2dnbGluZyhzdHJ1Y3QgdGNwY19kZXYgKnRjcGMsCiAJCQkJICAgIGVudW0gdHlw ZWNfY2Nfc3RhdHVzIGNjKQogeworCWludCByZXQ7CiAJc3RydWN0IHRjcGNpICp0Y3BjaSA9IHRj cGNfdG9fdGNwY2kodGNwYyk7Ci0JdW5zaWduZWQgaW50IHJlZyA9IFRDUENfUk9MRV9DVFJMX0RS UDsKKwl1bnNpZ25lZCBpbnQgcmVnID0gKFRDUENfUk9MRV9DVFJMX0NDX1JEIDw8IFRDUENfUk9M RV9DVFJMX0NDMV9TSElGVCkgfAorCQkJICAgKFRDUENfUk9MRV9DVFJMX0NDX1JEIDw8IFRDUENf Uk9MRV9DVFJMX0NDMl9TSElGVCk7CiAKIAlzd2l0Y2ggKGNjKSB7CiAJZGVmYXVsdDoKQEAgLTEx Niw4ICsxMzIsMTkgQEAgc3RhdGljIGludCB0Y3BjaV9zdGFydF9kcnBfdG9nZ2xpbmcoc3RydWN0 IHRjcGNfZGV2ICp0Y3BjLAogCQkJVENQQ19ST0xFX0NUUkxfUlBfVkFMX1NISUZUKTsKIAkJYnJl YWs7CiAJfQotCi0JcmV0dXJuIHJlZ21hcF93cml0ZSh0Y3BjaS0+cmVnbWFwLCBUQ1BDX1JPTEVf Q1RSTCwgcmVnKTsKKwlyZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19ST0xF X0NUUkwsIHJlZyk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisJdXNsZWVwX3Jhbmdl KDUwMCwgMTAwMCk7CisJcmVnIHw9IFRDUENfUk9MRV9DVFJMX0RSUDsKKwlyZXQgPSByZWdtYXBf d3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19ST0xFX0NUUkwsIHJlZyk7CisJaWYgKHJldCA8IDAp CisJCXJldHVybiByZXQ7CisJcmV0ID0gcmVnbWFwX3dyaXRlKHRjcGNpLT5yZWdtYXAsIFRDUENf Q09NTUFORCwKKwkJCSAgIFRDUENfQ01EX0xPT0s0Q09OTkVDVElPTik7CisJaWYgKHJldCA8IDAp CisJCXJldHVybiByZXQ7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBlbnVtIHR5cGVjX2NjX3N0 YXR1cyB0Y3BjaV90b190eXBlY19jYyh1bnNpZ25lZCBpbnQgY2MsIGJvb2wgc2luaykKQEAgLTMy Myw2ICszNTAsMTUgQEAgc3RhdGljIGludCB0Y3BjaV9pbml0KHN0cnVjdCB0Y3BjX2RldiAqdGNw YykKIAlpZiAodGltZV9hZnRlcihqaWZmaWVzLCB0aW1lb3V0KSkKIAkJcmV0dXJuIC1FVElNRURP VVQ7CiAKKwkvKiBIYW5kbGUgdmVuZG9yIGluaXQgKi8KKwlpZiAodGNwY2ktPnZkYXRhKSB7CisJ CWlmICh0Y3BjaS0+dmRhdGEtPmluaXQpIHsKKwkJCXJldCA9ICgqdGNwY2ktPnZkYXRhLT5pbml0 KSh0Y3BjaSwgdGNwY2ktPnZkYXRhKTsKKwkJCWlmIChyZXQgPCAwKQorCQkJCXJldHVybiByZXQ7 CisJCX0KKwl9CisKIAkvKiBDbGVhciBhbGwgZXZlbnRzICovCiAJcmV0ID0gdGNwY2lfd3JpdGUx Nih0Y3BjaSwgVENQQ19BTEVSVCwgMHhmZmZmKTsKIAlpZiAocmV0IDwgMCkKQEAgLTM1MSw2ICsz ODcsMTMgQEAgc3RhdGljIGlycXJldHVybl90IHRjcGNpX2lycShpbnQgaXJxLCB2b2lkICpkZXZf aWQpCiAKIAl0Y3BjaV9yZWFkMTYodGNwY2ksIFRDUENfQUxFUlQsICZzdGF0dXMpOwogCisJLyog SGFuZGxlIHZlbmRvciBkZWZpbmVkIGludGVycnVwdCAqLworCWlmICh0Y3BjaS0+dmRhdGEpIHsK KwkJaWYgKHRjcGNpLT52ZGF0YS0+aXJxX2hhbmRsZXIpCisJCQkoKnRjcGNpLT52ZGF0YS0+aXJx X2hhbmRsZXIpKHRjcGNpLCB0Y3BjaS0+dmRhdGEsCisJCQkJCQkgICAgICZzdGF0dXMpOworCX0K KwogCS8qCiAJICogQ2xlYXIgYWxlcnQgc3RhdHVzIGZvciBldmVyeXRoaW5nIGV4Y2VwdCBSWF9T VEFUVVMsIHdoaWNoIHNob3VsZG4ndAogCSAqIGJlIGNsZWFyZWQgdW50aWwgd2UgaGF2ZSBzdWNj ZXNzZnVsbHkgcmV0cmlldmVkIG1lc3NhZ2UuCkBAIC00MTcsNyArNDYwLDcgQEAgc3RhdGljIGly cXJldHVybl90IHRjcGNpX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJLnJlZ19iaXRzID0g OCwKIAkudmFsX2JpdHMgPSA4LAogCi0JLm1heF9yZWdpc3RlciA9IDB4N0YsIC8qIDB4ODAgLi4g MHhGRiBhcmUgdmVuZG9yIGRlZmluZWQgKi8KKwkubWF4X3JlZ2lzdGVyID0gMHhGRiwgLyogMHg4 MCAuLiAweEZGIGFyZSB2ZW5kb3IgZGVmaW5lZCAqLwogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCB0Y3BjX2NvbmZpZyB0Y3BjaV90Y3BjX2NvbmZpZyA9IHsKQEAgLTQzNSwyMiArNDc4LDIyIEBA IHN0YXRpYyBpbnQgdGNwY2lfcGFyc2VfY29uZmlnKHN0cnVjdCB0Y3BjaSAqdGNwY2kpCiAJcmV0 dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdGNwY2lfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNs aWVudCwKLQkJICAgICAgIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkICppMmNfaWQpCitzdHJ1 Y3QgdGNwY2kgKnRjcGNpX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwK KwkJCQkgIHN0cnVjdCB0Y3BjaV92ZW5kb3JfZGF0YSAqdmRhdGEpCiB7CiAJc3RydWN0IHRjcGNp ICp0Y3BjaTsKIAlpbnQgZXJyOwogCiAJdGNwY2kgPSBkZXZtX2t6YWxsb2MoJmNsaWVudC0+ZGV2 LCBzaXplb2YoKnRjcGNpKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCF0Y3BjaSkKLQkJcmV0dXJuIC1F Tk9NRU07CisJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCiAJdGNwY2ktPmNsaWVudCA9IGNs aWVudDsKIAl0Y3BjaS0+ZGV2ID0gJmNsaWVudC0+ZGV2OwotCWkyY19zZXRfY2xpZW50ZGF0YShj bGllbnQsIHRjcGNpKTsKKwl0Y3BjaS0+dmRhdGEgPSB2ZGF0YTsKIAl0Y3BjaS0+cmVnbWFwID0g ZGV2bV9yZWdtYXBfaW5pdF9pMmMoY2xpZW50LCAmdGNwY2lfcmVnbWFwX2NvbmZpZyk7CiAJaWYg KElTX0VSUih0Y3BjaS0+cmVnbWFwKSkKLQkJcmV0dXJuIFBUUl9FUlIodGNwY2ktPnJlZ21hcCk7 CisJCXJldHVybiBFUlJfQ0FTVCh0Y3BjaS0+cmVnbWFwKTsKIAogCXRjcGNpLT50Y3BjLmluaXQg PSB0Y3BjaV9pbml0OwogCXRjcGNpLT50Y3BjLmdldF92YnVzID0gdGNwY2lfZ2V0X3ZidXM7CkBA IC00NjcsNyArNTEwLDcgQEAgc3RhdGljIGludCB0Y3BjaV9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVu dCAqY2xpZW50LAogCiAJZXJyID0gdGNwY2lfcGFyc2VfY29uZmlnKHRjcGNpKTsKIAlpZiAoZXJy IDwgMCkKLQkJcmV0dXJuIGVycjsKKwkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIAogCS8qIERpc2Fi bGUgY2hpcCBpbnRlcnJ1cHRzICovCiAJdGNwY2lfd3JpdGUxNih0Y3BjaSwgVENQQ19BTEVSVF9N QVNLLCAwKTsKQEAgLTQ3NywxNyArNTIwLDQwIEBAIHN0YXRpYyBpbnQgdGNwY2lfcHJvYmUoc3Ry dWN0IGkyY19jbGllbnQgKmNsaWVudCwKIAkJCQkJSVJRRl9PTkVTSE9UIHwgSVJRRl9UUklHR0VS X0xPVywKIAkJCQkJZGV2X25hbWUodGNwY2ktPmRldiksIHRjcGNpKTsKIAlpZiAoZXJyIDwgMCkK LQkJcmV0dXJuIGVycjsKKwkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIAogCXRjcGNpLT5wb3J0ID0g dGNwbV9yZWdpc3Rlcl9wb3J0KHRjcGNpLT5kZXYsICZ0Y3BjaS0+dGNwYyk7Ci0JcmV0dXJuIFBU Ul9FUlJfT1JfWkVSTyh0Y3BjaS0+cG9ydCk7CisJaWYgKFBUUl9FUlJfT1JfWkVSTyh0Y3BjaS0+ cG9ydCkpCisJCXJldHVybiBFUlJfQ0FTVCh0Y3BjaS0+cG9ydCk7CisKKwlyZXR1cm4gdGNwY2k7 Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh0Y3BjaV9yZWdpc3Rlcl9wb3J0KTsKKwordm9pZCB0Y3Bj aV91bnJlZ2lzdGVyX3BvcnQoc3RydWN0IHRjcGNpICp0Y3BjaSkKK3sKKwl0Y3BtX3VucmVnaXN0 ZXJfcG9ydCh0Y3BjaS0+cG9ydCk7Cit9CitFWFBPUlRfU1lNQk9MX0dQTCh0Y3BjaV91bnJlZ2lz dGVyX3BvcnQpOworCitzdGF0aWMgaW50IHRjcGNpX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICpj bGllbnQsCisJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaTJjX2lkKQorewor CXN0cnVjdCB0Y3BjaSAqdGNwY2k7CisKKwl0Y3BjaSA9IHRjcGNpX3JlZ2lzdGVyX3BvcnQoY2xp ZW50LCBOVUxMKTsKKwlpZiAoUFRSX0VSUl9PUl9aRVJPKHRjcGNpKSkKKwkJcmV0dXJuIFBUUl9F UlIodGNwY2kpOworCisJaTJjX3NldF9jbGllbnRkYXRhKGNsaWVudCwgdGNwY2kpOworCXJldHVy biAwOwogfQogCiBzdGF0aWMgaW50IHRjcGNpX3JlbW92ZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xp ZW50KQogewogCXN0cnVjdCB0Y3BjaSAqdGNwY2kgPSBpMmNfZ2V0X2NsaWVudGRhdGEoY2xpZW50 KTsKIAotCXRjcG1fdW5yZWdpc3Rlcl9wb3J0KHRjcGNpLT5wb3J0KTsKKwl0Y3BjaV91bnJlZ2lz dGVyX3BvcnQodGNwY2kpOwogCiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0 YWdpbmcvdHlwZWMvdGNwY2kuaCBiL2RyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3BjaS5oCmluZGV4 IGZkZmIwNmMuLmIxZmNiNGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3Bj aS5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy90eXBlYy90Y3BjaS5oCkBAIC01OSw2ICs1OSw3IEBA CiAjZGVmaW5lIFRDUENfUE9XRVJfQ1RSTF9WQ09OTl9FTkFCTEUJQklUKDApCiAKICNkZWZpbmUg VENQQ19DQ19TVEFUVVMJCQkweDFkCisjZGVmaW5lIFRDUENfQ0NfU1RBVFVTX0RSUFJTVAkJQklU KDUpCiAjZGVmaW5lIFRDUENfQ0NfU1RBVFVTX1RFUk0JCUJJVCg0KQogI2RlZmluZSBUQ1BDX0ND X1NUQVRVU19DQzJfU0hJRlQJMgogI2RlZmluZSBUQ1BDX0NDX1NUQVRVU19DQzJfTUFTSwkJMHgz CkBAIC0xMjEsNCArMTIyLDE4IEBACiAjZGVmaW5lIFRDUENfVkJVU19WT0xUQUdFX0FMQVJNX0hJ X0NGRwkJMHg3NgogI2RlZmluZSBUQ1BDX1ZCVVNfVk9MVEFHRV9BTEFSTV9MT19DRkcJCTB4NzgK IAorc3RydWN0IHRjcGNpOworc3RydWN0IHRjcGNpX3ZlbmRvcl9kYXRhIHsKKwlpbnQgKCppbml0 KShzdHJ1Y3QgdGNwY2kgKnRjcGNpLCBzdHJ1Y3QgdGNwY2lfdmVuZG9yX2RhdGEgKmRhdGEpOwor CWludCAoKmlycV9oYW5kbGVyKShzdHJ1Y3QgdGNwY2kgKnRjcGNpLCBzdHJ1Y3QgdGNwY2lfdmVu ZG9yX2RhdGEgKmRhdGEsCisJCQkgICB1MTYgKnN0YXR1cyk7Cit9OworCitpbnQgdGNwY2lfcmVh ZDE2KHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHVuc2lnbmVkIGludCByZWcsIHUxNiAqdmFsKTsKK2lu dCB0Y3BjaV93cml0ZTE2KHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHVuc2lnbmVkIGludCByZWcsIHUx NiB2YWwpOworaW50IHRjcGNpX3JlYWQ4KHN0cnVjdCB0Y3BjaSAqdGNwY2ksIHVuc2lnbmVkIGlu dCByZWcsIHU4ICp2YWwpOworaW50IHRjcGNpX3dyaXRlOChzdHJ1Y3QgdGNwY2kgKnRjcGNpLCB1 bnNpZ25lZCBpbnQgcmVnLCB1OCB2YWwpOworc3RydWN0IHRjcGNpICp0Y3BjaV9yZWdpc3Rlcl9w b3J0KHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCisJCQkJICBzdHJ1Y3QgdGNwY2lfdmVuZG9y X2RhdGEgKmRhdGEpOwordm9pZCB0Y3BjaV91bnJlZ2lzdGVyX3BvcnQoc3RydWN0IHRjcGNpICp0 Y3BjaSk7CiAjZW5kaWYgLyogX19MSU5VWF9VU0JfVENQQ0lfSCAqLwo=