Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v3] usb: typec: tcpm: Extend the matching rules on PPS APDO selection From: Kyle Tso Message-Id: <20181217132213.91566-1-kyletso@google.com> Date: Mon, 17 Dec 2018 21:22:13 +0800 To: linux@roeck-us.net, heikki.krogerus@linux.intel.com, gregkh@linuxfoundation.org, Adam.Thomson.Opensource@diasemi.com Cc: badhri@google.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Kyle Tso List-ID: Q3VycmVudCBtYXRjaGluZyBydWxlcyBlbnN1cmUgdGhhdCB0aGUgdm9sdGFnZSByYW5nZSBvZiBz ZWxlY3RlZCBTb3VyY2UKQ2FwYWJpbGl0eSBpcyBlbnRpcmVseSB3aXRoaW4gdGhlIHJhbmdlIGRl ZmluZWQgaW4gb25lIG9mIHRoZSBTaW5rCkNhcGFiaWxpdGllcy4gVGhpcyBpcyByZWFzb25hYmxl IGJ1dCBub3QgcHJhY3RpY2FsIGJlY2F1c2UgU2luayBtYXkgbm90CnN1cHBvcnQgd2lkZSByYW5n ZSBvZiB2b2x0YWdlIHdoZW4gc2lua2luZyBwb3dlciB3aGlsZSBTb3VyY2UgY291bGQKYWR2ZXJ0 aXNlIGl0cyBjYXBhYmlsaXRpZXMgaW4gcmVsYXRpdmVseSB3aWRlciByYW5nZS4gRm9yIGV4YW1w bGUsIGEKU291cmNlIFBETyBhZHZlcnRpc2luZyAzLjNWLTExVkAzQSAoOVYgUHJvZyBvZiBGaXhl ZCBOb21pbmFsIFZvbHRhZ2UpCndpbGwgbm90IGJlIHNlbGVjdGVkIGlmIHRoZSBTaW5rIHJlcXVp cmVzIDVWLTEyVkAzQSBQUFMgcG93ZXIuIEhvd2V2ZXIsCnRoZSBTaW5rIGNvdWxkIHdvcmsgd2Vs bCBpZiB0aGUgcmVxdWVzdGVkIHZvbHRhZ2UgcmFuZ2UgaW4gUkRPcyBpcwo1Vi0xMVZAM0EuCgpD dXJyZW50bHkgYWNjZXB0ZWQ6CgkJfC0tLS0tLS0tLSBzb3VyY2UgLS0tLS18Cgl8LS0tLS0tLS0t LS0gc2luayAtLS0tLS0tLS0tLS0tLS18CgpDdXJyZW50bHkgbm90IGFjY2VwdGVkOgoJCQl8LS0t LS0tLS0tIHNvdXJjZSAtLS0tLXwKCXwtLS0tLS0tLS0tLSBzaW5rIC0tLS0tLS0tLS0tLS0tLXwK Cgl8LS0tLS0tLS0tIHNvdXJjZSAtLS0tLXwKCQl8LS0tLS0tLS0tLS0gc2luayAtLS0tLS0tLS0t LS0tLS18CgoJfC0tLS0tLS0tLSBzb3VyY2UgLS0tLS0tLS0tLS0tLS0tLS18CgkJfC0tLS0tLSBz aW5rIC0tLS0tLS18CgpUbyBpbXByb3ZlIHRoZSB1c2FiaWxpdHksIGNoYW5nZSB0aGUgbWF0Y2hp bmcgcnVsZXMgdG8gd2hhdCBsaXN0ZWQKYmVsb3c6CmEuIFRoZSBTb3VyY2UgUERPIGlzIHNlbGVj dGFibGUgaWYgYW55IHBvcnRpb24gb2YgdGhlIHZvbHRhZ2UgcmFuZ2UKICAgb3ZlcmxhcHMgb25l IG9mIHRoZSBTaW5rIFBETydzIHZvbHRhZ2UgcmFuZ2UuCmIuIFRoZSBtYXhpbXVtIG9wZXJhdGlv bmFsIHZvbHRhZ2Ugd2lsbCBiZSB0aGUgbG93ZXIgb25lIGJldHdlZW4gdGhlCiAgIHNlbGVjdGVk IFNvdXJjZSBQRE8gYW5kIHRoZSBtYXRjaGluZyBTaW5rIFBETy4KYy4gVGhlIG1heGltdW0gcG93 ZXIgd2lsbCBiZSB0aGUgbWF4aW11bSBvcGVyYXRpb25hbCB2b2x0YWdlIHRpbWVzIHRoZQogICBt YXhpbXVtIGN1cnJlbnQgZGVmaW5lZCBpbiB0aGUgc2VsZWN0ZWQgU291cmNlIFBETwpkLiBTZWxl Y3QgdGhlIFNvdXJjZSBQRE8gd2l0aCB0aGUgaGlnaGVzdCBtYXhpbXVtIHBvd2VyCgpTaWduZWQt b2ZmLWJ5OiBLeWxlIFRzbyA8a3lsZXRzb0Bnb29nbGUuY29tPgotLS0KQ2hhbmdlbG9nIHNpbmNl IHYxOgotIHVwZGF0ZWQgdGhlIGNvbW1pdCBtZXNzYWdlIGFzIHN1Z2dlc3RlZCBieSBHdWVudGVy IFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+CgpDaGFuZ2Vsb2cgc2luY2UgdjI6Ci0gZml4ZWQg dGhlIGNvZGluZyBzdHlsZSBwcm9ibGVtcyBhcyBzdWdnZXN0ZWQgYnkgSGVpa2tpIEtyb2dlcnVz CiAgPGhlaWtraS5rcm9nZXJ1c0BsaW51eC5pbnRlbC5jb20+Ci0gQ29ycmVjdGVkIGEgd3Jvbmcg d29yZCBpbiB0aGUgY29tbWl0IG1lc3NhZ2UgYXMgc3VnZ2VzdGVkIGJ5IEFkYW0gVGhvbXNvbgog IDxBZGFtLlRob21zb24uT3BlbnNvdXJjZUBkaWFzZW1pLmNvbT4KLS0tCiBkcml2ZXJzL3VzYi90 eXBlYy90Y3BtL3RjcG0uYyB8IDM1ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvdHlwZWMvdGNwbS90Y3BtLmMgYi9kcml2ZXJzL3VzYi90eXBl Yy90Y3BtL3RjcG0uYwppbmRleCAzNjIwZWZlZTI2ODguLjRiYzI5YjU4NjY5OCAxMDA2NDQKLS0t IGEvZHJpdmVycy91c2IvdHlwZWMvdGNwbS90Y3BtLmMKKysrIGIvZHJpdmVycy91c2IvdHlwZWMv dGNwbS90Y3BtLmMKQEAgLTIyMTMsNyArMjIxMyw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGNw bV9wZF9zZWxlY3RfcHBzX2FwZG8oc3RydWN0IHRjcG1fcG9ydCAqcG9ydCkKIAl1bnNpZ25lZCBp bnQgaSwgaiwgbWF4X213ID0gMCwgbWF4X212ID0gMDsKIAl1bnNpZ25lZCBpbnQgbWluX3NyY19t diwgbWF4X3NyY19tdiwgc3JjX21hLCBzcmNfbXc7CiAJdW5zaWduZWQgaW50IG1pbl9zbmtfbXYs IG1heF9zbmtfbXY7Ci0JdTMyIHBkbzsKKwl1bnNpZ25lZCBpbnQgbWF4X29wX212OworCXUzMiBw ZG8sIHNyYywgc25rOwogCXVuc2lnbmVkIGludCBzcmNfcGRvID0gMCwgc25rX3BkbyA9IDA7CiAK IAkvKgpAQCAtMjI2MywxNiArMjI2NCwxOCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRjcG1fcGRf c2VsZWN0X3Bwc19hcGRvKHN0cnVjdCB0Y3BtX3BvcnQgKnBvcnQpCiAJCQkJCWNvbnRpbnVlOwog CQkJCX0KIAotCQkJCWlmIChtYXhfc3JjX212IDw9IG1heF9zbmtfbXYgJiYKLQkJCQkgICAgbWlu X3NyY19tdiA+PSBtaW5fc25rX212KSB7CisJCQkJaWYgKG1pbl9zcmNfbXYgPD0gbWF4X3Nua19t diAmJgorCQkJCSAgICBtYXhfc3JjX212ID49IG1pbl9zbmtfbXYpIHsKKwkJCQkJbWF4X29wX212 ID0gbWluKG1heF9zcmNfbXYsIG1heF9zbmtfbXYpOworCQkJCQlzcmNfbXcgPSAobWF4X29wX212 ICogc3JjX21hKSAvIDEwMDA7CiAJCQkJCS8qIFByZWZlciBoaWdoZXIgdm9sdGFnZXMgaWYgYXZh aWxhYmxlICovCiAJCQkJCWlmICgoc3JjX213ID09IG1heF9tdyAmJgotCQkJCQkgICAgIG1pbl9z cmNfbXYgPiBtYXhfbXYpIHx8CisJCQkJCSAgICAgbWF4X29wX212ID4gbWF4X212KSB8fAogCQkJ CQkgICAgc3JjX213ID4gbWF4X213KSB7CiAJCQkJCQlzcmNfcGRvID0gaTsKIAkJCQkJCXNua19w ZG8gPSBqOwogCQkJCQkJbWF4X213ID0gc3JjX213OwotCQkJCQkJbWF4X212ID0gbWF4X3NyY19t djsKKwkJCQkJCW1heF9tdiA9IG1heF9vcF9tdjsKIAkJCQkJfQogCQkJCX0KIAkJCX0KQEAgLTIy ODUsMTYgKzIyODgsMTggQEAgc3RhdGljIHVuc2lnbmVkIGludCB0Y3BtX3BkX3NlbGVjdF9wcHNf YXBkbyhzdHJ1Y3QgdGNwbV9wb3J0ICpwb3J0KQogCX0KIAogCWlmIChzcmNfcGRvKSB7Ci0JCXBk byA9IHBvcnQtPnNvdXJjZV9jYXBzW3NyY19wZG9dOwotCi0JCXBvcnQtPnBwc19kYXRhLm1pbl92 b2x0ID0gcGRvX3Bwc19hcGRvX21pbl92b2x0YWdlKHBkbyk7Ci0JCXBvcnQtPnBwc19kYXRhLm1h eF92b2x0ID0gcGRvX3Bwc19hcGRvX21heF92b2x0YWdlKHBkbyk7Ci0JCXBvcnQtPnBwc19kYXRh Lm1heF9jdXJyID0KLQkJCW1pbl9wcHNfYXBkb19jdXJyZW50KHBkbywgcG9ydC0+c25rX3Bkb1tz bmtfcGRvXSk7Ci0JCXBvcnQtPnBwc19kYXRhLm91dF92b2x0ID0KLQkJCW1pbihwZG9fcHBzX2Fw ZG9fbWF4X3ZvbHRhZ2UocGRvKSwgcG9ydC0+cHBzX2RhdGEub3V0X3ZvbHQpOwotCQlwb3J0LT5w cHNfZGF0YS5vcF9jdXJyID0KLQkJCW1pbihwb3J0LT5wcHNfZGF0YS5tYXhfY3VyciwgcG9ydC0+ cHBzX2RhdGEub3BfY3Vycik7CisJCXNyYyA9IHBvcnQtPnNvdXJjZV9jYXBzW3NyY19wZG9dOwor CQlzbmsgPSBwb3J0LT5zbmtfcGRvW3Nua19wZG9dOworCisJCXBvcnQtPnBwc19kYXRhLm1pbl92 b2x0ID0gbWF4KHBkb19wcHNfYXBkb19taW5fdm9sdGFnZShzcmMpLAorCQkJCQkgICAgICBwZG9f cHBzX2FwZG9fbWluX3ZvbHRhZ2Uoc25rKSk7CisJCXBvcnQtPnBwc19kYXRhLm1heF92b2x0ID0g bWluKHBkb19wcHNfYXBkb19tYXhfdm9sdGFnZShzcmMpLAorCQkJCQkgICAgICBwZG9fcHBzX2Fw ZG9fbWF4X3ZvbHRhZ2Uoc25rKSk7CisJCXBvcnQtPnBwc19kYXRhLm1heF9jdXJyID0gbWluX3Bw c19hcGRvX2N1cnJlbnQoc3JjLCBzbmspOworCQlwb3J0LT5wcHNfZGF0YS5vdXRfdm9sdCA9IG1p bihwb3J0LT5wcHNfZGF0YS5tYXhfdm9sdCwKKwkJCQkJICAgICAgcG9ydC0+cHBzX2RhdGEub3V0 X3ZvbHQpOworCQlwb3J0LT5wcHNfZGF0YS5vcF9jdXJyID0gbWluKHBvcnQtPnBwc19kYXRhLm1h eF9jdXJyLAorCQkJCQkgICAgIHBvcnQtPnBwc19kYXRhLm9wX2N1cnIpOwogCX0KIAogCXJldHVy biBzcmNfcGRvOwo=