From mboxrd@z Thu Jan 1 00:00:00 1970 From: libin.yang@linux.intel.com Subject: [PATCH] drm/i915: set proper N/M in modeset Date: Tue, 2 Aug 2016 09:35:10 +0800 Message-ID: <1470101710-57552-1-git-send-email-libin.yang@linux.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 08EE66E3E4 for ; Tue, 2 Aug 2016 01:38:16 +0000 (UTC) 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, jani.nikula@linux.intel.com, ville.syrjala@linux.intel.com, daniel.vetter@intel.com, tiwai@suse.de Cc: Libin Yang List-Id: intel-gfx@lists.freedesktop.org RnJvbTogTGliaW4gWWFuZyA8bGliaW4ueWFuZ0BsaW51eC5pbnRlbC5jb20+CgpXaGVuIG1vZGVz ZXQgb2NjdXJzIGFuZCB0aGUgTFNfQ0xLIGlzIHNldCB0byBzb21lCnNwZWNpYWwgdmFsdWVzIGlu IERQIG1vZGUsIHRoZSBOL00gbmVlZCB0byBiZSBzZXQKbWFudWFsbHkgaWYgYXVkaW8gaXMgcGxh eWluZy4KClRoZSByZWxhdGlvbnNoaXAgb2YgTWF1ZCBhbmQgTmF1ZCBpcyBleHByZXNzZWQgaW4K dGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKTWF1ZC9OYXVkID0gNTEyICogZnMgLyBmX0xTX0NsawoK UGxlYXNlIHJlZmVyIFZFU0EgRGlzcGxheVBvcnQgU3RhbmRhcmQgc3BlYyBmb3IgZGV0YWlscy4K CkFsc28sIHRoZSBwYXRjaCBhcHBsaWVzCmNvbW1pdCA3ZTgyNzVjMmYyYmIgKCJkcm0vaTkxNTog c2V0IHByb3BlciBOL0NUUyBpbiBtb2Rlc2V0IikKdG8gQVBMIHBsYXRmb3JtLgoKU2lnbmVkLW9m Zi1ieTogTGliaW4gWWFuZyA8bGliaW4ueWFuZ0BsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICB8ICAgNiArKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXVkaW8uYyB8IDEyMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tCiAyIGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAxNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCA4YmZkZTc1Li4yZjlkMDBlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKQEAgLTczNTEsNiArNzM1MSwxMiBAQCBlbnVtIHsKICNkZWZpbmUgX0hT V19BVURfQ09ORklHX0IJCTB4NjUxMDAKICNkZWZpbmUgSFNXX0FVRF9DRkcocGlwZSkJCV9NTUlP X1BJUEUocGlwZSwgX0hTV19BVURfQ09ORklHX0EsIF9IU1dfQVVEX0NPTkZJR19CKQogCisjZGVm aW5lIF9IU1dfQVVEX01fQ1RTX0VOQUJMRV9BCQkweDY1MDI4CisjZGVmaW5lIF9IU1dfQVVEX01f Q1RTX0VOQUJMRV9CCQkweDY1MTI4CisjZGVmaW5lIEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUp CQlfTU1JT19QSVBFKHBpcGUsIF9IU1dfQVVEX01fQ1RTX0VOQUJMRV9BLCBfSFNXX0FVRF9NX0NU U19FTkFCTEVfQikKKyNkZWZpbmUgICBBVURfTV9DVFNfTV9WQUxVRV9JTkRFWAkoMSA8PCAyMSkK KyNkZWZpbmUgICBBVURfTV9DVFNfTV9QUk9HX0VOQUJMRQkoMSA8PCAyMCkKKwogI2RlZmluZSBf SFNXX0FVRF9NSVNDX0NUUkxfQQkJMHg2NTAxMAogI2RlZmluZSBfSFNXX0FVRF9NSVNDX0NUUkxf QgkJMHg2NTExMAogI2RlZmluZSBIU1dfQVVEX01JU0NfQ1RSTChwaXBlKQkJX01NSU9fUElQRShw aXBlLCBfSFNXX0FVRF9NSVNDX0NUUkxfQSwgX0hTV19BVURfTUlTQ19DVFJMX0IpCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXVkaW8uYwppbmRleCA2NzAwYTdiLi5kZTU1ZWNmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMKQEAgLTk4LDYgKzk4LDIyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ewogCXsgMTkyMDAwLCBUTURTXzI5N00sIDIwNDgwLCAyNDc1MDAgfSwKIH07CiAKKyNkZWZpbmUg TENfNTQwTSA1NDAwMDAKKyNkZWZpbmUgTENfMTYyTSAxNjIwMDAKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgeworCWludCBzYW1wbGVfcmF0ZTsKKwlpbnQgY2xvY2s7CisJaW50IG47CisJaW50IG07Cit9 IGF1ZF9ubVtdID0geworCXs0ODAwMCwgTENfNTQwTSwgNTYyNSwgMjU2fSwKKwl7NDQxMDAsIExD XzU0ME0sIDkzNzUsIDM5Mn0sCisJezMyMDAwLCBMQ181NDBNLCAxNjg3NSwgNTEyfSwKKwl7NDgw MDAsIExDXzE2Mk0sIDMzNzUsIDUxMn0sCisJezQ0MTAwLCBMQ18xNjJNLCA1NjI1LCA3ODR9LAor CXszMjAwMCwgTENfMTYyTSwgMTAxMjUsIDEwMjR9LAorfTsKKwogLyogZ2V0IEFVRF9DT05GSUdf UElYRUxfQ0xPQ0tfSERNSV8qIHZhbHVlIGZvciBtb2RlICovCiBzdGF0aWMgdTMyIGF1ZGlvX2Nv bmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlKQogewpAQCAtMTIxLDIwICsxMzcsNTAgQEAgc3RhdGljIHUzMiBhdWRpb19jb25m aWdfaGRtaV9waXhlbF9jbG9jayhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWQKIAlyZXR1cm4gaGRtaV9hdWRpb19jbG9ja1tpXS5jb25maWc7CiB9CiAKLXN0YXRpYyBpbnQg YXVkaW9fY29uZmlnX2dldF9uKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLCBp bnQgcmF0ZSkKK3N0YXRpYyBpbnQgYXVkaW9fY29uZmlnX2dldF9uKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAorCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUsCisJCQkgICAgICBpbnQgcmF0ZSkKK3sKKwlpbnQgaTsKKworCWlmIChpbnRlbF9jcnRj X2hhc190eXBlKGNydGMtPmNvbmZpZywgSU5URUxfT1VUUFVUX0hETUkpKSB7CisJCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKGF1ZF9uY3RzKTsgaSsrKSB7CisJCQlpZiAoKHJhdGUgPT0gYXVk X25jdHNbaV0uc2FtcGxlX3JhdGUpICYmCisJCQkJKGFkanVzdGVkX21vZGUtPmNsb2NrID09IGF1 ZF9uY3RzW2ldLmNsb2NrKSkgeworCQkJCXJldHVybiBhdWRfbmN0c1tpXS5uOworCQkJfQorCQl9 CisJfQorCisJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQ VVRfRFApKSB7CisJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGF1ZF9ubSk7IGkrKykgewor CQkJaWYgKChyYXRlID09IGF1ZF9ubVtpXS5zYW1wbGVfcmF0ZSkgJiYKKwkJCQkoY3J0Yy0+Y29u ZmlnLT5wb3J0X2Nsb2NrID09IGF1ZF9ubVtpXS5jbG9jaykpIHsKKwkJCQlyZXR1cm4gYXVkX25t W2ldLm47CisJCQl9CisJCX0KKwl9CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYXVkaW9f Y29uZmlnX2dldF9tKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBpbnQgcmF0ZSkKIHsKIAlpbnQg aTsKIAotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGF1ZF9uY3RzKTsgaSsrKSB7Ci0JCWlm ICgocmF0ZSA9PSBhdWRfbmN0c1tpXS5zYW1wbGVfcmF0ZSkgJiYKLQkJCShtb2RlLT5jbG9jayA9 PSBhdWRfbmN0c1tpXS5jbG9jaykpIHsKLQkJCXJldHVybiBhdWRfbmN0c1tpXS5uOworCWlmIChp bnRlbF9jcnRjX2hhc190eXBlKGNydGMtPmNvbmZpZywgSU5URUxfT1VUUFVUX0RQKSkgeworCQlm b3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhdWRfbm0pOyBpKyspIHsKKwkJCWlmICgocmF0ZSA9 PSBhdWRfbm1baV0uc2FtcGxlX3JhdGUpICYmCisJCQkJKGNydGMtPmNvbmZpZy0+cG9ydF9jbG9j ayA9PSBhdWRfbm1baV0uY2xvY2spKSB7CisJCQkJcmV0dXJuIGF1ZF9ubVtpXS5tOworCQkJfQog CQl9CiAJfQorCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB1aW50MzJfdCBhdWRpb19jb25maWdf c2V0dXBfbl9yZWcoaW50IG4sIHVpbnQzMl90IHZhbCkKK3N0YXRpYyB1aW50MzJfdCBhdWRpb19j b25maWdfc2V0dXBfbl9yZWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJCSBpbnQgbiwg dWludDMyX3QgdmFsKQogewogCWludCBuX2xvdywgbl91cDsKIAl1aW50MzJfdCB0bXAgPSB2YWw7 CkBAIC0xNDUsMTcgKzE5MSwzOCBAQCBzdGF0aWMgdWludDMyX3QgYXVkaW9fY29uZmlnX3NldHVw X25fcmVnKGludCBuLCB1aW50MzJfdCB2YWwpCiAJdG1wIHw9ICgobl91cCA8PCBBVURfQ09ORklH X1VQUEVSX05fU0hJRlQpIHwKIAkJCShuX2xvdyA8PCBBVURfQ09ORklHX0xPV0VSX05fU0hJRlQp IHwKIAkJCUFVRF9DT05GSUdfTl9QUk9HX0VOQUJMRSk7CisJaWYgKGludGVsX2NydGNfaGFzX3R5 cGUoY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFApKQorCQl0bXAgfD0gQVVEX0NPTkZJR19O X1ZBTFVFX0lOREVYOworCXJldHVybiB0bXA7Cit9CisKK3N0YXRpYyB1aW50MzJfdCBhdWRpb19j b25maWdfc2V0dXBfbV9yZWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJCSBpbnQgbSwg dWludDMyX3QgdmFsKQoreworCXVpbnQzMl90IHRtcCA9IHZhbDsKKworCWlmICghaW50ZWxfY3J0 Y19oYXNfdHlwZShjcnRjLT5jb25maWcsIElOVEVMX09VVFBVVF9EUCkpCisJCXJldHVybiAwOwor CisJdG1wIHw9IG07CisJdG1wIHw9IEFVRF9NX0NUU19NX1ZBTFVFX0lOREVYOworCXRtcCB8PSBB VURfTV9DVFNfTV9QUk9HX0VOQUJMRTsKKwogCXJldHVybiB0bXA7CiB9CiAKIC8qIGNoZWNrIHdo ZXRoZXIgTi9DVFMvTSBuZWVkIGJlIHNldCBtYW51YWxseSAqLwogc3RhdGljIGJvb2wgYXVkaW9f cmF0ZV9uZWVkX3Byb2coc3RydWN0IGludGVsX2NydGMgKmNydGMsCi0JCQkJIGNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQorCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSkKIHsKLQlpZiAoKChtb2RlLT5jbG9jayA9PSBUTURTXzI5N00p IHx8Ci0JCSAobW9kZS0+Y2xvY2sgPT0gVE1EU18yOTZNKSkgJiYKKwlpZiAoKChhZGp1c3RlZF9t b2RlLT5jbG9jayA9PSBUTURTXzI5N00pIHx8CisJCSAoYWRqdXN0ZWRfbW9kZS0+Y2xvY2sgPT0g VE1EU18yOTZNKSkgJiYKIAkJaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjLT5jb25maWcsIElOVEVM X09VVFBVVF9IRE1JKSkKIAkJcmV0dXJuIHRydWU7CisJZWxzZSBpZiAoKChjcnRjLT5jb25maWct PnBvcnRfY2xvY2sgPT0gTENfNTQwTSkgfHwKKwkJICAgKGNydGMtPmNvbmZpZy0+cG9ydF9jbG9j ayA9PSBMQ18xNjJNKSkgJiYKKwkJICBpbnRlbF9jcnRjX2hhc190eXBlKGNydGMtPmNvbmZpZywg SU5URUxfT1VUUFVUX0RQKSkKKwkJcmV0dXJuIHRydWU7CiAJZWxzZQogCQlyZXR1cm4gZmFsc2U7 CiB9CkBAIC0yODcsNyArMzU0LDcgQEAgc3RhdGljIHZvaWQgaHN3X2F1ZGlvX2NvZGVjX2VuYWJs ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0KIAkJZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNl KTsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0OwotCXVpbnQzMl90IHRt cDsKKwl1aW50MzJfdCB0bXAsIG07CiAJaW50IGxlbiwgaTsKIAlpbnQgbiwgcmF0ZTsKIApAQCAt MzQzLDE1ICs0MTAsMjUgQEAgc3RhdGljIHZvaWQgaHN3X2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJRFJNX0VSUk9SKCJpbnZhbGlkIHBvcnQ6 ICVkXG4iLCBwb3J0KTsKIAkJCXJhdGUgPSAwOwogCQl9Ci0JCW4gPSBhdWRpb19jb25maWdfZ2V0 X24oYWRqdXN0ZWRfbW9kZSwgcmF0ZSk7CisJCW4gPSBhdWRpb19jb25maWdfZ2V0X24oaW50ZWxf Y3J0YywgYWRqdXN0ZWRfbW9kZSwgcmF0ZSk7CiAJCWlmIChuICE9IDApCi0JCQl0bXAgPSBhdWRp b19jb25maWdfc2V0dXBfbl9yZWcobiwgdG1wKTsKKwkJCXRtcCA9IGF1ZGlvX2NvbmZpZ19zZXR1 cF9uX3JlZyhpbnRlbF9jcnRjLCBuLCB0bXApOwogCQllbHNlCiAJCQlEUk1fREVCVUdfS01TKCJu byBzdWl0YWJsZSBOIHZhbHVlIGlzIGZvdW5kXG4iKTsKIAl9CiAKIAlJOTE1X1dSSVRFKEhTV19B VURfQ0ZHKHBpcGUpLCB0bXApOwogCisJLyogc2V0dXAgbSB2YWx1ZSBmb3IgRFAgKi8KKwlpZiAo aW50ZWxfY3J0Y19oYXNfdHlwZShpbnRlbF9jcnRjLT5jb25maWcsIElOVEVMX09VVFBVVF9EUCkp IHsKKwkJbSA9IGF1ZGlvX2NvbmZpZ19nZXRfbShpbnRlbF9jcnRjLCByYXRlKTsKKwkJaWYgKG0g IT0gMCkgeworCQkJdG1wID0gSTkxNV9SRUFEKEhTV19BVURfTV9DVFNfRU5BQkxFKHBpcGUpKTsK KwkJCXRtcCA9IGF1ZGlvX2NvbmZpZ19zZXR1cF9tX3JlZyhpbnRlbF9jcnRjLCBtLCB0bXApOwor CQkJSTkxNV9XUklURShIU1dfQVVEX01fQ1RTX0VOQUJMRShwaXBlKSwgdG1wKTsKKwkJfQorCX0K KwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKIH0KIApAQCAtNjM3LDcgKzcx NCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0 cnVjdCBkZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKIAlzdHJ1 Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFjb21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVu dDsKIAllbnVtIHBpcGUgcGlwZSA9IElOVkFMSURfUElQRTsKLQl1MzIgdG1wOworCXUzMiB0bXAs IG07CiAJaW50IG47CiAJaW50IGVyciA9IDA7CiAKQEAgLTY0NSw3ICs3MjIsOCBAQCBzdGF0aWMg aW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpk ZXYsCiAJaWYgKCFJU19TS1lMQUtFKGRldl9wcml2KSAmJgogCSAgICAhSVNfS0FCWUxBS0UoZGV2 X3ByaXYpICYmCiAJICAgICFJU19CUk9BRFdFTEwoZGV2X3ByaXYpICYmCi0JICAgICFJU19IQVNX RUxMKGRldl9wcml2KSkKKwkgICAgIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmCisJICAgICFJU19C Uk9YVE9OKGRldl9wcml2KSkKIAkJcmV0dXJuIDA7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ YXZfbXV0ZXgpOwpAQCAtNjUzLDcgKzczMSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21w b25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlpbnRlbF9lbmNvZGVy ID0gZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsKIAkvKiBpbnRlbF9lbmNvZGVyIG1pZ2h0 IGJlIE5VTEwgZm9yIERQIE1TVCAqLwogCWlmICghaW50ZWxfZW5jb2RlciB8fCAhaW50ZWxfZW5j b2Rlci0+YmFzZS5jcnRjIHx8Ci0JICAgIGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VU UFVUX0hETUkpIHsKKwkgICAgKChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9I RE1JKSAmJgorCSAgICAgKGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0RQKSkp IHsKIAkJRFJNX0RFQlVHX0tNUygibm8gdmFsaWQgcG9ydCAlY1xuIiwgcG9ydF9uYW1lKHBvcnQp KTsKIAkJZXJyID0gLUVOT0RFVjsKIAkJZ290byB1bmxvY2s7CkBAIC02ODEsNyArNzYwLDcgQEAg c3RhdGljIGludCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGRl dmljZSAqZGV2LAogCQlnb3RvIHVubG9jazsKIAl9CiAKLQluID0gYXVkaW9fY29uZmlnX2dldF9u KG1vZGUsIHJhdGUpOworCW4gPSBhdWRpb19jb25maWdfZ2V0X24oY3J0YywgbW9kZSwgcmF0ZSk7 CiAJaWYgKG4gPT0gMCkgewogCQlEUk1fREVCVUdfS01TKCJVc2luZyBhdXRvbWF0aWMgbW9kZSBm b3IgTiB2YWx1ZSBvbiBwb3J0ICVjXG4iLAogCQkJCQkgIHBvcnRfbmFtZShwb3J0KSk7CkBAIC02 OTMsOCArNzcyLDE3IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRp b19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwKIAogCS8qIDMuIHNldCB0aGUgTi9DVFMvTSAqLwog CXRtcCA9IEk5MTVfUkVBRChIU1dfQVVEX0NGRyhwaXBlKSk7Ci0JdG1wID0gYXVkaW9fY29uZmln X3NldHVwX25fcmVnKG4sIHRtcCk7CisJdG1wID0gYXVkaW9fY29uZmlnX3NldHVwX25fcmVnKGNy dGMsIG4sIHRtcCk7CiAJSTkxNV9XUklURShIU1dfQVVEX0NGRyhwaXBlKSwgdG1wKTsKKwkvKiBz ZXR1cCBtIHZhbHVlIGZvciBEUCAqLworCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGMtPmNv bmZpZywgSU5URUxfT1VUUFVUX0RQKSkgeworCQltID0gYXVkaW9fY29uZmlnX2dldF9tKGNydGMs IHJhdGUpOworCQlpZiAobSA9PSAwKQorCQkJZ290byB1bmxvY2s7CisJCXRtcCA9IEk5MTVfUkVB RChIU1dfQVVEX01fQ1RTX0VOQUJMRShwaXBlKSk7CisJCXRtcCA9IGF1ZGlvX2NvbmZpZ19zZXR1 cF9tX3JlZyhjcnRjLCBtLCB0bXApOworCQlJOTE1X1dSSVRFKEhTV19BVURfTV9DVFNfRU5BQkxF KHBpcGUpLCB0bXApOworCX0KIAogIHVubG9jazoKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5h dl9tdXRleCk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==