From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v2 05/10] drm/i915: Unduplicate CHV pre-encoder enabling phy logic Date: Wed, 13 Apr 2016 20:47:48 +0300 Message-ID: <1460569673-13694-6-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1460569673-13694-1-git-send-email-ander.conselvan.de.oliveira@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 ESMTP id B83966E934 for ; Wed, 13 Apr 2016 17:48:09 +0000 (UTC) In-Reply-To: <1460569673-13694-1-git-send-email-ander.conselvan.de.oliveira@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: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org VGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBEUCBhbmQgSERNSSB2ZXJzaW9ucyB3YXMg dGhlIGxhbmUgY291bnQuClNpbmNlIGxhbmVfY291bnQgaXMgbm93IHNldCBhcHByb3ByaWF0ZWx5 IGZvciBIRE1JIHRvbywgZ2V0IHJpZCBvZiB0aGUKZHVwbGljYXRpb24gYW5kIG1vdmUgdGhpcyB0 byBpbnRlbF9kcGlvX3BoeS5jCgp2MjogRG9uJ3QgbW92ZSBjb21tZW50cyBhYm91dCAybmQgY29t bW9uIGxhbmUgc3RheWluZyBhbGl2ZS4gKFZpbGxlKQpTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25z ZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICAyICsKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgfCA4MyArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jIHwgOTIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuYyAgICAgfCA2NyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA0IGZpbGVz IGNoYW5nZWQsIDk4IGluc2VydGlvbnMoKyksIDE0NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAppbmRleCAxOWJmZTA0Li42Zjk2YzQ0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKQEAgLTM1NjEsNiArMzU2MSw4IEBAIHZvaWQgY2h2X3NldF9waHlfc2lnbmFsX2xldmVsKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVz ZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICBib29sIHJlc2V0KTsK IHZvaWQgY2h2X3BoeV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cik7Cit2b2lkIGNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKTsKK3ZvaWQgY2h2X3BoeV9yZWxlYXNlX2NsMl9vdmVycmlkZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2Rlcik7CiAKIGludCBpbnRlbF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwogaW50IGludGVsX2ZyZXFfb3Bjb2RlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwppbmRleCBkZDYyYmYwLi43NmE4MjVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMK QEAgLTI4NTEsOTEgKzI4NTEsMTIgQEAgc3RhdGljIHZvaWQgdmx2X2RwX3ByZV9wbGxfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBjaHZfcHJlX2Vu YWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9Ci0JCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsK LQllbnVtIGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKLQlp bnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Ci0JaW50IGRhdGEsIGksIHN0YWdnZXI7Ci0JdTMy IHZhbDsKLQotCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKLQotCS8qIGFsbG93IGhh cmR3YXJlIHRvIG1hbmFnZSBUWCBGSUZPIHJlc2V0IHNvdXJjZSAqLwotCXZhbCA9IHZsdl9kcGlv X3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7Ci0JdmFsICY9IH5EUElP X0xBTkVERVNLRVdfU1RSQVBfT1ZSRDsKLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg VkxWX1BDUzAxX0RXMTEoY2gpLCB2YWwpOwotCi0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFu ZV9jb3VudCA+IDIpIHsKLQkJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxW X1BDUzIzX0RXMTEoY2gpKTsKLQkJdmFsICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZSRDsK LQkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSwgdmFs KTsKLQl9Ci0KLQkvKiBQcm9ncmFtIFR4IGxhbmUgbGF0ZW5jeSBvcHRpbWFsIHNldHRpbmcqLwot CWZvciAoaSA9IDA7IGkgPCBpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQ7IGkrKykgewot CQkvKiBTZXQgdGhlIHVwYXIgYml0ICovCi0JCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVf Y291bnQgPT0gMSkKLQkJCWRhdGEgPSAweDA7Ci0JCWVsc2UKLQkJCWRhdGEgPSAoaSA9PSAxKSA/ IDB4MCA6IDB4MTsKLQkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9UWF9EVzE0 KGNoLCBpKSwKLQkJCQlkYXRhIDw8IERQSU9fVVBBUl9TSElGVCk7Ci0JfQotCi0JLyogRGF0YSBs YW5lIHN0YWdnZXIgcHJvZ3JhbW1pbmcgKi8KLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0 X2Nsb2NrID4gMjcwMDAwKQotCQlzdGFnZ2VyID0gMHgxODsKLQllbHNlIGlmIChpbnRlbF9jcnRj LT5jb25maWctPnBvcnRfY2xvY2sgPiAxMzUwMDApCi0JCXN0YWdnZXIgPSAweGQ7Ci0JZWxzZSBp ZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gNjc1MDApCi0JCXN0YWdnZXIgPSAw eDc7Ci0JZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMzM3NTApCi0J CXN0YWdnZXIgPSAweDQ7Ci0JZWxzZQotCQlzdGFnZ2VyID0gMHgyOwotCi0JdmFsID0gdmx2X2Rw aW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpKTsKLQl2YWwgfD0gRFBJ T19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOwotCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBl LCBWTFZfUENTMDFfRFcxMShjaCksIHZhbCk7Ci0KLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5s YW5lX2NvdW50ID4gMikgewotCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBW TFZfUENTMjNfRFcxMShjaCkpOwotCQl2YWwgfD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYp OwotCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpLCB2 YWwpOwotCX0KLQotCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcx MihjaCksCi0JCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQKHN0YWdnZXIpIHwKLQkJICAg ICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8Ci0JCSAgICAgICBEUElPX1RYMV9TVEFH R0VSX01BU0soMHgxZikgfAotCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NVUxUKDYpIHwKLQkJ ICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCgwKSk7Ci0KLQlpZiAoaW50ZWxfY3J0Yy0+Y29u ZmlnLT5sYW5lX2NvdW50ID4gMikgewotCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg VkxWX1BDUzIzX0RXMTIoY2gpLAotCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAoc3Rh Z2dlcikgfAotCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8Ci0JCQkgICAg ICAgRFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKLQkJCSAgICAgICBEUElPX1RYMV9TVEFH R0VSX01VTFQoNykgfAotCQkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCg1KSk7Ci0JfQot Ci0JLyogRGVhc3NlcnQgZGF0YSBsYW5lIHJlc2V0ICovCi0JY2h2X2RhdGFfbGFuZV9zb2Z0X3Jl c2V0KGVuY29kZXIsIGZhbHNlKTsKLQotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2sp OworCWNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKGVuY29kZXIpOwogCiAJaW50ZWxfZW5hYmxl X2RwKGVuY29kZXIpOwogCiAJLyogU2Vjb25kIGNvbW1vbiBsYW5lIHdpbGwgc3RheSBhbGl2ZSBv biBpdHMgb3duIG5vdyAqLwotCWlmIChkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJpZGUpIHsKLQkJ Y2h2X3BoeV9wb3dlcmdhdGVfY2goZGV2X3ByaXYsIERQSU9fUEhZMCwgRFBJT19DSDEsIGZhbHNl KTsKLQkJZHBvcnQtPnJlbGVhc2VfY2wyX292ZXJyaWRlID0gZmFsc2U7Ci0JfQorCWNodl9waHlf cmVsZWFzZV9jbDJfb3ZlcnJpZGUoZW5jb2Rlcik7CiB9CiAKIHN0YXRpYyB2b2lkIGNodl9kcF9w cmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcGlvX3BoeS5jCmluZGV4IGI0Y2EzZmYuLmFkMGU3YmUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBpb19waHkuYwpAQCAtMjQ0LDMgKzI0NCw5NSBAQCB2b2lkIGNodl9w aHlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAKIAltdXRl eF91bmxvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKIH0KKwordm9pZCBjaHZfcGh5X3ByZV9lbmNv ZGVyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9CisJCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRj KTsKKwllbnVtIGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsK KwlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisJaW50IGRhdGEsIGksIHN0YWdnZXI7CisJ dTMyIHZhbDsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKKworCS8qIGFsbG93 IGhhcmR3YXJlIHRvIG1hbmFnZSBUWCBGSUZPIHJlc2V0IHNvdXJjZSAqLworCXZhbCA9IHZsdl9k cGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7CisJdmFsICY9IH5E UElPX0xBTkVERVNLRVdfU1RSQVBfT1ZSRDsKKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlw ZSwgVkxWX1BDUzAxX0RXMTEoY2gpLCB2YWwpOworCisJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ bGFuZV9jb3VudCA+IDIpIHsKKwkJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwg VkxWX1BDUzIzX0RXMTEoY2gpKTsKKwkJdmFsICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZS RDsKKwkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSwg dmFsKTsKKwl9CisKKwkvKiBQcm9ncmFtIFR4IGxhbmUgbGF0ZW5jeSBvcHRpbWFsIHNldHRpbmcq LworCWZvciAoaSA9IDA7IGkgPCBpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQ7IGkrKykg eworCQkvKiBTZXQgdGhlIHVwYXIgYml0ICovCisJCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxh bmVfY291bnQgPT0gMSkKKwkJCWRhdGEgPSAweDA7CisJCWVsc2UKKwkJCWRhdGEgPSAoaSA9PSAx KSA/IDB4MCA6IDB4MTsKKwkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9UWF9E VzE0KGNoLCBpKSwKKwkJCQlkYXRhIDw8IERQSU9fVVBBUl9TSElGVCk7CisJfQorCisJLyogRGF0 YSBsYW5lIHN0YWdnZXIgcHJvZ3JhbW1pbmcgKi8KKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5w b3J0X2Nsb2NrID4gMjcwMDAwKQorCQlzdGFnZ2VyID0gMHgxODsKKwllbHNlIGlmIChpbnRlbF9j cnRjLT5jb25maWctPnBvcnRfY2xvY2sgPiAxMzUwMDApCisJCXN0YWdnZXIgPSAweGQ7CisJZWxz ZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gNjc1MDApCisJCXN0YWdnZXIg PSAweDc7CisJZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMzM3NTAp CisJCXN0YWdnZXIgPSAweDQ7CisJZWxzZQorCQlzdGFnZ2VyID0gMHgyOworCisJdmFsID0gdmx2 X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpKTsKKwl2YWwgfD0g RFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOworCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBw aXBlLCBWTFZfUENTMDFfRFcxMShjaCksIHZhbCk7CisKKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmln LT5sYW5lX2NvdW50ID4gMikgeworCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBl LCBWTFZfUENTMjNfRFcxMShjaCkpOworCQl2YWwgfD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4 MWYpOworCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gp LCB2YWwpOworCX0KKworCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFf RFcxMihjaCksCisJCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQKHN0YWdnZXIpIHwKKwkJ ICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8CisJCSAgICAgICBEUElPX1RYMV9T VEFHR0VSX01BU0soMHgxZikgfAorCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NVUxUKDYpIHwK KwkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCgwKSk7CisKKwlpZiAoaW50ZWxfY3J0Yy0+ Y29uZmlnLT5sYW5lX2NvdW50ID4gMikgeworCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlw ZSwgVkxWX1BDUzIzX0RXMTIoY2gpLAorCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAo c3RhZ2dlcikgfAorCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8CisJCQkg ICAgICAgRFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKKwkJCSAgICAgICBEUElPX1RYMV9T VEFHR0VSX01VTFQoNykgfAorCQkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCg1KSk7CisJ fQorCisJLyogRGVhc3NlcnQgZGF0YSBsYW5lIHJlc2V0ICovCisJY2h2X2RhdGFfbGFuZV9zb2Z0 X3Jlc2V0KGVuY29kZXIsIGZhbHNlKTsKKworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xv Y2spOworfQorCit2b2lkIGNodl9waHlfcmVsZWFzZV9jbDJfb3ZlcnJpZGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQg PSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCisJaWYgKGRwb3J0 LT5yZWxlYXNlX2NsMl9vdmVycmlkZSkgeworCQljaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJp diwgRFBJT19QSFkwLCBEUElPX0NIMSwgZmFsc2UpOworCQlkcG9ydC0+cmVsZWFzZV9jbDJfb3Zl cnJpZGUgPSBmYWxzZTsKKwl9Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggZTgy ZDZlOC4uYjRkYTdlZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMTczNiw2OCAr MTczNiw4IEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQogCQl0b19p bnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGU7Ci0JZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9y dCk7Ci0JaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCWludCBkYXRhLCBpLCBzdGFnZ2Vy OwotCXUzMiB2YWw7Ci0KLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Ci0KLQkvKiBh bGxvdyBoYXJkd2FyZSB0byBtYW5hZ2UgVFggRklGTyByZXNldCBzb3VyY2UgKi8KLQl2YWwgPSB2 bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxMShjaCkpOwotCXZhbCAm PSB+RFBJT19MQU5FREVTS0VXX1NUUkFQX09WUkQ7Ci0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYs IHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSwgdmFsKTsKLQotCXZhbCA9IHZsdl9kcGlvX3JlYWQo ZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSk7Ci0JdmFsICY9IH5EUElPX0xBTkVE RVNLRVdfU1RSQVBfT1ZSRDsKLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BD UzIzX0RXMTEoY2gpLCB2YWwpOwotCi0JLyogUHJvZ3JhbSBUeCBsYXRlbmN5IG9wdGltYWwgc2V0 dGluZyAqLwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJLyogU2V0IHRoZSB1cGFyIGJp dCAqLwotCQlkYXRhID0gKGkgPT0gMSkgPyAweDAgOiAweDE7Ci0JCXZsdl9kcGlvX3dyaXRlKGRl dl9wcml2LCBwaXBlLCBDSFZfVFhfRFcxNChjaCwgaSksCi0JCQkJZGF0YSA8PCBEUElPX1VQQVJf U0hJRlQpOwotCX0KLQotCS8qIERhdGEgbGFuZSBzdGFnZ2VyIHByb2dyYW1taW5nICovCi0JaWYg KGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDI3MDAwMCkKLQkJc3RhZ2dlciA9IDB4 MTg7Ci0JZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMTM1MDAwKQot CQlzdGFnZ2VyID0gMHhkOwotCWVsc2UgaWYgKGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9j ayA+IDY3NTAwKQotCQlzdGFnZ2VyID0gMHg3OwotCWVsc2UgaWYgKGludGVsX2NydGMtPmNvbmZp Zy0+cG9ydF9jbG9jayA+IDMzNzUwKQotCQlzdGFnZ2VyID0gMHg0OwotCWVsc2UKLQkJc3RhZ2dl ciA9IDB4MjsKIAotCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1Mw MV9EVzExKGNoKSk7Ci0JdmFsIHw9IERQSU9fVFgyX1NUQUdHRVJfTUFTSygweDFmKTsKLQl2bHZf ZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpLCB2YWwpOwotCi0J dmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpKTsK LQl2YWwgfD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOwotCXZsdl9kcGlvX3dyaXRlKGRl dl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFcxMShjaCksIHZhbCk7Ci0KLQl2bHZfZHBpb193cml0 ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTIoY2gpLAotCQkgICAgICAgRFBJT19MQU5F U1RBR0dFUl9TVFJBUChzdGFnZ2VyKSB8Ci0JCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQ X09WUkQgfAotCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKLQkJICAgICAg IERQSU9fVFgxX1NUQUdHRVJfTVVMVCg2KSB8Ci0JCSAgICAgICBEUElPX1RYMl9TVEFHR0VSX01V TFQoMCkpOwotCi0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzEy KGNoKSwKLQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAoc3RhZ2dlcikgfAotCQkgICAg ICAgRFBJT19MQU5FU1RBR0dFUl9TVFJBUF9PVlJEIHwKLQkJICAgICAgIERQSU9fVFgxX1NUQUdH RVJfTUFTSygweDFmKSB8Ci0JCSAgICAgICBEUElPX1RYMV9TVEFHR0VSX01VTFQoNykgfAotCQkg ICAgICAgRFBJT19UWDJfU1RBR0dFUl9NVUxUKDUpKTsKLQotCS8qIERlYXNzZXJ0IGRhdGEgbGFu ZSByZXNldCAqLwotCWNodl9kYXRhX2xhbmVfc29mdF9yZXNldChlbmNvZGVyLCBmYWxzZSk7Ci0K LQltdXRleF91bmxvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKKwljaHZfcGh5X3ByZV9lbmNvZGVy X2VuYWJsZShlbmNvZGVyKTsKIAogCS8qIEZJWE1FOiBQcm9ncmFtIHRoZSBzdXBwb3J0IHh4eCBW LWRCICovCiAJLyogVXNlIDgwMG1WLTBkQiAqLwpAQCAtMTgxMiwxMCArMTc1Miw3IEBAIHN0YXRp YyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp CiAJdmx2X3dhaXRfcG9ydF9yZWFkeShkZXZfcHJpdiwgZHBvcnQsIDB4MCk7CiAKIAkvKiBTZWNv bmQgY29tbW9uIGxhbmUgd2lsbCBzdGF5IGFsaXZlIG9uIGl0cyBvd24gbm93ICovCi0JaWYgKGRw b3J0LT5yZWxlYXNlX2NsMl9vdmVycmlkZSkgewotCQljaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZf cHJpdiwgRFBJT19QSFkwLCBEUElPX0NIMSwgZmFsc2UpOwotCQlkcG9ydC0+cmVsZWFzZV9jbDJf b3ZlcnJpZGUgPSBmYWxzZTsKLQl9CisJY2h2X3BoeV9yZWxlYXNlX2NsMl9vdmVycmlkZShlbmNv ZGVyKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9kZXN0cm95KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IpCi0tIAoyLjQuMTEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=