From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Liu, Leo" Subject: [PATCH 2/2] drm/amdgpu: make VCN DPG pause mode detached from general VCN Date: Mon, 13 May 2019 17:19:55 +0000 Message-ID: <20190513171745.7890-2-leo.liu@amd.com> References: <20190513171745.7890-1-leo.liu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190513171745.7890-1-leo.liu-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Liu, Leo" SXQgc2hvdWxkIGJlIGF0dGFjaGVkIHRvIFZDTiAxLjANCg0KU2lnbmVkLW9mZi1ieTogTGVvIExp dSA8bGVvLmxpdUBhbWQuY29tPg0KLS0tDQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3Zjbi5jIHwgMTMwICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5oIHwgICAyICsNCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS92Y25fdjFfMC5jICAgfCAxMzIgKysrKysrKysrKysrKysrKysrKysrKystDQogMyBmaWxl cyBjaGFuZ2VkLCAxMzUgaW5zZXJ0aW9ucygrKSwgMTI5IGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jDQppbmRleCBlY2Y2Zjk2ZGYyYWQuLjAxNTQ1 ZmY4NzQyNCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 Y24uYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Zjbi5jDQpAQCAt MjEyLDEzMiArMjEyLDYgQEAgaW50IGFtZGdwdV92Y25fcmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQ0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBhbWRncHVfdmNuX3Bh dXNlX2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KLQkJCQkgICAgIHN0cnVj dCBkcGdfcGF1c2Vfc3RhdGUgKm5ld19zdGF0ZSkNCi17DQotCWludCByZXRfY29kZTsNCi0JdWlu dDMyX3QgcmVnX2RhdGEgPSAwOw0KLQl1aW50MzJfdCByZWdfZGF0YTIgPSAwOw0KLQlzdHJ1Y3Qg YW1kZ3B1X3JpbmcgKnJpbmc7DQotDQotCS8qIHBhdXNlL3VucGF1c2UgaWYgc3RhdGUgaXMgY2hh bmdlZCAqLw0KLQlpZiAoYWRldi0+dmNuLnBhdXNlX3N0YXRlLmZ3X2Jhc2VkICE9IG5ld19zdGF0 ZS0+ZndfYmFzZWQpIHsNCi0JCURSTV9ERUJVRygiZHBnIHBhdXNlIHN0YXRlIGNoYW5nZWQgJWQ6 JWQgLT4gJWQ6JWQiLA0KLQkJCWFkZXYtPnZjbi5wYXVzZV9zdGF0ZS5md19iYXNlZCwgYWRldi0+ dmNuLnBhdXNlX3N0YXRlLmpwZWcsDQotCQkJbmV3X3N0YXRlLT5md19iYXNlZCwgbmV3X3N0YXRl LT5qcGVnKTsNCi0NCi0JCXJlZ19kYXRhID0gUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfRFBH X1BBVVNFKSAmDQotCQkJKH5VVkRfRFBHX1BBVVNFX19OSl9QQVVTRV9EUEdfQUNLX01BU0spOw0K LQ0KLQkJaWYgKG5ld19zdGF0ZS0+ZndfYmFzZWQgPT0gVkNOX0RQR19TVEFURV9fUEFVU0UpIHsN Ci0JCQlyZXRfY29kZSA9IDA7DQotDQotCQkJaWYgKCEocmVnX2RhdGEgJiBVVkRfRFBHX1BBVVNF X19KUEVHX1BBVVNFX0RQR19BQ0tfTUFTSykpDQotCQkJCVNPQzE1X1dBSVRfT05fUlJFRyhVVkQs IDAsIG1tVVZEX1BPV0VSX1NUQVRVUywNCi0JCQkJCQkgICBVVkRfUE9XRVJfU1RBVFVTX19VVkRf UE9XRVJfU1RBVFVTX1RJTEVTX09GRiwNCi0JCQkJCQkgICBVVkRfUE9XRVJfU1RBVFVTX19VVkRf UE9XRVJfU1RBVFVTX01BU0ssIHJldF9jb2RlKTsNCi0NCi0JCQlpZiAoIXJldF9jb2RlKSB7DQot CQkJCS8qIHBhdXNlIERQRyBub24tanBlZyAqLw0KLQkJCQlyZWdfZGF0YSB8PSBVVkRfRFBHX1BB VVNFX19OSl9QQVVTRV9EUEdfUkVRX01BU0s7DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1t VVZEX0RQR19QQVVTRSwgcmVnX2RhdGEpOw0KLQkJCQlTT0MxNV9XQUlUX09OX1JSRUcoVVZELCAw LCBtbVVWRF9EUEdfUEFVU0UsDQotCQkJCQkJICAgVVZEX0RQR19QQVVTRV9fTkpfUEFVU0VfRFBH X0FDS19NQVNLLA0KLQkJCQkJCSAgIFVWRF9EUEdfUEFVU0VfX05KX1BBVVNFX0RQR19BQ0tfTUFT SywgcmV0X2NvZGUpOw0KLQ0KLQkJCQkvKiBSZXN0b3JlICovDQotCQkJCXJpbmcgPSAmYWRldi0+ dmNuLnJpbmdfZW5jWzBdOw0KLQkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9CQVNF X0xPLCByaW5nLT5ncHVfYWRkcik7DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JC X0JBU0VfSEksIHVwcGVyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpKTsNCi0JCQkJV1JFRzMyX1NP QzE1KFVWRCwgMCwgbW1VVkRfUkJfU0laRSwgcmluZy0+cmluZ19zaXplIC8gNCk7DQotCQkJCVdS RUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1JQVFIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0 cikpOw0KLQkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSLCBsb3dlcl8zMl9i aXRzKHJpbmctPndwdHIpKTsNCi0NCi0JCQkJcmluZyA9ICZhZGV2LT52Y24ucmluZ19lbmNbMV07 DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfTE8yLCByaW5nLT5ncHVf YWRkcik7DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0VfSEkyLCB1cHBl cl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1t VVZEX1JCX1NJWkUyLCByaW5nLT5yaW5nX3NpemUgLyA0KTsNCi0JCQkJV1JFRzMyX1NPQzE1KFVW RCwgMCwgbW1VVkRfUkJfUlBUUjIsIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cikpOw0KLQkJCQlX UkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9SQl9XUFRSMiwgbG93ZXJfMzJfYml0cyhyaW5nLT53 cHRyKSk7DQotDQotCQkJCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZGVjOw0KLQkJCQlXUkVHMzJf U09DMTUoVVZELCAwLCBtbVVWRF9SQkNfUkJfV1BUUiwNCi0JCQkJCQkgICBSUkVHMzJfU09DMTUo VVZELCAwLCBtbVVWRF9TQ1JBVENIMikgJiAweDdGRkZGRkZGKTsNCi0JCQkJU09DMTVfV0FJVF9P Tl9SUkVHKFVWRCwgMCwgbW1VVkRfUE9XRVJfU1RBVFVTLA0KLQkJCQkJCSAgIFVWRF9QR0ZTTV9D T05GSUdfX1VWRE1fVVZEVV9QV1JfT04sDQotCQkJCQkJICAgVVZEX1BPV0VSX1NUQVRVU19fVVZE X1BPV0VSX1NUQVRVU19NQVNLLCByZXRfY29kZSk7DQotCQkJfQ0KLQkJfSBlbHNlIHsNCi0JCQkv KiB1bnBhdXNlIGRwZyBub24tanBlZywgbm8gbmVlZCB0byB3YWl0ICovDQotCQkJcmVnX2RhdGEg Jj0gflVWRF9EUEdfUEFVU0VfX05KX1BBVVNFX0RQR19SRVFfTUFTSzsNCi0JCQlXUkVHMzJfU09D MTUoVVZELCAwLCBtbVVWRF9EUEdfUEFVU0UsIHJlZ19kYXRhKTsNCi0JCX0NCi0JCWFkZXYtPnZj bi5wYXVzZV9zdGF0ZS5md19iYXNlZCA9IG5ld19zdGF0ZS0+ZndfYmFzZWQ7DQotCX0NCi0NCi0J LyogcGF1c2UvdW5wYXVzZSBpZiBzdGF0ZSBpcyBjaGFuZ2VkICovDQotCWlmIChhZGV2LT52Y24u cGF1c2Vfc3RhdGUuanBlZyAhPSBuZXdfc3RhdGUtPmpwZWcpIHsNCi0JCURSTV9ERUJVRygiZHBn IHBhdXNlIHN0YXRlIGNoYW5nZWQgJWQ6JWQgLT4gJWQ6JWQiLA0KLQkJCWFkZXYtPnZjbi5wYXVz ZV9zdGF0ZS5md19iYXNlZCwgYWRldi0+dmNuLnBhdXNlX3N0YXRlLmpwZWcsDQotCQkJbmV3X3N0 YXRlLT5md19iYXNlZCwgbmV3X3N0YXRlLT5qcGVnKTsNCi0NCi0JCXJlZ19kYXRhID0gUlJFRzMy X1NPQzE1KFVWRCwgMCwgbW1VVkRfRFBHX1BBVVNFKSAmDQotCQkJKH5VVkRfRFBHX1BBVVNFX19K UEVHX1BBVVNFX0RQR19BQ0tfTUFTSyk7DQotDQotCQlpZiAobmV3X3N0YXRlLT5qcGVnID09IFZD Tl9EUEdfU1RBVEVfX1BBVVNFKSB7DQotCQkJcmV0X2NvZGUgPSAwOw0KLQ0KLQkJCWlmICghKHJl Z19kYXRhICYgVVZEX0RQR19QQVVTRV9fTkpfUEFVU0VfRFBHX0FDS19NQVNLKSkNCi0JCQkJU09D MTVfV0FJVF9PTl9SUkVHKFVWRCwgMCwgbW1VVkRfUE9XRVJfU1RBVFVTLA0KLQkJCQkJCSAgIFVW RF9QT1dFUl9TVEFUVVNfX1VWRF9QT1dFUl9TVEFUVVNfVElMRVNfT0ZGLA0KLQkJCQkJCSAgIFVW RF9QT1dFUl9TVEFUVVNfX1VWRF9QT1dFUl9TVEFUVVNfTUFTSywgcmV0X2NvZGUpOw0KLQ0KLQkJ CWlmICghcmV0X2NvZGUpIHsNCi0JCQkJLyogTWFrZSBzdXJlIEpQUkcgU25vb3AgaXMgZGlzYWJs ZWQgYmVmb3JlIHNlbmRpbmcgdGhlIHBhdXNlICovDQotCQkJCXJlZ19kYXRhMiA9IFJSRUczMl9T T0MxNShVVkQsIDAsIG1tVVZEX1BPV0VSX1NUQVRVUyk7DQotCQkJCXJlZ19kYXRhMiB8PSBVVkRf UE9XRVJfU1RBVFVTX19KUkJDX1NOT09QX0RJU19NQVNLOw0KLQkJCQlXUkVHMzJfU09DMTUoVVZE LCAwLCBtbVVWRF9QT1dFUl9TVEFUVVMsIHJlZ19kYXRhMik7DQotDQotCQkJCS8qIHBhdXNlIERQ RyBqcGVnICovDQotCQkJCXJlZ19kYXRhIHw9IFVWRF9EUEdfUEFVU0VfX0pQRUdfUEFVU0VfRFBH X1JFUV9NQVNLOw0KLQkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9EUEdfUEFVU0UsIHJl Z19kYXRhKTsNCi0JCQkJU09DMTVfV0FJVF9PTl9SUkVHKFVWRCwgMCwgbW1VVkRfRFBHX1BBVVNF LA0KLQkJCQkJCQlVVkRfRFBHX1BBVVNFX19KUEVHX1BBVVNFX0RQR19BQ0tfTUFTSywNCi0JCQkJ CQkJVVZEX0RQR19QQVVTRV9fSlBFR19QQVVTRV9EUEdfQUNLX01BU0ssIHJldF9jb2RlKTsNCi0N Ci0JCQkJLyogUmVzdG9yZSAqLw0KLQkJCQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2pwZWc7DQot CQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9KUkJDX1JCX1ZNSUQsIDApOw0KLQkJ CQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9KUkJDX1JCX0NOVEwsDQotCQkJCQkJCVVWRF9K UkJDX1JCX0NOVExfX1JCX05PX0ZFVENIX01BU0sgfA0KLQkJCQkJCQlVVkRfSlJCQ19SQl9DTlRM X19SQl9SUFRSX1dSX0VOX01BU0spOw0KLQkJCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9M TUlfSlJCQ19SQl82NEJJVF9CQVJfTE9XLA0KLQkJCQkJCQlsb3dlcl8zMl9iaXRzKHJpbmctPmdw dV9hZGRyKSk7DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xNSV9KUkJDX1JCXzY0 QklUX0JBUl9ISUdILA0KLQkJCQkJCQl1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7DQot CQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0pSQkNfUkJfUlBUUiwgcmluZy0+d3B0cik7 DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0pSQkNfUkJfV1BUUiwgcmluZy0+d3B0 cik7DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0pSQkNfUkJfQ05UTCwNCi0JCQkJ CQkJVVZEX0pSQkNfUkJfQ05UTF9fUkJfUlBUUl9XUl9FTl9NQVNLKTsNCi0NCi0JCQkJcmluZyA9 ICZhZGV2LT52Y24ucmluZ19kZWM7DQotCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JC Q19SQl9XUFRSLA0KLQkJCQkJCSAgIFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1NDUkFUQ0gy KSAmIDB4N0ZGRkZGRkYpOw0KLQkJCQlTT0MxNV9XQUlUX09OX1JSRUcoVVZELCAwLCBtbVVWRF9Q T1dFUl9TVEFUVVMsDQotCQkJCQkJICAgVVZEX1BHRlNNX0NPTkZJR19fVVZETV9VVkRVX1BXUl9P TiwNCi0JCQkJCQkgICBVVkRfUE9XRVJfU1RBVFVTX19VVkRfUE9XRVJfU1RBVFVTX01BU0ssIHJl dF9jb2RlKTsNCi0JCQl9DQotCQl9IGVsc2Ugew0KLQkJCS8qIHVucGF1c2UgZHBnIGpwZWcsIG5v IG5lZWQgdG8gd2FpdCAqLw0KLQkJCXJlZ19kYXRhICY9IH5VVkRfRFBHX1BBVVNFX19KUEVHX1BB VVNFX0RQR19SRVFfTUFTSzsNCi0JCQlXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9EUEdfUEFV U0UsIHJlZ19kYXRhKTsNCi0JCX0NCi0JCWFkZXYtPnZjbi5wYXVzZV9zdGF0ZS5qcGVnID0gbmV3 X3N0YXRlLT5qcGVnOw0KLQl9DQotDQotCXJldHVybiAwOw0KLX0NCi0NCiBzdGF0aWMgdm9pZCBh bWRncHVfdmNuX2lkbGVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCiB7 DQogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0NCkBAIC0zNjIsNyArMjM2LDcgQEAgc3Rh dGljIHZvaWQgYW1kZ3B1X3Zjbl9pZGxlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3Qg KndvcmspDQogCQllbHNlDQogCQkJbmV3X3N0YXRlLmpwZWcgPSBWQ05fRFBHX1NUQVRFX19VTlBB VVNFOw0KIA0KLQkJYW1kZ3B1X3Zjbl9wYXVzZV9kcGdfbW9kZShhZGV2LCAmbmV3X3N0YXRlKTsN CisJCWFkZXYtPnZjbi52Y25fcGF1c2VfZHBnX21vZGUoYWRldiwgJm5ld19zdGF0ZSk7DQogCX0N CiANCiAJZmVuY2VzICs9IGFtZGdwdV9mZW5jZV9jb3VudF9lbWl0dGVkKCZhZGV2LT52Y24ucmlu Z19qcGVnKTsNCkBAIC00MTcsNyArMjkxLDcgQEAgdm9pZCBhbWRncHVfdmNuX3JpbmdfYmVnaW5f dXNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykNCiAJCWVsc2UgaWYgKHJpbmctPmZ1bmNzLT50 eXBlID09IEFNREdQVV9SSU5HX1RZUEVfVkNOX0pQRUcpDQogCQkJbmV3X3N0YXRlLmpwZWcgPSBW Q05fRFBHX1NUQVRFX19QQVVTRTsNCiANCi0JCWFtZGdwdV92Y25fcGF1c2VfZHBnX21vZGUoYWRl diwgJm5ld19zdGF0ZSk7DQorCQlhZGV2LT52Y24udmNuX3BhdXNlX2RwZ19tb2RlKGFkZXYsICZu ZXdfc3RhdGUpOw0KIAl9DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV92Y24uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 Y24uaA0KaW5kZXggZDI5YTVjOTU0NWJkLi5jZWUwZjI2M2QxNTkgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNuLmgNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92Y24uaA0KQEAgLTEwMSw2ICsxMDEsOCBAQCBzdHJ1Y3QgYW1k Z3B1X3ZjbiB7DQogCXVuc2lnbmVkCQludW1fZW5jX3JpbmdzOw0KIAllbnVtIGFtZF9wb3dlcmdh dGluZ19zdGF0ZSBjdXJfc3RhdGU7DQogCXN0cnVjdCBkcGdfcGF1c2Vfc3RhdGUgcGF1c2Vfc3Rh dGU7DQorCWludCAoKnZjbl9wYXVzZV9kcGdfbW9kZSkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsDQorCQlzdHJ1Y3QgZHBnX3BhdXNlX3N0YXRlICpuZXdfc3RhdGUpOw0KIH07DQogDQogaW50 IGFtZGdwdV92Y25fc3dfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMNCmluZGV4IGFjMmU1YTFlYjU3Ni4uYTVhYjY3NmNi NGFjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYw0K KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYw0KQEAgLTQ5LDYgKzQ5 LDggQEAgc3RhdGljIHZvaWQgdmNuX3YxXzBfc2V0X2pwZWdfcmluZ19mdW5jcyhzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldik7DQogc3RhdGljIHZvaWQgdmNuX3YxXzBfc2V0X2lycV9mdW5jcyhz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQogc3RhdGljIHZvaWQgdmNuX3YxXzBfanBlZ19y aW5nX3NldF9wYXRjaF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMyX3QgcHRy KTsNCiBzdGF0aWMgaW50IHZjbl92MV8wX3NldF9wb3dlcmdhdGluZ19zdGF0ZSh2b2lkICpoYW5k bGUsIGVudW0gYW1kX3Bvd2VyZ2F0aW5nX3N0YXRlIHN0YXRlKTsNCitzdGF0aWMgaW50IHZjbl92 MV8wX3BhdXNlX2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KKwkJCQlzdHJ1 Y3QgZHBnX3BhdXNlX3N0YXRlICpuZXdfc3RhdGUpOw0KIA0KIC8qKg0KICAqIHZjbl92MV8wX2Vh cmx5X2luaXQgLSBzZXQgZnVuY3Rpb24gcG9pbnRlcnMNCkBAIC0xNDAsNyArMTQyLDkgQEAgc3Rh dGljIGludCB2Y25fdjFfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkNCiAJaWYgKHIpDQogCQlyZXR1 cm4gcjsNCiANCi0JcmV0dXJuIHI7DQorCWFkZXYtPnZjbi52Y25fcGF1c2VfZHBnX21vZGUgPSB2 Y25fdjFfMF9wYXVzZV9kcGdfbW9kZTsNCisNCisJcmV0dXJuIDA7DQogfQ0KIA0KIC8qKg0KQEAg LTEyMDQsNiArMTIwOCwxMzIgQEAgc3RhdGljIGludCB2Y25fdjFfMF9zdG9wKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQ0KIAlyZXR1cm4gcjsNCiB9DQogDQorc3RhdGljIGludCB2Y25fdjFf MF9wYXVzZV9kcGdfbW9kZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCisJCQkJc3RydWN0 IGRwZ19wYXVzZV9zdGF0ZSAqbmV3X3N0YXRlKQ0KK3sNCisJaW50IHJldF9jb2RlOw0KKwl1aW50 MzJfdCByZWdfZGF0YSA9IDA7DQorCXVpbnQzMl90IHJlZ19kYXRhMiA9IDA7DQorCXN0cnVjdCBh bWRncHVfcmluZyAqcmluZzsNCisNCisJLyogcGF1c2UvdW5wYXVzZSBpZiBzdGF0ZSBpcyBjaGFu Z2VkICovDQorCWlmIChhZGV2LT52Y24ucGF1c2Vfc3RhdGUuZndfYmFzZWQgIT0gbmV3X3N0YXRl LT5md19iYXNlZCkgew0KKwkJRFJNX0RFQlVHKCJkcGcgcGF1c2Ugc3RhdGUgY2hhbmdlZCAlZDol ZCAtPiAlZDolZCIsDQorCQkJYWRldi0+dmNuLnBhdXNlX3N0YXRlLmZ3X2Jhc2VkLCBhZGV2LT52 Y24ucGF1c2Vfc3RhdGUuanBlZywNCisJCQluZXdfc3RhdGUtPmZ3X2Jhc2VkLCBuZXdfc3RhdGUt PmpwZWcpOw0KKw0KKwkJcmVnX2RhdGEgPSBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9EUEdf UEFVU0UpICYNCisJCQkoflVWRF9EUEdfUEFVU0VfX05KX1BBVVNFX0RQR19BQ0tfTUFTSyk7DQor DQorCQlpZiAobmV3X3N0YXRlLT5md19iYXNlZCA9PSBWQ05fRFBHX1NUQVRFX19QQVVTRSkgew0K KwkJCXJldF9jb2RlID0gMDsNCisNCisJCQlpZiAoIShyZWdfZGF0YSAmIFVWRF9EUEdfUEFVU0Vf X0pQRUdfUEFVU0VfRFBHX0FDS19NQVNLKSkNCisJCQkJU09DMTVfV0FJVF9PTl9SUkVHKFVWRCwg MCwgbW1VVkRfUE9XRVJfU1RBVFVTLA0KKwkJCQkJCSAgIFVWRF9QT1dFUl9TVEFUVVNfX1VWRF9Q T1dFUl9TVEFUVVNfVElMRVNfT0ZGLA0KKwkJCQkJCSAgIFVWRF9QT1dFUl9TVEFUVVNfX1VWRF9Q T1dFUl9TVEFUVVNfTUFTSywgcmV0X2NvZGUpOw0KKw0KKwkJCWlmICghcmV0X2NvZGUpIHsNCisJ CQkJLyogcGF1c2UgRFBHIG5vbi1qcGVnICovDQorCQkJCXJlZ19kYXRhIHw9IFVWRF9EUEdfUEFV U0VfX05KX1BBVVNFX0RQR19SRVFfTUFTSzsNCisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1V VkRfRFBHX1BBVVNFLCByZWdfZGF0YSk7DQorCQkJCVNPQzE1X1dBSVRfT05fUlJFRyhVVkQsIDAs IG1tVVZEX0RQR19QQVVTRSwNCisJCQkJCQkgICBVVkRfRFBHX1BBVVNFX19OSl9QQVVTRV9EUEdf QUNLX01BU0ssDQorCQkJCQkJICAgVVZEX0RQR19QQVVTRV9fTkpfUEFVU0VfRFBHX0FDS19NQVNL LCByZXRfY29kZSk7DQorDQorCQkJCS8qIFJlc3RvcmUgKi8NCisJCQkJcmluZyA9ICZhZGV2LT52 Y24ucmluZ19lbmNbMF07DQorCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX0JBU0Vf TE8sIHJpbmctPmdwdV9hZGRyKTsNCisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJf QkFTRV9ISSwgdXBwZXJfMzJfYml0cyhyaW5nLT5ncHVfYWRkcikpOw0KKwkJCQlXUkVHMzJfU09D MTUoVVZELCAwLCBtbVVWRF9SQl9TSVpFLCByaW5nLT5yaW5nX3NpemUgLyA0KTsNCisJCQkJV1JF RzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfUlBUUiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRy KSk7DQorCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1dQVFIsIGxvd2VyXzMyX2Jp dHMocmluZy0+d3B0cikpOw0KKw0KKwkJCQlyaW5nID0gJmFkZXYtPnZjbi5yaW5nX2VuY1sxXTsN CisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfQkFTRV9MTzIsIHJpbmctPmdwdV9h ZGRyKTsNCisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJfQkFTRV9ISTIsIHVwcGVy XzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpKTsNCisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1V VkRfUkJfU0laRTIsIHJpbmctPnJpbmdfc2l6ZSAvIDQpOw0KKwkJCQlXUkVHMzJfU09DMTUoVVZE LCAwLCBtbVVWRF9SQl9SUFRSMiwgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7DQorCQkJCVdS RUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCX1dQVFIyLCBsb3dlcl8zMl9iaXRzKHJpbmctPndw dHIpKTsNCisNCisJCQkJcmluZyA9ICZhZGV2LT52Y24ucmluZ19kZWM7DQorCQkJCVdSRUczMl9T T0MxNShVVkQsIDAsIG1tVVZEX1JCQ19SQl9XUFRSLA0KKwkJCQkJCSAgIFJSRUczMl9TT0MxNShV VkQsIDAsIG1tVVZEX1NDUkFUQ0gyKSAmIDB4N0ZGRkZGRkYpOw0KKwkJCQlTT0MxNV9XQUlUX09O X1JSRUcoVVZELCAwLCBtbVVWRF9QT1dFUl9TVEFUVVMsDQorCQkJCQkJICAgVVZEX1BHRlNNX0NP TkZJR19fVVZETV9VVkRVX1BXUl9PTiwNCisJCQkJCQkgICBVVkRfUE9XRVJfU1RBVFVTX19VVkRf UE9XRVJfU1RBVFVTX01BU0ssIHJldF9jb2RlKTsNCisJCQl9DQorCQl9IGVsc2Ugew0KKwkJCS8q IHVucGF1c2UgZHBnIG5vbi1qcGVnLCBubyBuZWVkIHRvIHdhaXQgKi8NCisJCQlyZWdfZGF0YSAm PSB+VVZEX0RQR19QQVVTRV9fTkpfUEFVU0VfRFBHX1JFUV9NQVNLOw0KKwkJCVdSRUczMl9TT0Mx NShVVkQsIDAsIG1tVVZEX0RQR19QQVVTRSwgcmVnX2RhdGEpOw0KKwkJfQ0KKwkJYWRldi0+dmNu LnBhdXNlX3N0YXRlLmZ3X2Jhc2VkID0gbmV3X3N0YXRlLT5md19iYXNlZDsNCisJfQ0KKw0KKwkv KiBwYXVzZS91bnBhdXNlIGlmIHN0YXRlIGlzIGNoYW5nZWQgKi8NCisJaWYgKGFkZXYtPnZjbi5w YXVzZV9zdGF0ZS5qcGVnICE9IG5ld19zdGF0ZS0+anBlZykgew0KKwkJRFJNX0RFQlVHKCJkcGcg cGF1c2Ugc3RhdGUgY2hhbmdlZCAlZDolZCAtPiAlZDolZCIsDQorCQkJYWRldi0+dmNuLnBhdXNl X3N0YXRlLmZ3X2Jhc2VkLCBhZGV2LT52Y24ucGF1c2Vfc3RhdGUuanBlZywNCisJCQluZXdfc3Rh dGUtPmZ3X2Jhc2VkLCBuZXdfc3RhdGUtPmpwZWcpOw0KKw0KKwkJcmVnX2RhdGEgPSBSUkVHMzJf U09DMTUoVVZELCAwLCBtbVVWRF9EUEdfUEFVU0UpICYNCisJCQkoflVWRF9EUEdfUEFVU0VfX0pQ RUdfUEFVU0VfRFBHX0FDS19NQVNLKTsNCisNCisJCWlmIChuZXdfc3RhdGUtPmpwZWcgPT0gVkNO X0RQR19TVEFURV9fUEFVU0UpIHsNCisJCQlyZXRfY29kZSA9IDA7DQorDQorCQkJaWYgKCEocmVn X2RhdGEgJiBVVkRfRFBHX1BBVVNFX19OSl9QQVVTRV9EUEdfQUNLX01BU0spKQ0KKwkJCQlTT0Mx NV9XQUlUX09OX1JSRUcoVVZELCAwLCBtbVVWRF9QT1dFUl9TVEFUVVMsDQorCQkJCQkJICAgVVZE X1BPV0VSX1NUQVRVU19fVVZEX1BPV0VSX1NUQVRVU19USUxFU19PRkYsDQorCQkJCQkJICAgVVZE X1BPV0VSX1NUQVRVU19fVVZEX1BPV0VSX1NUQVRVU19NQVNLLCByZXRfY29kZSk7DQorDQorCQkJ aWYgKCFyZXRfY29kZSkgew0KKwkJCQkvKiBNYWtlIHN1cmUgSlBSRyBTbm9vcCBpcyBkaXNhYmxl ZCBiZWZvcmUgc2VuZGluZyB0aGUgcGF1c2UgKi8NCisJCQkJcmVnX2RhdGEyID0gUlJFRzMyX1NP QzE1KFVWRCwgMCwgbW1VVkRfUE9XRVJfU1RBVFVTKTsNCisJCQkJcmVnX2RhdGEyIHw9IFVWRF9Q T1dFUl9TVEFUVVNfX0pSQkNfU05PT1BfRElTX01BU0s7DQorCQkJCVdSRUczMl9TT0MxNShVVkQs IDAsIG1tVVZEX1BPV0VSX1NUQVRVUywgcmVnX2RhdGEyKTsNCisNCisJCQkJLyogcGF1c2UgRFBH IGpwZWcgKi8NCisJCQkJcmVnX2RhdGEgfD0gVVZEX0RQR19QQVVTRV9fSlBFR19QQVVTRV9EUEdf UkVRX01BU0s7DQorCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0RQR19QQVVTRSwgcmVn X2RhdGEpOw0KKwkJCQlTT0MxNV9XQUlUX09OX1JSRUcoVVZELCAwLCBtbVVWRF9EUEdfUEFVU0Us DQorCQkJCQkJCVVWRF9EUEdfUEFVU0VfX0pQRUdfUEFVU0VfRFBHX0FDS19NQVNLLA0KKwkJCQkJ CQlVVkRfRFBHX1BBVVNFX19KUEVHX1BBVVNFX0RQR19BQ0tfTUFTSywgcmV0X2NvZGUpOw0KKw0K KwkJCQkvKiBSZXN0b3JlICovDQorCQkJCXJpbmcgPSAmYWRldi0+dmNuLnJpbmdfanBlZzsNCisJ CQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX0pSQkNfUkJfVk1JRCwgMCk7DQorCQkJ CVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0pSQkNfUkJfQ05UTCwNCisJCQkJCQkJVVZEX0pS QkNfUkJfQ05UTF9fUkJfTk9fRkVUQ0hfTUFTSyB8DQorCQkJCQkJCVVWRF9KUkJDX1JCX0NOVExf X1JCX1JQVFJfV1JfRU5fTUFTSyk7DQorCQkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0xN SV9KUkJDX1JCXzY0QklUX0JBUl9MT1csDQorCQkJCQkJCWxvd2VyXzMyX2JpdHMocmluZy0+Z3B1 X2FkZHIpKTsNCisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfTE1JX0pSQkNfUkJfNjRC SVRfQkFSX0hJR0gsDQorCQkJCQkJCXVwcGVyXzMyX2JpdHMocmluZy0+Z3B1X2FkZHIpKTsNCisJ CQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfSlJCQ19SQl9SUFRSLCByaW5nLT53cHRyKTsN CisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfSlJCQ19SQl9XUFRSLCByaW5nLT53cHRy KTsNCisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfSlJCQ19SQl9DTlRMLA0KKwkJCQkJ CQlVVkRfSlJCQ19SQl9DTlRMX19SQl9SUFRSX1dSX0VOX01BU0spOw0KKw0KKwkJCQlyaW5nID0g JmFkZXYtPnZjbi5yaW5nX2RlYzsNCisJCQkJV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJD X1JCX1dQVFIsDQorCQkJCQkJICAgUlJFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfU0NSQVRDSDIp ICYgMHg3RkZGRkZGRik7DQorCQkJCVNPQzE1X1dBSVRfT05fUlJFRyhVVkQsIDAsIG1tVVZEX1BP V0VSX1NUQVRVUywNCisJCQkJCQkgICBVVkRfUEdGU01fQ09ORklHX19VVkRNX1VWRFVfUFdSX09O LA0KKwkJCQkJCSAgIFVWRF9QT1dFUl9TVEFUVVNfX1VWRF9QT1dFUl9TVEFUVVNfTUFTSywgcmV0 X2NvZGUpOw0KKwkJCX0NCisJCX0gZWxzZSB7DQorCQkJLyogdW5wYXVzZSBkcGcganBlZywgbm8g bmVlZCB0byB3YWl0ICovDQorCQkJcmVnX2RhdGEgJj0gflVWRF9EUEdfUEFVU0VfX0pQRUdfUEFV U0VfRFBHX1JFUV9NQVNLOw0KKwkJCVdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX0RQR19QQVVT RSwgcmVnX2RhdGEpOw0KKwkJfQ0KKwkJYWRldi0+dmNuLnBhdXNlX3N0YXRlLmpwZWcgPSBuZXdf c3RhdGUtPmpwZWc7DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KIHN0YXRpYyBib29sIHZj bl92MV8wX2lzX2lkbGUodm9pZCAqaGFuZGxlKQ0KIHsNCiAJc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7DQotLSANCjIuMTcuMQ0KDQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1h aWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=