From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: [PATCH v3 13/23] FIXME: drm/i915/tgl: Select master transcoder in DP MST Date: Fri, 23 Aug 2019 01:20:45 -0700 Message-ID: <20190823082055.5992-14-lucas.demarchi@intel.com> References: <20190823082055.5992-1-lucas.demarchi@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 5579C6EC2F for ; Fri, 23 Aug 2019 08:54:11 +0000 (UTC) In-Reply-To: <20190823082055.5992-1-lucas.demarchi@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 RnJvbTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+CgpPbiBU R0wgdGhlIGJsZW5kaW5nIG9mIGFsbCB0aGUgc3RyZWFtcyBoYXZlIG1vdmVkIGZyb20gRERJIHRv CnRyYW5zY29kZXIsIHNvIG5vdyBldmVyeSB0cmFuc2NvZGVyIHdvcmtpbmcgb3ZlciB0aGUgc2Ft ZSBNU1QgcG9ydCBtdXN0CnNlbmQgaXRzIHN0cmVhbSB0byBhIG1hc3RlciB0cmFuc2NvZGVyIGFu ZCBtYXN0ZXIgd2lsbCBzZW5kIHRvIERESQpyZXNwZWN0aW5nIHRoZSB0aW1lIHNsb3RzLgoKU28g aGVyZSBpdCBpcyBwaWNraW5nIHRoZSBsb3dlc3QgcGlwZS90cmFuc2NvZGVyIGFzIGl0IHdpbGwg YmUKZW5hYmxlZCBmaXJzdCBhbmQgZGlzYWJsZWQgbGFzdC4KQlNwZWM6IDUwNDkzCkJTcGVjOiA0 OTE5MAoKdjI6IE1pc3NlZCBzZXQgbXN0X21hc3Rlcl90cmFucyB0byBUUkFOU0NPREVSX0lOVkFM SUQgd2hlbiBjb21wdXRpbmcgSFNXCiAgICBlbmNvZGVyIGNvbmZpZy4gSFNXIENSVCBodyBzdGF0 ZSByZWFkb3V0IGNhbGxzCiAgICBoc3dfY3J0X2dldF9jb25maWcoKS0+aW50ZWxfZGRpX2dldF9j b25maWcoKSB0aGF0IHdpbGwgc2V0CiAgICBtc3RfbWFzdGVyX3RyYW5zIHRvIFRSQU5TQ09ERVJf SU5WQUxJRCBjYXVzaW5nIHRoZSBtaXNtYXRjaCB3aGVuCiAgICB2ZXJpZnlpbmcgQ1JUQyBzdGF0 ZSBhZnRlciBhIG1vZGVzZXQuIChKb3PDqSkKCnYzOiBBZGQgV0FSTl9PTigpIHJlcXVlc3RlZCBi eSBKYW5pLgogICAgQWRkIEZJWE1FLiBGcm9tIEphbmk6IGRvdWJsZSBjaGVjayBQSVBFX0NPTkZf Q0hFQ0tfSShtc3RfbWFzdGVyX3RyYW5zKSAtIGl0J3MKICAgIG5vdyBjaGVja2luZyBmb3IgYWxs IHBsYXRmb3JtcyBhbmQgTVNUIGFuZCBub24tTVNUIGFsaWtlLgogICAgUGVyaGFwcyBpbiBnZW5l cmFsIEknZCBsaWtlIHRoZSBhcHByb2FjaCBvZiBvbmx5IGRvaW5nIHRoZSByZWFkb3V0IHdoZW4K ICAgIGl0J3MgcmVsZXZhbnQsIGFuZCBvbmx5IGNoZWNraW5nIHRoZSB2YWx1ZSB3aGVuIGl0J3Mg cmVsZXZhbnQuCgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KQ2M6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+CkNjOiBS b2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvc8Op IFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBM dWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1h YXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYyAgICAgIHwgICAyICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgICB8ICAxOCArKwogZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgIDE1ICsrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCAgfCAgIDMgKwogLi4uL2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgICAzICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgICB8IDE1OSArKysrKysrKysrKysr KysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmggICB8ICAg MiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICAgICAgfCAgIDMg KwogOCBmaWxlcyBjaGFuZ2VkLCAyMDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYwppbmRleCBlNmU4ZDRhODIwNDQu LjUwMzEzNTIwMGNiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9jcnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5j CkBAIC00MTYsNiArNDE2LDggQEAgc3RhdGljIGludCBoc3dfY3J0X2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCS8qIEZESSBtdXN0IGFsd2F5cyBiZSAyLjcg R0h6ICovCiAJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSAxMzUwMDAgKiAyOwogCisJcGlwZV9j b25maWctPm1zdF9tYXN0ZXJfdHJhbnMgPSBUUkFOU0NPREVSX0lOVkFMSUQ7CisKIAlyZXR1cm4g MDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k ZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKaW5kZXggOGVi MmIzZWMwMWVkLi5mNGNiNmJkNzQ0MjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kZGkuYwpAQCAtMTg0MCw2ICsxODQwLDEzIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90 cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAJfSBlbHNlIGlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9EUF9NU1QpKSB7CiAJCXRlbXAgfD0gVFJBTlNfRERJX01PREVfU0VMRUNUX0RQX01TVDsKIAkJ dGVtcCB8PSBERElfUE9SVF9XSURUSChjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKKworCQlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCQkJZW51bSB0cmFuc2NvZGVyIG1hc3RlciA9 IGNydGNfc3RhdGUtPm1zdF9tYXN0ZXJfdHJhbnM7CisKKwkJCVdBUk5fT04obWFzdGVyID09IFRS QU5TQ09ERVJfSU5WQUxJRCk7CisJCQl0ZW1wIHw9IFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NF TEVDVF9EUFRQKG1hc3Rlcik7CisJCX0KIAl9IGVsc2UgewogCQl0ZW1wIHw9IFRSQU5TX0RESV9N T0RFX1NFTEVDVF9EUF9TU1Q7CiAJCXRlbXAgfD0gRERJX1BPUlRfV0lEVEgoY3J0Y19zdGF0ZS0+ bGFuZV9jb3VudCk7CkBAIC0zODYxLDYgKzM4NjgsOCBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlicmVhazsKIAl9CiAKKwlwaXBl X2NvbmZpZy0+bXN0X21hc3Rlcl90cmFucyA9IFRSQU5TQ09ERVJfSU5WQUxJRDsKKwogCXN3aXRj aCAodGVtcCAmIFRSQU5TX0RESV9NT0RFX1NFTEVDVF9NQVNLKSB7CiAJY2FzZSBUUkFOU19ERElf TU9ERV9TRUxFQ1RfSERNSToKIAkJcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgPSB0cnVlOwpA QCAtMzg5Niw2ICszOTA1LDEzIEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklU KElOVEVMX09VVFBVVF9EUF9NU1QpOwogCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9CiAJCQko KHRlbXAgJiBERElfUE9SVF9XSURUSF9NQVNLKSA+PiBERElfUE9SVF9XSURUSF9TSElGVCkgKyAx OworCisJCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7CisJCQl0ZW1wID0gdGVtcCAm IFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVF9NQVNLOworCQkJdGVtcCA9IHRlbXAgPj4g VFJBTlNfRERJX01TVF9UUkFOU1BPUlRfU0VMRUNUX1NISUZUOworCQkJcGlwZV9jb25maWctPm1z dF9tYXN0ZXJfdHJhbnMgPSB0ZW1wOworCQl9CisKIAkJaW50ZWxfZHBfZ2V0X21fbihpbnRlbF9j cnRjLCBwaXBlX2NvbmZpZyk7CiAJCWJyZWFrOwogCWRlZmF1bHQ6CkBAIC0zOTk4LDYgKzQwMTQs OCBAQCBzdGF0aWMgaW50IGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAogCWludGVsX2RkaV9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKGRl dl9wcml2LCBwaXBlX2NvbmZpZyk7CiAKKwlwaXBlX2NvbmZpZy0+bXN0X21hc3Rlcl90cmFucyA9 IFRSQU5TQ09ERVJfSU5WQUxJRDsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGRkYjg0MzZlMjIwOC4uMTA5ZDRm ZDk2MWM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku YwpAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfY3J0LmgiCiAjaW5j bHVkZSAiZGlzcGxheS9pbnRlbF9kZGkuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2RwLmgi CisjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcF9tc3QuaCIKICNpbmNsdWRlICJkaXNwbGF5L2lu dGVsX2RzaS5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZHZvLmgiCiAjaW5jbHVkZSAiZGlz cGxheS9pbnRlbF9nbWJ1cy5oIgpAQCAtMTIxMzgsNiArMTIxMzksMTQgQEAgc3RhdGljIHZvaWQg aW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCiAKIAlpbnRlbF9kcGxsX2R1bXBfaHdfc3RhdGUoZGV2X3ByaXYsICZwaXBlX2Nv bmZpZy0+ZHBsbF9od19zdGF0ZSk7CiAKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMiAm JgorCSAgICBpbnRlbF9jcnRjX2hhc190eXBlKHBpcGVfY29uZmlnLCBJTlRFTF9PVVRQVVRfRFBf TVNUKSkgeworCQllbnVtIHRyYW5zY29kZXIgbWFzdGVyID0gcGlwZV9jb25maWctPm1zdF9tYXN0 ZXJfdHJhbnM7CisKKwkJRFJNX0RFQlVHX0tNUygibWFzdGVyIG1zdCBjcHVfdHJhbnNjb2Rlcjog JXNcbiIsCisJCQkgICAgICB0cmFuc2NvZGVyX25hbWUobWFzdGVyKSk7CisJfQorCiBkdW1wX3Bs YW5lczoKIAlpZiAoIXN0YXRlKQogCQlyZXR1cm47CkBAIC0xMjgyMSw2ICsxMjgzMCw4IEBAIGlu dGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmN1 cnJlbnRfY29uZmlnLAogCVBJUEVfQ09ORl9DSEVDS19JTkZPRlJBTUUoaGRtaSk7CiAJUElQRV9D T05GX0NIRUNLX0lORk9GUkFNRShkcm0pOwogCisJUElQRV9DT05GX0NIRUNLX0kobXN0X21hc3Rl cl90cmFucyk7CisKICN1bmRlZiBQSVBFX0NPTkZfQ0hFQ0tfWAogI3VuZGVmIFBJUEVfQ09ORl9D SEVDS19JCiAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0JPT0wKQEAgLTEzNTk3LDYgKzEzNjA4LDEw IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJaW50IHJldCwgaTsKIAlib29sIGFueV9tcyA9IHN0YXRlLT5jZGNsay5mb3JjZV9taW5fY2Rj bGtfY2hhbmdlZDsKIAorCXJldCA9IGludGVsX2RwX21zdF9hdG9taWNfYWRkX2FmZmVjdGVkX2Ny dGNzKHN0YXRlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCiAJLyogQ2F0Y2ggSTkxNV9N T0RFX0ZMQUdfSU5IRVJJVEVEICovCiAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAogCQkJCQkgICAgbmV3X2NydGNfc3RhdGUs IGkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmgKaW5k ZXggYjYzZmI3YTQ1OTllLi4yODJlOGQ4ZjFjYzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCkBAIC05MSw2ICs5MSw4IEBAIGVudW0gcGlwZSB7CiAj ZGVmaW5lIHBpcGVfbmFtZShwKSAoKHApICsgJ0EnKQogCiBlbnVtIHRyYW5zY29kZXIgeworCVRS QU5TQ09ERVJfSU5WQUxJRCA9IC0xLAorCiAJLyoKIAkgKiBUaGUgZm9sbG93aW5nIHRyYW5zY29k ZXJzIGhhdmUgYSAxOjEgdHJhbnNjb2RlciAtPiBwaXBlIG1hcHBpbmcsCiAJICoga2VlcCB0aGVp ciB2YWx1ZXMgZml4ZWQ6IHRoZSBjb2RlIGFzc3VtZXMgdGhhdCBUUkFOU0NPREVSX0E9MCwgdGhl CkBAIC0xMzIsNiArMTM0LDcgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyICp0cmFuc2NvZGVy X25hbWUoZW51bSB0cmFuc2NvZGVyIHRyYW5zY29kZXIpCiAJCXJldHVybiAiRFNJIEEiOwogCWNh c2UgVFJBTlNDT0RFUl9EU0lfQzoKIAkJcmV0dXJuICJEU0kgQyI7CisJY2FzZSBUUkFOU0NPREVS X0lOVkFMSUQ6CiAJZGVmYXVsdDoKIAkJcmV0dXJuICI8aW52YWxpZD4iOwogCX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKaW5kZXgg NDQ5YWJhZWE2MTlmLi5kODRhNjY0NTlkYWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCkBAIC05ODQsNiArOTg0LDkgQEAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgewogCiAJLyogRm9yd2FyZCBFcnJvciBjb3JyZWN0aW9uIFN0 YXRlICovCiAJYm9vbCBmZWNfZW5hYmxlOworCisJLyogTWFzdGVyIHRyYW5zY29kZXIgZm9yIGFs bCBzdHJlYW1zLCBvbmx5IHVzZWQgb24gVEdMKyAqLworCWVudW0gdHJhbnNjb2RlciBtc3RfbWFz dGVyX3RyYW5zOwogfTsKIAogc3RydWN0IGludGVsX2NydGMgewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKaW5kZXggMmM1YWMzZGQ2NDdmLi44MDAyZGNhOWI3 MzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwpAQCAt ODcsNiArODcsNTAgQEAgc3RhdGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9saW5rX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAq IEl0ZXJhdGUgb3ZlciBhbGwgdGhlIENSVENzIGFuZCByZXR1cm4gdGhlIHRyYW5zY29kZXIgb2Yg dGhlIGxvd2VzdCBDUlRDIHRoYXQKKyAqIHNoYXJlIHRoZSBzYW1lIE1TVCBjb25uZWN0b3IuCisg Ki8KK3N0YXRpYyBlbnVtIHRyYW5zY29kZXIKK21zdF9jb21wdXRlX21hc3Rlcl90cmFucyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKm1z dF9jb25uKQoreworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX21zdF9jb25uID0gdG9f aW50ZWxfY29ubmVjdG9yKG1zdF9jb25uKTsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpp bnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YzsKKwlpbnQgaTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpCisJCXJl dHVybiBUUkFOU0NPREVSX0lOVkFMSUQ7CisKKwkvKiBJdGVyYXRlIGZyb20gdGhlIGxvd2VzdCB0 byB0aGUgaGlnaGVzdCBwaXBlICovCisJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUo aW50ZWxfc3RhdGUsIGludGVsX2NydGMsIGludGVsX2NydGNfc3RhdGUsIGkpIHsKKwkJc3RydWN0 IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlOworCQlzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uOworCQlpbnQgajsKKworCQlpZiAoIWludGVs X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCQkJY29udGludWU7CisKKwkJZm9yX2VhY2hfbmV3 X2ludGVsX2Nvbm5lY3Rvcl9pbl9zdGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY29ubiwKKwkJCQkJ CSAgICAgIGludGVsX2Nvbm5fc3RhdGUsIGopIHsKKwkJCS8qIE9ubHkgY2FyZSBhYm91dCBjb25u ZWN0b3JzIG9mIHRoaXMgQ1JUQyAqLworCQkJaWYgKGludGVsX2Nvbm5fc3RhdGUtPmJhc2UuY3J0 YyAhPQorCQkJICAgIGludGVsX2NydGNfc3RhdGUtPmJhc2UuY3J0YykKKwkJCQljb250aW51ZTsK KworCQkJaWYgKGludGVsX2Nvbm4tPm1zdF9wb3J0ICE9IGludGVsX21zdF9jb25uLT5tc3RfcG9y dCkKKwkJCQljb250aW51ZTsKKworCQkJcmV0dXJuIGludGVsX2NydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyOworCQl9CisJfQorCisJcmV0dXJuIFRSQU5TQ09ERVJfSU5WQUxJRDsKK30KKwogc3Rh dGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKIAkJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCkBA IC05NCwxNCArMTM4LDE1IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9k cF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7CiAJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9tc3QtPnByaW1hcnktPmRwOwotCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9Ci0JCXRvX2ludGVsX2Nvbm5lY3Rvcihj b25uX3N0YXRlLT5jb25uZWN0b3IpOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ig PSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxf Y29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7CiAJc3RydWN0IGludGVs X2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KIAkJdG9faW50ZWxf ZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQogCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKLQl2b2lkICpwb3J0ID0gY29ubmVjdG9yLT5wb3J0OworCXZvaWQgKnBvcnQgPSBp bnRlbF9jb25uZWN0b3ItPnBvcnQ7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7 CisJZW51bSB0cmFuc2NvZGVyIG1hc3RlcjsKIAlpbnQgcmV0OwogCiAJaWYgKGFkanVzdGVkX21v ZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQpAQCAtMTQ2LDYgKzE5MSw1MSBAQCBz dGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAogCWludGVsX2RkaV9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKGRldl9w cml2LCBwaXBlX2NvbmZpZyk7CiAKKwltYXN0ZXIgPSBtc3RfY29tcHV0ZV9tYXN0ZXJfdHJhbnMo Y29ubl9zdGF0ZS0+c3RhdGUsIGNvbm5lY3Rvcik7CisJcGlwZV9jb25maWctPm1zdF9tYXN0ZXJf dHJhbnMgPSBtYXN0ZXI7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAoraW50ZWxfZHBf bXN0X21hc3Rlcl90cmFuc19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiwKKwkJCQlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGUpCit7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uLT5kZXYpOworCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG5ld19jb25uX3N0YXRlLT5zdGF0ZTsKKwlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUgPQorCQlkcm1fYXRvbWljX2dldF9v bGRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uKTsKKwlzdHJ1Y3QgZHJtX2NydGMgKm5ld19j cnRjID0gbmV3X2Nvbm5fc3RhdGUtPmNydGM7CisJc3RydWN0IGRybV9jcnRjICpvbGRfY3J0YyA9 IG9sZF9jb25uX3N0YXRlLT5jcnRjOworCWVudW0gdHJhbnNjb2RlciBvbGRfbWFzdGVyX3RyYW5z ID0gVFJBTlNDT0RFUl9JTlZBTElEOworCWVudW0gdHJhbnNjb2RlciBuZXdfbWFzdGVyX3RyYW5z ID0gVFJBTlNDT0RFUl9JTlZBTElEOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGUsICpvbGRfY3J0Y19zdGF0ZTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIp CisJCXJldHVybiAwOworCisJaWYgKG9sZF9jcnRjKSB7CisJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICppbnRlbF9jcnRjX3N0YXRlOworCisJCW9sZF9jcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIG9sZF9jcnRjKTsKKwkJaW50ZWxfY3J0Y19zdGF0ZSA9 IHRvX2ludGVsX2NydGNfc3RhdGUob2xkX2NydGNfc3RhdGUpOworCQlvbGRfbWFzdGVyX3RyYW5z ID0gaW50ZWxfY3J0Y19zdGF0ZS0+bXN0X21hc3Rlcl90cmFuczsKKwl9CisKKwlpZiAobmV3X2Ny dGMpIHsKKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7CisKKwkJ bmV3X2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgbmV3 X2NydGMpOworCQlpbnRlbF9jcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0 Y19zdGF0ZSk7CisJCW5ld19tYXN0ZXJfdHJhbnMgPSBtc3RfY29tcHV0ZV9tYXN0ZXJfdHJhbnMo c3RhdGUsIGNvbm4pOworCX0KKworCWlmIChvbGRfY3J0YyAmJiBvbGRfbWFzdGVyX3RyYW5zICE9 IG5ld19tYXN0ZXJfdHJhbnMpCisJCW9sZF9jcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVl OworCisJaWYgKG5ld19jcnRjICYmIG9sZF9tYXN0ZXJfdHJhbnMgIT0gbmV3X21hc3Rlcl90cmFu cykKKwkJbmV3X2NydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CisKIAlyZXR1cm4gMDsK IH0KIApAQCAtMTY4LDYgKzI1OCwxMCBAQCBpbnRlbF9kcF9tc3RfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAor CXJldCA9IGludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfY2hlY2soY29ubmVjdG9yLCBuZXdfY29u bl9zdGF0ZSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwogCWlmICghb2xkX2Nvbm5fc3Rh dGUtPmNydGMpCiAJCXJldHVybiAwOwogCkBAIC02NzQsMyArNzY4LDYyIEBAIGludGVsX2RwX21z dF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQpCiAJZHJtX2RwX21zdF90b3BvbG9neV9tZ3JfZGVzdHJveSgmaW50ZWxfZHAtPm1zdF9tZ3Ip OwogCS8qIGVuY29kZXJzIHdpbGwgZ2V0IGtpbGxlZCBieSBub3JtYWwgY2xlYW51cCAqLwogfQor CisvKioKKyAqIGludGVsX2RwX21zdF9hdG9taWNfYWRkX2FmZmVjdGVkX2NydGNzIC0gQWRkIGFs bCBDUlRDcyB0aGF0IHNoYXJlIHRoZSBNU1QKKyAqIHN0cmVhbSB3aXRoIHRoZSBDUlRDcyBpbiB0 aGUgY3VycmVudCBhdG9taWMgc3RhdGUuCisgKiBAc3RhdGU6IHN0YXRlIHRvIGFkZCBDUlRDcwor ICoKKyAqIEl0IGlzIG5lZWRlZCBhZGQgdGhlIENSVENzIHRyaWdnZXIgYSBjYWxsIHRvIGF0b21p Y19jaGVjaygpIHRvCisgKiBldmVyeSBjb25uZWN0b3IgYXR0YWNoZWQgdG8gdGhlIENSVEMgaW4g Y2FzZSBhIG5ldyBtYXN0ZXIgdHJhbnNjb2RlciB3aWxsCisgKiBiZSBuZWVkZWQuCisgKi8KK2lu dCBpbnRlbF9kcF9tc3RfYXRvbWljX2FkZF9hZmZlY3RlZF9jcnRjcyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVj dG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBz dGF0ZS0+YmFzZS5kZXY7CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubjsKKwlp bnQgaTsKKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpCisJCXJldHVybiAwOworCisJ Zm9yX2VhY2hfbmV3X2ludGVsX2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgaW50ZWxfY29ubiwg aW50ZWxfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXIg Y29ubl9saXN0X2l0ZXI7CisJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uX2l0ZXI7CisKKwkJ aWYgKCFpbnRlbF9jb25uLT5tc3RfcG9ydCkKKwkJCWNvbnRpbnVlOworCisJCWRybV9jb25uZWN0 b3JfbGlzdF9pdGVyX2JlZ2luKGRldiwgJmNvbm5fbGlzdF9pdGVyKTsKKwkJZHJtX2Zvcl9lYWNo X2Nvbm5lY3Rvcl9pdGVyKGNvbm5faXRlciwgJmNvbm5fbGlzdF9pdGVyKSB7CisJCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9pdGVyX3N0YXRlOworCQkJc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubl9pdGVyOworCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOworCisJCQlpbnRlbF9jb25uX2l0ZXIgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9p dGVyKTsKKworCQkJaWYgKGludGVsX2Nvbm5faXRlci0+bXN0X3BvcnQgIT0gaW50ZWxfY29ubi0+ bXN0X3BvcnQpCisJCQkJY29udGludWU7CisKKwkJCWNvbm5faXRlcl9zdGF0ZSA9IGRybV9hdG9t aWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm5faXRlcik7CisJCQlpZiAo SVNfRVJSKGNvbm5faXRlcl9zdGF0ZSkpIHsKKwkJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9l bmQoJmNvbm5fbGlzdF9pdGVyKTsKKwkJCQlyZXR1cm4gUFRSX0VSUihjb25uX2l0ZXJfc3RhdGUp OworCQkJfQorCQkJaWYgKCFjb25uX2l0ZXJfc3RhdGUtPmNydGMpCisJCQkJY29udGludWU7CisK KwkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwK KwkJCQkJCQkgICAgICAgY29ubl9pdGVyX3N0YXRlLT5jcnRjKTsKKwkJCWlmIChJU19FUlIoY3J0 Y19zdGF0ZSkpIHsKKwkJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlzdF9p dGVyKTsKKwkJCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKKwkJCX0KKwkJfQorCQlkcm1f Y29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlzdF9pdGVyKTsKKwl9CisKKwlyZXR1cm4g MDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBf bXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5oCmluZGV4 IGY2NjBhZDgwZGIwNC4uMTczNTk4YWE4MWQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBfbXN0LmgKQEAgLTYsMTAgKzYsMTIgQEAKICNpZm5kZWYgX19JTlRFTF9E UF9NU1RfSF9fCiAjZGVmaW5lIF9fSU5URUxfRFBfTVNUX0hfXwogCitzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlOwogc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydDsKIAogaW50IGludGVsX2RwX21z dF9lbmNvZGVyX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQs IGludCBjb25uX2lkKTsKIHZvaWQgaW50ZWxfZHBfbXN0X2VuY29kZXJfY2xlYW51cChzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7CitpbnQgaW50ZWxfZHBfbXN0X2F0 b21pY19hZGRfYWZmZWN0ZWRfY3J0Y3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUp OwogaW50IGludGVsX2RwX21zdF9lbmNvZGVyX2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7CiAKICNlbmRpZiAvKiBfX0lOVEVMX0RQX01TVF9I X18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDNkZTAyNjgzZDg1Ni4uYmZmOWVlMTkx ODMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTk0MjQsNiArOTQyNCw5IEBAIGVudW0g c2tsX3Bvd2VyX2dhdGUgewogI2RlZmluZSAgVFJBTlNfRERJX0VEUF9JTlBVVF9BX09OT0ZGCSg0 IDw8IDEyKQogI2RlZmluZSAgVFJBTlNfRERJX0VEUF9JTlBVVF9CX09OT0ZGCSg1IDw8IDEyKQog I2RlZmluZSAgVFJBTlNfRERJX0VEUF9JTlBVVF9DX09OT0ZGCSg2IDw8IDEyKQorI2RlZmluZSAg VFJBTlNfRERJX01TVF9UUkFOU1BPUlRfU0VMRUNUX1NISUZUCQkxMCAvKiBUR0wrICovCisjZGVm aW5lICBUUkFOU19ERElfTVNUX1RSQU5TUE9SVF9TRUxFQ1RfTUFTSwkJKDB4MyA8PCAxMCkKKyNk ZWZpbmUgIFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVF9EUFRQKHRyYW5zKQkoKHRyYW5z KSA8PCAxMCkKICNkZWZpbmUgIFRSQU5TX0RESV9IRENQX1NJR05BTExJTkcJKDEgPDwgOSkKICNk ZWZpbmUgIFRSQU5TX0RESV9EUF9WQ19QQVlMT0FEX0FMTE9DCSgxIDw8IDgpCiAjZGVmaW5lICBU UkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSAoMSA8PCA3KQotLSAKMi4yMy4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=