From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH] drm/amdgpu/gfx: rework fiji cg functions so they can be shared Date: Mon, 2 May 2016 16:00:28 -0400 Message-ID: <1462219259-29806-16-git-send-email-alexander.deucher@amd.com> References: <1462219259-29806-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-qk0-x22f.google.com (mail-qk0-x22f.google.com [IPv6:2607:f8b0:400d:c09::22f]) by gabe.freedesktop.org (Postfix) with ESMTPS id 974486E628 for ; Mon, 2 May 2016 20:01:16 +0000 (UTC) Received: by mail-qk0-x22f.google.com with SMTP id v128so10876940qkb.2 for ; Mon, 02 May 2016 13:01:16 -0700 (PDT) In-Reply-To: <1462219259-29806-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: dri-devel@lists.freedesktop.org Cc: Alex Deucher List-Id: dri-devel@lists.freedesktop.org VGhleSBjYW4gYmUgc2hhcmVkIHdpdGggb3RoZXIgYXNpY3Mgd2l0aCBtaW5vciBtb2RpZmljYXRp b25zLgoKQWNrZWQtYnk6IFRvbSBTdCBEZW5pcyA8dG9tLnN0ZGVuaXNAYW1kLmNvbT4KU2lnbmVk LW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMgfCAyMTggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIwMiBpbnNlcnRpb25zKCspLCAx NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n ZnhfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwppbmRleCBi MTUxNjJkLi5iMmVlNDllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n ZnhfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKQEAg LTU1OCw2ICs1NTgsNyBAQCBzdGF0aWMgY29uc3QgdTMyIHN0b25leV9tZ2NnX2NnY2dfaW5pdFtd ID0KIHN0YXRpYyB2b2lkIGdmeF92OF8wX3NldF9yaW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KTsKIHN0YXRpYyB2b2lkIGdmeF92OF8wX3NldF9pcnFfZnVuY3Moc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpOwogc3RhdGljIHZvaWQgZ2Z4X3Y4XzBfc2V0X2dkc19pbml0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKK3N0YXRpYyB2b2lkIGdmeF92OF8wX3NldF9ybGNf ZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwogCiBzdGF0aWMgdm9pZCBnZnhfdjhf MF9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiB7CkBA IC00MjUwLDYgKzQyNTEsNyBAQCBzdGF0aWMgaW50IGdmeF92OF8wX2Vhcmx5X2luaXQodm9pZCAq aGFuZGxlKQogCWdmeF92OF8wX3NldF9yaW5nX2Z1bmNzKGFkZXYpOwogCWdmeF92OF8wX3NldF9p cnFfZnVuY3MoYWRldik7CiAJZ2Z4X3Y4XzBfc2V0X2dkc19pbml0KGFkZXYpOworCWdmeF92OF8w X3NldF9ybGNfZnVuY3MoYWRldik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTQzMjIsMTEgKzQzMjQs MTY2IEBAIHN0YXRpYyB2b2lkIGdmeF92OF8wX3NlbmRfc2VyZGVzX2NtZChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwKIAlXUkVHMzIobW1STENfU0VSREVTX1dSX0NUUkwsIGRhdGEpOwogfQog Ci1zdGF0aWMgdm9pZCBmaWppX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fY2xvY2tfZ2F0aW5nKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQkJICBib29sIGVuYWJsZSkKKyNkZWZpbmUgTVNH X0VOVEVSX1JMQ19TQUZFX01PREUgICAgIDEKKyNkZWZpbmUgTVNHX0VYSVRfUkxDX1NBRkVfTU9E RSAgICAgIDAKKworI2RlZmluZSBSTENfR1BSX1JFRzJfX1JFUV9NQVNLICAgICAgICAgICAweDAw MDAwMDAxCisjZGVmaW5lIFJMQ19HUFJfUkVHMl9fTUVTU0FHRV9fU0hJRlQgICAgIDB4MDAwMDAw MDEKKyNkZWZpbmUgUkxDX0dQUl9SRUcyX19NRVNTQUdFX01BU0sgICAgICAgMHgwMDAwMDAxZQor CitzdGF0aWMgdm9pZCBjel9lbnRlcl9ybGNfc2FmZV9tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQoreworCXUzMiBkYXRhID0gMDsKKwl1bnNpZ25lZCBpOworCisJZGF0YSA9IFJSRUcz MihtbVJMQ19DTlRMKTsKKwlpZiAoKGRhdGEgJiBSTENfQ05UTF9fUkxDX0VOQUJMRV9GMzJfTUFT SykgPT0gMCkKKwkJcmV0dXJuOworCisJaWYgKChhZGV2LT5jZ19mbGFncyAmIChBTURfQ0dfU1VQ UE9SVF9HRlhfQ0dDRyB8IEFNRF9DR19TVVBQT1JUX0dGWF9NR0NHKSkgfHwKKwkgICAgKGFkZXYt PnBnX2ZsYWdzICYgKEFNRF9QR19TVVBQT1JUX0dGWF9QRyB8IEFNRF9QR19TVVBQT1JUX0dGWF9T TUcgfAorCQkJICAgICAgIEFNRF9QR19TVVBQT1JUX0dGWF9ETUcpKSkgeworCQlkYXRhIHw9IFJM Q19HUFJfUkVHMl9fUkVRX01BU0s7CisJCWRhdGEgJj0gflJMQ19HUFJfUkVHMl9fTUVTU0FHRV9N QVNLOworCQlkYXRhIHw9IChNU0dfRU5URVJfUkxDX1NBRkVfTU9ERSA8PCBSTENfR1BSX1JFRzJf X01FU1NBR0VfX1NISUZUKTsKKwkJV1JFRzMyKG1tUkxDX0dQUl9SRUcyLCBkYXRhKTsKKworCQlm b3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKKwkJCWlmICgoUlJFRzMy KG1tUkxDX0dQTV9TVEFUKSAmCisJCQkgICAgIChSTENfR1BNX1NUQVRfX0dGWF9DTE9DS19TVEFU VVNfTUFTSyB8CisJCQkgICAgICBSTENfR1BNX1NUQVRfX0dGWF9QT1dFUl9TVEFUVVNfTUFTSykp ID09CisJCQkgICAgKFJMQ19HUE1fU1RBVF9fR0ZYX0NMT0NLX1NUQVRVU19NQVNLIHwKKwkJCSAg ICAgUkxDX0dQTV9TVEFUX19HRlhfUE9XRVJfU1RBVFVTX01BU0spKQorCQkJCWJyZWFrOworCQkJ dWRlbGF5KDEpOworCQl9CisKKwkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsg aSsrKSB7CisJCQlpZiAoKFJSRUczMihtbVJMQ19HUFJfUkVHMikgJiBSTENfR1BSX1JFRzJfX1JF UV9NQVNLKSA9PSAwKQorCQkJCWJyZWFrOworCQkJdWRlbGF5KDEpOworCQl9CisJCWFkZXYtPmdm eC5ybGMuaW5fc2FmZV9tb2RlID0gdHJ1ZTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGN6X2V4aXRf cmxjX3NhZmVfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwl1MzIgZGF0YTsK Kwl1bnNpZ25lZCBpOworCisJZGF0YSA9IFJSRUczMihtbVJMQ19DTlRMKTsKKwlpZiAoKGRhdGEg JiBSTENfQ05UTF9fUkxDX0VOQUJMRV9GMzJfTUFTSykgPT0gMCkKKwkJcmV0dXJuOworCisJaWYg KChhZGV2LT5jZ19mbGFncyAmIChBTURfQ0dfU1VQUE9SVF9HRlhfQ0dDRyB8IEFNRF9DR19TVVBQ T1JUX0dGWF9NR0NHKSkgfHwKKwkgICAgKGFkZXYtPnBnX2ZsYWdzICYgKEFNRF9QR19TVVBQT1JU X0dGWF9QRyB8IEFNRF9QR19TVVBQT1JUX0dGWF9TTUcgfAorCQkJICAgICAgIEFNRF9QR19TVVBQ T1JUX0dGWF9ETUcpKSkgeworCQlkYXRhIHw9IFJMQ19HUFJfUkVHMl9fUkVRX01BU0s7CisJCWRh dGEgJj0gflJMQ19HUFJfUkVHMl9fTUVTU0FHRV9NQVNLOworCQlkYXRhIHw9IChNU0dfRVhJVF9S TENfU0FGRV9NT0RFIDw8IFJMQ19HUFJfUkVHMl9fTUVTU0FHRV9fU0hJRlQpOworCQlXUkVHMzIo bW1STENfR1BSX1JFRzIsIGRhdGEpOworCQlhZGV2LT5nZngucmxjLmluX3NhZmVfbW9kZSA9IGZh bHNlOworCX0KKworCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewor CQlpZiAoKFJSRUczMihtbVJMQ19HUFJfUkVHMikgJiBSTENfR1BSX1JFRzJfX1JFUV9NQVNLKSA9 PSAwKQorCQkJYnJlYWs7CisJCXVkZWxheSgxKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGljZWxh bmRfZW50ZXJfcmxjX3NhZmVfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKK3sKKwl1 MzIgZGF0YTsKKwl1bnNpZ25lZCBpOworCisJZGF0YSA9IFJSRUczMihtbVJMQ19DTlRMKTsKKwlp ZiAoIShkYXRhICYgUkxDX0NOVExfX1JMQ19FTkFCTEVfRjMyX01BU0spKQorCQlyZXR1cm47CisK KwlpZiAoYWRldi0+Y2dfZmxhZ3MgJiAoQU1EX0NHX1NVUFBPUlRfR0ZYX0NHQ0cgfCBBTURfQ0df U1VQUE9SVF9HRlhfTUdDRykpIHsKKwkJZGF0YSB8PSBSTENfU0FGRV9NT0RFX19DTURfTUFTSzsK KwkJZGF0YSAmPSB+UkxDX1NBRkVfTU9ERV9fTUVTU0FHRV9NQVNLOworCQlkYXRhIHw9ICgxIDw8 IFJMQ19TQUZFX01PREVfX01FU1NBR0VfX1NISUZUKTsKKwkJV1JFRzMyKG1tUkxDX1NBRkVfTU9E RSwgZGF0YSk7CisKKwkJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7 CisJCQlpZiAoKFJSRUczMihtbVJMQ19HUE1fU1RBVCkgJgorCQkJICAgICAoUkxDX0dQTV9TVEFU X19HRlhfQ0xPQ0tfU1RBVFVTX01BU0sgfAorCQkJICAgICAgUkxDX0dQTV9TVEFUX19HRlhfUE9X RVJfU1RBVFVTX01BU0spKSA9PQorCQkJICAgIChSTENfR1BNX1NUQVRfX0dGWF9DTE9DS19TVEFU VVNfTUFTSyB8CisJCQkgICAgIFJMQ19HUE1fU1RBVF9fR0ZYX1BPV0VSX1NUQVRVU19NQVNLKSkK KwkJCQlicmVhazsKKwkJCXVkZWxheSgxKTsKKwkJfQorCisJCWZvciAoaSA9IDA7IGkgPCBhZGV2 LT51c2VjX3RpbWVvdXQ7IGkrKykgeworCQkJaWYgKChSUkVHMzIobW1STENfU0FGRV9NT0RFKSAm IFJMQ19TQUZFX01PREVfX0NNRF9NQVNLKSA9PSAwKQorCQkJCWJyZWFrOworCQkJdWRlbGF5KDEp OworCQl9CisJCWFkZXYtPmdmeC5ybGMuaW5fc2FmZV9tb2RlID0gdHJ1ZTsKKwl9Cit9CisKK3N0 YXRpYyB2b2lkIGljZWxhbmRfZXhpdF9ybGNfc2FmZV9tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQoreworCXUzMiBkYXRhID0gMDsKKwl1bnNpZ25lZCBpOworCisJZGF0YSA9IFJSRUcz MihtbVJMQ19DTlRMKTsKKwlpZiAoIShkYXRhICYgUkxDX0NOVExfX1JMQ19FTkFCTEVfRjMyX01B U0spKQorCQlyZXR1cm47CisKKwlpZiAoYWRldi0+Y2dfZmxhZ3MgJiAoQU1EX0NHX1NVUFBPUlRf R0ZYX0NHQ0cgfCBBTURfQ0dfU1VQUE9SVF9HRlhfTUdDRykpIHsKKwkJaWYgKGFkZXYtPmdmeC5y bGMuaW5fc2FmZV9tb2RlKSB7CisJCQlkYXRhIHw9IFJMQ19TQUZFX01PREVfX0NNRF9NQVNLOwor CQkJZGF0YSAmPSB+UkxDX1NBRkVfTU9ERV9fTUVTU0FHRV9NQVNLOworCQkJV1JFRzMyKG1tUkxD X1NBRkVfTU9ERSwgZGF0YSk7CisJCQlhZGV2LT5nZngucmxjLmluX3NhZmVfbW9kZSA9IGZhbHNl OworCQl9CisJfQorCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7 CisJCWlmICgoUlJFRzMyKG1tUkxDX1NBRkVfTU9ERSkgJiBSTENfU0FGRV9NT0RFX19DTURfTUFT SykgPT0gMCkKKwkJCWJyZWFrOworCQl1ZGVsYXkoMSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBn ZnhfdjhfMF9ub3BfZW50ZXJfcmxjX3NhZmVfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKK3sKKwlhZGV2LT5nZngucmxjLmluX3NhZmVfbW9kZSA9IHRydWU7Cit9CisKK3N0YXRpYyB2 b2lkIGdmeF92OF8wX25vcF9leGl0X3JsY19zYWZlX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpCit7CisJYWRldi0+Z2Z4LnJsYy5pbl9zYWZlX21vZGUgPSBmYWxzZTsKK30KKworc3Rh dGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmxjX2Z1bmNzIGN6X3JsY19mdW5jcyA9IHsKKwkuZW50 ZXJfc2FmZV9tb2RlID0gY3pfZW50ZXJfcmxjX3NhZmVfbW9kZSwKKwkuZXhpdF9zYWZlX21vZGUg PSBjel9leGl0X3JsY19zYWZlX21vZGUKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1 X3JsY19mdW5jcyBpY2VsYW5kX3JsY19mdW5jcyA9IHsKKwkuZW50ZXJfc2FmZV9tb2RlID0gaWNl bGFuZF9lbnRlcl9ybGNfc2FmZV9tb2RlLAorCS5leGl0X3NhZmVfbW9kZSA9IGljZWxhbmRfZXhp dF9ybGNfc2FmZV9tb2RlCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9ybGNfZnVu Y3MgZ2Z4X3Y4XzBfbm9wX3JsY19mdW5jcyA9IHsKKwkuZW50ZXJfc2FmZV9tb2RlID0gZ2Z4X3Y4 XzBfbm9wX2VudGVyX3JsY19zYWZlX21vZGUsCisJLmV4aXRfc2FmZV9tb2RlID0gZ2Z4X3Y4XzBf bm9wX2V4aXRfcmxjX3NhZmVfbW9kZQorfTsKKworc3RhdGljIHZvaWQgZ2Z4X3Y4XzBfdXBkYXRl X21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCisJ CQkJCQkgICAgICBib29sIGVuYWJsZSkKIHsKIAl1aW50MzJfdCB0ZW1wLCBkYXRhOwogCisJYWRl di0+Z2Z4LnJsYy5mdW5jcy0+ZW50ZXJfc2FmZV9tb2RlKGFkZXYpOworCiAJLyogSXQgaXMgZGlz YWJsZWQgYnkgSFcgYnkgZGVmYXVsdCAqLwogCWlmIChlbmFibGUgJiYgKGFkZXYtPmNnX2ZsYWdz ICYgQU1EX0NHX1NVUFBPUlRfR0ZYX01HQ0cpKSB7CiAJCWlmIChhZGV2LT5jZ19mbGFncyAmIEFN RF9DR19TVVBQT1JUX0dGWF9NR0xTKSB7CkBAIC00MzQ5LDEwICs0NTA2LDE1IEBAIHN0YXRpYyB2 b2lkIGZpamlfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCiAKIAkJLyogMyAtIFJMQ19DR1RUX01HQ0dfT1ZFUlJJREUgKi8KIAkJdGVt cCA9IGRhdGEgPSBSUkVHMzIobW1STENfQ0dUVF9NR0NHX09WRVJSSURFKTsKLQkJZGF0YSAmPSB+ KFJMQ19DR1RUX01HQ0dfT1ZFUlJJREVfX0NQRl9NQVNLIHwKLQkJCQlSTENfQ0dUVF9NR0NHX09W RVJSSURFX19STENfTUFTSyB8Ci0JCQkJUkxDX0NHVFRfTUdDR19PVkVSUklERV9fTUdDR19NQVNL IHwKLQkJCQlSTENfQ0dUVF9NR0NHX09WRVJSSURFX19HUkJNX01BU0spOworCQlpZiAoYWRldi0+ ZmxhZ3MgJiBBTURfSVNfQVBVKQorCQkJZGF0YSAmPSB+KFJMQ19DR1RUX01HQ0dfT1ZFUlJJREVf X0NQRl9NQVNLIHwKKwkJCQkgIFJMQ19DR1RUX01HQ0dfT1ZFUlJJREVfX1JMQ19NQVNLIHwKKwkJ CQkgIFJMQ19DR1RUX01HQ0dfT1ZFUlJJREVfX01HQ0dfTUFTSyk7CisJCWVsc2UKKwkJCWRhdGEg Jj0gfihSTENfQ0dUVF9NR0NHX09WRVJSSURFX19DUEZfTUFTSyB8CisJCQkJICBSTENfQ0dUVF9N R0NHX09WRVJSSURFX19STENfTUFTSyB8CisJCQkJICBSTENfQ0dUVF9NR0NHX09WRVJSSURFX19N R0NHX01BU0sgfAorCQkJCSAgUkxDX0NHVFRfTUdDR19PVkVSUklERV9fR1JCTV9NQVNLKTsKIAog CQlpZiAodGVtcCAhPSBkYXRhKQogCQkJV1JFRzMyKG1tUkxDX0NHVFRfTUdDR19PVkVSUklERSwg ZGF0YSk7CkBAIC00NDI0LDE1ICs0NTg2LDE5IEBAIHN0YXRpYyB2b2lkIGZpamlfdXBkYXRlX21l ZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCS8q IDctIHdhaXQgZm9yIFJMQ19TRVJERVNfQ1VfTUFTVEVSICYgUkxDX1NFUkRFU19OT05DVV9NQVNU RVIgaWRsZSAqLwogCQlnZnhfdjhfMF93YWl0X2Zvcl9ybGNfc2VyZGVzKGFkZXYpOwogCX0KKwor CWFkZXYtPmdmeC5ybGMuZnVuY3MtPmV4aXRfc2FmZV9tb2RlKGFkZXYpOwogfQogCi1zdGF0aWMg dm9pZCBmaWppX3VwZGF0ZV9jb2Fyc2VfZ3JhaW5fY2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAotCQkJCQkJICBib29sIGVuYWJsZSkKK3N0YXRpYyB2b2lkIGdmeF92OF8w X3VwZGF0ZV9jb2Fyc2VfZ3JhaW5fY2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAorCQkJCQkJICAgICAgYm9vbCBlbmFibGUpCiB7CiAJdWludDMyX3QgdGVtcCwgdGVtcDEs IGRhdGEsIGRhdGExOwogCiAJdGVtcCA9IGRhdGEgPSBSUkVHMzIobW1STENfQ0dDR19DR0xTX0NU UkwpOwogCisJYWRldi0+Z2Z4LnJsYy5mdW5jcy0+ZW50ZXJfc2FmZV9tb2RlKGFkZXYpOworCiAJ aWYgKGVuYWJsZSAmJiAoYWRldi0+Y2dfZmxhZ3MgJiBBTURfQ0dfU1VQUE9SVF9HRlhfQ0dDRykp IHsKIAkJLyogMSBlbmFibGUgY250eF9lbXB0eV9pbnRfZW5hYmxlL2NudHhfYnVzeV9pbnRfZW5h YmxlLwogCQkgKiBDbXBfYnVzeS9HRlhfSWRsZSBpbnRlcnJ1cHRzCkBAIC00NTA5LDIyICs0Njc1 LDI0IEBAIHN0YXRpYyB2b2lkIGZpamlfdXBkYXRlX2NvYXJzZV9ncmFpbl9jbG9ja19nYXRpbmco c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCWlmICh0ZW1wICE9IGRhdGEpCiAJCQlXUkVH MzIobW1STENfQ0dDR19DR0xTX0NUUkwsIGRhdGEpOwogCX0KKworCWFkZXYtPmdmeC5ybGMuZnVu Y3MtPmV4aXRfc2FmZV9tb2RlKGFkZXYpOwogfQotc3RhdGljIGludCBmaWppX3VwZGF0ZV9nZnhf Y2xvY2tfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCQlib29sIGVuYWJs ZSkKK3N0YXRpYyBpbnQgZ2Z4X3Y4XzBfdXBkYXRlX2dmeF9jbG9ja19nYXRpbmcoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCisJCQkJCSAgICBib29sIGVuYWJsZSkKIHsKIAlpZiAoZW5hYmxl KSB7CiAJCS8qIENHQ0cvQ0dMUyBzaG91bGQgYmUgZW5hYmxlZCBhZnRlciBNR0NHL01HTFMvVFMo Q0cvTFMpCiAJCSAqID09PSAgTUdDRyArIE1HTFMgKyBUUyhDRy9MUykgPT09CiAJCSAqLwotCQlm aWppX3VwZGF0ZV9tZWRpdW1fZ3JhaW5fY2xvY2tfZ2F0aW5nKGFkZXYsIGVuYWJsZSk7Ci0JCWZp amlfdXBkYXRlX2NvYXJzZV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwgZW5hYmxlKTsKKwkJZ2Z4 X3Y4XzBfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwgZW5hYmxlKTsKKwkJ Z2Z4X3Y4XzBfdXBkYXRlX2NvYXJzZV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwgZW5hYmxlKTsK IAl9IGVsc2UgewogCQkvKiBDR0NHL0NHTFMgc2hvdWxkIGJlIGRpc2FibGVkIGJlZm9yZSBNR0NH L01HTFMvVFMoQ0cvTFMpCiAJCSAqID09PSAgQ0dDRyArIENHTFMgPT09CiAJCSAqLwotCQlmaWpp X3VwZGF0ZV9jb2Fyc2VfZ3JhaW5fY2xvY2tfZ2F0aW5nKGFkZXYsIGVuYWJsZSk7Ci0JCWZpamlf dXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwgZW5hYmxlKTsKKwkJZ2Z4X3Y4 XzBfdXBkYXRlX2NvYXJzZV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwgZW5hYmxlKTsKKwkJZ2Z4 X3Y4XzBfdXBkYXRlX21lZGl1bV9ncmFpbl9jbG9ja19nYXRpbmcoYWRldiwgZW5hYmxlKTsKIAl9 CiAJcmV0dXJuIDA7CiB9CkBAIC00NTM2LDggKzQ3MDQsMTAgQEAgc3RhdGljIGludCBnZnhfdjhf MF9zZXRfY2xvY2tnYXRpbmdfc3RhdGUodm9pZCAqaGFuZGxlLAogCiAJc3dpdGNoIChhZGV2LT5h c2ljX3R5cGUpIHsKIAljYXNlIENISVBfRklKSToKLQkJZmlqaV91cGRhdGVfZ2Z4X2Nsb2NrX2dh dGluZyhhZGV2LAotCQkJCXN0YXRlID09IEFNRF9DR19TVEFURV9HQVRFID8gdHJ1ZSA6IGZhbHNl KTsKKwljYXNlIENISVBfQ0FSUklaTzoKKwljYXNlIENISVBfU1RPTkVZOgorCQlnZnhfdjhfMF91 cGRhdGVfZ2Z4X2Nsb2NrX2dhdGluZyhhZGV2LAorCQkJCQkJIHN0YXRlID09IEFNRF9DR19TVEFU RV9HQVRFID8gdHJ1ZSA6IGZhbHNlKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYnJlYWs7CkBA IC01MTM3LDYgKzUzMDcsMjIgQEAgc3RhdGljIHZvaWQgZ2Z4X3Y4XzBfc2V0X2lycV9mdW5jcyhz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlhZGV2LT5nZngucHJpdl9pbnN0X2lycS5mdW5j cyA9ICZnZnhfdjhfMF9wcml2X2luc3RfaXJxX2Z1bmNzOwogfQogCitzdGF0aWMgdm9pZCBnZnhf djhfMF9zZXRfcmxjX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoreworCXN3aXRj aCAoYWRldi0+YXNpY190eXBlKSB7CisJY2FzZSBDSElQX1RPUEFaOgorCWNhc2UgQ0hJUF9TVE9O RVk6CisJCWFkZXYtPmdmeC5ybGMuZnVuY3MgPSAmaWNlbGFuZF9ybGNfZnVuY3M7CisJCWJyZWFr OworCWNhc2UgQ0hJUF9DQVJSSVpPOgorCQlhZGV2LT5nZngucmxjLmZ1bmNzID0gJmN6X3JsY19m dW5jczsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYWRldi0+Z2Z4LnJsYy5mdW5jcyA9ICZnZnhf djhfMF9ub3BfcmxjX2Z1bmNzOworCQlicmVhazsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIGdmeF92 OF8wX3NldF9nZHNfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAkvKiBpbml0 IGFzY2kgZ2RzIGluZm8gKi8KLS0gCjIuNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK