From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH 12/23] drm/i915: Sanitize the TypeC connect/detect sequences Date: Tue, 4 Jun 2019 17:58:15 +0300 Message-ID: <20190604145826.16424-13-imre.deak@intel.com> References: <20190604145826.16424-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id CB69989998 for ; Tue, 4 Jun 2019 14:59:33 +0000 (UTC) In-Reply-To: <20190604145826.16424-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+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdGMuYyB8IDEwNCArKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUwIGluc2VydGlvbnMo KyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3RjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90Yy5jCmluZGV4IGQ5MTM4MWMw ZTg3ZC4uOTgzMmUyZGRiOTJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF90Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3RjLmMKQEAgLTE4OCw0MyAr MTg4LDQ2IEBAIHN0YXRpYyBib29sIGljbF90Y19waHlfc2V0X3NhZmVfbW9kZShzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKICAqIHdpbGwgcmVxdWlyZSBhIGxvdCBvZiBjb29y ZGluYXRpb24gd2l0aCB1c2VyIHNwYWNlIGFuZCB0aG9yb3VnaCB0ZXN0aW5nIGZvcgogICogdGhl IGV4dHJhIHBvc3NpYmxlIGNhc2VzLgogICovCi1zdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5l Y3Qoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCitzdGF0aWMgdm9pZCBpY2xf dGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFz ZS5iYXNlLmRldik7CiAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRl dl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKLQl1MzIgbGl2ZV9zdGF0dXNfbWFzazsKLQot CWlmIChkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX0xFR0FDWSAmJgotCSAgICBkaWdfcG9y dC0+dGNfbW9kZSAhPSBUQ19QT1JUX0RQX0FMVCkKLQkJcmV0dXJuIHRydWU7CiAKIAlpZiAoIWlj bF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSkgewogCQlEUk1fREVCVUdfS01TKCJQ b3J0ICVzOiBQSFkgbm90IHJlYWR5XG4iLAogCQkJICAgICAgdGNfcG9ydF9uYW1lKGRldl9wcml2 LCB0Y19wb3J0KSk7Ci0JCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKLQkJcmV0 dXJuIGZhbHNlOworCQlnb3RvIG91dF9zZXRfdGJ0X2FsdF9tb2RlOwogCX0KIAotCWlmICghaWNs X3RjX3BoeV9zZXRfc2FmZV9tb2RlKGRpZ19wb3J0LCBmYWxzZSkpCi0JCXJldHVybiBmYWxzZTsK KwlpZiAoIWljbF90Y19waHlfc2V0X3NhZmVfbW9kZShkaWdfcG9ydCwgZmFsc2UpICYmCisJICAg ICFXQVJOX09OKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkpCisJCWdvdG8gb3V0X3NldF90YnRf YWx0X21vZGU7CiAKLQlpZiAoZGlnX3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9MRUdBQ1kpCi0J CXJldHVybiB0cnVlOworCWlmIChkaWdfcG9ydC0+dGNfbGVnYWN5X3BvcnQpIHsKKwkJV0FSTl9P TihpbnRlbF90Y19wb3J0X2ZpYV9tYXhfbGFuZV9jb3VudChkaWdfcG9ydCkgIT0gNCk7CisJCWRp Z19wb3J0LT50Y19tb2RlID0gVENfUE9SVF9MRUdBQ1k7CiAKLQlsaXZlX3N0YXR1c19tYXNrID0g dGNfcG9ydF9saXZlX3N0YXR1c19tYXNrKGRpZ19wb3J0KTsKKwkJcmV0dXJuOworCX0KIAogCS8q CiAJICogTm93IHdlIGhhdmUgdG8gcmUtY2hlY2sgdGhlIGxpdmUgc3RhdGUsIGluIGNhc2UgdGhl IHBvcnQgcmVjZW50bHkKIAkgKiBiZWNhbWUgZGlzY29ubmVjdGVkLiBOb3QgbmVjZXNzYXJ5IGZv ciBsZWdhY3kgbW9kZS4KIAkgKi8KLQlpZiAoIShsaXZlX3N0YXR1c19tYXNrICYgQklUKFRDX1BP UlRfRFBfQUxUKSkpIHsKKwlpZiAoISh0Y19wb3J0X2xpdmVfc3RhdHVzX21hc2soZGlnX3BvcnQp ICYgQklUKFRDX1BPUlRfRFBfQUxUKSkpIHsKIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZ IHN1ZGRlbiBkaXNjb25uZWN0XG4iLAogCQkJICAgICAgdGNfcG9ydF9uYW1lKGRldl9wcml2LCB0 Y19wb3J0KSk7Ci0JCWljbF90Y19waHlfZGlzY29ubmVjdChkaWdfcG9ydCk7Ci0JCXJldHVybiBm YWxzZTsKKwkJZ290byBvdXRfc2V0X3NhZmVfbW9kZTsKIAl9CiAKLQlyZXR1cm4gdHJ1ZTsKKwlk aWdfcG9ydC0+dGNfbW9kZSA9IFRDX1BPUlRfRFBfQUxUOworCisJcmV0dXJuOworCitvdXRfc2V0 X3NhZmVfbW9kZToKKwlpY2xfdGNfcGh5X3NldF9zYWZlX21vZGUoZGlnX3BvcnQsIHRydWUpOwor b3V0X3NldF90YnRfYWx0X21vZGU6CisJZGlnX3BvcnQtPnRjX21vZGUgPSBUQ19QT1JUX1RCVF9B TFQ7CiB9CiAKIC8qCkBAIC0yMzMsOSArMjM2LDYgQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BoeV9j b25uZWN0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQogICovCiB2b2lkIGlj bF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2KTsKLQllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9f dGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBvcnQpOwotCiAJc3dpdGNoIChkaWdfcG9ydC0+ dGNfbW9kZSkgewogCWNhc2UgVENfUE9SVF9MRUdBQ1k6CiAJY2FzZSBUQ19QT1JUX0RQX0FMVDoK QEAgLTI0OCwzMSArMjQ4LDQxIEBAIHZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQogCWRlZmF1bHQ6CiAJCU1JU1NJTkdfQ0FTRShk aWdfcG9ydC0+dGNfbW9kZSk7CiAJfQotCi0JRFJNX0RFQlVHX0tNUygiUG9ydCAlczogbW9kZSAl cyBkaXNjb25uZWN0ZWRcbiIsCi0JCSAgICAgIHRjX3BvcnRfbmFtZShkZXZfcHJpdiwgdGNfcG9y dCksCi0JCSAgICAgIHRjX3BvcnRfbW9kZV9uYW1lKGRpZ19wb3J0LT50Y19tb2RlKSk7CiB9CiAK LXN0YXRpYyB2b2lkIGljbF91cGRhdGVfdGNfcG9ydF90eXBlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQsCi0JCQkJICAgIHUzMiBsaXZlX3N0YXR1c19tYXNrKQorc3RhdGljIGVudW0gdGNf cG9ydF9tb2RlCitpbnRlbF90Y19wb3J0X2dldF90YXJnZXRfbW9kZShzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCkKIHsKLQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0 LT5iYXNlLnBvcnQ7Ci0JZW51bSB0Y19wb3J0X21vZGUgb2xkX21vZGUgPSBpbnRlbF9kaWdfcG9y dC0+dGNfbW9kZTsKKwl1MzIgbGl2ZV9zdGF0dXNfbWFzayA9IHRjX3BvcnRfbGl2ZV9zdGF0dXNf bWFzayhkaWdfcG9ydCk7CiAKLQlpZiAoIWxpdmVfc3RhdHVzX21hc2spCi0JCXJldHVybjsKKwlp ZiAobGl2ZV9zdGF0dXNfbWFzaykKKwkJcmV0dXJuIGZscyhsaXZlX3N0YXR1c19tYXNrKSAtIDE7 CisKKwlyZXR1cm4gaWNsX3RjX3BoeV9zdGF0dXNfY29tcGxldGUoZGlnX3BvcnQpICYmCisJICAg ICAgIGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCA/IFRDX1BPUlRfTEVHQUNZIDoKKwkJCQkJICBU Q19QT1JUX1RCVF9BTFQ7Cit9CiAKLQlpbnRlbF9kaWdfcG9ydC0+dGNfbW9kZSA9IGZscyhsaXZl X3N0YXR1c19tYXNrKSAtIDE7CitzdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jlc2V0X21vZGUo c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CisJ ZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9y dC0+YmFzZS5wb3J0KTsKKwllbnVtIHRjX3BvcnRfbW9kZSBvbGRfdGNfbW9kZSA9IGRpZ19wb3J0 LT50Y19tb2RlOwogCi0JaWYgKG9sZF9tb2RlICE9IGludGVsX2RpZ19wb3J0LT50Y19tb2RlKQot CQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBwb3J0IGhhcyBtb2RlICVzXG4iLAotCQkJICAgICAg dGNfcG9ydF9uYW1lKGRldl9wcml2LAotCQkJCQkgICBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2 LCBwb3J0KSksCi0JCQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShpbnRlbF9kaWdfcG9ydC0+dGNf bW9kZSkpOworCWljbF90Y19waHlfZGlzY29ubmVjdChkaWdfcG9ydCk7CisJaWNsX3RjX3BoeV9j b25uZWN0KGRpZ19wb3J0KTsKKworCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFRDIHBvcnQgbW9k ZSByZXNldCAoJXMgLT4gJXMpXG4iLAorCQkgICAgICB0Y19wb3J0X25hbWUoZGV2X3ByaXYsIHRj X3BvcnQpLAorCQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShvbGRfdGNfbW9kZSksCisJCSAgICAg IHRjX3BvcnRfbW9kZV9uYW1lKGRpZ19wb3J0LT50Y19tb2RlKSk7CiB9CiAKK3N0YXRpYyBib29s CitpbnRlbF90Y19wb3J0X25lZWRzX3Jlc2V0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0KQoreworCXJldHVybiBpbnRlbF90Y19wb3J0X2dldF90YXJnZXRfbW9kZShkaWdfcG9y dCkgIT0gZGlnX3BvcnQtPnRjX21vZGU7Cit9CiAKIC8qCiAgKiBUaGUgdHlwZS1DIHBvcnRzIGFy ZSBkaWZmZXJlbnQgYmVjYXVzZSBldmVuIHdoZW4gdGhleSBhcmUgY29ubmVjdGVkLCB0aGV5IG1h eQpAQCAtMjg2LDIzICsyOTYsOSBAQCBzdGF0aWMgdm9pZCBpY2xfdXBkYXRlX3RjX3BvcnRfdHlw ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKi8KIGJvb2wgaW50ZWxfdGNf cG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFz ZS5iYXNlLmRldik7Ci0JdTMyIGxpdmVfc3RhdHVzX21hc2sgPSB0Y19wb3J0X2xpdmVfc3RhdHVz X21hc2soZGlnX3BvcnQpOworCWlmIChpbnRlbF90Y19wb3J0X25lZWRzX3Jlc2V0KGRpZ19wb3J0 KSkKKwkJaW50ZWxfdGNfcG9ydF9yZXNldF9tb2RlKGRpZ19wb3J0KTsKIAotCS8qCi0JICogVGhl IHNwZWMgc2F5cyB3ZSBzaG91bGRuJ3QgYmUgdXNpbmcgdGhlIElTUiBiaXRzIGZvciBkZXRlY3Rp bmcKLQkgKiBiZXR3ZWVuIFRDIGFuZCBUQlQuIFdlIHNob3VsZCB1c2UgREZMRVhEUFNQLgotCSAq LwotCWlmICghbGl2ZV9zdGF0dXNfbWFzayAmJiAhZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KSB7 Ci0JCWljbF90Y19waHlfZGlzY29ubmVjdChkaWdfcG9ydCk7Ci0KLQkJcmV0dXJuIGZhbHNlOwot CX0KLQotCWljbF91cGRhdGVfdGNfcG9ydF90eXBlKGRldl9wcml2LCBkaWdfcG9ydCwgbGl2ZV9z dGF0dXNfbWFzayk7Ci0JaWYgKCFpY2xfdGNfcGh5X2Nvbm5lY3QoZGlnX3BvcnQpKQotCQlyZXR1 cm4gZmFsc2U7Ci0KLQlyZXR1cm4gdHJ1ZTsKKwlyZXR1cm4gdGNfcG9ydF9saXZlX3N0YXR1c19t YXNrKGRpZ19wb3J0KSAmIEJJVChkaWdfcG9ydC0+dGNfbW9kZSk7CiB9CiAKLS0gCjIuMTcuMQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4