From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 07/10] drm/i915: For HPD connected port use hpd_pin instead of port. Date: Thu, 25 Jan 2018 14:03:27 -0800 Message-ID: <20180125220330.15676-7-rodrigo.vivi@intel.com> References: <20180125220330.15676-1-rodrigo.vivi@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 418CE6E84A for ; Thu, 25 Jan 2018 22:03:34 +0000 (UTC) In-Reply-To: <20180125220330.15676-1-rodrigo.vivi@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: Lucas De Marchi , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org TGV0J3MgdHJ5IHRvIHNpbXBsaWZ5IHRoaXMgbWFwcGluZyB0byBocGRfcGluIC0+IGJpdAppbnN0 ZWFkIHVzaW5nIHBvcnQuClNvIGZvciBDTkwgd2l0aCBwb3J0IEYgd2hlcmUgd2UgaGF2ZSB0aGlz IHBvcnQgdXNpbmcKaGRwX3BpbiBhbmQgYml0cyBvZiBvdGhlciBwb3J0cyB3ZSBkb24ndCBuZWVk IHRvIGR1cGxpY2F0ZWQKdGhlIG1hcHBpbmcuCgpCdXQgZm9yIG5vdyB0aGlzIGlzIG9ubHkgYSBy ZS1vcmcgd2l0aCBubyBmdW5jdGlvbmFsIGNoYW5nZQpleHBlY3RlZC4KCnYyOiBBZGQgbWlzc2lu ZyBsaW5lcyBhbmQgbnVrZSBAcG9ydCByZWZlcmVuY2UgZnJvbSBjb2RlCiAgICBkb2N1bWVudGF0 aW9uLiAoVmlsbGUpCgpDYzogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5j b20+ClN1Z2dlc3RlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4K UmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgfCAxNTAgKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMg fCAgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgNzkgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggYWUzYjBiMDMwMTc3Li44NTc5ZDJkMDky MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtNDQ4NywxNzMgKzQ0ODcsMTc0IEBAIGVk cF9kZXRlY3Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlyZXR1cm4gc3RhdHVzOwogfQog Ci1zdGF0aWMgYm9vbCBpYnhfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KnBvcnQpCitzdGF0aWMgYm9vbCBpYnhfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAl1MzIgYml0OwogCi0Jc3dpdGNoIChw b3J0LT5iYXNlLnBvcnQpIHsKLQljYXNlIFBPUlRfQjoKKwlzd2l0Y2ggKGVuY29kZXItPmhwZF9w aW4pIHsKKwljYXNlIEhQRF9QT1JUX0I6CiAJCWJpdCA9IFNERV9QT1JUQl9IT1RQTFVHOwogCQli cmVhazsKLQljYXNlIFBPUlRfQzoKKwljYXNlIEhQRF9QT1JUX0M6CiAJCWJpdCA9IFNERV9QT1JU Q19IT1RQTFVHOwogCQlicmVhazsKLQljYXNlIFBPUlRfRDoKKwljYXNlIEhQRF9QT1JUX0Q6CiAJ CWJpdCA9IFNERV9QT1JURF9IT1RQTFVHOwogCQlicmVhazsKIAlkZWZhdWx0OgotCQlNSVNTSU5H X0NBU0UocG9ydC0+YmFzZS5wb3J0KTsKKwkJTUlTU0lOR19DQVNFKGVuY29kZXItPmhwZF9waW4p OwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJcmV0dXJuIEk5MTVfUkVBRChTREVJU1IpICYgYml0 OwogfQogCi1zdGF0aWMgYm9vbCBjcHRfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgIHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKnBvcnQpCitzdGF0aWMgYm9vbCBjcHRfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAl1MzIgYml0OwogCi0Jc3dp dGNoIChwb3J0LT5iYXNlLnBvcnQpIHsKLQljYXNlIFBPUlRfQjoKKwlzd2l0Y2ggKGVuY29kZXIt PmhwZF9waW4pIHsKKwljYXNlIEhQRF9QT1JUX0I6CiAJCWJpdCA9IFNERV9QT1JUQl9IT1RQTFVH X0NQVDsKIAkJYnJlYWs7Ci0JY2FzZSBQT1JUX0M6CisJY2FzZSBIUERfUE9SVF9DOgogCQliaXQg PSBTREVfUE9SVENfSE9UUExVR19DUFQ7CiAJCWJyZWFrOwotCWNhc2UgUE9SVF9EOgorCWNhc2Ug SFBEX1BPUlRfRDoKIAkJYml0ID0gU0RFX1BPUlREX0hPVFBMVUdfQ1BUOwogCQlicmVhazsKIAlk ZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UocG9ydC0+YmFzZS5wb3J0KTsKKwkJTUlTU0lOR19DQVNF KGVuY29kZXItPmhwZF9waW4pOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJcmV0dXJuIEk5MTVf UkVBRChTREVJU1IpICYgYml0OwogfQogCi1zdGF0aWMgYm9vbCBzcHRfZGlnaXRhbF9wb3J0X2Nv bm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgIHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKnBvcnQpCitzdGF0aWMgYm9vbCBzcHRfZGlnaXRhbF9w b3J0X2Nvbm5lY3RlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK IAl1MzIgYml0OwogCi0Jc3dpdGNoIChwb3J0LT5iYXNlLnBvcnQpIHsKLQljYXNlIFBPUlRfQToK Kwlzd2l0Y2ggKGVuY29kZXItPmhwZF9waW4pIHsKKwljYXNlIEhQRF9QT1JUX0E6CiAJCWJpdCA9 IFNERV9QT1JUQV9IT1RQTFVHX1NQVDsKIAkJYnJlYWs7Ci0JY2FzZSBQT1JUX0U6CisJY2FzZSBI UERfUE9SVF9FOgogCQliaXQgPSBTREVfUE9SVEVfSE9UUExVR19TUFQ7CiAJCWJyZWFrOwogCWRl ZmF1bHQ6Ci0JCXJldHVybiBjcHRfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChkZXZfcHJpdiwgcG9y dCk7CisJCXJldHVybiBjcHRfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChlbmNvZGVyKTsKIAl9CiAK IAlyZXR1cm4gSTkxNV9SRUFEKFNERUlTUikgJiBiaXQ7CiB9CiAKLXN0YXRpYyBib29sIGc0eF9k aWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK LQkJCQkgICAgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqcG9ydCkKK3N0YXRpYyBib29s IGc0eF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwogCXUzMiBiaXQ7CiAKLQlzd2l0Y2ggKHBvcnQtPmJhc2UucG9ydCkgewot CWNhc2UgUE9SVF9COgorCXN3aXRjaCAoZW5jb2Rlci0+aHBkX3BpbikgeworCWNhc2UgSFBEX1BP UlRfQjoKIAkJYml0ID0gUE9SVEJfSE9UUExVR19MSVZFX1NUQVRVU19HNFg7CiAJCWJyZWFrOwot CWNhc2UgUE9SVF9DOgorCWNhc2UgSFBEX1BPUlRfQzoKIAkJYml0ID0gUE9SVENfSE9UUExVR19M SVZFX1NUQVRVU19HNFg7CiAJCWJyZWFrOwotCWNhc2UgUE9SVF9EOgorCWNhc2UgSFBEX1BPUlRf RDoKIAkJYml0ID0gUE9SVERfSE9UUExVR19MSVZFX1NUQVRVU19HNFg7CiAJCWJyZWFrOwogCWRl ZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwb3J0LT5iYXNlLnBvcnQpOworCQlNSVNTSU5HX0NBU0Uo ZW5jb2Rlci0+aHBkX3Bpbik7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKIAlyZXR1cm4gSTkxNV9S RUFEKFBPUlRfSE9UUExVR19TVEFUKSAmIGJpdDsKIH0KIAotc3RhdGljIGJvb2wgZ200NV9kaWdp dGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJ CQkJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqcG9ydCkKK3N0YXRpYyBib29sIGdtNDVfZGln aXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKIAl1MzIgYml0OwogCi0Jc3dpdGNoIChwb3J0LT5iYXNlLnBvcnQpIHsKLQljYXNlIFBP UlRfQjoKKwlzd2l0Y2ggKGVuY29kZXItPmhwZF9waW4pIHsKKwljYXNlIEhQRF9QT1JUX0I6CiAJ CWJpdCA9IFBPUlRCX0hPVFBMVUdfTElWRV9TVEFUVVNfR000NTsKIAkJYnJlYWs7Ci0JY2FzZSBQ T1JUX0M6CisJY2FzZSBIUERfUE9SVF9DOgogCQliaXQgPSBQT1JUQ19IT1RQTFVHX0xJVkVfU1RB VFVTX0dNNDU7CiAJCWJyZWFrOwotCWNhc2UgUE9SVF9EOgorCWNhc2UgSFBEX1BPUlRfRDoKIAkJ Yml0ID0gUE9SVERfSE9UUExVR19MSVZFX1NUQVRVU19HTTQ1OwogCQlicmVhazsKIAlkZWZhdWx0 OgotCQlNSVNTSU5HX0NBU0UocG9ydC0+YmFzZS5wb3J0KTsKKwkJTUlTU0lOR19DQVNFKGVuY29k ZXItPmhwZF9waW4pOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJcmV0dXJuIEk5MTVfUkVBRChQ T1JUX0hPVFBMVUdfU1RBVCkgJiBiaXQ7CiB9CiAKLXN0YXRpYyBib29sIGlsa19kaWdpdGFsX3Bv cnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAg ICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqcG9ydCkKK3N0YXRpYyBib29sIGlsa19kaWdp dGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCWlm IChwb3J0LT5iYXNlLnBvcnQgPT0gUE9SVF9BKQorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCisJaWYgKGVuY29kZXItPmhw ZF9waW4gPT0gSFBEX1BPUlRfQSkKIAkJcmV0dXJuIEk5MTVfUkVBRChERUlTUikgJiBERV9EUF9B X0hPVFBMVUc7CiAJZWxzZQotCQlyZXR1cm4gaWJ4X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZGV2 X3ByaXYsIHBvcnQpOworCQlyZXR1cm4gaWJ4X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZW5jb2Rl cik7CiB9CiAKLXN0YXRpYyBib29sIHNuYl9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgICAgc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqcG9ydCkKK3N0YXRpYyBib29sIHNuYl9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCWlmIChwb3J0LT5iYXNlLnBvcnQgPT0g UE9SVF9BKQorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOworCisJaWYgKGVuY29kZXItPmhwZF9waW4gPT0gSFBEX1BPUlRfQSkK IAkJcmV0dXJuIEk5MTVfUkVBRChERUlTUikgJiBERV9EUF9BX0hPVFBMVUc7CiAJZWxzZQotCQly ZXR1cm4gY3B0X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZGV2X3ByaXYsIHBvcnQpOworCQlyZXR1 cm4gY3B0X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZW5jb2Rlcik7CiB9CiAKLXN0YXRpYyBib29s IGl2Yl9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKLQkJCQkgICAgICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqcG9ydCkKK3N0YXRp YyBib29sIGl2Yl9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQogewotCWlmIChwb3J0LT5iYXNlLnBvcnQgPT0gUE9SVF9BKQorCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCisJ aWYgKGVuY29kZXItPmhwZF9waW4gPT0gSFBEX1BPUlRfQSkKIAkJcmV0dXJuIEk5MTVfUkVBRChE RUlTUikgJiBERV9EUF9BX0hPVFBMVUdfSVZCOwogCWVsc2UKLQkJcmV0dXJuIGNwdF9kaWdpdGFs X3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsKKwkJcmV0dXJuIGNwdF9kaWdpdGFsX3Bv cnRfY29ubmVjdGVkKGVuY29kZXIpOwogfQogCi1zdGF0aWMgYm9vbCBiZHdfZGlnaXRhbF9wb3J0 X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAg IHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKnBvcnQpCitzdGF0aWMgYm9vbCBiZHdfZGlnaXRh bF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKLQlpZiAo cG9ydC0+YmFzZS5wb3J0ID09IFBPUlRfQSkKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKworCWlmIChlbmNvZGVyLT5ocGRf cGluID09IEhQRF9QT1JUX0EpCiAJCXJldHVybiBJOTE1X1JFQUQoR0VOOF9ERV9QT1JUX0lTUikg JiBHRU44X1BPUlRfRFBfQV9IT1RQTFVHOwogCWVsc2UKLQkJcmV0dXJuIGNwdF9kaWdpdGFsX3Bv cnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsKKwkJcmV0dXJuIGNwdF9kaWdpdGFsX3BvcnRf Y29ubmVjdGVkKGVuY29kZXIpOwogfQogCi1zdGF0aWMgYm9vbCBieHRfZGlnaXRhbF9wb3J0X2Nv bm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICAgIHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQorc3RhdGljIGJvb2wgYnh0 X2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7 Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQt PmJhc2U7Ci0JZW51bSBwb3J0IHBvcnQ7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJdTMyIGJpdDsKIAotCXBvcnQgPSBp bnRlbF9ocGRfcGluX3RvX3BvcnQoaW50ZWxfZW5jb2Rlci0+aHBkX3Bpbik7Ci0Jc3dpdGNoIChw b3J0KSB7Ci0JY2FzZSBQT1JUX0E6CisJc3dpdGNoIChlbmNvZGVyLT5ocGRfcGluKSB7CisJY2Fz ZSBIUERfUE9SVF9BOgogCQliaXQgPSBCWFRfREVfUE9SVF9IUF9ERElBOwogCQlicmVhazsKLQlj YXNlIFBPUlRfQjoKKwljYXNlIEhQRF9QT1JUX0I6CiAJCWJpdCA9IEJYVF9ERV9QT1JUX0hQX0RE SUI7CiAJCWJyZWFrOwotCWNhc2UgUE9SVF9DOgorCWNhc2UgSFBEX1BPUlRfQzoKIAkJYml0ID0g QlhUX0RFX1BPUlRfSFBfRERJQzsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNF KHBvcnQpOworCQlNSVNTSU5HX0NBU0UoZW5jb2Rlci0+aHBkX3Bpbik7CiAJCXJldHVybiBmYWxz ZTsKIAl9CiAKQEAgLTQ2NjIsMzMgKzQ2NjMsMzMgQEAgc3RhdGljIGJvb2wgYnh0X2RpZ2l0YWxf cG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAvKgog ICogaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZCAtIGlzIHRoZSBzcGVjaWZpZWQgcG9ydCBj b25uZWN0ZWQ/Ci0gKiBAZGV2X3ByaXY6IGk5MTUgcHJpdmF0ZSBzdHJ1Y3R1cmUKLSAqIEBwb3J0 OiB0aGUgcG9ydCB0byB0ZXN0CisgKiBAZW5jb2RlcjogaW50ZWxfZW5jb2RlcgogICoKLSAqIFJl dHVybiAldHJ1ZSBpZiBAcG9ydCBpcyBjb25uZWN0ZWQsICVmYWxzZSBvdGhlcndpc2UuCisgKiBS ZXR1cm4gJXRydWUgaWYgcG9ydCBpcyBjb25uZWN0ZWQsICVmYWxzZSBvdGhlcndpc2UuCiAgKi8K LWJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCi0JCQkJICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpwb3J0KQorYm9v bCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOworCiAJaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKSB7CiAJ CWlmIChJU19HTTQ1KGRldl9wcml2KSkKLQkJCXJldHVybiBnbTQ1X2RpZ2l0YWxfcG9ydF9jb25u ZWN0ZWQoZGV2X3ByaXYsIHBvcnQpOworCQkJcmV0dXJuIGdtNDVfZGlnaXRhbF9wb3J0X2Nvbm5l Y3RlZChlbmNvZGVyKTsKIAkJZWxzZQotCQkJcmV0dXJuIGc0eF9kaWdpdGFsX3BvcnRfY29ubmVj dGVkKGRldl9wcml2LCBwb3J0KTsKKwkJCXJldHVybiBnNHhfZGlnaXRhbF9wb3J0X2Nvbm5lY3Rl ZChlbmNvZGVyKTsKIAl9CiAKIAlpZiAoSVNfR0VONShkZXZfcHJpdikpCi0JCXJldHVybiBpbGtf ZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChkZXZfcHJpdiwgcG9ydCk7CisJCXJldHVybiBpbGtfZGln aXRhbF9wb3J0X2Nvbm5lY3RlZChlbmNvZGVyKTsKIAllbHNlIGlmIChJU19HRU42KGRldl9wcml2 KSkKLQkJcmV0dXJuIHNuYl9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsK KwkJcmV0dXJuIHNuYl9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGVuY29kZXIpOwogCWVsc2UgaWYg KElTX0dFTjcoZGV2X3ByaXYpKQotCQlyZXR1cm4gaXZiX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQo ZGV2X3ByaXYsIHBvcnQpOworCQlyZXR1cm4gaXZiX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZW5j b2Rlcik7CiAJZWxzZSBpZiAoSVNfR0VOOChkZXZfcHJpdikpCi0JCXJldHVybiBiZHdfZGlnaXRh bF9wb3J0X2Nvbm5lY3RlZChkZXZfcHJpdiwgcG9ydCk7CisJCXJldHVybiBiZHdfZGlnaXRhbF9w b3J0X2Nvbm5lY3RlZChlbmNvZGVyKTsKIAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkK LQkJcmV0dXJuIGJ4dF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsKKwkJ cmV0dXJuIGJ4dF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGVuY29kZXIpOwogCWVsc2UKLQkJcmV0 dXJuIHNwdF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGRldl9wcml2LCBwb3J0KTsKKwkJcmV0dXJu IHNwdF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGVuY29kZXIpOwogfQogCiBzdGF0aWMgc3RydWN0 IGVkaWQgKgpAQCAtNDc0Nyw4ICs0NzQ4LDcgQEAgaW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJLyogQ2FuJ3QgZGlzY29ubmVjdCBlRFAsIGJ1 dCB5b3UgY2FuIGNsb3NlIHRoZSBsaWQuLi4gKi8KIAlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVs X2RwKSkKIAkJc3RhdHVzID0gZWRwX2RldGVjdChpbnRlbF9kcCk7Ci0JZWxzZSBpZiAoaW50ZWxf ZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChkZXZfcHJpdiwKLQkJCQkJICAgICAgZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApKSkKKwllbHNlIGlmIChpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKCZk cF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UpKQogCQlzdGF0dXMgPSBpbnRlbF9kcF9kZXRl Y3RfZHBjZChpbnRlbF9kcCk7CiAJZWxzZQogCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rp c2Nvbm5lY3RlZDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggM2NlZTU0YmMwMzUyLi4y NjMyYWU1MGNhMzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xNjcwLDggKzE2NzAs NyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpbnRlbF9kcF91bnVzZWRfbGFuZV9tYXNr KGludCBsYW5lX2NvdW50KQogYm9vbCBpbnRlbF9kcF9yZWFkX2RwY2Qoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCk7CiBpbnQgaW50ZWxfZHBfbGlua19yZXF1aXJlZChpbnQgcGl4ZWxfY2xvY2ss IGludCBicHApOwogaW50IGludGVsX2RwX21heF9kYXRhX3JhdGUoaW50IG1heF9saW5rX2Nsb2Nr LCBpbnQgbWF4X2xhbmVzKTsKLWJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICBzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICpwb3J0KTsKK2Jvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CiAKIC8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyAq LwogaW50IGludGVsX2RwX2F1eF9pbml0X2JhY2tsaWdodF9mdW5jcyhzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHNwY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwpp bmRleCBkY2JjNzg2NDc5ZjkuLjhhZThmNDJmNDMwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHNwY29uLmMKQEAgLTE2NywxMSArMTY3LDEwIEBAIHN0YXRpYyB2b2lkIGxzcGNvbl9yZXN1bWVf aW5fcGNvbl93YShzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCiB7CiAJc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9IGxzcGNvbl90b19pbnRlbF9kcChsc3Bjb24pOwogCXN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2Uu YmFzZS5kZXYpOwogCXVuc2lnbmVkIGxvbmcgc3RhcnQgPSBqaWZmaWVzOwogCiAJd2hpbGUgKDEp IHsKLQkJaWYgKGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZGV2X3ByaXYsIGRpZ19wb3J0 KSkgeworCQlpZiAoaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZCgmZGlnX3BvcnQtPmJhc2Up KSB7CiAJCQlEUk1fREVCVUdfS01TKCJMU1BDT04gcmVjb3ZlcmluZyBpbiBQQ09OIG1vZGUgYWZ0 ZXIgJXUgbXNcbiIsCiAJCQkJICAgICAgamlmZmllc190b19tc2VjcyhqaWZmaWVzIC0gc3RhcnQp KTsKIAkJCXJldHVybjsKLS0gCjIuMTMuNgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==