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: usb: typec: Separate the definitions for data and power roles From: Guenter Roeck Message-Id: <20180309170513.GA8743@roeck-us.net> Date: Fri, 9 Mar 2018 09:05:13 -0800 To: Heikki Krogerus Cc: Greg Kroah-Hartman , Hans de Goede , Jun Li , linux-usb@vger.kernel.org List-ID: T24gRnJpLCBNYXIgMDksIDIwMTggYXQgMDI6MDk6MThQTSArMDMwMCwgSGVpa2tpIEtyb2dlcnVz IHdyb3RlOgo+IFVTQiBUeXBlLUMgc3BlY2lmaWNhdGlvbiB2MS4yIHNlcGFyYXRlZCB0aGUgcG93 ZXIgYW5kIGRhdGEKPiByb2xlcyBtb3JlIGNsZWFybHkuIER1YWwtUm9sZS1EYXRhIHRlcm0gd2Fz IGludHJvZHVjZWQsIGFuZAo+IHRoZSBtZWFuaW5nIG9mIERSUCB3YXMgY2hhbmdlZCBmcm9tICJE dWFsLVJvbGUtUG9ydCIgdG8KPiAiRHVhbC1Sb2xlLVBvd2VyIi4KPiAKPiBJbiBvcmRlciB0byBh bGxvdyB0aGUgcG9ydCBkcml2ZXJzIHRvIGRlc2NyaWJlIHRoZQo+IGNhcGFiaWxpdGllcyBvZiB0 aGUgcG9ydHMgbW9yZSBjbGVhcmx5IGFjY29yZGluZyB0byB0aGUKPiBuZXdlc3Qgc3BlY2lmaWNh dGlvbnMsIGludHJvZHVjaW5nIHNlcGFyYXRlIGRlZmluaXRpb25zIGZvcgo+IHRoZSBkYXRhIHJv bGVzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEhlaWtraSBLcm9nZXJ1cyA8aGVpa2tpLmtyb2dlcnVz QGxpbnV4LmludGVsLmNvbT4KClJldmlld2VkLWJ5OiBHdWVudGVyIFJvZWNrIDxsaW51eEByb2Vj ay11cy5uZXQ+Cgo+IC0tLQo+ICBkcml2ZXJzL3VzYi90eXBlYy9jbGFzcy5jICAgICAgICAgICB8 IDU2ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy91c2Iv dHlwZWMvZnVzYjMwMi9mdXNiMzAyLmMgfCAgMSArCj4gIGRyaXZlcnMvdXNiL3R5cGVjL3RjcG0u YyAgICAgICAgICAgIHwgIDkgKysrLS0tCj4gIGRyaXZlcnMvdXNiL3R5cGVjL3RwczY1OTh4LmMg ICAgICAgIHwgMjYgKysrKysrKysrKystLS0tLS0KPiAgZHJpdmVycy91c2IvdHlwZWMvdHlwZWNf d2NvdmUuYyAgICAgfCAgMSArCj4gIGRyaXZlcnMvdXNiL3R5cGVjL3Vjc2kvdWNzaS5jICAgICAg IHwgMTMgKysrKysrKy0tCj4gIGluY2x1ZGUvbGludXgvdXNiL3RjcG0uaCAgICAgICAgICAgIHwg IDEgKwo+ICBpbmNsdWRlL2xpbnV4L3VzYi90eXBlYy5oICAgICAgICAgICB8IDE0ICsrKysrKysr LS0KPiAgOCBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdHlwZWMvY2xhc3MuYyBiL2RyaXZlcnMvdXNi L3R5cGVjL2NsYXNzLmMKPiBpbmRleCAyNjIwYTY5NDcwNGYuLjUzZGYxMGRmMmY5ZCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL3VzYi90eXBlYy9jbGFzcy5jCj4gKysrIGIvZHJpdmVycy91c2IvdHlw ZWMvY2xhc3MuYwo+IEBAIC0yODIsMTAgKzI4MiwxMCBAQCB0eXBlY19hbHRtb2RlX3JvbGVzX3No b3coc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKPiAg CXNzaXplX3QgcmV0Owo+ICAKPiAgCXN3aXRjaCAobW9kZS0+cm9sZXMpIHsKPiAtCWNhc2UgVFlQ RUNfUE9SVF9ERlA6Cj4gKwljYXNlIFRZUEVDX1BPUlRfU1JDOgo+ICAJCXJldCA9IHNwcmludGYo YnVmLCAic291cmNlXG4iKTsKPiAgCQlicmVhazsKPiAtCWNhc2UgVFlQRUNfUE9SVF9VRlA6Cj4g KwljYXNlIFRZUEVDX1BPUlRfU05LOgo+ICAJCXJldCA9IHNwcmludGYoYnVmLCAic2lua1xuIik7 Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIFRZUEVDX1BPUlRfRFJQOgo+IEBAIC03OTcsMTQgKzc5Nywx NCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHR5cGVjX2RhdGFfcm9sZXNbXSA9IHsKPiAg fTsKPiAgCj4gIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdHlwZWNfcG9ydF90eXBlc1tdID0g ewo+IC0JW1RZUEVDX1BPUlRfREZQXSA9ICJzb3VyY2UiLAo+IC0JW1RZUEVDX1BPUlRfVUZQXSA9 ICJzaW5rIiwKPiArCVtUWVBFQ19QT1JUX1NSQ10gPSAic291cmNlIiwKPiArCVtUWVBFQ19QT1JU X1NOS10gPSAic2luayIsCj4gIAlbVFlQRUNfUE9SVF9EUlBdID0gImR1YWwiLAo+ICB9Owo+ICAK PiAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB0eXBlY19wb3J0X3R5cGVzX2RycFtdID0gewo+ IC0JW1RZUEVDX1BPUlRfREZQXSA9ICJkdWFsIFtzb3VyY2VdIHNpbmsiLAo+IC0JW1RZUEVDX1BP UlRfVUZQXSA9ICJkdWFsIHNvdXJjZSBbc2lua10iLAo+ICsJW1RZUEVDX1BPUlRfU1JDXSA9ICJk dWFsIFtzb3VyY2VdIHNpbmsiLAo+ICsJW1RZUEVDX1BPUlRfU05LXSA9ICJkdWFsIHNvdXJjZSBb c2lua10iLAo+ICAJW1RZUEVDX1BPUlRfRFJQXSA9ICJbZHVhbF0gc291cmNlIHNpbmsiLAo+ICB9 Owo+ICAKPiBAQCAtODc1LDkgKzg3NSw3IEBAIHN0YXRpYyBzc2l6ZV90IGRhdGFfcm9sZV9zdG9y ZShzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAltdXRleF9sb2Nr KCZwb3J0LT5wb3J0X3R5cGVfbG9jayk7Cj4gLQlpZiAocG9ydC0+cG9ydF90eXBlICE9IFRZUEVD X1BPUlRfRFJQKSB7Cj4gLQkJZGV2X2RiZyhkZXYsICJwb3J0IHR5cGUgZml4ZWQgYXQgXCIlc1wi IiwKPiAtCQkJICAgICB0eXBlY19wb3J0X3R5cGVzW3BvcnQtPnBvcnRfdHlwZV0pOwo+ICsJaWYg KHBvcnQtPmNhcC0+ZGF0YSAhPSBUWVBFQ19QT1JUX0RSRCkgewo+ICAJCXJldCA9IC1FT1BOT1RT VVBQOwo+ICAJCWdvdG8gdW5sb2NrX2FuZF9yZXQ7Cj4gIAl9Cj4gQEAgLTg5Nyw3ICs4OTUsNyBA QCBzdGF0aWMgc3NpemVfdCBkYXRhX3JvbGVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gIHsK PiAgCXN0cnVjdCB0eXBlY19wb3J0ICpwb3J0ID0gdG9fdHlwZWNfcG9ydChkZXYpOwo+ICAKPiAt CWlmIChwb3J0LT5jYXAtPnR5cGUgPT0gVFlQRUNfUE9SVF9EUlApCj4gKwlpZiAocG9ydC0+Y2Fw LT5kYXRhID09IFRZUEVDX1BPUlRfRFJEKQo+ICAJCXJldHVybiBzcHJpbnRmKGJ1ZiwgIiVzXG4i LCBwb3J0LT5kYXRhX3JvbGUgPT0gVFlQRUNfSE9TVCA/Cj4gIAkJCSAgICAgICAiW2hvc3RdIGRl dmljZSIgOiAiaG9zdCBbZGV2aWNlXSIpOwo+ICAKPiBAQCAtMTMyOCw3ICsxMzI2LDYgQEAgc3Ry dWN0IHR5cGVjX3BvcnQgKnR5cGVjX3JlZ2lzdGVyX3BvcnQoc3RydWN0IGRldmljZSAqcGFyZW50 LAo+ICAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCB0eXBlY19jYXBhYmlsaXR5ICpjYXApCj4gIHsK PiAgCXN0cnVjdCB0eXBlY19wb3J0ICpwb3J0Owo+IC0JaW50IHJvbGU7Cj4gIAlpbnQgcmV0Owo+ ICAJaW50IGlkOwo+ICAKPiBAQCAtMTM1NCwyMSArMTM1MSwzNiBAQCBzdHJ1Y3QgdHlwZWNfcG9y dCAqdHlwZWNfcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCj4gIAkJZ290byBl cnJfbXV4Owo+ICAJfQo+ICAKPiAtCWlmIChjYXAtPnR5cGUgPT0gVFlQRUNfUE9SVF9ERlApCj4g LQkJcm9sZSA9IFRZUEVDX1NPVVJDRTsKPiAtCWVsc2UgaWYgKGNhcC0+dHlwZSA9PSBUWVBFQ19Q T1JUX1VGUCkKPiAtCQlyb2xlID0gVFlQRUNfU0lOSzsKPiAtCWVsc2UKPiAtCQlyb2xlID0gY2Fw LT5wcmVmZXJfcm9sZTsKPiAtCj4gLQlpZiAocm9sZSA9PSBUWVBFQ19TT1VSQ0UpIHsKPiAtCQlw b3J0LT5kYXRhX3JvbGUgPSBUWVBFQ19IT1NUOwo+ICsJc3dpdGNoIChjYXAtPnR5cGUpIHsKPiAr CWNhc2UgVFlQRUNfUE9SVF9TUkM6Cj4gIAkJcG9ydC0+cHdyX3JvbGUgPSBUWVBFQ19TT1VSQ0U7 Cj4gIAkJcG9ydC0+dmNvbm5fcm9sZSA9IFRZUEVDX1NPVVJDRTsKPiAtCX0gZWxzZSB7Cj4gLQkJ cG9ydC0+ZGF0YV9yb2xlID0gVFlQRUNfREVWSUNFOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBUWVBF Q19QT1JUX1NOSzoKPiAgCQlwb3J0LT5wd3Jfcm9sZSA9IFRZUEVDX1NJTks7Cj4gIAkJcG9ydC0+ dmNvbm5fcm9sZSA9IFRZUEVDX1NJTks7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIFRZUEVDX1BPUlRf RFJQOgo+ICsJCWlmIChjYXAtPnByZWZlcl9yb2xlICE9IFRZUEVDX05PX1BSRUZFUlJFRF9ST0xF KQo+ICsJCQlwb3J0LT5wd3Jfcm9sZSA9IGNhcC0+cHJlZmVyX3JvbGU7Cj4gKwkJZWxzZQo+ICsJ CQlwb3J0LT5wd3Jfcm9sZSA9IFRZUEVDX1NJTks7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJ c3dpdGNoIChjYXAtPmRhdGEpIHsKPiArCWNhc2UgVFlQRUNfUE9SVF9ERlA6Cj4gKwkJcG9ydC0+ ZGF0YV9yb2xlID0gVFlQRUNfSE9TVDsKPiArCQlicmVhazsKPiArCWNhc2UgVFlQRUNfUE9SVF9V RlA6Cj4gKwkJcG9ydC0+ZGF0YV9yb2xlID0gVFlQRUNfREVWSUNFOwo+ICsJCWJyZWFrOwo+ICsJ Y2FzZSBUWVBFQ19QT1JUX0RSRDoKPiArCQlpZiAoY2FwLT5wcmVmZXJfcm9sZSA9PSBUWVBFQ19T T1VSQ0UpCj4gKwkJCXBvcnQtPmRhdGFfcm9sZSA9IFRZUEVDX0hPU1Q7Cj4gKwkJZWxzZQo+ICsJ CQlwb3J0LT5kYXRhX3JvbGUgPSBUWVBFQ19ERVZJQ0U7Cj4gKwkJYnJlYWs7Cj4gIAl9Cj4gIAo+ ICAJcG9ydC0+aWQgPSBpZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdHlwZWMvZnVzYjMw Mi9mdXNiMzAyLmMgYi9kcml2ZXJzL3VzYi90eXBlYy9mdXNiMzAyL2Z1c2IzMDIuYwo+IGluZGV4 IGIyNjdiOTA3YmYyNC4uNzZjOWQ5NTVmYTQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL3R5 cGVjL2Z1c2IzMDIvZnVzYjMwMi5jCj4gKysrIGIvZHJpdmVycy91c2IvdHlwZWMvZnVzYjMwMi9m dXNiMzAyLmMKPiBAQCAtMTIzMCw2ICsxMjMwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB0Y3Bj X2NvbmZpZyBmdXNiMzAyX3RjcGNfY29uZmlnID0gewo+ICAJLm1heF9zbmtfbXcgPSAxNTAwMCwK PiAgCS5vcGVyYXRpbmdfc25rX213ID0gMjUwMCwKPiAgCS50eXBlID0gVFlQRUNfUE9SVF9EUlAs Cj4gKwkuZGF0YSA9IFRZUEVDX1BPUlRfRFJELAo+ICAJLmRlZmF1bHRfcm9sZSA9IFRZUEVDX1NJ TkssCj4gIAkuYWx0X21vZGVzID0gTlVMTCwKPiAgfTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91 c2IvdHlwZWMvdGNwbS5jIGIvZHJpdmVycy91c2IvdHlwZWMvdGNwbS5jCj4gaW5kZXggNzM1YTZk ZDc0YzIwLi40ZTQ0N2UxZTllYzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvdHlwZWMvdGNw bS5jCj4gKysrIGIvZHJpdmVycy91c2IvdHlwZWMvdGNwbS5jCj4gQEAgLTM0Nyw3ICszNDcsNyBA QCBzdGF0aWMgZW51bSB0Y3BtX3N0YXRlIHRjcG1fZGVmYXVsdF9zdGF0ZShzdHJ1Y3QgdGNwbV9w b3J0ICpwb3J0KQo+ICAJCWVsc2UgaWYgKHBvcnQtPnRjcGMtPmNvbmZpZy0+ZGVmYXVsdF9yb2xl ID09IFRZUEVDX1NJTkspCj4gIAkJCXJldHVybiBTTktfVU5BVFRBQ0hFRDsKPiAgCQkvKiBGYWxs IHRocm91Z2ggdG8gcmV0dXJuIFNSQ19VTkFUVEFDSEVEICovCj4gLQl9IGVsc2UgaWYgKHBvcnQt PnBvcnRfdHlwZSA9PSBUWVBFQ19QT1JUX1VGUCkgewo+ICsJfSBlbHNlIGlmIChwb3J0LT5wb3J0 X3R5cGUgPT0gVFlQRUNfUE9SVF9TTkspIHsKPiAgCQlyZXR1cm4gU05LX1VOQVRUQUNIRUQ7Cj4g IAl9Cj4gIAlyZXR1cm4gU1JDX1VOQVRUQUNIRUQ7Cj4gQEAgLTIyMDcsNyArMjIwNyw3IEBAIHN0 YXRpYyBpbmxpbmUgZW51bSB0Y3BtX3N0YXRlIHVuYXR0YWNoZWRfc3RhdGUoc3RydWN0IHRjcG1f cG9ydCAqcG9ydCkKPiAgCQkJcmV0dXJuIFNSQ19VTkFUVEFDSEVEOwo+ICAJCWVsc2UKPiAgCQkJ cmV0dXJuIFNOS19VTkFUVEFDSEVEOwo+IC0JfSBlbHNlIGlmIChwb3J0LT5wb3J0X3R5cGUgPT0g VFlQRUNfUE9SVF9ERlApIHsKPiArCX0gZWxzZSBpZiAocG9ydC0+cG9ydF90eXBlID09IFRZUEVD X1BPUlRfU1JDKSB7Cj4gIAkJcmV0dXJuIFNSQ19VTkFUVEFDSEVEOwo+ICAJfQo+ICAKPiBAQCAt MzQ5NywxMSArMzQ5NywxMSBAQCBzdGF0aWMgaW50IHRjcG1fcG9ydF90eXBlX3NldChjb25zdCBz dHJ1Y3QgdHlwZWNfY2FwYWJpbGl0eSAqY2FwLAo+ICAKPiAgCWlmICghcG9ydC0+Y29ubmVjdGVk KSB7Cj4gIAkJdGNwbV9zZXRfc3RhdGUocG9ydCwgUE9SVF9SRVNFVCwgMCk7Cj4gLQl9IGVsc2Ug aWYgKHR5cGUgPT0gVFlQRUNfUE9SVF9VRlApIHsKPiArCX0gZWxzZSBpZiAodHlwZSA9PSBUWVBF Q19QT1JUX1NOSykgewo+ICAJCWlmICghKHBvcnQtPnB3cl9yb2xlID09IFRZUEVDX1NJTksgJiYK PiAgCQkgICAgICBwb3J0LT5kYXRhX3JvbGUgPT0gVFlQRUNfREVWSUNFKSkKPiAgCQkJdGNwbV9z ZXRfc3RhdGUocG9ydCwgUE9SVF9SRVNFVCwgMCk7Cj4gLQl9IGVsc2UgaWYgKHR5cGUgPT0gVFlQ RUNfUE9SVF9ERlApIHsKPiArCX0gZWxzZSBpZiAodHlwZSA9PSBUWVBFQ19QT1JUX1NSQykgewo+ ICAJCWlmICghKHBvcnQtPnB3cl9yb2xlID09IFRZUEVDX1NPVVJDRSAmJgo+ICAJCSAgICAgIHBv cnQtPmRhdGFfcm9sZSA9PSBUWVBFQ19IT1NUKSkKPiAgCQkJdGNwbV9zZXRfc3RhdGUocG9ydCwg UE9SVF9SRVNFVCwgMCk7Cj4gQEAgLTM2NjksNiArMzY2OSw3IEBAIHN0cnVjdCB0Y3BtX3BvcnQg KnRjcG1fcmVnaXN0ZXJfcG9ydChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB0Y3BjX2RldiAq dGNwYykKPiAgCj4gIAlwb3J0LT50eXBlY19jYXBzLnByZWZlcl9yb2xlID0gdGNwYy0+Y29uZmln LT5kZWZhdWx0X3JvbGU7Cj4gIAlwb3J0LT50eXBlY19jYXBzLnR5cGUgPSB0Y3BjLT5jb25maWct PnR5cGU7Cj4gKwlwb3J0LT50eXBlY19jYXBzLmRhdGEgPSB0Y3BjLT5jb25maWctPmRhdGE7Cj4g IAlwb3J0LT50eXBlY19jYXBzLnJldmlzaW9uID0gMHgwMTIwOwkvKiBUeXBlLUMgc3BlYyByZWxl YXNlIDEuMiAqLwo+ICAJcG9ydC0+dHlwZWNfY2Fwcy5wZF9yZXZpc2lvbiA9IDB4MDIwMDsJLyog VVNCLVBEIHNwZWMgcmVsZWFzZSAyLjAgKi8KPiAgCXBvcnQtPnR5cGVjX2NhcHMuZHJfc2V0ID0g dGNwbV9kcl9zZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3R5cGVjL3RwczY1OTh4LmMg Yi9kcml2ZXJzL3VzYi90eXBlYy90cHM2NTk4eC5jCj4gaW5kZXggMzdhMTVjMTRhNmM2Li44Yjg0 MDY4NjdjMDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvdHlwZWMvdHBzNjU5OHguYwo+ICsr KyBiL2RyaXZlcnMvdXNiL3R5cGVjL3RwczY1OTh4LmMKPiBAQCAtMzkzLDMxICszOTMsMzkgQEAg c3RhdGljIGludCB0cHM2NTk4eF9wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50KQo+ICAJ aWYgKHJldCA8IDApCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gKwl0cHMtPnR5cGVjX2NhcC5yZXZp c2lvbiA9IFVTQl9UWVBFQ19SRVZfMV8yOwo+ICsJdHBzLT50eXBlY19jYXAucGRfcmV2aXNpb24g PSAweDIwMDsKPiArCXRwcy0+dHlwZWNfY2FwLnByZWZlcl9yb2xlID0gVFlQRUNfTk9fUFJFRkVS UkVEX1JPTEU7Cj4gKwl0cHMtPnR5cGVjX2NhcC5wcl9zZXQgPSB0cHM2NTk4eF9wcl9zZXQ7Cj4g Kwl0cHMtPnR5cGVjX2NhcC5kcl9zZXQgPSB0cHM2NTk4eF9kcl9zZXQ7Cj4gKwo+ICAJc3dpdGNo IChUUFNfU1lTQ09ORl9QT1JUSU5GTyhjb25mKSkgewo+ICAJY2FzZSBUUFNfUE9SVElORk9fU0lO S19BQ0NFU1NPUlk6Cj4gIAljYXNlIFRQU19QT1JUSU5GT19TSU5LOgo+IC0JCXRwcy0+dHlwZWNf Y2FwLnR5cGUgPSBUWVBFQ19QT1JUX1VGUDsKPiArCQl0cHMtPnR5cGVjX2NhcC50eXBlID0gVFlQ RUNfUE9SVF9TTks7Cj4gKwkJdHBzLT50eXBlY19jYXAuZGF0YSA9IFRZUEVDX1BPUlRfVUZQOwo+ ICAJCWJyZWFrOwo+ICAJY2FzZSBUUFNfUE9SVElORk9fRFJQX1VGUF9EUkQ6Cj4gIAljYXNlIFRQ U19QT1JUSU5GT19EUlBfREZQX0RSRDoKPiAtCQl0cHMtPnR5cGVjX2NhcC5kcl9zZXQgPSB0cHM2 NTk4eF9kcl9zZXQ7Cj4gLQkJLyogZmFsbCB0aHJvdWdoICovCj4gKwkJdHBzLT50eXBlY19jYXAu dHlwZSA9IFRZUEVDX1BPUlRfRFJQOwo+ICsJCXRwcy0+dHlwZWNfY2FwLmRhdGEgPSBUWVBFQ19Q T1JUX0RSRDsKPiArCQlicmVhazsKPiAgCWNhc2UgVFBTX1BPUlRJTkZPX0RSUF9VRlA6Cj4gKwkJ dHBzLT50eXBlY19jYXAudHlwZSA9IFRZUEVDX1BPUlRfRFJQOwo+ICsJCXRwcy0+dHlwZWNfY2Fw LmRhdGEgPSBUWVBFQ19QT1JUX1VGUDsKPiArCQlicmVhazsKPiAgCWNhc2UgVFBTX1BPUlRJTkZP X0RSUF9ERlA6Cj4gLQkJdHBzLT50eXBlY19jYXAucHJfc2V0ID0gdHBzNjU5OHhfcHJfc2V0Owo+ ICAJCXRwcy0+dHlwZWNfY2FwLnR5cGUgPSBUWVBFQ19QT1JUX0RSUDsKPiArCQl0cHMtPnR5cGVj X2NhcC5kYXRhID0gVFlQRUNfUE9SVF9ERlA7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIFRQU19QT1JU SU5GT19TT1VSQ0U6Cj4gLQkJdHBzLT50eXBlY19jYXAudHlwZSA9IFRZUEVDX1BPUlRfREZQOwo+ ICsJCXRwcy0+dHlwZWNfY2FwLnR5cGUgPSBUWVBFQ19QT1JUX1NSQzsKPiArCQl0cHMtPnR5cGVj X2NhcC5kYXRhID0gVFlQRUNfUE9SVF9ERlA7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJ CXJldHVybiAtRU5PREVWOwo+ICAJfQo+ICAKPiAtCXRwcy0+dHlwZWNfY2FwLnJldmlzaW9uID0g VVNCX1RZUEVDX1JFVl8xXzI7Cj4gLQl0cHMtPnR5cGVjX2NhcC5wZF9yZXZpc2lvbiA9IDB4MjAw Owo+IC0JdHBzLT50eXBlY19jYXAucHJlZmVyX3JvbGUgPSBUWVBFQ19OT19QUkVGRVJSRURfUk9M RTsKPiAtCj4gIAl0cHMtPnBvcnQgPSB0eXBlY19yZWdpc3Rlcl9wb3J0KCZjbGllbnQtPmRldiwg JnRwcy0+dHlwZWNfY2FwKTsKPiAgCWlmIChJU19FUlIodHBzLT5wb3J0KSkKPiAgCQlyZXR1cm4g UFRSX0VSUih0cHMtPnBvcnQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi90eXBlYy90eXBl Y193Y292ZS5jIGIvZHJpdmVycy91c2IvdHlwZWMvdHlwZWNfd2NvdmUuYwo+IGluZGV4IDJlOTkw ZTBkOTE3ZC4uMTljY2E3ZjFiMmM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdXNiL3R5cGVjL3R5 cGVjX3djb3ZlLmMKPiArKysgYi9kcml2ZXJzL3VzYi90eXBlYy90eXBlY193Y292ZS5jCj4gQEAg LTU3Miw2ICs1NzIsNyBAQCBzdGF0aWMgc3RydWN0IHRjcGNfY29uZmlnIHdjb3ZlX3R5cGVjX2Nv bmZpZyA9IHsKPiAgCS5vcGVyYXRpbmdfc25rX213ID0gMTUwMDAsCj4gIAo+ICAJLnR5cGUgPSBU WVBFQ19QT1JUX0RSUCwKPiArCS5kYXRhID0gVFlQRUNfUE9SVF9EUkQsCj4gIAkuZGVmYXVsdF9y b2xlID0gVFlQRUNfU0lOSywKPiAgfTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3R5 cGVjL3Vjc2kvdWNzaS5jIGIvZHJpdmVycy91c2IvdHlwZWMvdWNzaS91Y3NpLmMKPiBpbmRleCA2 OWQ1NDRjZmNkNDUuLmJmMDk3N2ZiZDEwMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3VzYi90eXBl Yy91Y3NpL3Vjc2kuYwo+ICsrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3Vjc2kvdWNzaS5jCj4gQEAg LTU5MiwxMSArNTkyLDE4IEBAIHN0YXRpYyBpbnQgdWNzaV9yZWdpc3Rlcl9wb3J0KHN0cnVjdCB1 Y3NpICp1Y3NpLCBpbnQgaW5kZXgpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gIAlpZiAoY29uLT5j YXAub3BfbW9kZSAmIFVDU0lfQ09OQ0FQX09QTU9ERV9EUlApCj4gLQkJY2FwLT50eXBlID0gVFlQ RUNfUE9SVF9EUlA7Cj4gKwkJY2FwLT5kYXRhID0gVFlQRUNfUE9SVF9EUkQ7Cj4gIAllbHNlIGlm IChjb24tPmNhcC5vcF9tb2RlICYgVUNTSV9DT05DQVBfT1BNT0RFX0RGUCkKPiAtCQljYXAtPnR5 cGUgPSBUWVBFQ19QT1JUX0RGUDsKPiArCQljYXAtPmRhdGEgPSBUWVBFQ19QT1JUX0RGUDsKPiAg CWVsc2UgaWYgKGNvbi0+Y2FwLm9wX21vZGUgJiBVQ1NJX0NPTkNBUF9PUE1PREVfVUZQKQo+IC0J CWNhcC0+dHlwZSA9IFRZUEVDX1BPUlRfVUZQOwo+ICsJCWNhcC0+ZGF0YSA9IFRZUEVDX1BPUlRf VUZQOwo+ICsKPiArCWlmIChjb24tPmNhcC5wcm92aWRlciAmJiBjb24tPmNhcC5jb25zdW1lcikK PiArCQljYXAtPnR5cGUgPSBUWVBFQ19QT1JUX0RSUDsKPiArCWVsc2UgaWYgKGNvbi0+Y2FwLnBy b3ZpZGVyKQo+ICsJCWNhcC0+dHlwZSA9IFRZUEVDX1BPUlRfU1JDOwo+ICsJZWxzZSBpZiAoY29u LT5jYXAuY29uc3VtZXIpCj4gKwkJY2FwLT50eXBlID0gVFlQRUNfUE9SVF9TTks7Cj4gIAo+ICAJ Y2FwLT5yZXZpc2lvbiA9IHVjc2ktPmNhcC50eXBlY192ZXJzaW9uOwo+ICAJY2FwLT5wZF9yZXZp c2lvbiA9IHVjc2ktPmNhcC5wZF92ZXJzaW9uOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L3VzYi90Y3BtLmggYi9pbmNsdWRlL2xpbnV4L3VzYi90Y3BtLmgKPiBpbmRleCBmZTM1MDhlNmUx ZGYuLmYwZDgzOWRhZWFlYSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3VzYi90Y3BtLmgK PiArKysgYi9pbmNsdWRlL2xpbnV4L3VzYi90Y3BtLmgKPiBAQCAtOTEsNiArOTEsNyBAQCBzdHJ1 Y3QgdGNwY19jb25maWcgewo+ICAJdW5zaWduZWQgaW50IG9wZXJhdGluZ19zbmtfbXc7Cj4gIAo+ ICAJZW51bSB0eXBlY19wb3J0X3R5cGUgdHlwZTsKPiArCWVudW0gdHlwZWNfcG9ydF9kYXRhIGRh dGE7Cj4gIAllbnVtIHR5cGVjX3JvbGUgZGVmYXVsdF9yb2xlOwo+ICAJYm9vbCB0cnlfcm9sZV9o dzsJLyogdHJ5LntzcmMsc25rfSBpbXBsZW1lbnRlZCBpbiBoYXJkd2FyZSAqLwo+ICAKPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC91c2IvdHlwZWMuaCBiL2luY2x1ZGUvbGludXgvdXNiL3R5 cGVjLmgKPiBpbmRleCAyNDA4ZTVjMmVkOTEuLjY3MmIzOWJiMGFkYyAxMDA2NDQKPiAtLS0gYS9p bmNsdWRlL2xpbnV4L3VzYi90eXBlYy5oCj4gKysrIGIvaW5jbHVkZS9saW51eC91c2IvdHlwZWMu aAo+IEBAIC0yMiw5ICsyMiwxNSBAQCBzdHJ1Y3QgdHlwZWNfcG9ydDsKPiAgc3RydWN0IGZ3bm9k ZV9oYW5kbGU7Cj4gIAo+ICBlbnVtIHR5cGVjX3BvcnRfdHlwZSB7Cj4gKwlUWVBFQ19QT1JUX1NS QywKPiArCVRZUEVDX1BPUlRfU05LLAo+ICsJVFlQRUNfUE9SVF9EUlAsCj4gK307Cj4gKwo+ICtl bnVtIHR5cGVjX3BvcnRfZGF0YSB7Cj4gIAlUWVBFQ19QT1JUX0RGUCwKPiAgCVRZUEVDX1BPUlRf VUZQLAo+IC0JVFlQRUNfUE9SVF9EUlAsCj4gKwlUWVBFQ19QT1JUX0RSRCwKPiAgfTsKPiAgCj4g IGVudW0gdHlwZWNfcGx1Z190eXBlIHsKPiBAQCAtMTg2LDEwICsxOTIsMTEgQEAgc3RydWN0IHR5 cGVjX3BhcnRuZXJfZGVzYyB7Cj4gIAo+ICAvKgo+ICAgKiBzdHJ1Y3QgdHlwZWNfY2FwYWJpbGl0 eSAtIFVTQiBUeXBlLUMgUG9ydCBDYXBhYmlsaXRpZXMKPiAtICogQHJvbGU6IERGUCAoSG9zdC1v bmx5KSwgVUZQIChEZXZpY2Utb25seSkgb3IgRFJQIChEdWFsIFJvbGUpCj4gKyAqIEB0eXBlOiBT dXBwb3J0ZWQgcG93ZXIgcm9sZSBvZiB0aGUgcG9ydAo+ICsgKiBAZGF0YTogU3VwcG9ydGVkIGRh dGEgcm9sZSBvZiB0aGUgcG9ydAo+ICAgKiBAcmV2aXNpb246IFVTQiBUeXBlLUMgU3BlY2lmaWNh dGlvbiByZWxlYXNlLiBCaW5hcnkgY29kZWQgZGVjaW1hbAo+ICAgKiBAcGRfcmV2aXNpb246IFVT QiBQb3dlciBEZWxpdmVyeSBTcGVjaWZpY2F0aW9uIHJldmlzaW9uIGlmIHN1cHBvcnRlZAo+IC0g KiBAcHJlZmVyX3JvbGU6IEluaXRpYWwgcm9sZSBwcmVmZXJlbmNlCj4gKyAqIEBwcmVmZXJfcm9s ZTogSW5pdGlhbCByb2xlIHByZWZlcmVuY2UgKERSUCBwb3J0cykuCj4gICAqIEBhY2Nlc3Nvcnk6 IFN1cHBvcnRlZCBBY2Nlc3NvcnkgTW9kZXMKPiAgICogQHN3OiBDYWJsZSBwbHVnIG9yaWVudGF0 aW9uIHN3aXRjaAo+ICAgKiBAbXV4OiBNdWx0aXBsZXhlciBzd2l0Y2ggZm9yIEFsdGVybmF0ZS9B Y2Nlc3NvcnkgTW9kZXMKPiBAQCAtMjA1LDYgKzIxMiw3IEBAIHN0cnVjdCB0eXBlY19wYXJ0bmVy X2Rlc2Mgewo+ICAgKi8KPiAgc3RydWN0IHR5cGVjX2NhcGFiaWxpdHkgewo+ICAJZW51bSB0eXBl Y19wb3J0X3R5cGUJdHlwZTsKPiArCWVudW0gdHlwZWNfcG9ydF9kYXRhCWRhdGE7Cj4gIAl1MTYJ CQlyZXZpc2lvbjsgLyogMDEyMEggPSAiMS4yIiAqLwo+ICAJdTE2CQkJcGRfcmV2aXNpb247IC8q IDAzMDBIID0gIjMuMCIgKi8KPiAgCWludAkJCXByZWZlcl9yb2xlOwo+IC0tIAo+IDIuMTYuMQo+ Ci0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJz Y3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZn ZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwu b3JnL21ham9yZG9tby1pbmZvLmh0bWwK