From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v3 12/23] drm/i915: Sanitize the TypeC connect/detect sequences Date: Fri, 28 Jun 2019 17:36:24 +0300 Message-ID: <20190628143635.22066-13-imre.deak@intel.com> References: <20190628143635.22066-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id F1A786E93C for ; Fri, 28 Jun 2019 14:37:06 +0000 (UTC) In-Reply-To: <20190628143635.22066-1-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org TWFrZSB0aGUgb3JkZXIgZHVyaW5nIGRldGVjdGlvbiBtb3JlIGNvbnNpc3RlbnQ6IGZpcnN0IHJl c2V0IHRoZSBUeXBlQwpwb3J0IG1vZGUgaWYgbmVlZGVkIChhZGRpbmcgbmV3IGhlbHBlcnMgZm9y IHRoaXMpLCB0aGVuIGRldGVjdCBhbnkKY29ubmVjdGVkIHNpbmsuCgpUbyBjaGVjayBpZiBhIHBv cnQgbW9kZSByZXNldCBpcyBuZWVkZWQgZGV0ZXJtaW5lIGZpcnN0IHRoZSB0YXJnZXQgcG9ydApt b2RlIGJhc2VkIG9uIHRoZSBsaXZlIHN0YXR1cyBpZiBhIHNpbmsgaXMgYWxyZWFkeSBjb25uZWN0 ZWQgb3IgdGhlClBIWSBzdGF0dXMgY29tcGxldGUgZmxhZyBvdGhlcndpc2UuCgpBZGQgYSBXQVJO IGluIGxlZ2FjeSBtb2RlIGlmIHVuZXhwZWN0ZWRseSB3ZSBjYW4ndCBzZXQgdGhlIHVuc2FmZSBt b2RlCm9yIGlmIHRoZSBGSUEgZG9lc24ndCBwcm92aWRlIHRoZSA0IGxhbmVzIHJlcXVpcmVkLgoK Q2M6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgpDYzogUm9k cmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgpDYzogUGF1bG8gWmFub25pIDxwYXVs by5yLnphbm9uaUBpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRl bC5jb20+ClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6 YUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5j IHwgOTYgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ3IGluc2Vy dGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfdGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfdGMuYwppbmRleCA5Njg1NTI1MGE1YmUuLmY2M2RkZjM5YjM2OSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYwpAQCAtMTgxLDQxICsxODEsNDMgQEAgc3RhdGljIGJv b2wgaWNsX3RjX3BoeV9zZXRfc2FmZV9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0LAogICogd2lsbCByZXF1aXJlIGEgbG90IG9mIGNvb3JkaW5hdGlvbiB3aXRoIHVzZXIg c3BhY2UgYW5kIHRob3JvdWdoIHRlc3RpbmcgZm9yCiAgKiB0aGUgZXh0cmEgcG9zc2libGUgY2Fz ZXMuCiAgKi8KLXN0YXRpYyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCkKK3N0YXRpYyB2b2lkIGljbF90Y19waHlfY29ubmVjdChzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIHsKLQl1MzIgbGl2ZV9zdGF0dXNfbWFz azsKLQotCWlmIChkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX0xFR0FDWSAmJgotCSAgICBk aWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX0RQX0FMVCkKLQkJcmV0dXJuIHRydWU7Ci0KIAlp ZiAoIWljbF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSkgewogCQlEUk1fREVCVUdf S01TKCJQb3J0ICVzOiBQSFkgbm90IHJlYWR5XG4iLAogCQkJICAgICAgZGlnX3BvcnQtPnRjX3Bv cnRfbmFtZSk7Ci0JCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKLQkJcmV0dXJu IGZhbHNlOworCQlnb3RvIG91dF9zZXRfdGJ0X2FsdF9tb2RlOwogCX0KIAotCWlmICghaWNsX3Rj X3BoeV9zZXRfc2FmZV9tb2RlKGRpZ19wb3J0LCBmYWxzZSkpCi0JCXJldHVybiBmYWxzZTsKKwlp ZiAoIWljbF90Y19waHlfc2V0X3NhZmVfbW9kZShkaWdfcG9ydCwgZmFsc2UpICYmCisJICAgICFX QVJOX09OKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkpCisJCWdvdG8gb3V0X3NldF90YnRfYWx0 X21vZGU7CiAKLQlpZiAoZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9MRUdBQ1kpCi0JCXJl dHVybiB0cnVlOworCWlmIChkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpIHsKKwkJV0FSTl9PTihp bnRlbF90Y19wb3J0X2ZpYV9tYXhfbGFuZV9jb3VudChkaWdfcG9ydCkgIT0gNCk7CisJCWRpZ19w b3J0LT50Y19tb2RlID0gVENfUE9SVF9MRUdBQ1k7CiAKLQlsaXZlX3N0YXR1c19tYXNrID0gdGNf cG9ydF9saXZlX3N0YXR1c19tYXNrKGRpZ19wb3J0KTsKKwkJcmV0dXJuOworCX0KIAogCS8qCiAJ ICogTm93IHdlIGhhdmUgdG8gcmUtY2hlY2sgdGhlIGxpdmUgc3RhdGUsIGluIGNhc2UgdGhlIHBv cnQgcmVjZW50bHkKIAkgKiBiZWNhbWUgZGlzY29ubmVjdGVkLiBOb3QgbmVjZXNzYXJ5IGZvciBs ZWdhY3kgbW9kZS4KIAkgKi8KLQlpZiAoIShsaXZlX3N0YXR1c19tYXNrICYgQklUKFRDX1BPUlRf RFBfQUxUKSkpIHsKKwlpZiAoISh0Y19wb3J0X2xpdmVfc3RhdHVzX21hc2soZGlnX3BvcnQpICYg QklUKFRDX1BPUlRfRFBfQUxUKSkpIHsKIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIHN1 ZGRlbiBkaXNjb25uZWN0XG4iLAogCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7Ci0J CWljbF90Y19waHlfZGlzY29ubmVjdChkaWdfcG9ydCk7Ci0JCXJldHVybiBmYWxzZTsKKwkJZ290 byBvdXRfc2V0X3NhZmVfbW9kZTsKIAl9CiAKLQlyZXR1cm4gdHJ1ZTsKKwlkaWdfcG9ydC0+dGNf bW9kZSA9IFRDX1BPUlRfRFBfQUxUOworCisJcmV0dXJuOworCitvdXRfc2V0X3NhZmVfbW9kZToK KwlpY2xfdGNfcGh5X3NldF9zYWZlX21vZGUoZGlnX3BvcnQsIHRydWUpOworb3V0X3NldF90YnRf YWx0X21vZGU6CisJZGlnX3BvcnQtPnRjX21vZGUgPSBUQ19QT1JUX1RCVF9BTFQ7CiB9CiAKIC8q CkBAIC0yMzYsMjcgKzIzOCwzNyBAQCB2b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0Uo ZGlnX3BvcnQtPnRjX21vZGUpOwogCX0KK30KIAotCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IG1v ZGUgJXMgZGlzY29ubmVjdGVkXG4iLAotCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLAot CQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShkaWdfcG9ydC0+dGNfbW9kZSkpOworc3RhdGljIGVu dW0gdGNfcG9ydF9tb2RlCitpbnRlbF90Y19wb3J0X2dldF90YXJnZXRfbW9kZShzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwl1MzIgbGl2ZV9zdGF0dXNfbWFzayA9IHRj X3BvcnRfbGl2ZV9zdGF0dXNfbWFzayhkaWdfcG9ydCk7CisKKwlpZiAobGl2ZV9zdGF0dXNfbWFz aykKKwkJcmV0dXJuIGZscyhsaXZlX3N0YXR1c19tYXNrKSAtIDE7CisKKwlyZXR1cm4gaWNsX3Rj X3BoeV9zdGF0dXNfY29tcGxldGUoZGlnX3BvcnQpICYmCisJICAgICAgIGRpZ19wb3J0LT50Y19s ZWdhY3lfcG9ydCA/IFRDX1BPUlRfTEVHQUNZIDoKKwkJCQkJICBUQ19QT1JUX1RCVF9BTFQ7CiB9 CiAKLXN0YXRpYyB2b2lkIGljbF91cGRhdGVfdGNfcG9ydF90eXBlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsCi0JCQkJICAgIHUzMiBsaXZlX3N0YXR1c19tYXNrKQorc3RhdGljIHZvaWQg aW50ZWxfdGNfcG9ydF9yZXNldF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0KQogewotCWVudW0gdGNfcG9ydF9tb2RlIG9sZF9tb2RlID0gaW50ZWxfZGlnX3BvcnQtPnRj X21vZGU7CisJZW51bSB0Y19wb3J0X21vZGUgb2xkX3RjX21vZGUgPSBkaWdfcG9ydC0+dGNfbW9k ZTsKIAotCWlmICghbGl2ZV9zdGF0dXNfbWFzaykKLQkJcmV0dXJuOworCWljbF90Y19waHlfZGlz Y29ubmVjdChkaWdfcG9ydCk7CisJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0KTsKIAotCWlu dGVsX2RpZ19wb3J0LT50Y19tb2RlID0gZmxzKGxpdmVfc3RhdHVzX21hc2spIC0gMTsKKwlEUk1f REVCVUdfS01TKCJQb3J0ICVzOiBUQyBwb3J0IG1vZGUgcmVzZXQgKCVzIC0+ICVzKVxuIiwKKwkJ ICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSwKKwkJICAgICAgdGNfcG9ydF9tb2RlX25hbWUo b2xkX3RjX21vZGUpLAorCQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShkaWdfcG9ydC0+dGNfbW9k ZSkpOworfQogCi0JaWYgKG9sZF9tb2RlICE9IGludGVsX2RpZ19wb3J0LT50Y19tb2RlKQotCQlE Uk1fREVCVUdfS01TKCJQb3J0ICVzOiBwb3J0IGhhcyBtb2RlICVzXG4iLAotCQkJICAgICAgaW50 ZWxfZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSwKLQkJCSAgICAgIHRjX3BvcnRfbW9kZV9uYW1lKGlu dGVsX2RpZ19wb3J0LT50Y19tb2RlKSk7CitzdGF0aWMgYm9vbCBpbnRlbF90Y19wb3J0X25lZWRz X3Jlc2V0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCXJldHVybiBp bnRlbF90Y19wb3J0X2dldF90YXJnZXRfbW9kZShkaWdfcG9ydCkgIT0gZGlnX3BvcnQtPnRjX21v ZGU7CiB9CiAKIC8qCkBAIC0yNzEsMjQgKzI4MywxMCBAQCBzdGF0aWMgdm9pZCBpY2xfdXBkYXRl X3RjX3BvcnRfdHlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKi8KIGJv b2wgaW50ZWxfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk aWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Ci0JdTMyIGxpdmVfc3RhdHVzX21hc2sgPSB0Y19wb3J0 X2xpdmVfc3RhdHVzX21hc2soZGlnX3BvcnQpOwotCi0JLyoKLQkgKiBUaGUgc3BlYyBzYXlzIHdl IHNob3VsZG4ndCBiZSB1c2luZyB0aGUgSVNSIGJpdHMgZm9yIGRldGVjdGluZwotCSAqIGJldHdl ZW4gVEMgYW5kIFRCVC4gV2Ugc2hvdWxkIHVzZSBERkxFWERQU1AuCi0JICovCi0JaWYgKCFsaXZl X3N0YXR1c19tYXNrICYmICFkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpIHsKLQkJaWNsX3RjX3Bo eV9kaXNjb25uZWN0KGRpZ19wb3J0KTsKLQotCQlyZXR1cm4gZmFsc2U7Ci0JfQotCi0JaWNsX3Vw ZGF0ZV90Y19wb3J0X3R5cGUoZGV2X3ByaXYsIGRpZ19wb3J0LCBsaXZlX3N0YXR1c19tYXNrKTsK LQlpZiAoIWljbF90Y19waHlfY29ubmVjdChkaWdfcG9ydCkpCi0JCXJldHVybiBmYWxzZTsKKwlp ZiAoaW50ZWxfdGNfcG9ydF9uZWVkc19yZXNldChkaWdfcG9ydCkpCisJCWludGVsX3RjX3BvcnRf cmVzZXRfbW9kZShkaWdfcG9ydCk7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gdGNfcG9ydF9s aXZlX3N0YXR1c19tYXNrKGRpZ19wb3J0KSAmIEJJVChkaWdfcG9ydC0+dGNfbW9kZSk7CiB9CiAK IHZvaWQgaW50ZWxfdGNfcG9ydF9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0LCBib29sIGlzX2xlZ2FjeSkKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4