From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH v4 04/10] drm/i915: Unduplicate CHV phy-releated pre pll enabling code Date: Wed, 27 Apr 2016 15:44:19 +0300 Message-ID: <1461761065-21195-5-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 98A856EAB9 for ; Wed, 27 Apr 2016 12:44:40 +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 VGhlIHNhbWUgbG9naWMgaXMgdXNlZCBmb3IgRFAgYW5kIEhETUkgc28gbW92ZSBpdCB0byBpbnRl bF9kcGlvX3BoeS5jLgoKdjI6IFJlYmFzZQoKU2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPgpSZXZp ZXdlZC1ieTogSmltIEJyaWRlIDxqaW0uYnJpZGVAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jICAgICAgIHwgODMgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMgfCA4MSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgIHwgIDUgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAg IHwgNzQgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA4 OSBpbnNlcnRpb25zKCspLCAxNTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK aW5kZXggNzMwOWQzZi4uNGUzNGQzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zNTgz LDYgKzM1ODMsNyBAQCB2b2lkIGNodl9zZXRfcGh5X3NpZ25hbF9sZXZlbChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgIGJvb2wgdW5pcV90cmFuc19zY2FsZSk7CiB2b2lk IGNodl9kYXRhX2xhbmVfc29mdF9yZXNldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCSAgICAgIGJvb2wgcmVzZXQpOwordm9pZCBjaHZfcGh5X3ByZV9wbGxfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIAogaW50IGludGVsX2dwdV9mcmVxKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZhbCk7CiBpbnQgaW50ZWxfZnJlcV9vcGNv ZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCmluZGV4IDNhNDExZGUuLjFmNmZkODkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwpAQCAtMTMxLDExICsxMzEsNiBAQCBzdGF0aWMgdm9pZCB2bHZfc3RlYWxfcG93ZXJfc2Vx dWVuY2VyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICAgZW51bSBwaXBlIHBpcGUp Owogc3RhdGljIHZvaWQgaW50ZWxfZHBfdW5zZXRfZWRpZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKTsKIAotc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9kcF91bnVzZWRfbGFuZV9tYXNrKGlu dCBsYW5lX2NvdW50KQotewotCXJldHVybiB+KCgxIDw8IGxhbmVfY291bnQpIC0gMSkgJiAweGY7 Ci19Ci0KIHN0YXRpYyBpbnQKIGludGVsX2RwX21heF9saW5rX2J3KHN0cnVjdCBpbnRlbF9kcCAg KmludGVsX2RwKQogewpAQCAtMjkxNSw4NSArMjkxMCw5IEBAIHN0YXRpYyB2b2lkIGNodl9wcmVf ZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBj aHZfZHBfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7Ci0J c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29k ZXItPmJhc2UpOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwot CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0KLQkJdG9faW50ZWxfY3J0YyhlbmNvZGVy LT5iYXNlLmNydGMpOwotCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5u ZWwoZHBvcnQpOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKLQl1bnNpZ25l ZCBpbnQgbGFuZV9tYXNrID0KLQkJaW50ZWxfZHBfdW51c2VkX2xhbmVfbWFzayhpbnRlbF9jcnRj LT5jb25maWctPmxhbmVfY291bnQpOwotCXUzMiB2YWw7Ci0KIAlpbnRlbF9kcF9wcmVwYXJlKGVu Y29kZXIpOwogCi0JLyoKLQkgKiBNdXN0IHRyaWNrIHRoZSBzZWNvbmQgY29tbW9uIGxhbmUgaW50 byBsaWZlLgotCSAqIE90aGVyd2lzZSB3ZSBjYW4ndCBldmVuIGFjY2VzcyB0aGUgUExMLgotCSAq LwotCWlmIChjaCA9PSBEUElPX0NIMCAmJiBwaXBlID09IFBJUEVfQikKLQkJZHBvcnQtPnJlbGVh c2VfY2wyX292ZXJyaWRlID0KLQkJCSFjaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJpdiwgRFBJ T19QSFkwLCBEUElPX0NIMSwgdHJ1ZSk7Ci0KLQljaHZfcGh5X3Bvd2VyZ2F0ZV9sYW5lcyhlbmNv ZGVyLCB0cnVlLCBsYW5lX21hc2spOwotCi0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnNiX2xvY2sp OwotCi0JLyogQXNzZXJ0IGRhdGEgbGFuZSByZXNldCAqLwotCWNodl9kYXRhX2xhbmVfc29mdF9y ZXNldChlbmNvZGVyLCB0cnVlKTsKLQotCS8qIHByb2dyYW0gbGVmdC9yaWdodCBjbG9jayBkaXN0 cmlidXRpb24gKi8KLQlpZiAocGlwZSAhPSBQSVBFX0IpIHsKLQkJdmFsID0gdmx2X2RwaW9fcmVh ZChkZXZfcHJpdiwgcGlwZSwgX0NIVl9DTU5fRFc1X0NIMCk7Ci0JCXZhbCAmPSB+KENIVl9CVUZM RUZURU5BMV9NQVNLIHwgQ0hWX0JVRlJJR0hURU5BMV9NQVNLKTsKLQkJaWYgKGNoID09IERQSU9f Q0gwKQotCQkJdmFsIHw9IENIVl9CVUZMRUZURU5BMV9GT1JDRTsKLQkJaWYgKGNoID09IERQSU9f Q0gxKQotCQkJdmFsIHw9IENIVl9CVUZSSUdIVEVOQTFfRk9SQ0U7Ci0JCXZsdl9kcGlvX3dyaXRl KGRldl9wcml2LCBwaXBlLCBfQ0hWX0NNTl9EVzVfQ0gwLCB2YWwpOwotCX0gZWxzZSB7Ci0JCXZh bCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01OX0RXMV9DSDEpOwotCQl2 YWwgJj0gfihDSFZfQlVGTEVGVEVOQTJfTUFTSyB8IENIVl9CVUZSSUdIVEVOQTJfTUFTSyk7Ci0J CWlmIChjaCA9PSBEUElPX0NIMCkKLQkJCXZhbCB8PSBDSFZfQlVGTEVGVEVOQTJfRk9SQ0U7Ci0J CWlmIChjaCA9PSBEUElPX0NIMSkKLQkJCXZhbCB8PSBDSFZfQlVGUklHSFRFTkEyX0ZPUkNFOwot CQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgX0NIVl9DTU5fRFcxX0NIMSwgdmFsKTsK LQl9Ci0KLQkvKiBwcm9ncmFtIGNsb2NrIGNoYW5uZWwgdXNhZ2UgKi8KLQl2YWwgPSB2bHZfZHBp b19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFc4KGNoKSk7Ci0JdmFsIHw9IENIVl9Q Q1NfVVNFRENMS0NIQU5ORUxfT1ZSUklERTsKLQlpZiAocGlwZSAhPSBQSVBFX0IpCi0JCXZhbCAm PSB+Q0hWX1BDU19VU0VEQ0xLQ0hBTk5FTDsKLQllbHNlCi0JCXZhbCB8PSBDSFZfUENTX1VTRURD TEtDSEFOTkVMOwotCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMDFfRFc4 KGNoKSwgdmFsKTsKLQotCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmxhbmVfY291bnQgPiAyKSB7 Ci0JCXZhbCA9IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1MyM19EVzgoY2gp KTsKLQkJdmFsIHw9IENIVl9QQ1NfVVNFRENMS0NIQU5ORUxfT1ZSUklERTsKLQkJaWYgKHBpcGUg IT0gUElQRV9CKQotCQkJdmFsICY9IH5DSFZfUENTX1VTRURDTEtDSEFOTkVMOwotCQllbHNlCi0J CQl2YWwgfD0gQ0hWX1BDU19VU0VEQ0xLQ0hBTk5FTDsKLQkJdmx2X2RwaW9fd3JpdGUoZGV2X3By aXYsIHBpcGUsIFZMVl9QQ1MyM19EVzgoY2gpLCB2YWwpOwotCX0KLQotCS8qCi0JICogVGhpcyBh IGEgYml0IHdlaXJkIHNpbmNlIGdlbmVyYWxseSBDTAotCSAqIG1hdGNoZXMgdGhlIHBpcGUsIGJ1 dCBoZXJlIHdlIG5lZWQgdG8KLQkgKiBwaWNrIHRoZSBDTCBiYXNlZCBvbiB0aGUgcG9ydC4KLQkg Ki8KLQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBDSFZfQ01OX0RXMTkoY2gp KTsKLQlpZiAocGlwZSAhPSBQSVBFX0IpCi0JCXZhbCAmPSB+Q0hWX0NNTl9VU0VEQ0xLQ0hBTk5F TDsKLQllbHNlCi0JCXZhbCB8PSBDSFZfQ01OX1VTRURDTEtDSEFOTkVMOwotCXZsdl9kcGlvX3dy aXRlKGRldl9wcml2LCBwaXBlLCBDSFZfQ01OX0RXMTkoY2gpLCB2YWwpOwotCi0JbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7CisJY2h2X3BoeV9wcmVfcGxsX2VuYWJsZShlbmNvZGVy KTsKIH0KIAogc3RhdGljIHZvaWQgY2h2X2RwX3Bvc3RfcGxsX2Rpc2FibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcGlvX3BoeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBpb19waHkuYwppbmRl eCA5ODU0YzkzLi5iNGNhM2ZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcGlvX3BoeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMK QEAgLTE2MywzICsxNjMsODQgQEAgdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVzZXQoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBl LCBWTFZfUENTMjNfRFcxKGNoKSwgdmFsKTsKIAl9CiB9CisKK3ZvaWQgY2h2X3BoeV9wcmVfcGxs X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPQorCQl0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7 CisJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CisJ ZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCXVuc2lnbmVkIGludCBsYW5lX21h c2sgPQorCQlpbnRlbF9kcF91bnVzZWRfbGFuZV9tYXNrKGludGVsX2NydGMtPmNvbmZpZy0+bGFu ZV9jb3VudCk7CisJdTMyIHZhbDsKKworCS8qCisJICogTXVzdCB0cmljayB0aGUgc2Vjb25kIGNv bW1vbiBsYW5lIGludG8gbGlmZS4KKwkgKiBPdGhlcndpc2Ugd2UgY2FuJ3QgZXZlbiBhY2Nlc3Mg dGhlIFBMTC4KKwkgKi8KKwlpZiAoY2ggPT0gRFBJT19DSDAgJiYgcGlwZSA9PSBQSVBFX0IpCisJ CWRwb3J0LT5yZWxlYXNlX2NsMl9vdmVycmlkZSA9CisJCQkhY2h2X3BoeV9wb3dlcmdhdGVfY2go ZGV2X3ByaXYsIERQSU9fUEhZMCwgRFBJT19DSDEsIHRydWUpOworCisJY2h2X3BoeV9wb3dlcmdh dGVfbGFuZXMoZW5jb2RlciwgdHJ1ZSwgbGFuZV9tYXNrKTsKKworCW11dGV4X2xvY2soJmRldl9w cml2LT5zYl9sb2NrKTsKKworCS8qIEFzc2VydCBkYXRhIGxhbmUgcmVzZXQgKi8KKwljaHZfZGF0 YV9sYW5lX3NvZnRfcmVzZXQoZW5jb2RlciwgdHJ1ZSk7CisKKwkvKiBwcm9ncmFtIGxlZnQvcmln aHQgY2xvY2sgZGlzdHJpYnV0aW9uICovCisJaWYgKHBpcGUgIT0gUElQRV9CKSB7CisJCXZhbCA9 IHZsdl9kcGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01OX0RXNV9DSDApOworCQl2YWwg Jj0gfihDSFZfQlVGTEVGVEVOQTFfTUFTSyB8IENIVl9CVUZSSUdIVEVOQTFfTUFTSyk7CisJCWlm IChjaCA9PSBEUElPX0NIMCkKKwkJCXZhbCB8PSBDSFZfQlVGTEVGVEVOQTFfRk9SQ0U7CisJCWlm IChjaCA9PSBEUElPX0NIMSkKKwkJCXZhbCB8PSBDSFZfQlVGUklHSFRFTkExX0ZPUkNFOworCQl2 bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgX0NIVl9DTU5fRFc1X0NIMCwgdmFsKTsKKwl9 IGVsc2UgeworCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBfQ0hWX0NNTl9E VzFfQ0gxKTsKKwkJdmFsICY9IH4oQ0hWX0JVRkxFRlRFTkEyX01BU0sgfCBDSFZfQlVGUklHSFRF TkEyX01BU0spOworCQlpZiAoY2ggPT0gRFBJT19DSDApCisJCQl2YWwgfD0gQ0hWX0JVRkxFRlRF TkEyX0ZPUkNFOworCQlpZiAoY2ggPT0gRFBJT19DSDEpCisJCQl2YWwgfD0gQ0hWX0JVRlJJR0hU RU5BMl9GT1JDRTsKKwkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01OX0RX MV9DSDEsIHZhbCk7CisJfQorCisJLyogcHJvZ3JhbSBjbG9jayBjaGFubmVsIHVzYWdlICovCisJ dmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXOChjaCkpOwor CXZhbCB8PSBDSFZfUENTX1VTRURDTEtDSEFOTkVMX09WUlJJREU7CisJaWYgKHBpcGUgIT0gUElQ RV9CKQorCQl2YWwgJj0gfkNIVl9QQ1NfVVNFRENMS0NIQU5ORUw7CisJZWxzZQorCQl2YWwgfD0g Q0hWX1BDU19VU0VEQ0xLQ0hBTk5FTDsKKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg VkxWX1BDUzAxX0RXOChjaCksIHZhbCk7CisKKwlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5sYW5l X2NvdW50ID4gMikgeworCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBWTFZf UENTMjNfRFc4KGNoKSk7CisJCXZhbCB8PSBDSFZfUENTX1VTRURDTEtDSEFOTkVMX09WUlJJREU7 CisJCWlmIChwaXBlICE9IFBJUEVfQikKKwkJCXZhbCAmPSB+Q0hWX1BDU19VU0VEQ0xLQ0hBTk5F TDsKKwkJZWxzZQorCQkJdmFsIHw9IENIVl9QQ1NfVVNFRENMS0NIQU5ORUw7CisJCXZsdl9kcGlv X3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFc4KGNoKSwgdmFsKTsKKwl9CisKKwkv KgorCSAqIFRoaXMgYSBhIGJpdCB3ZWlyZCBzaW5jZSBnZW5lcmFsbHkgQ0wKKwkgKiBtYXRjaGVz IHRoZSBwaXBlLCBidXQgaGVyZSB3ZSBuZWVkIHRvCisJICogcGljayB0aGUgQ0wgYmFzZWQgb24g dGhlIHBvcnQuCisJICovCisJdmFsID0gdmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgQ0hW X0NNTl9EVzE5KGNoKSk7CisJaWYgKHBpcGUgIT0gUElQRV9CKQorCQl2YWwgJj0gfkNIVl9DTU5f VVNFRENMS0NIQU5ORUw7CisJZWxzZQorCQl2YWwgfD0gQ0hWX0NNTl9VU0VEQ0xLQ0hBTk5FTDsK Kwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgQ0hWX0NNTl9EVzE5KGNoKSwgdmFsKTsK KworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOworfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAppbmRleCBjYjg5YTM1Li4wNDc0NDI4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aApAQCAtMTMzNyw2ICsxMzM3LDExIEBAIGJvb2wgaW50ZWxfZHBfc291cmNlX3N1cHBvcnRzX2hi cjIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7CiBib29sCiBpbnRlbF9kcF9nZXRfbGlua19z dGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDhfdCBsaW5rX3N0YXR1c1tEUF9M SU5LX1NUQVRVU19TSVpFXSk7CiAKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGludGVsX2Rw X3VudXNlZF9sYW5lX21hc2soaW50IGxhbmVfY291bnQpCit7CisJcmV0dXJuIH4oKDEgPDwgbGFu ZV9jb3VudCkgLSAxKSAmIDB4ZjsKK30KKwogLyogaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jICov CiBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRl eCAyZDQyOWQwLi41NzhkYTlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0xNjY4 LDgxICsxNjY4LDkgQEAgc3RhdGljIHZvaWQgdmx2X2hkbWlfcHJlX3BsbF9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAKIHN0YXRpYyB2b2lkIGNodl9oZG1pX3ByZV9wbGxf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9Ci0JCXRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsK LQllbnVtIGRwaW9fY2hhbm5lbCBjaCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKLQll bnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Ci0JdTMyIHZhbDsKLQogCWludGVsX2hk bWlfcHJlcGFyZShlbmNvZGVyKTsKIAotCS8qCi0JICogTXVzdCB0cmljayB0aGUgc2Vjb25kIGNv bW1vbiBsYW5lIGludG8gbGlmZS4KLQkgKiBPdGhlcndpc2Ugd2UgY2FuJ3QgZXZlbiBhY2Nlc3Mg dGhlIFBMTC4KLQkgKi8KLQlpZiAoY2ggPT0gRFBJT19DSDAgJiYgcGlwZSA9PSBQSVBFX0IpCi0J CWRwb3J0LT5yZWxlYXNlX2NsMl9vdmVycmlkZSA9Ci0JCQkhY2h2X3BoeV9wb3dlcmdhdGVfY2go ZGV2X3ByaXYsIERQSU9fUEhZMCwgRFBJT19DSDEsIHRydWUpOwotCi0JY2h2X3BoeV9wb3dlcmdh dGVfbGFuZXMoZW5jb2RlciwgdHJ1ZSwgMHgwKTsKLQotCW11dGV4X2xvY2soJmRldl9wcml2LT5z Yl9sb2NrKTsKLQotCS8qIEFzc2VydCBkYXRhIGxhbmUgcmVzZXQgKi8KLQljaHZfZGF0YV9sYW5l X3NvZnRfcmVzZXQoZW5jb2RlciwgdHJ1ZSk7Ci0KLQkvKiBwcm9ncmFtIGxlZnQvcmlnaHQgY2xv Y2sgZGlzdHJpYnV0aW9uICovCi0JaWYgKHBpcGUgIT0gUElQRV9CKSB7Ci0JCXZhbCA9IHZsdl9k cGlvX3JlYWQoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01OX0RXNV9DSDApOwotCQl2YWwgJj0gfihD SFZfQlVGTEVGVEVOQTFfTUFTSyB8IENIVl9CVUZSSUdIVEVOQTFfTUFTSyk7Ci0JCWlmIChjaCA9 PSBEUElPX0NIMCkKLQkJCXZhbCB8PSBDSFZfQlVGTEVGVEVOQTFfRk9SQ0U7Ci0JCWlmIChjaCA9 PSBEUElPX0NIMSkKLQkJCXZhbCB8PSBDSFZfQlVGUklHSFRFTkExX0ZPUkNFOwotCQl2bHZfZHBp b193cml0ZShkZXZfcHJpdiwgcGlwZSwgX0NIVl9DTU5fRFc1X0NIMCwgdmFsKTsKLQl9IGVsc2Ug ewotCQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBfQ0hWX0NNTl9EVzFfQ0gx KTsKLQkJdmFsICY9IH4oQ0hWX0JVRkxFRlRFTkEyX01BU0sgfCBDSFZfQlVGUklHSFRFTkEyX01B U0spOwotCQlpZiAoY2ggPT0gRFBJT19DSDApCi0JCQl2YWwgfD0gQ0hWX0JVRkxFRlRFTkEyX0ZP UkNFOwotCQlpZiAoY2ggPT0gRFBJT19DSDEpCi0JCQl2YWwgfD0gQ0hWX0JVRlJJR0hURU5BMl9G T1JDRTsKLQkJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIF9DSFZfQ01OX0RXMV9DSDEs IHZhbCk7Ci0JfQotCi0JLyogcHJvZ3JhbSBjbG9jayBjaGFubmVsIHVzYWdlICovCi0JdmFsID0g dmx2X2RwaW9fcmVhZChkZXZfcHJpdiwgcGlwZSwgVkxWX1BDUzAxX0RXOChjaCkpOwotCXZhbCB8 PSBDSFZfUENTX1VTRURDTEtDSEFOTkVMX09WUlJJREU7Ci0JaWYgKHBpcGUgIT0gUElQRV9CKQot CQl2YWwgJj0gfkNIVl9QQ1NfVVNFRENMS0NIQU5ORUw7Ci0JZWxzZQotCQl2YWwgfD0gQ0hWX1BD U19VU0VEQ0xLQ0hBTk5FTDsKLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1BD UzAxX0RXOChjaCksIHZhbCk7Ci0KLQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBl LCBWTFZfUENTMjNfRFc4KGNoKSk7Ci0JdmFsIHw9IENIVl9QQ1NfVVNFRENMS0NIQU5ORUxfT1ZS UklERTsKLQlpZiAocGlwZSAhPSBQSVBFX0IpCi0JCXZhbCAmPSB+Q0hWX1BDU19VU0VEQ0xLQ0hB Tk5FTDsKLQllbHNlCi0JCXZhbCB8PSBDSFZfUENTX1VTRURDTEtDSEFOTkVMOwotCXZsdl9kcGlv X3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTMjNfRFc4KGNoKSwgdmFsKTsKLQotCS8qCi0J ICogVGhpcyBhIGEgYml0IHdlaXJkIHNpbmNlIGdlbmVyYWxseSBDTAotCSAqIG1hdGNoZXMgdGhl IHBpcGUsIGJ1dCBoZXJlIHdlIG5lZWQgdG8KLQkgKiBwaWNrIHRoZSBDTCBiYXNlZCBvbiB0aGUg cG9ydC4KLQkgKi8KLQl2YWwgPSB2bHZfZHBpb19yZWFkKGRldl9wcml2LCBwaXBlLCBDSFZfQ01O X0RXMTkoY2gpKTsKLQlpZiAocGlwZSAhPSBQSVBFX0IpCi0JCXZhbCAmPSB+Q0hWX0NNTl9VU0VE Q0xLQ0hBTk5FTDsKLQllbHNlCi0JCXZhbCB8PSBDSFZfQ01OX1VTRURDTEtDSEFOTkVMOwotCXZs dl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBDSFZfQ01OX0RXMTkoY2gpLCB2YWwpOwotCi0J bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7CisJY2h2X3BoeV9wcmVfcGxsX2VuYWJs ZShlbmNvZGVyKTsKIH0KIAogc3RhdGljIHZvaWQgY2h2X2hkbWlfcG9zdF9wbGxfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKLS0gCjIuNC4xMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==