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: [v8,06/12] usb: typec: tcpm: Use new Type-C switch/mux and usb-role-switch functions From: Heikki Krogerus Message-Id: <20180314131215.70833-7-heikki.krogerus@linux.intel.com> Date: Wed, 14 Mar 2018 16:12:09 +0300 To: Greg Kroah-Hartman , Hans de Goede Cc: Darren Hart , Andy Shevchenko , MyungJoo Ham , Chanwoo Choi , Mathias Nyman , Guenter Roeck , Jun Li , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org List-ID: RnJvbTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KClJlbW92ZSB0aGUgdW51 c2VkIChub3QgaW1wbGVtZW50ZWQgYW55d2hlcmUpIHRjcGNfbXV4X2RldiBhYnN0cmFjdGlvbgph bmQgcmVwbGFjZSBpdCB3aXRoIGNhbGxpbmcgdGhlIG5ldyB0eXBlY19zZXRfb3JpZW50YXRpb24s CnVzYl9yb2xlX3N3aXRjaF9zZXQgYW5kIHR5cGVjX3NldF9tb2RlIGZ1bmN0aW9ucy4KClNpZ25l ZC1vZmYtYnk6IEhhbnMgZGUgR29lZGUgPGhkZWdvZWRlQHJlZGhhdC5jb20+ClJldmlld2VkLWJ5 OiBHdWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+ClJldmlld2VkLWJ5OiBBbmR5IFNo ZXZjaGVua28gPGFuZHkuc2hldmNoZW5rb0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEhlaWtr aSBLcm9nZXJ1cyA8aGVpa2tpLmtyb2dlcnVzQGxpbnV4LmludGVsLmNvbT4KLS0tCkNoYW5nZXMg aW4gdjQ6Ci1BZGQgQW5keSdzIFJldmlld2VkLWJ5CgpDaGFuZ2VzIGluIHYzOgotQWRkIEd1ZW50 ZXIncyBSZXZpZXdlZC1ieQoKQ2hhbmdlcyBpbiB2MjoKLUFkZGVkIEhlaWtraSdzIFJldmlld2Vk LWJ5Ci0tLQogZHJpdmVycy91c2IvdHlwZWMvS2NvbmZpZyAgICAgICAgICAgfCAgMSArCiBkcml2 ZXJzL3VzYi90eXBlYy9mdXNiMzAyL2Z1c2IzMDIuYyB8ICAxIC0KIGRyaXZlcnMvdXNiL3R5cGVj L3RjcG0uYyAgICAgICAgICAgIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLQogaW5jbHVkZS9saW51eC91c2IvdGNwbS5oICAgICAgICAgICAgfCAxMCAtLS0tLS0tLQog NCBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3VzYi90eXBlYy9LY29uZmlnIGIvZHJpdmVycy91c2IvdHlwZWMvS2Nv bmZpZwppbmRleCBiY2IyNzQ0YzU5NzcuLmEyYTA2ODRlN2M4MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy91c2IvdHlwZWMvS2NvbmZpZworKysgYi9kcml2ZXJzL3VzYi90eXBlYy9LY29uZmlnCkBAIC00 OCw2ICs0OCw3IEBAIGlmIFRZUEVDCiBjb25maWcgVFlQRUNfVENQTQogCXRyaXN0YXRlICJVU0Ig VHlwZS1DIFBvcnQgQ29udHJvbGxlciBNYW5hZ2VyIgogCWRlcGVuZHMgb24gVVNCCisJc2VsZWN0 IFVTQl9ST0xFX1NXSVRDSAogCWhlbHAKIAkgIFRoZSBUeXBlLUMgUG9ydCBDb250cm9sbGVyIE1h bmFnZXIgcHJvdmlkZXMgYSBVU0IgUEQgYW5kIFVTQiBUeXBlLUMKIAkgIHN0YXRlIG1hY2hpbmUg Zm9yIHVzZSB3aXRoIFR5cGUtQyBQb3J0IENvbnRyb2xsZXJzLgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvdHlwZWMvZnVzYjMwMi9mdXNiMzAyLmMgYi9kcml2ZXJzL3VzYi90eXBlYy9mdXNiMzAy L2Z1c2IzMDIuYwppbmRleCBmMmQ5OGMzYzFmMzAuLmYwYTJmODk1NGJiZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy91c2IvdHlwZWMvZnVzYjMwMi9mdXNiMzAyLmMKKysrIGIvZHJpdmVycy91c2IvdHlw ZWMvZnVzYjMwMi9mdXNiMzAyLmMKQEAgLTEyMzksNyArMTIzOSw2IEBAIHN0YXRpYyB2b2lkIGlu aXRfdGNwY19kZXYoc3RydWN0IHRjcGNfZGV2ICpmdXNiMzAyX3RjcGNfZGV2KQogCWZ1c2IzMDJf dGNwY19kZXYtPnNldF9yb2xlcyA9IHRjcG1fc2V0X3JvbGVzOwogCWZ1c2IzMDJfdGNwY19kZXYt PnN0YXJ0X2RycF90b2dnbGluZyA9IHRjcG1fc3RhcnRfZHJwX3RvZ2dsaW5nOwogCWZ1c2IzMDJf dGNwY19kZXYtPnBkX3RyYW5zbWl0ID0gdGNwbV9wZF90cmFuc21pdDsKLQlmdXNiMzAyX3RjcGNf ZGV2LT5tdXggPSBOVUxMOwogfQogCiBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGNjX3BvbGFy aXR5X25hbWVbXSA9IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0uYyBiL2Ry aXZlcnMvdXNiL3R5cGVjL3RjcG0uYwppbmRleCA1ZTUyN2UyZTE1MDYuLjNmMDg1MWJmZTE4ZiAx MDA2NDQKLS0tIGEvZHJpdmVycy91c2IvdHlwZWMvdGNwbS5jCisrKyBiL2RyaXZlcnMvdXNiL3R5 cGVjL3RjcG0uYwpAQCAtMjAsNiArMjAsNyBAQAogI2luY2x1ZGUgPGxpbnV4L3VzYi9wZC5oPgog I2luY2x1ZGUgPGxpbnV4L3VzYi9wZF9iZG8uaD4KICNpbmNsdWRlIDxsaW51eC91c2IvcGRfdmRv Lmg+CisjaW5jbHVkZSA8bGludXgvdXNiL3JvbGUuaD4KICNpbmNsdWRlIDxsaW51eC91c2IvdGNw bS5oPgogI2luY2x1ZGUgPGxpbnV4L3VzYi90eXBlYy5oPgogI2luY2x1ZGUgPGxpbnV4L3dvcmtx dWV1ZS5oPgpAQCAtMTc2LDYgKzE3Nyw3IEBAIHN0cnVjdCB0Y3BtX3BvcnQgewogCXN0cnVjdCB0 eXBlY19wb3J0ICp0eXBlY19wb3J0OwogCiAJc3RydWN0IHRjcGNfZGV2CSp0Y3BjOworCXN0cnVj dCB1c2Jfcm9sZV9zd2l0Y2ggKnJvbGVfc3c7CiAKIAllbnVtIHR5cGVjX3JvbGUgdmNvbm5fcm9s ZTsKIAllbnVtIHR5cGVjX3JvbGUgcHdyX3JvbGU7CkBAIC02MDcsMTggKzYwOSwyNSBAQCB2b2lk IHRjcG1fcGRfdHJhbnNtaXRfY29tcGxldGUoc3RydWN0IHRjcG1fcG9ydCAqcG9ydCwKIEVYUE9S VF9TWU1CT0xfR1BMKHRjcG1fcGRfdHJhbnNtaXRfY29tcGxldGUpOwogCiBzdGF0aWMgaW50IHRj cG1fbXV4X3NldChzdHJ1Y3QgdGNwbV9wb3J0ICpwb3J0LCBlbnVtIHRjcGNfbXV4X21vZGUgbW9k ZSwKLQkJCWVudW0gdXNiX3JvbGUgdXNiX3JvbGUpCisJCQllbnVtIHVzYl9yb2xlIHVzYl9yb2xl LAorCQkJZW51bSB0eXBlY19vcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKLQlpbnQgcmV0ID0g MDsKKwlpbnQgcmV0OwogCi0JdGNwbV9sb2cocG9ydCwgIlJlcXVlc3RpbmcgbXV4IG1vZGUgJWQs IHVzYi1yb2xlICVkLCBwb2xhcml0eSAlZCIsCi0JCSBtb2RlLCB1c2Jfcm9sZSwgcG9ydC0+cG9s YXJpdHkpOworCXRjcG1fbG9nKHBvcnQsICJSZXF1ZXN0aW5nIG11eCBtb2RlICVkLCB1c2Itcm9s ZSAlZCwgb3JpZW50YXRpb24gJWQiLAorCQkgbW9kZSwgdXNiX3JvbGUsIG9yaWVudGF0aW9uKTsK IAotCWlmIChwb3J0LT50Y3BjLT5tdXgpCi0JCXJldCA9IHBvcnQtPnRjcGMtPm11eC0+c2V0KHBv cnQtPnRjcGMtPm11eCwgbW9kZSwgdXNiX3JvbGUsCi0JCQkJCSAgIHBvcnQtPnBvbGFyaXR5KTsK KwlyZXQgPSB0eXBlY19zZXRfb3JpZW50YXRpb24ocG9ydC0+dHlwZWNfcG9ydCwgb3JpZW50YXRp b24pOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKLQlyZXR1cm4gcmV0OworCWlmIChwb3J0 LT5yb2xlX3N3KSB7CisJCXJldCA9IHVzYl9yb2xlX3N3aXRjaF9zZXRfcm9sZShwb3J0LT5yb2xl X3N3LCB1c2Jfcm9sZSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVy biB0eXBlY19zZXRfbW9kZShwb3J0LT50eXBlY19wb3J0LCBtb2RlKTsKIH0KIAogc3RhdGljIGlu dCB0Y3BtX3NldF9wb2xhcml0eShzdHJ1Y3QgdGNwbV9wb3J0ICpwb3J0LApAQCAtNzMxLDE1ICs3 NDAsMjEgQEAgc3RhdGljIGludCB0Y3BtX3NldF9hdHRhY2hlZF9zdGF0ZShzdHJ1Y3QgdGNwbV9w b3J0ICpwb3J0LCBib29sIGF0dGFjaGVkKQogc3RhdGljIGludCB0Y3BtX3NldF9yb2xlcyhzdHJ1 Y3QgdGNwbV9wb3J0ICpwb3J0LCBib29sIGF0dGFjaGVkLAogCQkJICBlbnVtIHR5cGVjX3JvbGUg cm9sZSwgZW51bSB0eXBlY19kYXRhX3JvbGUgZGF0YSkKIHsKKwllbnVtIHR5cGVjX29yaWVudGF0 aW9uIG9yaWVudGF0aW9uOwogCWVudW0gdXNiX3JvbGUgdXNiX3JvbGU7CiAJaW50IHJldDsKIAor CWlmIChwb3J0LT5wb2xhcml0eSA9PSBUWVBFQ19QT0xBUklUWV9DQzEpCisJCW9yaWVudGF0aW9u ID0gVFlQRUNfT1JJRU5UQVRJT05fTk9STUFMOworCWVsc2UKKwkJb3JpZW50YXRpb24gPSBUWVBF Q19PUklFTlRBVElPTl9SRVZFUlNFOworCiAJaWYgKGRhdGEgPT0gVFlQRUNfSE9TVCkKIAkJdXNi X3JvbGUgPSBVU0JfUk9MRV9IT1NUOwogCWVsc2UKIAkJdXNiX3JvbGUgPSBVU0JfUk9MRV9ERVZJ Q0U7CiAKLQlyZXQgPSB0Y3BtX211eF9zZXQocG9ydCwgVFlQRUNfTVVYX1VTQiwgdXNiX3JvbGUp OworCXJldCA9IHRjcG1fbXV4X3NldChwb3J0LCBUWVBFQ19NVVhfVVNCLCB1c2Jfcm9sZSwgb3Jp ZW50YXRpb24pOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCkBAIC0yMDg2LDcgKzIx MDEsOCBAQCBzdGF0aWMgaW50IHRjcG1fc3JjX2F0dGFjaChzdHJ1Y3QgdGNwbV9wb3J0ICpwb3J0 KQogb3V0X2Rpc2FibGVfcGQ6CiAJcG9ydC0+dGNwYy0+c2V0X3BkX3J4KHBvcnQtPnRjcGMsIGZh bHNlKTsKIG91dF9kaXNhYmxlX211eDoKLQl0Y3BtX211eF9zZXQocG9ydCwgVFlQRUNfTVVYX05P TkUsIFVTQl9ST0xFX05PTkUpOworCXRjcG1fbXV4X3NldChwb3J0LCBUWVBFQ19NVVhfTk9ORSwg VVNCX1JPTEVfTk9ORSwKKwkJICAgICBUWVBFQ19PUklFTlRBVElPTl9OT05FKTsKIAlyZXR1cm4g cmV0OwogfQogCkBAIC0yMTMwLDcgKzIxNDYsOCBAQCBzdGF0aWMgdm9pZCB0Y3BtX3Jlc2V0X3Bv cnQoc3RydWN0IHRjcG1fcG9ydCAqcG9ydCkKIAl0Y3BtX2luaXRfdmNvbm4ocG9ydCk7CiAJdGNw bV9zZXRfY3VycmVudF9saW1pdChwb3J0LCAwLCAwKTsKIAl0Y3BtX3NldF9wb2xhcml0eShwb3J0 LCBUWVBFQ19QT0xBUklUWV9DQzEpOwotCXRjcG1fbXV4X3NldChwb3J0LCBUWVBFQ19NVVhfTk9O RSwgVVNCX1JPTEVfTk9ORSk7CisJdGNwbV9tdXhfc2V0KHBvcnQsIFRZUEVDX01VWF9OT05FLCBV U0JfUk9MRV9OT05FLAorCQkgICAgIFRZUEVDX09SSUVOVEFUSU9OX05PTkUpOwogCXRjcG1fc2V0 X2F0dGFjaGVkX3N0YXRlKHBvcnQsIGZhbHNlKTsKIAlwb3J0LT50cnlfc3JjX2NvdW50ID0gMDsK IAlwb3J0LT50cnlfc25rX2NvdW50ID0gMDsKQEAgLTM3MzIsNiArMzc0OSwxMiBAQCBzdHJ1Y3Qg dGNwbV9wb3J0ICp0Y3BtX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3Qg dGNwY19kZXYgKnRjcGMpCiAJcG9ydC0+cGFydG5lcl9kZXNjLmlkZW50aXR5ID0gJnBvcnQtPnBh cnRuZXJfaWRlbnQ7CiAJcG9ydC0+cG9ydF90eXBlID0gdGNwYy0+Y29uZmlnLT50eXBlOwogCisJ cG9ydC0+cm9sZV9zdyA9IHVzYl9yb2xlX3N3aXRjaF9nZXQocG9ydC0+ZGV2KTsKKwlpZiAoSVNf RVJSKHBvcnQtPnJvbGVfc3cpKSB7CisJCWVyciA9IFBUUl9FUlIocG9ydC0+cm9sZV9zdyk7CisJ CWdvdG8gb3V0X2Rlc3Ryb3lfd3E7CisJfQorCiAJcG9ydC0+dHlwZWNfcG9ydCA9IHR5cGVjX3Jl Z2lzdGVyX3BvcnQocG9ydC0+ZGV2LCAmcG9ydC0+dHlwZWNfY2Fwcyk7CiAJaWYgKElTX0VSUihw b3J0LT50eXBlY19wb3J0KSkgewogCQllcnIgPSBQVFJfRVJSKHBvcnQtPnR5cGVjX3BvcnQpOwpA QCAtMzc2Nyw2ICszNzkwLDcgQEAgc3RydWN0IHRjcG1fcG9ydCAqdGNwbV9yZWdpc3Rlcl9wb3J0 KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHRjcGNfZGV2ICp0Y3BjKQogCXJldHVybiBwb3J0 OwogCiBvdXRfZGVzdHJveV93cToKKwl1c2Jfcm9sZV9zd2l0Y2hfcHV0KHBvcnQtPnJvbGVfc3cp OwogCWRlc3Ryb3lfd29ya3F1ZXVlKHBvcnQtPndxKTsKIAlyZXR1cm4gRVJSX1BUUihlcnIpOwog fQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC91c2IvdGNwbS5oIGIvaW5jbHVkZS9saW51eC91 c2IvdGNwbS5oCmluZGV4IDNlOGJkYWE1MDg1YS4uZjBkODM5ZGFlYWVhIDEwMDY0NAotLS0gYS9p bmNsdWRlL2xpbnV4L3VzYi90Y3BtLmgKKysrIGIvaW5jbHVkZS9saW51eC91c2IvdGNwbS5oCkBA IC0xNiw3ICsxNiw2IEBACiAjZGVmaW5lIF9fTElOVVhfVVNCX1RDUE1fSAogCiAjaW5jbHVkZSA8 bGludXgvYml0b3BzLmg+Ci0jaW5jbHVkZSA8bGludXgvdXNiL3JvbGUuaD4KICNpbmNsdWRlIDxs aW51eC91c2IvdHlwZWMuaD4KICNpbmNsdWRlICJwZC5oIgogCkBAIC0xMTMsMTQgKzExMiw2IEBA IGVudW0gdGNwY19tdXhfbW9kZSB7CiAJCQkgIFRDUENfTVVYX0RQX0VOQUJMRUQsCiB9OwogCi1z dHJ1Y3QgdGNwY19tdXhfZGV2IHsKLQlpbnQgKCpzZXQpKHN0cnVjdCB0Y3BjX211eF9kZXYgKmRl diwgZW51bSB0Y3BjX211eF9tb2RlIG11eF9tb2RlLAotCQkgICBlbnVtIHVzYl9yb2xlIHVzYl9y b2xlLAotCQkgICBlbnVtIHR5cGVjX2NjX3BvbGFyaXR5IHBvbGFyaXR5KTsKLQlib29sIGRmcF9v bmx5OwotCXZvaWQgKnByaXZfZGF0YTsKLX07Ci0KIC8qKgogICogc3RydWN0IHRjcGNfZGV2IC0g UG9ydCBjb25maWd1cmF0aW9uIGFuZCBjYWxsYmFjayBmdW5jdGlvbnMKICAqIEBjb25maWc6CVBv aW50ZXIgdG8gcG9ydCBjb25maWd1cmF0aW9uCkBAIC0xNzIsNyArMTYzLDYgQEAgc3RydWN0IHRj cGNfZGV2IHsKIAlpbnQgKCp0cnlfcm9sZSkoc3RydWN0IHRjcGNfZGV2ICpkZXYsIGludCByb2xl KTsKIAlpbnQgKCpwZF90cmFuc21pdCkoc3RydWN0IHRjcGNfZGV2ICpkZXYsIGVudW0gdGNwbV90 cmFuc21pdF90eXBlIHR5cGUsCiAJCQkgICBjb25zdCBzdHJ1Y3QgcGRfbWVzc2FnZSAqbXNnKTsK LQlzdHJ1Y3QgdGNwY19tdXhfZGV2ICptdXg7CiB9OwogCiBzdHJ1Y3QgdGNwbV9wb3J0Owo=