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: tcpm: Extend the matching rules on PPS APDO selection From: Heikki Krogerus Message-Id: <20181217113551.GA14121@kuha.fi.intel.com> Date: Mon, 17 Dec 2018 13:35:51 +0200 To: Kyle Tso Cc: linux@roeck-us.net, gregkh@linuxfoundation.org, Adam.Thomson.Opensource@diasemi.com, badhri@google.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gTW9uLCBEZWMgMTcsIDIwMTggYXQgMTA6NDg6MDVBTSArMDgwMCwgS3lsZSBUc28gd3JvdGU6 Cj4gQ3VycmVudCBtYXRjaGluZyBydWxlcyBlbnN1cmUgdGhhdCB0aGUgdm9sdGFnZSByYW5nZSBv ZiBzZWxlY3RlZCBTb3VyY2UKPiBDYXBhYmlsaXR5IGlzIGVudGlyZWx5IHdpdGhpbiB0aGUgcmFu Z2UgZGVmaW5lZCBpbiBvbmUgb2YgdGhlIFNpbmsKPiBDYXBhYmlsaXRpZXMuIFRoaXMgaXMgcmVh c29uYWJsZSBidXQgbm90IHByYWN0aWNhbCBiZWNhdXNlIFNpbmsgbWF5IG5vdAo+IHN1cHBvcnQg d2lkZSByYW5nZSBvZiB2b2x0YWdlIHdoZW4gc2lua2luZyBwb3dlciB3aGlsZSBTb3VyY2UgY291 bGQKPiBhZHZlcnRpc2UgaXRzIGNhcGFiaWxpdGllcyBpbiByYWxldGl2ZWx5IHdpZGVyIHJhbmdl LiBGb3IgZXhhbXBsZSwgYQo+IFNvdXJjZSBQRE8gYWR2ZXJ0aXNpbmcgMy4zVi0xMVZAM0EgKDlW IFByb2cgb2YgRml4ZWQgTm9taW5hbCBWb2x0YWdlKQo+IHdpbGwgbm90IGJlIHNlbGVjdGVkIGlm IHRoZSBTaW5rIHJlcXVpcmVzIDVWLTEyVkAzQSBQUFMgcG93ZXIuIEhvd2V2ZXIsCj4gdGhlIFNp bmsgY291bGQgd29yayB3ZWxsIGlmIHRoZSByZXF1ZXN0ZWQgdm9sdGFnZSByYW5nZSBpbiBSRE9z IGlzCj4gNVYtMTFWQDNBLgo+IAo+IEN1cnJlbnRseSBhY2NlcHRlZDoKPiAJCXwtLS0tLS0tLS0g c291cmNlIC0tLS0tfAo+IAl8LS0tLS0tLS0tLS0gc2luayAtLS0tLS0tLS0tLS0tLS18Cj4gCj4g Q3VycmVudGx5IG5vdCBhY2NlcHRlZDoKPiAJCQl8LS0tLS0tLS0tIHNvdXJjZSAtLS0tLXwKPiAJ fC0tLS0tLS0tLS0tIHNpbmsgLS0tLS0tLS0tLS0tLS0tfAo+IAo+IAl8LS0tLS0tLS0tIHNvdXJj ZSAtLS0tLXwKPiAJCXwtLS0tLS0tLS0tLSBzaW5rIC0tLS0tLS0tLS0tLS0tLXwKPiAKPiAJfC0t LS0tLS0tLSBzb3VyY2UgLS0tLS0tLS0tLS0tLS0tLS18Cj4gCQl8LS0tLS0tIHNpbmsgLS0tLS0t LXwKPiAKPiBUbyBpbXByb3ZlIHRoZSB1c2FiaWxpdHksIGNoYW5nZSB0aGUgbWF0Y2hpbmcgcnVs ZXMgdG8gd2hhdCBsaXN0ZWQKPiBiZWxvdzoKPiBhLiBUaGUgU291cmNlIFBETyBpcyBzZWxlY3Rh YmxlIGlmIGFueSBwb3J0aW9uIG9mIHRoZSB2b2x0YWdlIHJhbmdlCj4gICAgb3ZlcmxhcHMgb25l IG9mIHRoZSBTaW5rIFBETydzIHZvbHRhZ2UgcmFuZ2UuCj4gYi4gVGhlIG1heGltdW0gb3BlcmF0 aW9uYWwgdm9sdGFnZSB3aWxsIGJlIHRoZSBsb3dlciBvbmUgYmV0d2VlbiB0aGUKPiAgICBzZWxl Y3RlZCBTb3VyY2UgUERPIGFuZCB0aGUgbWF0Y2hpbmcgU2luayBQRE8uCj4gYy4gVGhlIG1heGlt dW0gcG93ZXIgd2lsbCBiZSB0aGUgbWF4aW11bSBvcGVyYXRpb25hbCB2b2x0YWdlIHRpbWVzIHRo ZQo+ICAgIG1heGltdW0gY3VycmVudCBkZWZpbmVkIGluIHRoZSBzZWxlY3RlZCBTb3VyY2UgUERP Cj4gZC4gU2VsZWN0IHRoZSBTb3VyY2UgUERPIHdpdGggdGhlIGhpZ2hlc3QgbWF4aW11bSBwb3dl cgo+IAo+IFNpZ25lZC1vZmYtYnk6IEt5bGUgVHNvIDxreWxldHNvQGdvb2dsZS5jb20+CgpSZXZp ZXdlZC1ieTogSGVpa2tpIEtyb2dlcnVzIDxoZWlra2kua3JvZ2VydXNAbGludXguaW50ZWwuY29t PgoKSW4gY2FzZSB5b3UnbGwgZG8gb25lIG1vcmUgdmVyc2lvbiwgSSBoYXZlIGEgbWlub3IgY29t bWVudCBhYm91dCB0aGUKc3R5bGUgYmVsb3csIGJ1dCBubyBuZWVkIHRvIHJlc2VuZCBvbmx5IGJl Y2F1c2Ugb2YgdGhhdC4KCj4gLS0tCj4gQ2hhbmdlbG9nIHNpbmNlIHYxOgo+IC0gdXBkYXRlZCB0 aGUgY29tbWl0IG1lc3NhZ2UgYXMgc3VnZ2VzdGVkIGJ5IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJv ZWNrLXVzLm5ldD4KPiAtLS0KPiAgZHJpdmVycy91c2IvdHlwZWMvdGNwbS90Y3BtLmMgfCAyOSAr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0 aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3R5 cGVjL3RjcG0vdGNwbS5jIGIvZHJpdmVycy91c2IvdHlwZWMvdGNwbS90Y3BtLmMKPiBpbmRleCAz NjIwZWZlZTI2ODguLjMwMDFkZjdiZDYwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3VzYi90eXBl Yy90Y3BtL3RjcG0uYwo+ICsrKyBiL2RyaXZlcnMvdXNiL3R5cGVjL3RjcG0vdGNwbS5jCj4gQEAg LTIyMTMsNyArMjIxMyw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGNwbV9wZF9zZWxlY3RfcHBz X2FwZG8oc3RydWN0IHRjcG1fcG9ydCAqcG9ydCkKPiAgCXVuc2lnbmVkIGludCBpLCBqLCBtYXhf bXcgPSAwLCBtYXhfbXYgPSAwOwo+ICAJdW5zaWduZWQgaW50IG1pbl9zcmNfbXYsIG1heF9zcmNf bXYsIHNyY19tYSwgc3JjX213Owo+ICAJdW5zaWduZWQgaW50IG1pbl9zbmtfbXYsIG1heF9zbmtf bXY7Cj4gLQl1MzIgcGRvOwo+ICsJdW5zaWduZWQgaW50IG1heF9vcF9tdjsKPiArCXUzMiBwZG8s IHNyYywgc25rOwo+ICAJdW5zaWduZWQgaW50IHNyY19wZG8gPSAwLCBzbmtfcGRvID0gMDsKPiAg Cj4gIAkvKgo+IEBAIC0yMjYzLDE2ICsyMjY0LDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGNw bV9wZF9zZWxlY3RfcHBzX2FwZG8oc3RydWN0IHRjcG1fcG9ydCAqcG9ydCkKPiAgCQkJCQljb250 aW51ZTsKPiAgCQkJCX0KPiAgCj4gLQkJCQlpZiAobWF4X3NyY19tdiA8PSBtYXhfc25rX212ICYm Cj4gLQkJCQkgICAgbWluX3NyY19tdiA+PSBtaW5fc25rX212KSB7Cj4gKwkJCQlpZiAobWluX3Ny Y19tdiA8PSBtYXhfc25rX212ICYmCj4gKwkJCQkgICAgbWF4X3NyY19tdiA+PSBtaW5fc25rX212 KSB7Cj4gKwkJCQkJbWF4X29wX212ID0gbWluKG1heF9zcmNfbXYsIG1heF9zbmtfbXYpOwo+ICsJ CQkJCXNyY19tdyA9IChtYXhfb3BfbXYgKiBzcmNfbWEpIC8gMTAwMDsKPiAgCQkJCQkvKiBQcmVm ZXIgaGlnaGVyIHZvbHRhZ2VzIGlmIGF2YWlsYWJsZSAqLwo+ICAJCQkJCWlmICgoc3JjX213ID09 IG1heF9tdyAmJgo+IC0JCQkJCSAgICAgbWluX3NyY19tdiA+IG1heF9tdikgfHwKPiArCQkJCQkg ICAgIG1heF9vcF9tdiA+IG1heF9tdikgfHwKPiAgCQkJCQkgICAgc3JjX213ID4gbWF4X213KSB7 Cj4gIAkJCQkJCXNyY19wZG8gPSBpOwo+ICAJCQkJCQlzbmtfcGRvID0gajsKPiAgCQkJCQkJbWF4 X213ID0gc3JjX213Owo+IC0JCQkJCQltYXhfbXYgPSBtYXhfc3JjX212Owo+ICsJCQkJCQltYXhf bXYgPSBtYXhfb3BfbXY7Cj4gIAkJCQkJfQo+ICAJCQkJfQo+ICAJCQl9Cj4gQEAgLTIyODUsMTQg KzIyODgsMTYgQEAgc3RhdGljIHVuc2lnbmVkIGludCB0Y3BtX3BkX3NlbGVjdF9wcHNfYXBkbyhz dHJ1Y3QgdGNwbV9wb3J0ICpwb3J0KQo+ICAJfQo+ICAKPiAgCWlmIChzcmNfcGRvKSB7Cj4gLQkJ cGRvID0gcG9ydC0+c291cmNlX2NhcHNbc3JjX3Bkb107Cj4gLQo+IC0JCXBvcnQtPnBwc19kYXRh Lm1pbl92b2x0ID0gcGRvX3Bwc19hcGRvX21pbl92b2x0YWdlKHBkbyk7Cj4gLQkJcG9ydC0+cHBz X2RhdGEubWF4X3ZvbHQgPSBwZG9fcHBzX2FwZG9fbWF4X3ZvbHRhZ2UocGRvKTsKPiAtCQlwb3J0 LT5wcHNfZGF0YS5tYXhfY3VyciA9Cj4gLQkJCW1pbl9wcHNfYXBkb19jdXJyZW50KHBkbywgcG9y dC0+c25rX3Bkb1tzbmtfcGRvXSk7Cj4gKwkJc3JjID0gcG9ydC0+c291cmNlX2NhcHNbc3JjX3Bk b107Cj4gKwkJc25rID0gcG9ydC0+c25rX3Bkb1tzbmtfcGRvXTsKPiArCj4gKwkJcG9ydC0+cHBz X2RhdGEubWluX3ZvbHQgPSBtYXgocGRvX3Bwc19hcGRvX21pbl92b2x0YWdlKHNyYyksCj4gKwkJ CQkJICAgICAgcGRvX3Bwc19hcGRvX21pbl92b2x0YWdlKHNuaykpOwo+ICsJCXBvcnQtPnBwc19k YXRhLm1heF92b2x0ID0gbWluKHBkb19wcHNfYXBkb19tYXhfdm9sdGFnZShzcmMpLAo+ICsJCQkJ CSAgICAgIHBkb19wcHNfYXBkb19tYXhfdm9sdGFnZShzbmspKTsKPiArCQlwb3J0LT5wcHNfZGF0 YS5tYXhfY3VyciA9IG1pbl9wcHNfYXBkb19jdXJyZW50KHNyYywgc25rKTsKPiAgCQlwb3J0LT5w cHNfZGF0YS5vdXRfdm9sdCA9Cj4gLQkJCW1pbihwZG9fcHBzX2FwZG9fbWF4X3ZvbHRhZ2UocGRv KSwgcG9ydC0+cHBzX2RhdGEub3V0X3ZvbHQpOwo+ICsJCQltaW4ocG9ydC0+cHBzX2RhdGEubWF4 X3ZvbHQsIHBvcnQtPnBwc19kYXRhLm91dF92b2x0KTsKCldoaWxlIGhlcmUsIHlvdSBjb3VsZCBo YXZlIGFsaWduZWQgdGhhdCBsaWtlIHRoZSBhYm92ZSBsaW5lczoKCglwb3J0LT5wcHNfZGF0YS5v dXRfdm9sdCA9IG1pbihwZG9fcHBzX2FwZG9fbWF4X3ZvbHRhZ2UocGRvKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LT5wcHNfZGF0YS5vdXRfdm9sdCk7Cgo+ICAJ CXBvcnQtPnBwc19kYXRhLm9wX2N1cnIgPQo+ICAJCQltaW4ocG9ydC0+cHBzX2RhdGEubWF4X2N1 cnIsIHBvcnQtPnBwc19kYXRhLm9wX2N1cnIpOwo+ICAJfQo+IC0tIAo+IDIuMjAuMC40MDUuZ2Jj MWJiYzZmODUtZ29vZwoKdGhhbmtzLAo=