From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v4 05/10] drm/i915: Unduplicate CHV pre-encoder enabling phy logic Date: Wed, 27 Apr 2016 15:44:20 +0300 Message-ID: <1461761065-21195-6-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1461761065-21195-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 1CF3F6EAB3 for ; Wed, 27 Apr 2016 12:44:42 +0000 (UTC) In-Reply-To: <1461761065-21195-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+ ClJldmlld2VkLWJ5OiBKaW0gQnJpZGUgPGppbS5icmlkZUBsaW51eC5pbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8ICAyICsKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgfCA4MyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jIHwgOTIgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYyAgICAgfCA2NyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5n ZWQsIDk4IGluc2VydGlvbnMoKyksIDE0NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAppbmRleCA0ZTM0ZDNkLi5hNDgyMjk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAg LTM1ODQsNiArMzU4NCw4IEBAIHZvaWQgY2h2X3NldF9waHlfc2lnbmFsX2xldmVsKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVzZXQoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICBib29sIHJlc2V0KTsKIHZvaWQg Y2h2X3BoeV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cit2 b2lkIGNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKTsKK3ZvaWQgY2h2X3BoeV9yZWxlYXNlX2NsMl9vdmVycmlkZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2Rlcik7CiAKIGludCBpbnRlbF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwogaW50IGludGVsX2ZyZXFfb3Bjb2RlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YwppbmRleCAxZjZmZDg5Li4yZGFmODc0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTI4 MjEsOTEgKzI4MjEsMTIgQEAgc3RhdGljIHZvaWQgdmx2X2RwX3ByZV9wbGxfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBjaHZfcHJlX2VuYWJsZV9k cChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9Ci0JCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKLQllbnVt IGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKLQlpbnQgcGlw ZSA9IGludGVsX2NydGMtPnBpcGU7Ci0JaW50IGRhdGEsIGksIHN0YWdnZXI7Ci0JdTMyIHZhbDsK LQotCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKLQotCS8qIGFsbG93IGhhcmR3YXJl IHRvIG1hbmFnZSBUWCBGSUZPIHJlc2V0IHNvdXJjZSAqLwotCXZhbCA9IHZsdl9kcGlvX3JlYWQo ZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7Ci0JdmFsICY9IH5EUElPX0xBTkVE RVNLRVdfU1RSQVBfT1ZSRDsKLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BD UzAxX0RXMTEoY2gpLCB2YWwpOwotCi0JaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9jb3Vu dCA+IDIpIHsKLQkJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIz X0RXMTEoY2gpKTsKLQkJdmFsICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZSRDsKLQkJdmx2 X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSwgdmFsKTsKLQl9 Ci0KLQkvKiBQcm9ncmFtIFR4IGxhbmUgbGF0ZW5jeSBvcHRpbWFsIHNldHRpbmcqLwotCWZvciAo aSA9IDA7IGkgPCBpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQ7IGkrKykgewotCQkvKiBT ZXQgdGhlIHVwYXIgYml0ICovCi0JCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQg PT0gMSkKLQkJCWRhdGEgPSAweDA7Ci0JCWVsc2UKLQkJCWRhdGEgPSAoaSA9PSAxKSA/IDB4MCA6 IDB4MTsKLQkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9UWF9EVzE0KGNoLCBp KSwKLQkJCQlkYXRhIDw8IERQSU9fVVBBUl9TSElGVCk7Ci0JfQotCi0JLyogRGF0YSBsYW5lIHN0 YWdnZXIgcHJvZ3JhbW1pbmcgKi8KLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2Nr ID4gMjcwMDAwKQotCQlzdGFnZ2VyID0gMHgxODsKLQllbHNlIGlmIChpbnRlbF9jcnRjLT5jb25m aWctPnBvcnRfY2xvY2sgPiAxMzUwMDApCi0JCXN0YWdnZXIgPSAweGQ7Ci0JZWxzZSBpZiAoaW50 ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gNjc1MDApCi0JCXN0YWdnZXIgPSAweDc7Ci0J ZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMzM3NTApCi0JCXN0YWdn ZXIgPSAweDQ7Ci0JZWxzZQotCQlzdGFnZ2VyID0gMHgyOwotCi0JdmFsID0gdmx2X2RwaW9fcmVh ZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpKTsKLQl2YWwgfD0gRFBJT19UWDJf U1RBR0dFUl9NQVNLKDB4MWYpOwotCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZf UENTMDFfRFcxMShjaCksIHZhbCk7Ci0KLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5lX2Nv dW50ID4gMikgewotCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENT MjNfRFcxMShjaCkpOwotCQl2YWwgfD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOwotCQl2 bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpLCB2YWwpOwot CX0KLQotCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxMihjaCks Ci0JCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQKHN0YWdnZXIpIHwKLQkJICAgICAgIERQ SU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8Ci0JCSAgICAgICBEUElPX1RYMV9TVEFHR0VSX01B U0soMHgxZikgfAotCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NVUxUKDYpIHwKLQkJICAgICAg IERQSU9fVFgyX1NUQUdHRVJfTVVMVCgwKSk7Ci0KLQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5s YW5lX2NvdW50ID4gMikgewotCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BD UzIzX0RXMTIoY2gpLAotCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAoc3RhZ2dlcikg fAotCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8Ci0JCQkgICAgICAgRFBJ T19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKLQkJCSAgICAgICBEUElPX1RYMV9TVEFHR0VSX01V TFQoNykgfAotCQkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCg1KSk7Ci0JfQotCi0JLyog RGVhc3NlcnQgZGF0YSBsYW5lIHJlc2V0ICovCi0JY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KGVu Y29kZXIsIGZhbHNlKTsKLQotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOworCWNo dl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKGVuY29kZXIpOwogCiAJaW50ZWxfZW5hYmxlX2RwKGVu Y29kZXIpOwogCiAJLyogU2Vjb25kIGNvbW1vbiBsYW5lIHdpbGwgc3RheSBhbGl2ZSBvbiBpdHMg b3duIG5vdyAqLwotCWlmIChkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJpZGUpIHsKLQkJY2h2X3Bo eV9wb3dlcmdhdGVfY2goZGV2X3ByaXYsIERQSU9fUEhZMCwgRFBJT19DSDEsIGZhbHNlKTsKLQkJ ZHBvcnQtPnJlbGVhc2VfY2wyX292ZXJyaWRlID0gZmFsc2U7Ci0JfQorCWNodl9waHlfcmVsZWFz ZV9jbDJfb3ZlcnJpZGUoZW5jb2Rlcik7CiB9CiAKIHN0YXRpYyB2b2lkIGNodl9kcF9wcmVfcGxs X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcGlvX3BoeS5jCmluZGV4IGI0Y2EzZmYuLmFkMGU3YmUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBpb19waHkuYwpAQCAtMjQ0LDMgKzI0NCw5NSBAQCB2b2lkIGNodl9waHlfcHJl X3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAKIAltdXRleF91bmxv Y2soJmRldl9wcml2LT5zYl9sb2NrKTsKIH0KKwordm9pZCBjaHZfcGh5X3ByZV9lbmNvZGVyX2Vu YWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKKwlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9CisJCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKKwll bnVtIGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKKwlpbnQg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisJaW50IGRhdGEsIGksIHN0YWdnZXI7CisJdTMyIHZh bDsKKworCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKKworCS8qIGFsbG93IGhhcmR3 YXJlIHRvIG1hbmFnZSBUWCBGSUZPIHJlc2V0IHNvdXJjZSAqLworCXZhbCA9IHZsdl9kcGlvX3Jl YWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzExKGNoKSk7CisJdmFsICY9IH5EUElPX0xB TkVERVNLRVdfU1RSQVBfT1ZSRDsKKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxW X1BDUzAxX0RXMTEoY2gpLCB2YWwpOworCisJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+bGFuZV9j b3VudCA+IDIpIHsKKwkJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BD UzIzX0RXMTEoY2gpKTsKKwkJdmFsICY9IH5EUElPX0xBTkVERVNLRVdfU1RSQVBfT1ZSRDsKKwkJ dmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSwgdmFsKTsK Kwl9CisKKwkvKiBQcm9ncmFtIFR4IGxhbmUgbGF0ZW5jeSBvcHRpbWFsIHNldHRpbmcqLworCWZv ciAoaSA9IDA7IGkgPCBpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQ7IGkrKykgeworCQkv KiBTZXQgdGhlIHVwYXIgYml0ICovCisJCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291 bnQgPT0gMSkKKwkJCWRhdGEgPSAweDA7CisJCWVsc2UKKwkJCWRhdGEgPSAoaSA9PSAxKSA/IDB4 MCA6IDB4MTsKKwkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIENIVl9UWF9EVzE0KGNo LCBpKSwKKwkJCQlkYXRhIDw8IERQSU9fVVBBUl9TSElGVCk7CisJfQorCisJLyogRGF0YSBsYW5l IHN0YWdnZXIgcHJvZ3JhbW1pbmcgKi8KKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Ns b2NrID4gMjcwMDAwKQorCQlzdGFnZ2VyID0gMHgxODsKKwllbHNlIGlmIChpbnRlbF9jcnRjLT5j b25maWctPnBvcnRfY2xvY2sgPiAxMzUwMDApCisJCXN0YWdnZXIgPSAweGQ7CisJZWxzZSBpZiAo aW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gNjc1MDApCisJCXN0YWdnZXIgPSAweDc7 CisJZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMzM3NTApCisJCXN0 YWdnZXIgPSAweDQ7CisJZWxzZQorCQlzdGFnZ2VyID0gMHgyOworCisJdmFsID0gdmx2X2RwaW9f cmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpKTsKKwl2YWwgfD0gRFBJT19U WDJfU1RBR0dFUl9NQVNLKDB4MWYpOworCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBW TFZfUENTMDFfRFcxMShjaCksIHZhbCk7CisKKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5l X2NvdW50ID4gMikgeworCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZf UENTMjNfRFcxMShjaCkpOworCQl2YWwgfD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOwor CQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpLCB2YWwp OworCX0KKworCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxMihj aCksCisJCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQKHN0YWdnZXIpIHwKKwkJICAgICAg IERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8CisJCSAgICAgICBEUElPX1RYMV9TVEFHR0VS X01BU0soMHgxZikgfAorCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NVUxUKDYpIHwKKwkJICAg ICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCgwKSk7CisKKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmln LT5sYW5lX2NvdW50ID4gMikgeworCQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxW X1BDUzIzX0RXMTIoY2gpLAorCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAoc3RhZ2dl cikgfAorCQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVBfT1ZSRCB8CisJCQkgICAgICAg RFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKKwkJCSAgICAgICBEUElPX1RYMV9TVEFHR0VS X01VTFQoNykgfAorCQkJICAgICAgIERQSU9fVFgyX1NUQUdHRVJfTVVMVCg1KSk7CisJfQorCisJ LyogRGVhc3NlcnQgZGF0YSBsYW5lIHJlc2V0ICovCisJY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0 KGVuY29kZXIsIGZhbHNlKTsKKworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwor fQorCit2b2lkIGNodl9waHlfcmVsZWFzZV9jbDJfb3ZlcnJpZGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCit7CisJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNf dG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOworCisJaWYgKGRwb3J0LT5yZWxl YXNlX2NsMl9vdmVycmlkZSkgeworCQljaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJpdiwgRFBJ T19QSFkwLCBEUElPX0NIMSwgZmFsc2UpOworCQlkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJpZGUg PSBmYWxzZTsKKwl9Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggNTc4ZGE5Zi4u ZGFhYTY4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMTc0NCw2OCArMTc0NCw4 IEBAIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQogCQl0b19pbnRlbF9j cnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUgPSAmaW50ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7 Ci0JZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7Ci0J aW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCWludCBkYXRhLCBpLCBzdGFnZ2VyOwotCXUz MiB2YWw7Ci0KLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Ci0KLQkvKiBhbGxvdyBo YXJkd2FyZSB0byBtYW5hZ2UgVFggRklGTyByZXNldCBzb3VyY2UgKi8KLQl2YWwgPSB2bHZfZHBp b19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFcxMShjaCkpOwotCXZhbCAmPSB+RFBJ T19MQU5FREVTS0VXX1NUUkFQX09WUkQ7Ci0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUs IFZMVl9QQ1MwMV9EVzExKGNoKSwgdmFsKTsKLQotCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3By aXYsIHBpcGUsIFZMVl9QQ1MyM19EVzExKGNoKSk7Ci0JdmFsICY9IH5EUElPX0xBTkVERVNLRVdf U1RSQVBfT1ZSRDsKLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RX MTEoY2gpLCB2YWwpOwotCi0JLyogUHJvZ3JhbSBUeCBsYXRlbmN5IG9wdGltYWwgc2V0dGluZyAq LwotCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKLQkJLyogU2V0IHRoZSB1cGFyIGJpdCAqLwot CQlkYXRhID0gKGkgPT0gMSkgPyAweDAgOiAweDE7Ci0JCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2 LCBwaXBlLCBDSFZfVFhfRFcxNChjaCwgaSksCi0JCQkJZGF0YSA8PCBEUElPX1VQQVJfU0hJRlQp OwotCX0KLQotCS8qIERhdGEgbGFuZSBzdGFnZ2VyIHByb2dyYW1taW5nICovCi0JaWYgKGludGVs X2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDI3MDAwMCkKLQkJc3RhZ2dlciA9IDB4MTg7Ci0J ZWxzZSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5wb3J0X2Nsb2NrID4gMTM1MDAwKQotCQlzdGFn Z2VyID0gMHhkOwotCWVsc2UgaWYgKGludGVsX2NydGMtPmNvbmZpZy0+cG9ydF9jbG9jayA+IDY3 NTAwKQotCQlzdGFnZ2VyID0gMHg3OwotCWVsc2UgaWYgKGludGVsX2NydGMtPmNvbmZpZy0+cG9y dF9jbG9jayA+IDMzNzUwKQotCQlzdGFnZ2VyID0gMHg0OwotCWVsc2UKLQkJc3RhZ2dlciA9IDB4 MjsKIAotCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MwMV9EVzEx KGNoKSk7Ci0JdmFsIHw9IERQSU9fVFgyX1NUQUdHRVJfTUFTSygweDFmKTsKLQl2bHZfZHBpb193 cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTEoY2gpLCB2YWwpOwotCi0JdmFsID0g dmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzIzX0RXMTEoY2gpKTsKLQl2YWwg fD0gRFBJT19UWDJfU1RBR0dFUl9NQVNLKDB4MWYpOwotCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2 LCBwaXBlLCBWTFZfUENTMjNfRFcxMShjaCksIHZhbCk7Ci0KLQl2bHZfZHBpb193cml0ZShkZXZf cHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXMTIoY2gpLAotCQkgICAgICAgRFBJT19MQU5FU1RBR0dF Ul9TVFJBUChzdGFnZ2VyKSB8Ci0JCSAgICAgICBEUElPX0xBTkVTVEFHR0VSX1NUUkFQX09WUkQg fAotCQkgICAgICAgRFBJT19UWDFfU1RBR0dFUl9NQVNLKDB4MWYpIHwKLQkJICAgICAgIERQSU9f VFgxX1NUQUdHRVJfTVVMVCg2KSB8Ci0JCSAgICAgICBEUElPX1RYMl9TVEFHR0VSX01VTFQoMCkp OwotCi0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzEyKGNoKSwK LQkJICAgICAgIERQSU9fTEFORVNUQUdHRVJfU1RSQVAoc3RhZ2dlcikgfAotCQkgICAgICAgRFBJ T19MQU5FU1RBR0dFUl9TVFJBUF9PVlJEIHwKLQkJICAgICAgIERQSU9fVFgxX1NUQUdHRVJfTUFT SygweDFmKSB8Ci0JCSAgICAgICBEUElPX1RYMV9TVEFHR0VSX01VTFQoNykgfAotCQkgICAgICAg RFBJT19UWDJfU1RBR0dFUl9NVUxUKDUpKTsKLQotCS8qIERlYXNzZXJ0IGRhdGEgbGFuZSByZXNl dCAqLwotCWNodl9kYXRhX2xhbmVfc29mdF9yZXNldChlbmNvZGVyLCBmYWxzZSk7Ci0KLQltdXRl eF91bmxvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKKwljaHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJs ZShlbmNvZGVyKTsKIAogCS8qIEZJWE1FOiBQcm9ncmFtIHRoZSBzdXBwb3J0IHh4eCBWLWRCICov CiAJLyogVXNlIDgwMG1WLTBkQiAqLwpAQCAtMTgyMCwxMCArMTc2MCw3IEBAIHN0YXRpYyB2b2lk IGNodl9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJdmx2 X3dhaXRfcG9ydF9yZWFkeShkZXZfcHJpdiwgZHBvcnQsIDB4MCk7CiAKIAkvKiBTZWNvbmQgY29t bW9uIGxhbmUgd2lsbCBzdGF5IGFsaXZlIG9uIGl0cyBvd24gbm93ICovCi0JaWYgKGRwb3J0LT5y ZWxlYXNlX2NsMl9vdmVycmlkZSkgewotCQljaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJpdiwg RFBJT19QSFkwLCBEUElPX0NIMSwgZmFsc2UpOwotCQlkcG9ydC0+cmVsZWFzZV9jbDJfb3ZlcnJp ZGUgPSBmYWxzZTsKLQl9CisJY2h2X3BoeV9yZWxlYXNlX2NsMl9vdmVycmlkZShlbmNvZGVyKTsK IH0KIAogc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCi0tIAoyLjQuMTEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=