From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 12/23] drm/i915: Sanitize the TypeC connect/detect sequences Date: Thu, 20 Jun 2019 17:05:49 +0300 Message-ID: <20190620140600.11357-13-imre.deak@intel.com> References: <20190620140600.11357-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 53C446E595 for ; Thu, 20 Jun 2019 14:06:26 +0000 (UTC) In-Reply-To: <20190620140600.11357-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+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jIHwgOTYg KysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMo KyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfdGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMu YwppbmRleCBmZmZlNGM0YTY2MDIuLmVkMjI1M2IyMWIwOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfdGMuYwpAQCAtMTcyLDQxICsxNzIsNDMgQEAgc3RhdGljIGJvb2wgaWNs X3RjX3BoeV9zZXRfc2FmZV9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 LAogICogd2lsbCByZXF1aXJlIGEgbG90IG9mIGNvb3JkaW5hdGlvbiB3aXRoIHVzZXIgc3BhY2Ug YW5kIHRob3JvdWdoIHRlc3RpbmcgZm9yCiAgKiB0aGUgZXh0cmEgcG9zc2libGUgY2FzZXMuCiAg Ki8KLXN0YXRpYyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCkKK3N0YXRpYyB2b2lkIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIHsKLQl1MzIgbGl2ZV9zdGF0dXNfbWFzazsKLQot CWlmIChkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX0xFR0FDWSAmJgotCSAgICBkaWdfcG9y dC0+dGNfbW9kZSAhPSBUQ19QT1JUX0RQX0FMVCkKLQkJcmV0dXJuIHRydWU7Ci0KIAlpZiAoIWlj bF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSkgewogCQlEUk1fREVCVUdfS01TKCJQ b3J0ICVzOiBQSFkgbm90IHJlYWR5XG4iLAogCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFt ZSk7Ci0JCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKLQkJcmV0dXJuIGZhbHNl OworCQlnb3RvIG91dF9zZXRfdGJ0X2FsdF9tb2RlOwogCX0KIAotCWlmICghaWNsX3RjX3BoeV9z ZXRfc2FmZV9tb2RlKGRpZ19wb3J0LCBmYWxzZSkpCi0JCXJldHVybiBmYWxzZTsKKwlpZiAoIWlj bF90Y19waHlfc2V0X3NhZmVfbW9kZShkaWdfcG9ydCwgZmFsc2UpICYmCisJICAgICFXQVJOX09O KGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkpCisJCWdvdG8gb3V0X3NldF90YnRfYWx0X21vZGU7 CiAKLQlpZiAoZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9MRUdBQ1kpCi0JCXJldHVybiB0 cnVlOworCWlmIChkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpIHsKKwkJV0FSTl9PTihpbnRlbF90 Y19wb3J0X2ZpYV9tYXhfbGFuZV9jb3VudChkaWdfcG9ydCkgIT0gNCk7CisJCWRpZ19wb3J0LT50 Y19tb2RlID0gVENfUE9SVF9MRUdBQ1k7CiAKLQlsaXZlX3N0YXR1c19tYXNrID0gdGNfcG9ydF9s aXZlX3N0YXR1c19tYXNrKGRpZ19wb3J0KTsKKwkJcmV0dXJuOworCX0KIAogCS8qCiAJICogTm93 IHdlIGhhdmUgdG8gcmUtY2hlY2sgdGhlIGxpdmUgc3RhdGUsIGluIGNhc2UgdGhlIHBvcnQgcmVj ZW50bHkKIAkgKiBiZWNhbWUgZGlzY29ubmVjdGVkLiBOb3QgbmVjZXNzYXJ5IGZvciBsZWdhY3kg bW9kZS4KIAkgKi8KLQlpZiAoIShsaXZlX3N0YXR1c19tYXNrICYgQklUKFRDX1BPUlRfRFBfQUxU KSkpIHsKKwlpZiAoISh0Y19wb3J0X2xpdmVfc3RhdHVzX21hc2soZGlnX3BvcnQpICYgQklUKFRD X1BPUlRfRFBfQUxUKSkpIHsKIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIHN1ZGRlbiBk aXNjb25uZWN0XG4iLAogCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7Ci0JCWljbF90 Y19waHlfZGlzY29ubmVjdChkaWdfcG9ydCk7Ci0JCXJldHVybiBmYWxzZTsKKwkJZ290byBvdXRf c2V0X3NhZmVfbW9kZTsKIAl9CiAKLQlyZXR1cm4gdHJ1ZTsKKwlkaWdfcG9ydC0+dGNfbW9kZSA9 IFRDX1BPUlRfRFBfQUxUOworCisJcmV0dXJuOworCitvdXRfc2V0X3NhZmVfbW9kZToKKwlpY2xf dGNfcGh5X3NldF9zYWZlX21vZGUoZGlnX3BvcnQsIHRydWUpOworb3V0X3NldF90YnRfYWx0X21v ZGU6CisJZGlnX3BvcnQtPnRjX21vZGUgPSBUQ19QT1JUX1RCVF9BTFQ7CiB9CiAKIC8qCkBAIC0y MjcsMjcgKzIyOSwzNyBAQCB2b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0UoZGlnX3Bv cnQtPnRjX21vZGUpOwogCX0KK30KIAotCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IG1vZGUgJXMg ZGlzY29ubmVjdGVkXG4iLAotCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLAotCQkgICAg ICB0Y19wb3J0X21vZGVfbmFtZShkaWdfcG9ydC0+dGNfbW9kZSkpOworc3RhdGljIGVudW0gdGNf cG9ydF9tb2RlCitpbnRlbF90Y19wb3J0X2dldF90YXJnZXRfbW9kZShzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCkKK3sKKwl1MzIgbGl2ZV9zdGF0dXNfbWFzayA9IHRjX3BvcnRf bGl2ZV9zdGF0dXNfbWFzayhkaWdfcG9ydCk7CisKKwlpZiAobGl2ZV9zdGF0dXNfbWFzaykKKwkJ cmV0dXJuIGZscyhsaXZlX3N0YXR1c19tYXNrKSAtIDE7CisKKwlyZXR1cm4gaWNsX3RjX3BoeV9z dGF0dXNfY29tcGxldGUoZGlnX3BvcnQpICYmCisJICAgICAgIGRpZ19wb3J0LT50Y19sZWdhY3lf cG9ydCA/IFRDX1BPUlRfTEVHQUNZIDoKKwkJCQkJICBUQ19QT1JUX1RCVF9BTFQ7CiB9CiAKLXN0 YXRpYyB2b2lkIGljbF91cGRhdGVfdGNfcG9ydF90eXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKLQkJCQkgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQsCi0JCQkJICAgIHUzMiBsaXZlX3N0YXR1c19tYXNrKQorc3RhdGljIHZvaWQgaW50ZWxf dGNfcG9ydF9yZXNldF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQog ewotCWVudW0gdGNfcG9ydF9tb2RlIG9sZF9tb2RlID0gaW50ZWxfZGlnX3BvcnQtPnRjX21vZGU7 CisJZW51bSB0Y19wb3J0X21vZGUgb2xkX3RjX21vZGUgPSBkaWdfcG9ydC0+dGNfbW9kZTsKIAot CWlmICghbGl2ZV9zdGF0dXNfbWFzaykKLQkJcmV0dXJuOworCWljbF90Y19waHlfZGlzY29ubmVj dChkaWdfcG9ydCk7CisJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0KTsKIAotCWludGVsX2Rp Z19wb3J0LT50Y19tb2RlID0gZmxzKGxpdmVfc3RhdHVzX21hc2spIC0gMTsKKwlEUk1fREVCVUdf S01TKCJQb3J0ICVzOiBUQyBwb3J0IG1vZGUgcmVzZXQgKCVzIC0+ICVzKVxuIiwKKwkJICAgICAg ZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSwKKwkJICAgICAgdGNfcG9ydF9tb2RlX25hbWUob2xkX3Rj X21vZGUpLAorCQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShkaWdfcG9ydC0+dGNfbW9kZSkpOwor fQogCi0JaWYgKG9sZF9tb2RlICE9IGludGVsX2RpZ19wb3J0LT50Y19tb2RlKQotCQlEUk1fREVC VUdfS01TKCJQb3J0ICVzOiBwb3J0IGhhcyBtb2RlICVzXG4iLAotCQkJICAgICAgaW50ZWxfZGln X3BvcnQtPnRjX3BvcnRfbmFtZSwKLQkJCSAgICAgIHRjX3BvcnRfbW9kZV9uYW1lKGludGVsX2Rp Z19wb3J0LT50Y19tb2RlKSk7CitzdGF0aWMgYm9vbCBpbnRlbF90Y19wb3J0X25lZWRzX3Jlc2V0 KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCXJldHVybiBpbnRlbF90 Y19wb3J0X2dldF90YXJnZXRfbW9kZShkaWdfcG9ydCkgIT0gZGlnX3BvcnQtPnRjX21vZGU7CiB9 CiAKIC8qCkBAIC0yNjIsMjQgKzI3NCwxMCBAQCBzdGF0aWMgdm9pZCBpY2xfdXBkYXRlX3RjX3Bv cnRfdHlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKi8KIGJvb2wgaW50 ZWxfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp CiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9y dC0+YmFzZS5iYXNlLmRldik7Ci0JdTMyIGxpdmVfc3RhdHVzX21hc2sgPSB0Y19wb3J0X2xpdmVf c3RhdHVzX21hc2soZGlnX3BvcnQpOwotCi0JLyoKLQkgKiBUaGUgc3BlYyBzYXlzIHdlIHNob3Vs ZG4ndCBiZSB1c2luZyB0aGUgSVNSIGJpdHMgZm9yIGRldGVjdGluZwotCSAqIGJldHdlZW4gVEMg YW5kIFRCVC4gV2Ugc2hvdWxkIHVzZSBERkxFWERQU1AuCi0JICovCi0JaWYgKCFsaXZlX3N0YXR1 c19tYXNrICYmICFkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpIHsKLQkJaWNsX3RjX3BoeV9kaXNj b25uZWN0KGRpZ19wb3J0KTsKLQotCQlyZXR1cm4gZmFsc2U7Ci0JfQotCi0JaWNsX3VwZGF0ZV90 Y19wb3J0X3R5cGUoZGV2X3ByaXYsIGRpZ19wb3J0LCBsaXZlX3N0YXR1c19tYXNrKTsKLQlpZiAo IWljbF90Y19waHlfY29ubmVjdChkaWdfcG9ydCkpCi0JCXJldHVybiBmYWxzZTsKKwlpZiAoaW50 ZWxfdGNfcG9ydF9uZWVkc19yZXNldChkaWdfcG9ydCkpCisJCWludGVsX3RjX3BvcnRfcmVzZXRf bW9kZShkaWdfcG9ydCk7CiAKLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gdGNfcG9ydF9saXZlX3N0 YXR1c19tYXNrKGRpZ19wb3J0KSAmIEJJVChkaWdfcG9ydC0+dGNfbW9kZSk7CiB9CiAKIHZvaWQg aW50ZWxfdGNfcG9ydF9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LCBi b29sIGlzX2xlZ2FjeSkKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4