From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 05/12] drm/amd: modify ACP DMA buffer position update logic (v2) Date: Thu, 6 Aug 2015 10:25:05 -0400 Message-ID: <1438871112-25946-5-git-send-email-alexander.deucher@amd.com> References: <1438871112-25946-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yk0-f178.google.com (mail-yk0-f178.google.com [209.85.160.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id 031F46EBD2 for ; Thu, 6 Aug 2015 07:25:24 -0700 (PDT) Received: by ykeo23 with SMTP id o23so63349126yke.3 for ; Thu, 06 Aug 2015 07:25:23 -0700 (PDT) In-Reply-To: <1438871112-25946-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: broonie@kernel.org, airlied@gmail.com, dri-devel@lists.freedesktop.org, alsa-devel@alsa-project.org Cc: Alex Deucher , Maruthi Srinivas Bayyavarapu , lgirdwood@gmail.com, perex@perex.cz List-Id: dri-devel@lists.freedesktop.org RnJvbTogTWFydXRoaSBTcmluaXZhcyBCYXl5YXZhcmFwdSA8TWFydXRoaS5CYXl5YXZhcmFwdUBh bWQuY29tPgoKVGhlIGZvbGxvd2luZyBhcmUgZGVzaWduIGNoYW5nZXMgZm9yIEFDUCBETUEgOgox LiBGb3IgY2FwdHVyZSB1c2VjYXNlLCBETUEgSW50ZXJydXB0IG9uIENvbXBsZXRlIGlzIGFkZGVk IGZvcgogICBBQ1BfVE9fU1lTUkFNX0NIX05VTSBETUEgY2hhbm5lbAoyLiBGb3IgcGxheWJhY2sg dXNlY2FzZSwgdGhlIGRlc3RpbmF0aW9uIGZvciBETUEgZGVzY3JpcHRvcnMgaXMKICAgcmV2ZXJz ZWQuCjMuIEZpbmFsbHksIG1vZGlmaWVkIERNQSBidWZmZXIgcG9zaXRpb24gdXBkYXRlIGxvZ2lj IGFzIHBlciBhYm92ZQogICBjaGFuZ2VzLgoKdjI6IG1pbm9yIGNvZGUgY2xlYW51cHMKClNpZ25l ZC1vZmYtYnk6IE1hcnV0aGkgQmF5eWF2YXJhcHUgPG1hcnV0aGkuYmF5eWF2YXJhcHVAYW1kLmNv bT4KUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4K UmV2aWV3ZWQtYnk6IE11cmFsaSBLcmlzaG5hIFZlbXVyaSA8bXVyYWxpLWtyaXNobmEudmVtdXJp QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJA YW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FjcC9hY3BfaHcuYyB8IDE1NiArKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YWNwL2FjcF9ody5oIHwgIDE5ICsrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMo KyksIDgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNw L2FjcF9ody5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvYWNwX2h3LmMKaW5kZXggMDY5ZmVh Ny4uMzRiYjBmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvYWNwX2h3LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvYWNwX2h3LmMKQEAgLTQwLDcgKzQwLDcgQEAK ICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+CiAKLSNk ZWZpbmUgVklTTEFORFMzMF9JVl9TUkNJRF9BQ1AgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAwMDAwYTIgIC8vIDE2MgorI2RlZmluZSBWSVNMQU5EUzMwX0lWX1NSQ0lEX0FDUCAw eDAwMDAwMGEyCiAKICNpbmNsdWRlICJhY3BfZ2Z4X2lmLmgiCiAjaW5jbHVkZSAiYWNwX2h3Lmgi CkBAIC05MSwxMCArOTEsOSBAQCBzdGF0aWMgdm9pZCBjb25maWdfYWNwX2RtYV9jaGFubmVsKHN0 cnVjdCBhbWRfYWNwX2RldmljZSAqYWNwX2RldiwgdTggY2hfbnVtLAogCiAKIC8qIEluaXRpYWxp emUgdGhlIGRtYSBkZXNjcmlwdG9ycyBsb2NhdGlvbiBpbiBTUkFNIGFuZCBwYWdlIHNpemUgKi8K LXN0YXRpYyB2b2lkIGFjcF9kbWFfZGVzY3JfaW5pdChzdHJ1Y3QgYW1kX2FjcF9kZXZpY2UgKmFj cF9kZXYpCitzdGF0aWMgdm9pZCBhY3BfZG1hX2Rlc2NyX2luaXQoc3RydWN0IGFtZF9hY3BfcHJp dmF0ZSAqYWNwX3BydikKIHsKIAl1MzIgc3JhbV9wdGVfb2Zmc2V0ID0gMDsKLQlzdHJ1Y3QgYW1k X2FjcF9wcml2YXRlICphY3BfcHJ2ID0gKHN0cnVjdCBhbWRfYWNwX3ByaXZhdGUgKilhY3BfZGV2 OwogCiAJLyogU1JBTSBzdGFydHMgYXQgMHgwNDAwMDAwMC4gRnJvbSB0aGF0IG9mZnNldCBvbmUg cGFnZSAoNEtCKSBsZWZ0IGZvcgogCSAqIGZpbGxpbmcgRE1BIGRlc2NyaXB0b3JzLnNyYW1fcHRl X29mZnNldCA9IDB4MDQwMDEwMDAgLCB1c2VkIGZvcgpAQCAtMTQ2LDEwICsxNDUsMTEgQEAgc3Rh dGljIHZvaWQgY29uZmlnX2RtYV9kZXNjcmlwdG9yX2luX3NyYW0oc3RydWN0IGFtZF9hY3BfZGV2 aWNlICphY3BfZGV2LAogCiAvKiBJbml0aWFsaXplIHRoZSBETUEgZGVzY3JpcHRvciBpbmZvcm1h dGlvbiAqLwogc3RhdGljIHZvaWQgc2V0X2FjcF9zeXNtZW1fZG1hX2Rlc2NyaXB0b3JzKHN0cnVj dCBhbWRfYWNwX2RldmljZSAqYWNwX2RldiwKLQkJCQkJICAgdTMyIHNpemUsIGludCBkaXJlY3Rp b24sIHUzMiBwdGVfb2Zmc2V0KQorCQkJCQkgICB1MzIgc2l6ZSwgaW50IGRpcmVjdGlvbiwKKwkJ CQkJICAgdTMyIHB0ZV9vZmZzZXQpCiB7Ci0JdTE2IGRtYV9kc2NyX2lkeCA9IFBMQVlCQUNLX1NU QVJUX0RNQV9ERVNDUl9DSDEyOwogCXUxNiBudW1fZGVzY3I7CisJdTE2IGRtYV9kc2NyX2lkeCA9 IFBMQVlCQUNLX1NUQVJUX0RNQV9ERVNDUl9DSDEyOwogCWFjcF9kbWFfZHNjcl90cmFuc2Zlcl90 IGRtYWRzY3JbMl07CiAKIAludW1fZGVzY3IgPSAyOwpAQCAtMTU3LDQzICsxNTcsNDUgQEAgc3Rh dGljIHZvaWQgc2V0X2FjcF9zeXNtZW1fZG1hX2Rlc2NyaXB0b3JzKHN0cnVjdCBhbWRfYWNwX2Rl dmljZSAqYWNwX2RldiwKIAlkbWFkc2NyWzBdLnNpemVfeGZlcl9kaXIudmFsID0gKHUzMikgMHgw OwogCWlmIChkaXJlY3Rpb24gPT0gU1RSRUFNX1BMQVlCQUNLKSB7CiAJCWRtYV9kc2NyX2lkeCA9 IFBMQVlCQUNLX1NUQVJUX0RNQV9ERVNDUl9DSDEyOwotCQlkbWFkc2NyWzBdLmRlc3QgPSBBQ1Bf U0hBUkVEX1JBTV9CQU5LXzM4X0FERFJFU1M7CisJCWRtYWRzY3JbMF0uZGVzdCA9IEFDUF9TSEFS RURfUkFNX0JBTktfMzhfQUREUkVTUyArIChzaXplIC8gMik7CiAJCWRtYWRzY3JbMF0uc3JjID0g QUNQX0lOVEVSTkFMX0FQRVJUVVJFX1dJTkRPV18wX0FERFJFU1MgKwogCQkJKHB0ZV9vZmZzZXQg KiBQQUdFX1NJWkVfNEspOwogCQlkbWFkc2NyWzBdLnNpemVfeGZlcl9kaXIucy50cmFuc19kaXJl Y3Rpb24gPQogCQkgICAgQUNQX0RNQV9BVFRSSUJVVEVTX0RBR0JfT05JT05fVE9fU0hBUkVETUVN OwotCX0gZWxzZSBpZiAoZGlyZWN0aW9uID09IFNUUkVBTV9DQVBUVVJFKSB7CisJCWRtYWRzY3Jb MF0uc2l6ZV94ZmVyX2Rpci5zLnNpemUgPSAoc2l6ZSAvIDIpOworCQlkbWFkc2NyWzBdLnNpemVf eGZlcl9kaXIucy5pb2MgPSAodTMyKSAweDA7CisJfSBlbHNlIHsKIAkJZG1hX2RzY3JfaWR4ID0g Q0FQVFVSRV9TVEFSVF9ETUFfREVTQ1JfQ0gxNDsKIAkJZG1hZHNjclswXS5zcmMgPSBBQ1BfU0hB UkVEX1JBTV9CQU5LXzQ3X0FERFJFU1M7CiAJCWRtYWRzY3JbMF0uZGVzdCA9IEFDUF9JTlRFUk5B TF9BUEVSVFVSRV9XSU5ET1dfMF9BRERSRVNTICsKIAkJCShwdGVfb2Zmc2V0ICogUEFHRV9TSVpF XzRLKTsKIAkJZG1hZHNjclswXS5zaXplX3hmZXJfZGlyLnMudHJhbnNfZGlyZWN0aW9uID0KIAkJ ICAgIEFDUF9ETUFfQVRUUklCVVRFU19TSEFSRURNRU1fVE9fREFHQl9PTklPTjsKKwkJZG1hZHNj clswXS5zaXplX3hmZXJfZGlyLnMuc2l6ZSA9IHNpemUgLyAyOworCQlkbWFkc2NyWzBdLnNpemVf eGZlcl9kaXIucy5pb2MgPSAodTMyKSAweDE7CiAJfQogCi0JLyogYWxsb3QgMSBwZXJpb2Qgc2l6 ZSBwZXIgZGVzY3JpcHRvciA9IHRvdGFsIHNpemUgKHNpemUpIC8yCi0JICogPT4gcGFyYW1zX2J1 ZmZlcl9ieXRlcyhwYXJhbXMpL3BhcmFtc19wZXJpb2RzKHBhcmFtcyk7Ci0JICovCi0JZG1hZHNj clswXS5zaXplX3hmZXJfZGlyLnMuc2l6ZSA9IHNpemUgLyAyOwotCi0JZG1hZHNjclswXS5zaXpl X3hmZXJfZGlyLnMuaW9jID0gKHUzMikgMHgwOwotCiAJY29uZmlnX2RtYV9kZXNjcmlwdG9yX2lu X3NyYW0oYWNwX2RldiwgZG1hX2RzY3JfaWR4LCAmZG1hZHNjclswXSk7CiAKIAlkbWFkc2NyWzFd LnNpemVfeGZlcl9kaXIudmFsID0gKHUzMikgMHgwOwotCWRtYWRzY3JbMV0uZGVzdCA9IGRtYWRz Y3JbMF0uZGVzdCArIGRtYWRzY3JbMF0uc2l6ZV94ZmVyX2Rpci5zLnNpemU7Ci0JZG1hZHNjclsx XS5zcmMgPSBkbWFkc2NyWzBdLnNyYyArIGRtYWRzY3JbMF0uc2l6ZV94ZmVyX2Rpci5zLnNpemU7 Ci0JZG1hZHNjclsxXS5zaXplX3hmZXJfZGlyLnMuc2l6ZSA9IGRtYWRzY3JbMF0uc2l6ZV94ZmVy X2Rpci5zLnNpemU7Ci0JZG1hZHNjclsxXS5zaXplX3hmZXJfZGlyLnMuaW9jID0gKHUzMikgMHgw OwotCiAJaWYgKGRpcmVjdGlvbiA9PSBTVFJFQU1fUExBWUJBQ0spIHsKIAkJZG1hX2RzY3JfaWR4 ID0gUExBWUJBQ0tfRU5EX0RNQV9ERVNDUl9DSDEyOworCQlkbWFkc2NyWzFdLmRlc3QgPSBBQ1Bf U0hBUkVEX1JBTV9CQU5LXzM4X0FERFJFU1M7CisJCWRtYWRzY3JbMV0uc3JjID0gQUNQX0lOVEVS TkFMX0FQRVJUVVJFX1dJTkRPV18wX0FERFJFU1MgKworCQkJKHB0ZV9vZmZzZXQgKiBQQUdFX1NJ WkVfNEspICsgKHNpemUgLyAyKTsKIAkJZG1hZHNjclsxXS5zaXplX3hmZXJfZGlyLnMudHJhbnNf ZGlyZWN0aW9uID0KIAkJICAgIEFDUF9ETUFfQVRUUklCVVRFU19EQUdCX09OSU9OX1RPX1NIQVJF RE1FTTsKLQl9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PSBTVFJFQU1fQ0FQVFVSRSkgeworCQlkbWFk c2NyWzFdLnNpemVfeGZlcl9kaXIucy5zaXplID0gKHNpemUgLyAyKTsKKwkJZG1hZHNjclsxXS5z aXplX3hmZXJfZGlyLnMuaW9jID0gKHUzMikgMHgwOworCX0gZWxzZSB7CiAJCWRtYV9kc2NyX2lk eCA9IENBUFRVUkVfRU5EX0RNQV9ERVNDUl9DSDE0OwogCQlkbWFkc2NyWzFdLnNpemVfeGZlcl9k aXIucy50cmFuc19kaXJlY3Rpb24gPQogCQkgICAgQUNQX0RNQV9BVFRSSUJVVEVTX1NIQVJFRE1F TV9UT19EQUdCX09OSU9OOworCQlkbWFkc2NyWzFdLnNpemVfeGZlcl9kaXIudmFsID0gKHUzMikg MHgwOworCQlkbWFkc2NyWzFdLmRlc3QgPSBkbWFkc2NyWzBdLmRlc3QgKyAoc2l6ZSAvIDIpOwor CQlkbWFkc2NyWzFdLnNyYyA9IGRtYWRzY3JbMF0uc3JjICsgKHNpemUgLyAyKTsKKwkJZG1hZHNj clsxXS5zaXplX3hmZXJfZGlyLnMuc2l6ZSA9IChzaXplIC8gMik7CisJCWRtYWRzY3JbMV0uc2l6 ZV94ZmVyX2Rpci5zLmlvYyA9ICh1MzIpIDB4MTsKIAl9CiAKIAljb25maWdfZG1hX2Rlc2NyaXB0 b3JfaW5fc3JhbShhY3BfZGV2LCBkbWFfZHNjcl9pZHgsICZkbWFkc2NyWzFdKTsKQEAgLTIwNCw3 ICsyMDYsNyBAQCBzdGF0aWMgdm9pZCBzZXRfYWNwX3N5c21lbV9kbWFfZGVzY3JpcHRvcnMoc3Ry dWN0IGFtZF9hY3BfZGV2aWNlICphY3BfZGV2LAogCQljb25maWdfYWNwX2RtYV9jaGFubmVsKGFj cF9kZXYsIFNZU1JBTV9UT19BQ1BfQ0hfTlVNLAogCQkJCQlkbWFfZHNjcl9pZHgsIG51bV9kZXNj ciwKIAkJCQkJQUNQX0RNQV9QUklPUklUWV9MRVZFTF9OT1JNQUwpOwotCX0gZWxzZSBpZiAoZGly ZWN0aW9uID09IFNUUkVBTV9DQVBUVVJFKSB7CisJfSBlbHNlIHsKIAkJLyogc3RhcnRpbmcgZGVz Y3JpcHRvciBmb3IgdGhpcyBjaGFubmVsICovCiAJCWRtYV9kc2NyX2lkeCA9IENBUFRVUkVfU1RB UlRfRE1BX0RFU0NSX0NIMTQ7CiAJCWNvbmZpZ19hY3BfZG1hX2NoYW5uZWwoYWNwX2RldiwgQUNQ X1RPX1NZU1JBTV9DSF9OVU0sCkBAIC0yMjgsMzQgKzIzMCwzOCBAQCBzdGF0aWMgdm9pZCBzZXRf YWNwX3RvX2kyc19kbWFfZGVzY3JpcHRvcnMoc3RydWN0IGFtZF9hY3BfZGV2aWNlICphY3BfZGV2 LAogCSAqICBvZiBkYXRhCiAJICovCiAJZG1hZHNjclswXS5zaXplX3hmZXJfZGlyLnZhbCA9ICh1 MzIpIDB4MDsKLQlkbWFkc2NyWzBdLnNpemVfeGZlcl9kaXIucy5zaXplID0gKHNpemUgLyAyKTsK LQlkbWFkc2NyWzBdLnNpemVfeGZlcl9kaXIucy5pb2MgPSAodTMyKSAweDE7CiAJaWYgKGRpcmVj dGlvbiA9PSBTVFJFQU1fUExBWUJBQ0spIHsKIAkJZG1hX2RzY3JfaWR4ID0gUExBWUJBQ0tfU1RB UlRfRE1BX0RFU0NSX0NIMTM7CiAJCWRtYWRzY3JbMF0uc3JjID0gQUNQX1NIQVJFRF9SQU1fQkFO S18zOF9BRERSRVNTOwogCQlkbWFkc2NyWzBdLnNpemVfeGZlcl9kaXIucy50cmFuc19kaXJlY3Rp b24gPSBUT19BQ1BfSTJTXzE7Ci0JfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gU1RSRUFNX0NBUFRV UkUpIHsKKwkJZG1hZHNjclswXS5zaXplX3hmZXJfZGlyLnMuc2l6ZSA9IChzaXplIC8gMik7CisJ CWRtYWRzY3JbMF0uc2l6ZV94ZmVyX2Rpci5zLmlvYyA9ICh1MzIpIDB4MTsKKwl9IGVsc2Ugewog CQlkbWFfZHNjcl9pZHggPSBDQVBUVVJFX1NUQVJUX0RNQV9ERVNDUl9DSDE1OwogCQlkbWFkc2Ny WzBdLmRlc3QgPSBBQ1BfU0hBUkVEX1JBTV9CQU5LXzQ3X0FERFJFU1M7Ci0JCWRtYWRzY3JbMF0u c2l6ZV94ZmVyX2Rpci5zLnRyYW5zX2RpcmVjdGlvbiA9IDB4YTsKKwkJZG1hZHNjclswXS5zaXpl X3hmZXJfZGlyLnMudHJhbnNfZGlyZWN0aW9uID0gRlJPTV9BQ1BfSTJTXzE7CisJCWRtYWRzY3Jb MF0uc2l6ZV94ZmVyX2Rpci5zLnNpemUgPSAoc2l6ZSAvIDIpOworCQlkbWFkc2NyWzBdLnNpemVf eGZlcl9kaXIucy5pb2MgPSAodTMyKSAweDE7CiAJfQorCiAJY29uZmlnX2RtYV9kZXNjcmlwdG9y X2luX3NyYW0oYWNwX2RldiwgZG1hX2RzY3JfaWR4LCAmZG1hZHNjclswXSk7CiAKIAlkbWFkc2Ny WzFdLnNpemVfeGZlcl9kaXIudmFsID0gKHUzMikgMHgwOwotCWRtYWRzY3JbMV0uc2l6ZV94ZmVy X2Rpci5zLnNpemUgPSAoc2l6ZSAvIDIpOwotCWRtYWRzY3JbMV0uc2l6ZV94ZmVyX2Rpci5zLmlv YyA9ICh1MzIpIDB4MTsKIAlpZiAoZGlyZWN0aW9uID09IFNUUkVBTV9QTEFZQkFDSykgewogCQlk bWFfZHNjcl9pZHggPSBQTEFZQkFDS19FTkRfRE1BX0RFU0NSX0NIMTM7Ci0JCWRtYWRzY3JbMV0u c3JjID0gZG1hZHNjclswXS5zcmMgKwotCQkgICAgZG1hZHNjclswXS5zaXplX3hmZXJfZGlyLnMu c2l6ZTsKKwkJZG1hZHNjclsxXS5zcmMgPSBkbWFkc2NyWzBdLnNyYyArIChzaXplIC8gMik7CiAJ CWRtYWRzY3JbMV0uc2l6ZV94ZmVyX2Rpci5zLnRyYW5zX2RpcmVjdGlvbiA9IFRPX0FDUF9JMlNf MTsKKwkJZG1hZHNjclsxXS5zaXplX3hmZXJfZGlyLnMuc2l6ZSA9IChzaXplIC8gMik7CisJCWRt YWRzY3JbMV0uc2l6ZV94ZmVyX2Rpci5zLmlvYyA9ICh1MzIpIDB4MTsKIAotCX0gZWxzZSBpZiAo ZGlyZWN0aW9uID09IFNUUkVBTV9DQVBUVVJFKSB7CisJfSBlbHNlIHsKIAkJZG1hX2RzY3JfaWR4 ID0gQ0FQVFVSRV9FTkRfRE1BX0RFU0NSX0NIMTU7Ci0JCWRtYWRzY3JbMV0uZGVzdCA9IGRtYWRz Y3JbMF0uZGVzdCArCi0JCSAgICBkbWFkc2NyWzBdLnNpemVfeGZlcl9kaXIucy5zaXplOwotCQlk bWFkc2NyWzFdLnNpemVfeGZlcl9kaXIucy50cmFuc19kaXJlY3Rpb24gPSAweGE7CisJCWRtYWRz Y3JbMV0uZGVzdCA9IGRtYWRzY3JbMF0uZGVzdCArIChzaXplIC8gMik7CisJCWRtYWRzY3JbMV0u c2l6ZV94ZmVyX2Rpci5zLnRyYW5zX2RpcmVjdGlvbiA9IEZST01fQUNQX0kyU18xOworCQlkbWFk c2NyWzFdLnNpemVfeGZlcl9kaXIucy5zaXplID0gKHNpemUgLyAyKTsKKwkJZG1hZHNjclsxXS5z aXplX3hmZXJfZGlyLnMuaW9jID0gKHUzMikgMHgxOwogCX0KKwogCWNvbmZpZ19kbWFfZGVzY3Jp cHRvcl9pbl9zcmFtKGFjcF9kZXYsIGRtYV9kc2NyX2lkeCwgJmRtYWRzY3JbMV0pOwogCiAJLyog Q29uZmlndXJlIHRoZSBETUEgY2hhbm5lbCB3aXRoIHRoZSBhYm92ZSBkZXNjcmlwdG9yZSAqLwpA QCAtMjY1LDcgKzI3MSw3IEBAIHN0YXRpYyB2b2lkIHNldF9hY3BfdG9faTJzX2RtYV9kZXNjcmlw dG9ycyhzdHJ1Y3QgYW1kX2FjcF9kZXZpY2UgKmFjcF9kZXYsCiAJCWNvbmZpZ19hY3BfZG1hX2No YW5uZWwoYWNwX2RldiwgQUNQX1RPX0kyU19ETUFfQ0hfTlVNLAogCQkJCQlkbWFfZHNjcl9pZHgs IG51bV9kZXNjciwKIAkJCQkJQUNQX0RNQV9QUklPUklUWV9MRVZFTF9OT1JNQUwpOwotCX0gZWxz ZSBpZiAoZGlyZWN0aW9uID09IFNUUkVBTV9DQVBUVVJFKSB7CisJfSBlbHNlIHsKIAkJLyogc3Rh cnRpbmcgZGVzY3JpcHRvciBmb3IgdGhpcyBjaGFubmVsICovCiAJCWRtYV9kc2NyX2lkeCA9IENB UFRVUkVfU1RBUlRfRE1BX0RFU0NSX0NIMTU7CiAJCWNvbmZpZ19hY3BfZG1hX2NoYW5uZWwoYWNw X2RldiwgSTJTX1RPX0FDUF9ETUFfQ0hfTlVNLApAQCAtMjg0LDggKzI5MCw4IEBAIHN0YXRpYyB1 MTYgZ2V0X2RzY3JfaWR4KHN0cnVjdCBhbWRfYWNwX2RldmljZSAqYWNwX2RldiwgaW50IGRpcmVj dGlvbikKIAkJZHNjcl9pZHggPSBjZ3NfcmVhZF9yZWdpc3RlcihhY3BfcHJ2LT5jZ3NfZGV2aWNl LAogCQkJCQkJCW1tQUNQX0RNQV9DVVJfRFNDUl8xMyk7CiAJCWRzY3JfaWR4ID0gKGRzY3JfaWR4 ID09IFBMQVlCQUNLX1NUQVJUX0RNQV9ERVNDUl9DSDEzKSA/Ci0JCQkJUExBWUJBQ0tfRU5EX0RN QV9ERVNDUl9DSDEyIDoKLQkJCQlQTEFZQkFDS19TVEFSVF9ETUFfREVTQ1JfQ0gxMjsKKwkJCQlQ TEFZQkFDS19TVEFSVF9ETUFfREVTQ1JfQ0gxMiA6CisJCQkJUExBWUJBQ0tfRU5EX0RNQV9ERVND Ul9DSDEyOwogCX0gZWxzZSB7CiAJCWRzY3JfaWR4ID0gY2dzX3JlYWRfcmVnaXN0ZXIoYWNwX3By di0+Y2dzX2RldmljZSwKIAkJCQkJCQltbUFDUF9ETUFfQ1VSX0RTQ1JfMTUpOwpAQCAtNDcwLDcg KzQ3Niw3IEBAIHN0YXRpYyB2b2lkIGNvbmZpZ3VyZV9pMnNfc3RyZWFtKHN0cnVjdCBhbWRfYWNw X2RldmljZSAqYWNwX2RldiwKIAkJLypFbmFibGUgVHJhbnNtaXQgKi8KIAkJY2dzX3dyaXRlX3Jl Z2lzdGVyKGFjcF9wcnYtPmNnc19kZXZpY2UsCiAJCQkJICAgKG1tQUNQX0kyU1NQX1RFUjAgKyAo MHgxMCAqCi0JCQkJCQkJaTJzX2NvbmZpZy0+Y2hfcmVnKSksIDEpOworCQkJCQkJaTJzX2NvbmZp Zy0+Y2hfcmVnKSksIDEpOwogCX0gZWxzZSB7CiAJCS8qIFJlY2VpdmUgY29uZmlndXJhdGlvbiBy ZWdpc3RlciBmb3IgZGF0YSB3aWR0aCAqLwogCQljZ3Nfd3JpdGVfcmVnaXN0ZXIoYWNwX3Bydi0+ Y2dzX2RldmljZSwKQEAgLTQ3OSwxMSArNDg1LDExIEBAIHN0YXRpYyB2b2lkIGNvbmZpZ3VyZV9p MnNfc3RyZWFtKHN0cnVjdCBhbWRfYWNwX2RldmljZSAqYWNwX2RldiwKIAkJCQkgICBpMnNfY29u ZmlnLT54ZmVyX3Jlc29sdXRpb24pOwogCQljZ3Nfd3JpdGVfcmVnaXN0ZXIoYWNwX3Bydi0+Y2dz X2RldmljZSwKIAkJCQkgICAobW1BQ1BfSTJTTUlDU1BfUkZDUjAgKyAoMHgxMCAqCi0JCQkJCQkJ ICAgIGkyc19jb25maWctPmNoX3JlZykpLCAweDA3KTsKKwkJCQkJCSAgICBpMnNfY29uZmlnLT5j aF9yZWcpKSwgMHgwNyk7CiAJCS8qUmVhZCBpbnRlcnJ1cHQgbWFzayByZWdpc3RlciAqLwogCQlp MnNfY29uZmlnLT5pcnEgPSBjZ3NfcmVhZF9yZWdpc3RlcihhY3BfcHJ2LT5jZ3NfZGV2aWNlLAog CQkJCQkJICAgIChtbUFDUF9JMlNNSUNTUF9JTVIwICsKLQkJCQkJCSAgICAgKDB4MTAgKiBpMnNf Y29uZmlnLT5jaF9yZWcpKSk7CisJCQkJCSAgICAgKDB4MTAgKiBpMnNfY29uZmlnLT5jaF9yZWcp KSk7CiAKIAkJLyogVFggRklGTyBPdmVycnVuLEVtcHR5IGludGVycnVwdHMgKi8KIAkJY2dzX3dy aXRlX3JlZ2lzdGVyKGFjcF9wcnYtPmNnc19kZXZpY2UsCkBAIC00OTMsOCArNDk5LDcgQEAgc3Rh dGljIHZvaWQgY29uZmlndXJlX2kyc19zdHJlYW0oc3RydWN0IGFtZF9hY3BfZGV2aWNlICphY3Bf ZGV2LAogCQkvKkVuYWJsZSBSZWNlaXZlICovCiAJCWNnc193cml0ZV9yZWdpc3RlcihhY3BfcHJ2 LT5jZ3NfZGV2aWNlLAogCQkJCSAgIChtbUFDUF9JMlNNSUNTUF9SRVIwICsgKDB4MTAgKgotCQkJ CQkJCSAgIGkyc19jb25maWctPmNoX3JlZykpLCAxKTsKLQorCQkJCQkJICAgaTJzX2NvbmZpZy0+ Y2hfcmVnKSksIDEpOwogCX0KIH0KIApAQCAtNTQ1LDE2ICs1NTAsMTggQEAgc3RhdGljIGludCBh Y3BfZG1hX3N0YXJ0KHN0cnVjdCBhbWRfYWNwX2RldmljZSAqYWNwX2RldiwKIAlkbWFfY3RybCB8 PSBBQ1BfRE1BX0NOVExfMF9fRE1BQ2hSdW5fTUFTSzsKIAogCWlmICgoY2hfbnVtID09IEFDUF9U T19JMlNfRE1BX0NIX05VTSkgfHwKKwkgICAgKGNoX251bSA9PSBBQ1BfVE9fU1lTUkFNX0NIX05V TSkgfHwKIAkgICAgKGNoX251bSA9PSBJMlNfVE9fQUNQX0RNQV9DSF9OVU0pKSB7CiAJCWRtYV9j dHJsIHw9IEFDUF9ETUFfQ05UTF8wX19ETUFDaElPQ0VuX01BU0s7Ci0JCWNnc19pcnFfZ2V0KGFj cF9wcnYtPmNnc19kZXZpY2UsIFZJU0xBTkRTMzBfSVZfU1JDSURfQUNQLCAwKTsKIAl9IGVsc2Ug ewogCQlkbWFfY3RybCAmPSB+QUNQX0RNQV9DTlRMXzBfX0RNQUNoSU9DRW5fTUFTSzsKIAl9CiAK IAkvKiBlbmFibGUgIGZvciBBQ1AgU1JBTSB0by9mcm9tIEkyUyBETUEgY2hhbm5lbCAqLwotCWlm IChpc19jaXJjdWxhciA9PSB0cnVlKQorCWlmIChpc19jaXJjdWxhciA9PSB0cnVlKSB7CiAJCWRt YV9jdHJsIHw9IEFDUF9ETUFfQ05UTF8wX19DaXJjdWxhcl9ETUFfRW5fTUFTSzsKKwkJY2dzX2ly cV9nZXQoYWNwX3Bydi0+Y2dzX2RldmljZSwgVklTTEFORFMzMF9JVl9TUkNJRF9BQ1AsIDApOwor CX0KIAllbHNlCiAJCWRtYV9jdHJsICY9IH5BQ1BfRE1BX0NOVExfMF9fQ2lyY3VsYXJfRE1BX0Vu X01BU0s7CiAKQEAgLTU2Miw3ICs1NjksNiBAQCBzdGF0aWMgaW50IGFjcF9kbWFfc3RhcnQoc3Ry dWN0IGFtZF9hY3BfZGV2aWNlICphY3BfZGV2LAogCQkJICAgZG1hX2N0cmwpOwogCiAJc3RhdHVz ID0gU1RBVFVTX1NVQ0NFU1M7Ci0KIAlyZXR1cm4gc3RhdHVzOwogfQogCkBAIC02MTQsNyArNjIw LDggQEAgc3RhdGljIGludCBhY3BfZG1hX3N0b3Aoc3RydWN0IGFtZF9hY3BfZGV2aWNlICphY3Bf ZGV2LCB1OCBjaF9udW0pCiAJCQlkbWFfY3RybCAmPSB+QUNQX0RNQV9DTlRMXzBfX0RNQUNoUnN0 X01BU0s7CiAKIAkJCWNnc193cml0ZV9yZWdpc3RlcihhY3BfcHJ2LT5jZ3NfZGV2aWNlLAotCQkJ CQkgICAobW1BQ1BfRE1BX0NOVExfMCArIGNoX251bSksIGRtYV9jdHJsKTsKKwkJCQkJICAgKG1t QUNQX0RNQV9DTlRMXzAgKyBjaF9udW0pLAorCQkJCQkgICBkbWFfY3RybCk7CiAJCQlzdGF0dXMg PSBTVEFUVVNfU1VDQ0VTUzsKIAkJCWJyZWFrOwogCQl9CkBAIC02MzEsNDcgKzYzOCw1OCBAQCBz dGF0aWMgaW50IGFjcF9kbWFfc3RvcChzdHJ1Y3QgYW1kX2FjcF9kZXZpY2UgKmFjcF9kZXYsIHU4 IGNoX251bSkKIAogc3RhdGljIGludCBkbWFfaXJxX2hhbmRsZXIodm9pZCAqcHJ2X2RhdGEpCiB7 Ci0JdTE2IHBsYXlfaW50ciwgY2FwdHVyZV9pbnRyOworCXUxNiBwbGF5X2FjcF9pMnNfaW50ciwg Y2FwX2kyc19hY3BfaW50ciwgY2FwX2FjcF9zeXNyYW1faW50cjsKIAl1MTYgZHNjcl9pZHgsIGlu dHJfZmxhZzsKKwl1MzIgZXh0X2ludHJfc3RhdHVzOwogCWludCBwcmlvcml0eV9sZXZlbCA9IDB4 MDsKIAlpbnQgZG1hX3RyYW5zZmVyX3N0YXR1cyA9IFNUQVRVU19VTlNVQ0NFU1NGVUw7CiAJc3Ry dWN0IGFjcF9pcnFfcHJ2ICppZGF0YSA9IHBydl9kYXRhOwogCXN0cnVjdCBhbWRfYWNwX2Rldmlj ZSAqYWNwX2RldiA9IGlkYXRhLT5hY3BfZGV2OworCXN0cnVjdCBhbWRfYWNwX3ByaXZhdGUgKmFj cF9wcnYgPSAoc3RydWN0IGFtZF9hY3BfcHJpdmF0ZSAqKWFjcF9kZXY7CiAKIAlpbnRyX2ZsYWcg PSBhY3BfZ2V0X2ludHJfZmxhZyhhY3BfZGV2KTsKLQlwbGF5X2ludHIgPSAoaW50cl9mbGFnICYg QklUKEFDUF9UT19JMlNfRE1BX0NIX05VTSkpOwotCWNhcHR1cmVfaW50ciA9IChpbnRyX2ZsYWcg JiBCSVQoSTJTX1RPX0FDUF9ETUFfQ0hfTlVNKSk7CiAKLQlpZiAoIXBsYXlfaW50ciAmJiAhY2Fw dHVyZV9pbnRyKSB7CisJcGxheV9hY3BfaTJzX2ludHIgPSAoaW50cl9mbGFnICYgQklUKEFDUF9U T19JMlNfRE1BX0NIX05VTSkpOworCWNhcF9pMnNfYWNwX2ludHIgPSAoaW50cl9mbGFnICYgQklU KEkyU19UT19BQ1BfRE1BX0NIX05VTSkpOworCWNhcF9hY3Bfc3lzcmFtX2ludHIgPSAoaW50cl9m bGFnICYgQklUKEFDUF9UT19TWVNSQU1fQ0hfTlVNKSk7CisKKwlpZiAoIXBsYXlfYWNwX2kyc19p bnRyICYmICFjYXBfaTJzX2FjcF9pbnRyICYmICFjYXBfYWNwX3N5c3JhbV9pbnRyKSB7CiAJCS8q IFdlIHJlZ2lzdGVyZWQgZm9yIERNQSBJbnRlcnJ1cHQtT24tQ29tcGxldGUgaW50ZXJydXB0cyBv bmx5LgotCQkgKiBJZiB3ZSBoaXQgaGVyZSwganVzdCByZXR1cm4uICovCi0JCXByX2luZm8oIkFD UDppcnFfaGFuZGxlcjogcGxheV9pbnRyICYmIGNhcHR1cmVfaW50ciA9IGZhbHNlXG4iKTsKKwkJ ICogSWYgd2UgaGl0IGhlcmUsIGxvZywgYWNrbm93bGVkZ2UgaXQgYW5kIHJldHVybi4gKi8KKwkJ ZXh0X2ludHJfc3RhdHVzID0gY2dzX3JlYWRfcmVnaXN0ZXIoYWNwX3Bydi0+Y2dzX2RldmljZSwK KwkJCQkJICAgIG1tQUNQX0VYVEVSTkFMX0lOVFJfU1RBVCk7CisJCXByX2luZm8oIkFDUDogTm90 IGEgRE1BIElPQyBpcnE6ICV4XG4iLCBleHRfaW50cl9zdGF0dXMpOwogCQlyZXR1cm4gMDsKIAl9 CiAKLQlpZiAocGxheV9pbnRyKSB7CisJaWYgKHBsYXlfYWNwX2kyc19pbnRyKSB7CiAJCWRzY3Jf aWR4ID0gZ2V0X2RzY3JfaWR4KGFjcF9kZXYsIFNUUkVBTV9QTEFZQkFDSyk7CiAJCWNvbmZpZ19h Y3BfZG1hX2NoYW5uZWwoYWNwX2RldiwgU1lTUkFNX1RPX0FDUF9DSF9OVU0sIGRzY3JfaWR4LAog CQkJCSAgICAgICAxLCBwcmlvcml0eV9sZXZlbCk7CiAJCWRtYV90cmFuc2Zlcl9zdGF0dXMgPSBh Y3BfZG1hX3N0YXJ0KGFjcF9kZXYsCiAJCQkJCQkgICAgU1lTUkFNX1RPX0FDUF9DSF9OVU0sCiAJ CQkJCQkgICAgZmFsc2UpOwotCQlpZGF0YS0+c2V0X2VsYXBzZWQoaWRhdGEtPmRldiwgcGxheV9p bnRyLCBjYXB0dXJlX2ludHIpOworCQlpZGF0YS0+c2V0X2VsYXBzZWQoaWRhdGEtPmRldiwgMSwg MCk7CiAKIAkJYWNwX2V4dF9zdGF0X2NsZWFyX2RtYWlvYyhhY3BfZGV2LCBBQ1BfVE9fSTJTX0RN QV9DSF9OVU0pOwogCX0KIAotCWlmIChjYXB0dXJlX2ludHIpIHsKKwlpZiAoY2FwX2kyc19hY3Bf aW50cikgewogCQlkc2NyX2lkeCA9IGdldF9kc2NyX2lkeChhY3BfZGV2LCBTVFJFQU1fQ0FQVFVS RSk7CiAJCWNvbmZpZ19hY3BfZG1hX2NoYW5uZWwoYWNwX2RldiwgQUNQX1RPX1NZU1JBTV9DSF9O VU0sIGRzY3JfaWR4LAogCQkJCSAgICAgICAxLCBwcmlvcml0eV9sZXZlbCk7CiAJCWRtYV90cmFu c2Zlcl9zdGF0dXMgPSBhY3BfZG1hX3N0YXJ0KGFjcF9kZXYsCiAJCQkJCQkgICAgQUNQX1RPX1NZ U1JBTV9DSF9OVU0sCiAJCQkJCQkgICAgZmFsc2UpOwotCQlpZGF0YS0+c2V0X2VsYXBzZWQoaWRh dGEtPmRldiwgcGxheV9pbnRyLCBjYXB0dXJlX2ludHIpOwogCiAJCWFjcF9leHRfc3RhdF9jbGVh cl9kbWFpb2MoYWNwX2RldiwgSTJTX1RPX0FDUF9ETUFfQ0hfTlVNKTsKIAl9CisKKwlpZiAoY2Fw X2FjcF9zeXNyYW1faW50cikgeworCQlpZGF0YS0+c2V0X2VsYXBzZWQoaWRhdGEtPmRldiwgMCwg MSk7CisJCWFjcF9leHRfc3RhdF9jbGVhcl9kbWFpb2MoYWNwX2RldiwgQUNQX1RPX1NZU1JBTV9D SF9OVU0pOworCX0KKwogCXJldHVybiAwOwogfQogCkBAIC03MzcsNyArNzU1LDcgQEAgc3RhdGlj IGludCBhY3BfaHdfaW5pdChzdHJ1Y3QgYW1kX2FjcF9kZXZpY2UgKmFjcF9kZXYsIHZvaWQgKmlw cnYpCiAJY2dzX3dyaXRlX3JlZ2lzdGVyKGFjcF9wcnYtPmNnc19kZXZpY2UsCW1tQUNQX0FYSTJE QUdCX0dBUkxJQ19DTlRMLAogCQkJICAgR0FSTElDX0NOVExfREVGQVVMVCk7CiAKLQlhY3BfZG1h X2Rlc2NyX2luaXQoYWNwX2Rldik7CisJYWNwX2RtYV9kZXNjcl9pbml0KGFjcF9wcnYpOwogCiAJ LyogRE1BIERTQ1IgQkFTRSBBRERSRVNTIElOIFNSQU0gKi8KIAljZ3Nfd3JpdGVfcmVnaXN0ZXIo YWNwX3Bydi0+Y2dzX2RldmljZSwJbW1BQ1BfRE1BX0RFU0NfQkFTRV9BRERSLApAQCAtODExLDI0 ICs4MjksMjQgQEAgc3RhdGljIHUzMiBhY3BfdXBkYXRlX2RtYV9wb2ludGVyKHN0cnVjdCBhbWRf YWNwX2RldmljZSAqYWNwX2RldiwgaW50IGRpcmVjdGlvbiwKIAlpZiAoZGlyZWN0aW9uID09IFNU UkVBTV9QTEFZQkFDSykgewogCQlkc2NyID0gY2dzX3JlYWRfcmVnaXN0ZXIoYWNwX3Bydi0+Y2dz X2RldmljZSwKIAkJCQkJIG1tQUNQX0RNQV9DVVJfRFNDUl8xMyk7Ci0JCXBvcyA9IGNnc19yZWFk X3JlZ2lzdGVyKGFjcF9wcnYtPmNnc19kZXZpY2UsCi0JCQkJCW1tQUNQX0RNQV9DVVJfVFJBTlNf Q05UXzEzKTsKLQkJLyogZHNjciA9IGVpdGhlciAyIG9yIDMgb25seSAqLwotCQltdWwgPSAoZHNj ciA9PSBQTEFZQkFDS19TVEFSVF9ETUFfREVTQ1JfQ0gxMykgPyAxIDogMDsKLQkJcG9zID0gICht dWwgKiBwZXJpb2Rfc2l6ZSkgKyBwb3M7Ci0JfSBlbHNlIGlmIChkaXJlY3Rpb24gPT0gU1RSRUFN X0NBUFRVUkUpIHsKLQkJZHNjciA9IGNnc19yZWFkX3JlZ2lzdGVyKGFjcF9wcnYtPmNnc19kZXZp Y2UsCi0JCQkJCSBtbUFDUF9ETUFfQ1VSX0RTQ1JfMTUpOwotCQlwb3MgPSBjZ3NfcmVhZF9yZWdp c3RlcihhY3BfcHJ2LT5jZ3NfZGV2aWNlLAotCQkJCQltbUFDUF9ETUFfQ1VSX1RSQU5TX0NOVF8x NSk7CisKKwkJbXVsID0gKGRzY3IgPT0gUExBWUJBQ0tfU1RBUlRfRE1BX0RFU0NSX0NIMTMpID8g MCA6IDE7CisJCXBvcyA9ICAobXVsICogcGVyaW9kX3NpemUpOworCisJfSBlbHNlIHsKIAkJZG1h X2NvbmZpZyA9IGNnc19yZWFkX3JlZ2lzdGVyKGFjcF9wcnYtPmNnc19kZXZpY2UsCiAJCQkJCSAg ICAgICBtbUFDUF9ETUFfQ05UTF8xNCk7CiAJCWlmIChkbWFfY29uZmlnICE9IDApIHsKLQkJCW11 bCA9IChkc2NyID09IENBUFRVUkVfU1RBUlRfRE1BX0RFU0NSX0NIMTUpID8gMSA6IDA7Ci0JCQlw b3MgPSAgKG11bCAqIHBlcmlvZF9zaXplKSArIHBvczsKKwkJCWRzY3IgPSBjZ3NfcmVhZF9yZWdp c3RlcihhY3BfcHJ2LT5jZ3NfZGV2aWNlLAorCQkJCQkgbW1BQ1BfRE1BX0NVUl9EU0NSXzE0KTsK KwkJCW11bCA9IChkc2NyID09IENBUFRVUkVfU1RBUlRfRE1BX0RFU0NSX0NIMTQpID8gMSA6IDI7 CisJCQlwb3MgPSAobXVsICogcGVyaW9kX3NpemUpOwogCQl9Ci0JfQogCisJCWlmIChwb3MgPj0g KDIgKiBwZXJpb2Rfc2l6ZSkpCisJCQlwb3MgPSAwOworCisJfQogCXJldHVybiBwb3M7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYWNwL2FjcF9ody5oIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hY3AvYWNwX2h3LmgKaW5kZXggMzg0ZDk3ZC4uNWU3ZTIyNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hY3AvYWNwX2h3LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hY3AvYWNwX2h3LmgKQEAgLTIyLDcgKzIyLDcgQEAKICNkZWZpbmUgQUNQX1NIQVJFRF9S QU1fQkFOS18zOF9BRERSRVNTCQkweDQwNEEwMDAKIAogLyogQ2FwdHVyZSBTUkFNIGFkZHJlc3Mg KGFzIGEgc291cmNlIGluIGRtYSBkZXNjcmlwdG9yKSAqLwotI2RlZmluZSBBQ1BfU0hBUkVEX1JB TV9CQU5LXzQ3X0FERFJFU1MJCTB4NDA1QzAwMAorI2RlZmluZSBBQ1BfU0hBUkVEX1JBTV9CQU5L XzQ3X0FERFJFU1MJCTB4NDA1NDAwMAogCiAjZGVmaW5lIEFDUF9ETUFfUkVTRVRfVElNRQkJCTEw MDAwCiAjZGVmaW5lIEFDUF9DTE9DS19FTl9USU1FX09VVF9WQUxVRQkJMHgwMDAwMDBGRgpAQCAt MzUsNiArMzUsMTEgQEAKICNkZWZpbmUgQUNQX0lOVEVSTkFMX0FQRVJUVVJFX1dJTkRPV18wX0FE RFJFU1MJMHgwMDAwMDAwMAogI2RlZmluZSBBQ1BfSU5URVJOQUxfQVBFUlRVUkVfV0lORE9XXzRf QUREUkVTUwkweDAxODAwMDAwCiAKKyNkZWZpbmUgVE9fQUNQX0kyU18xICAgMHgyCisjZGVmaW5l IFRPX0FDUF9JMlNfMiAgIDB4NAorI2RlZmluZSBGUk9NX0FDUF9JMlNfMSAweGEKKyNkZWZpbmUg RlJPTV9BQ1BfSTJTXzIgMHhiCisKIGVudW0gewogCVNUUkVBTV9QTEFZQkFDSyA9IDAsCiAJU1RS RUFNX0NBUFRVUkUsCkBAIC00MiwxOCArNDcsNiBAQCBlbnVtIHsKIH07CiAKIGVudW0gewotCVRv X0RBR0JfTyA9IDB4MCwKLQlUb19EQUdCX0csCi0JVE9fQUNQX0kyU18xLAotCVRPX0JMVUVUT09U SCwKLQlUT19BQ1BfSTJTXzIsCi0JRlJPTV9EQUdCX08sCi0JRlJPTV9EQUdCX0csCi0JRlJPTV9B Q1BfSTJTXzEsCi0JRlJPTV9BQ1BfSTJTXzIKLX07Ci0KLWVudW0gewogCUFDUF9ETUFfQVRUUklC VVRFU19TSEFSRURNRU1fVE9fREFHQl9PTklPTiA9IDB4MCwKIAlBQ1BfRE1BX0FUVFJJQlVURVNf U0hBUkVEX01FTV9UT19EQUdCX0dBUkxJQyA9IDB4MSwKIAlBQ1BfRE1BX0FUVFJJQlVURVNfREFH Ql9PTklPTl9UT19TSEFSRURNRU0gPSAweDgsCi0tIAoxLjguMy4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=