From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 21/23] drm/i915: Add state verification for the TypeC port mode Date: Thu, 20 Jun 2019 17:05:58 +0300 Message-ID: <20190620140600.11357-22-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 5D6186E58E for ; Thu, 20 Jun 2019 14:06:58 +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 List-Id: intel-gfx@lists.freedesktop.org QWRkIHN0YXRlIHZlcmlmaWNhdGlvbiBmb3IgdGhlIFR5cGVDIHBvcnQgbW9kZSB3cnQuIHRoZSBw b3J0J3MgQVVYIHBvd2VyCndlbGwgZW5hYmxpbmcvZGlzYWJsaW5nLiBBbHNvIGNoZWNrIHRoZSBj b3JyZWN0bmVzcyBvZiBjaGFuZ2luZyB0aGUgcG9ydAptb2RlOgotIFdoZW4gZW5hYmxpbmcvZGlz YWJsaW5nIHRoZSBBVVggcG93ZXIgd2VsbCBmb3IgYSBUeXBlQyBwb3J0IHdlIG11c3QgaG9sZAog IGFscmVhZHkgdGhlIFR5cGVDIHBvcnQgbG9jay4KLSBXaGVuIGNoYW5naW5nIHRoZSBUeXBlQyBw b3J0IG1vZGUgdGhlIHBvcnQncyBBVVggcG93ZXIgZG9tYWluIG11c3QgYmUKICBkaXNhYmxlZC4K CkNjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KQ2M6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSW1yZSBE ZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgotLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfcG93ZXIuYyAgICB8IDk5ICsrKysrKysrKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYyAgICAgICB8ICAyICsKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaCAgICAgICB8IDEwICstCiAzIGZpbGVzIGNoYW5nZWQs IDEwMiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKaW5kZXggZmQxM2NkNjhkZWFl Li5mNDYxM2UxMGMzYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV9wb3dlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV9wb3dlci5jCkBAIC0xNyw2ICsxNyw3IEBACiAjaW5jbHVkZSAiaW50ZWxf ZHJ2LmgiCiAjaW5jbHVkZSAiaW50ZWxfaG90cGx1Zy5oIgogI2luY2x1ZGUgImludGVsX3NpZGVi YW5kLmgiCisjaW5jbHVkZSAiaW50ZWxfdGMuaCIKIAogYm9vbCBpbnRlbF9kaXNwbGF5X3Bvd2Vy X3dlbGxfaXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJ CSBlbnVtIGk5MTVfcG93ZXJfd2VsbF9pZCBwb3dlcl93ZWxsX2lkKTsKQEAgLTQ0NywyNiArNDQ4 LDExMCBAQCBpY2xfY29tYm9fcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogI2RlZmluZSBJQ0xfVEJUX0FVWF9QV19UT19DSChwd19p ZHgpCVwKIAkoKHB3X2lkeCkgLSBJQ0xfUFdfQ1RMX0lEWF9BVVhfVEJUMSArIEFVWF9DSF9DKQog CitzdGF0aWMgZW51bSBhdXhfY2ggaWNsX3RjX3BoeV9hdXhfY2goc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkJCSAgICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJf d2VsbCkKK3sKKwlpbnQgcHdfaWR4ID0gcG93ZXJfd2VsbC0+ZGVzYy0+aHN3LmlkeDsKKworCXJl dHVybiBwb3dlcl93ZWxsLT5kZXNjLT5oc3cuaXNfdGNfdGJ0ID8gSUNMX1RCVF9BVVhfUFdfVE9f Q0gocHdfaWR4KSA6CisJCQkJCQkgSUNMX0FVWF9QV19UT19DSChwd19pZHgpOworfQorCisjaWYg SVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfREVCVUdfUlVOVElNRV9QTSkKKworc3RhdGljIHU2 NCBhc3luY19wdXRfZG9tYWluc19tYXNrKHN0cnVjdCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2Vy X2RvbWFpbnMpOworCitzdGF0aWMgaW50IHBvd2VyX3dlbGxfYXN5bmNfcmVmX2NvdW50KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICAgICBzdHJ1Y3QgaTkxNV9wb3dl cl93ZWxsICpwb3dlcl93ZWxsKQoreworCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4g ZG9tYWluOworCXU2NCBhc3luY19kb21haW5zID0gYXN5bmNfcHV0X2RvbWFpbnNfbWFzaygmZGV2 X3ByaXYtPnBvd2VyX2RvbWFpbnMpOworCWludCByZWZzID0gMDsKKworCWZvcl9lYWNoX3Bvd2Vy X2RvbWFpbihkb21haW4sIHBvd2VyX3dlbGwtPmRlc2MtPmRvbWFpbnMpCisJCXJlZnMgKz0gISEo YXN5bmNfZG9tYWlucyAmIEJJVF9VTEwoZG9tYWluKSk7CisKKwlXQVJOX09OKHJlZnMgPiBwb3dl cl93ZWxsLT5jb3VudCk7CisKKwlyZXR1cm4gcmVmczsKK30KKworc3RhdGljIHZvaWQgaWNsX3Rj X3BvcnRfYXNzZXJ0X3JlZl9oZWxkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK KwkJCQkJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKK3sKKwllbnVtIGF1eF9j aCBhdXhfY2ggPSBpY2xfdGNfcGh5X2F1eF9jaChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CisJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBOVUxMOworCXN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyOworCisJLyogQnlwYXNzIHRoZSBjaGVjayBpZiBhbGwgcmVmZXJlbmNl cyBhcmUgcmVsZWFzZWQgYXN5bmNocm9ub3VzbHkgKi8KKwlpZiAocG93ZXJfd2VsbF9hc3luY19y ZWZfY291bnQoZGV2X3ByaXYsIHBvd2VyX3dlbGwpID09CisJICAgIHBvd2VyX3dlbGwtPmNvdW50 KQorCQlyZXR1cm47CisKKwlhdXhfY2ggPSBpY2xfdGNfcGh5X2F1eF9jaChkZXZfcHJpdiwgcG93 ZXJfd2VsbCk7CisKKwlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKCZkZXZfcHJpdi0+ZHJtLCBlbmNv ZGVyKSB7CisJCWlmICghaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCkp CisJCQljb250aW51ZTsKKworCQkvKiBXZSdsbCBjaGVjayB0aGUgTVNUIHByaW1hcnkgcG9ydCAq LworCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQorCQkJY29udGlu dWU7CisKKwkJZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCQlp ZiAoV0FSTl9PTighZGlnX3BvcnQpKQorCQkJY29udGludWU7CisKKwkJaWYgKGRpZ19wb3J0LT5h dXhfY2ggIT0gYXV4X2NoKSB7CisJCQlkaWdfcG9ydCA9IE5VTEw7CisJCQljb250aW51ZTsKKwkJ fQorCisJCWJyZWFrOworCX0KKworCWlmIChXQVJOX09OKCFkaWdfcG9ydCkpCisJCXJldHVybjsK KworCVdBUk5fT04oIWludGVsX3RjX3BvcnRfcmVmX2hlbGQoZGlnX3BvcnQpKTsKK30KKworI2Vs c2UKKworc3RhdGljIHZvaWQgaWNsX3RjX3BvcnRfYXNzZXJ0X3JlZl9oZWxkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkJc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93 ZXJfd2VsbCkKK3sKK30KKworI2VuZGlmCisKIHN0YXRpYyB2b2lkCiBpY2xfdGNfcGh5X2F1eF9w b3dlcl93ZWxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJ IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCiB7Ci0JaW50IHB3X2lkeCA9IHBv d2VyX3dlbGwtPmRlc2MtPmhzdy5pZHg7Ci0JYm9vbCBpc190YnQgPSBwb3dlcl93ZWxsLT5kZXNj LT5oc3cuaXNfdGNfdGJ0OwotCWVudW0gYXV4X2NoIGF1eF9jaDsKKwllbnVtIGF1eF9jaCBhdXhf Y2ggPSBpY2xfdGNfcGh5X2F1eF9jaChkZXZfcHJpdiwgcG93ZXJfd2VsbCk7CiAJdTMyIHZhbDsK IAotCWF1eF9jaCA9IGlzX3RidCA/IElDTF9UQlRfQVVYX1BXX1RPX0NIKHB3X2lkeCkgOgotCQkJ ICBJQ0xfQVVYX1BXX1RPX0NIKHB3X2lkeCk7CisJaWNsX3RjX3BvcnRfYXNzZXJ0X3JlZl9oZWxk KGRldl9wcml2LCBwb3dlcl93ZWxsKTsKKwogCXZhbCA9IEk5MTVfUkVBRChEUF9BVVhfQ0hfQ1RM KGF1eF9jaCkpOwogCXZhbCAmPSB+RFBfQVVYX0NIX0NUTF9UQlRfSU87Ci0JaWYgKGlzX3RidCkK KwlpZiAocG93ZXJfd2VsbC0+ZGVzYy0+aHN3LmlzX3RjX3RidCkKIAkJdmFsIHw9IERQX0FVWF9D SF9DVExfVEJUX0lPOwogCUk5MTVfV1JJVEUoRFBfQVVYX0NIX0NUTChhdXhfY2gpLCB2YWwpOwog CiAJaHN3X3Bvd2VyX3dlbGxfZW5hYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKIH0KIAorc3Rh dGljIHZvaWQKK2ljbF90Y19waHlfYXV4X3Bvd2VyX3dlbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsICpwb3dl cl93ZWxsKQoreworCWljbF90Y19wb3J0X2Fzc2VydF9yZWZfaGVsZChkZXZfcHJpdiwgcG93ZXJf d2VsbCk7CisKKwloc3dfcG93ZXJfd2VsbF9kaXNhYmxlKGRldl9wcml2LCBwb3dlcl93ZWxsKTsK K30KKwogLyoKICAqIFdlIHNob3VsZCBvbmx5IHVzZSB0aGUgcG93ZXIgd2VsbCBpZiB3ZSBleHBs aWNpdGx5IGFza2VkIHRoZSBoYXJkd2FyZSB0bwogICogZW5hYmxlIGl0LCBzbyBjaGVjayBpZiBp dCdzIGVuYWJsZWQgYW5kIGFsc28gY2hlY2sgaWYgd2UndmUgcmVxdWVzdGVkIGl0IHRvCkBAIC0z MTE5LDcgKzMyMDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9vcHMg aWNsX2NvbWJvX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMgPSB7CiBzdGF0aWMgY29uc3Qgc3RydWN0 IGk5MTVfcG93ZXJfd2VsbF9vcHMgaWNsX3RjX3BoeV9hdXhfcG93ZXJfd2VsbF9vcHMgPSB7CiAJ LnN5bmNfaHcgPSBoc3dfcG93ZXJfd2VsbF9zeW5jX2h3LAogCS5lbmFibGUgPSBpY2xfdGNfcGh5 X2F1eF9wb3dlcl93ZWxsX2VuYWJsZSwKLQkuZGlzYWJsZSA9IGhzd19wb3dlcl93ZWxsX2Rpc2Fi bGUsCisJLmRpc2FibGUgPSBpY2xfdGNfcGh5X2F1eF9wb3dlcl93ZWxsX2Rpc2FibGUsCiAJLmlz X2VuYWJsZWQgPSBoc3dfcG93ZXJfd2VsbF9lbmFibGVkLAogfTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF90Yy5jCmluZGV4IGM4OTA0OTExZTg0MS4uNmM0M2JlY2Y5N2Y3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jCkBAIC0zMDMsNiArMzAzLDgg QEAgc3RhdGljIHZvaWQgaW50ZWxfdGNfcG9ydF9yZXNldF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0LAogCWVudW0gdGNfcG9ydF9tb2RlIG9sZF90Y19tb2RlID0gZGln X3BvcnQtPnRjX21vZGU7CiAKIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2ZsdXNoX3dvcmsoZGV2X3By aXYpOworCVdBUk5fT04oaW50ZWxfZGlzcGxheV9wb3dlcl9pc19lbmFibGVkKGRldl9wcml2LAor CQkJCQkgICAgICAgaW50ZWxfYXV4X3Bvd2VyX2RvbWFpbihkaWdfcG9ydCkpKTsKIAogCWljbF90 Y19waHlfZGlzY29ubmVjdChkaWdfcG9ydCk7CiAJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0 LCByZXF1aXJlZF9sYW5lcyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3RjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmgK aW5kZXggMzFhZjdiZTk2MDcwLi44YWRjMTA3Y2RiY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3RjLmgKQEAgLTcsOCArNyw4IEBACiAjZGVmaW5lIF9fSU5URUxfVENfSF9f CiAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgotCi1zdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 OworI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+CisjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCiAKIHZv aWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0KTsKIApAQCAtMjMsNiArMjMsMTIgQEAgdm9pZCBpbnRlbF90Y19wb3J0X2dldF9saW5rKHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAogCQkJICAgIGludCByZXF1aXJlZF9s YW5lcyk7CiB2b2lkIGludGVsX3RjX3BvcnRfcHV0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQpOwogCitzdGF0aWMgaW5saW5lIGludCBpbnRlbF90Y19wb3J0X3JlZl9o ZWxkKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQoreworCXJldHVybiBtdXRl eF9pc19sb2NrZWQoJmRpZ19wb3J0LT50Y19sb2NrKSB8fAorCSAgICAgICBkaWdfcG9ydC0+dGNf bGlua19yZWZjb3VudDsKK30KKwogdm9pZCBpbnRlbF90Y19wb3J0X2luaXQoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsIGJvb2wgaXNfbGVnYWN5KTsKIAogI2VuZGlmIC8qIF9f SU5URUxfVENfSF9fICovCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==