From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH xf86-video-amdgpu 1/5] Add functions for changing CRTC color management properties Date: Mon, 26 Mar 2018 16:00:14 -0400 Message-ID: <1522094418-9102-2-git-send-email-sunpeng.li@amd.com> References: <1522094418-9102-1-git-send-email-sunpeng.li@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1522094418-9102-1-git-send-email-sunpeng.li-5C7GfCeVMHo@public.gmane.org> 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 RnJvbTogIkxlbyAoU3VucGVuZykgTGkiIDxzdW5wZW5nLmxpQGFtZC5jb20+CgpUaGlzIGNoYW5n ZSBhZGRzIGEgZmV3IGZ1bmN0aW9ucyBpbiBwcmVwYXJhdGlvbiBvZiBlbmFibGluZyBDUlRDIGNv bG9yCm1hbmFnbWVudCB2aWEgdGhlIHJhbmRyIGludGVyZmFjZS4KClRoZSBkcml2ZXItcHJpdmF0 ZSBDUlRDIG9iamVjdCBub3cgY29udGFpbnMgYSBsaXN0IG9mIHByb3BlcnRpZXMsCm1pcnJvcmlu ZyB0aGUgZHJpdmVyLXByaXZhdGUgb3V0cHV0IG9iamVjdC4gVGhlIGxpZmVjeWNsZSBvZiB0aGUg Q1JUQwpwcm9wZXJ0aWVzIHdpbGwgYWxzbyBtaXJyb3IgdGhlIG91dHB1dC4KClNpbmNlIGNvbG9y IG1hbmFnbWVudCBwcm9wZXJ0aWVzIGFyZSBhbGwgRFJNIGJsb2JzLCB3ZSdsbCBleHBvc2UgdGhl CmFiaWxpdHkgdG8gY2hhbmdlIHRoZSBibG9iIElELiBUaGUgdXNlciBjYW4gY3JlYXRlIGJsb2Jz IHZpYSBsaWJkcm0KKHdoaWNoIGNhbiBiZSBkb25lIHdpdGhvdXQgb3duZXJzaGlwIG9mIERSTSBt YXN0ZXIpLCB0aGVuIHNldCB0aGUgSUQgdmlhCnhyYW5kci4gVGhlIHVzZXIgd2lsbCB0aGVuIGhh dmUgdG8gZW5zdXJlIHByb3BlciBjbGVhbnVwIGJ5IHN1YnNlcXVlbnRseQpyZWxlYXNpbmcgdGhl IGJsb2IuCgpTaWduZWQtb2ZmLWJ5OiBMZW8gKFN1bnBlbmcpIExpIDxzdW5wZW5nLmxpQGFtZC5j b20+Ci0tLQogc3JjL2RybW1vZGVfZGlzcGxheS5jIHwgMjU0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvZHJtbW9kZV9kaXNwbGF5LmggfCAg MTcgKystLQogMiBmaWxlcyBjaGFuZ2VkLCAyNjQgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvZHJtbW9kZV9kaXNwbGF5LmMgYi9zcmMvZHJtbW9kZV9kaXNw bGF5LmMKaW5kZXggODU5NzBkMS4uMjNmOWFkMyAxMDA2NDQKLS0tIGEvc3JjL2RybW1vZGVfZGlz cGxheS5jCisrKyBiL3NyYy9kcm1tb2RlX2Rpc3BsYXkuYwpAQCAtMTMwMSw2ICsxMzAxLDI1IEBA IHN0YXRpYyBCb29sIGRybW1vZGVfc2V0X3NjYW5vdXRfcGl4bWFwKHhmODZDcnRjUHRyIGNydGMs IFBpeG1hcFB0ciBwcGl4KQogCXJldHVybiBUUlVFOwogfQogCitzdGF0aWMgdm9pZCBkcm1tb2Rl X2NydGNfZGVzdHJveSh4Zjg2Q3J0Y1B0ciBjcnRjKQoreworCWRybW1vZGVfY3J0Y19wcml2YXRl X3B0ciBkcm1tb2RlX2NydGMgPSBjcnRjLT5kcml2ZXJfcHJpdmF0ZTsKKwlpbnQgaTsKKworCS8q IEZyZWUgcHJvcGVydHkgbGlzdCAqLworCWZvciAoaSA9IDA7IGkgPCBkcm1tb2RlX2NydGMtPm51 bV9wcm9wczsgaSsrKSB7CisJCWRybU1vZGVGcmVlUHJvcGVydHkoZHJtbW9kZV9jcnRjLT5wcm9w c1tpXS5tb2RlX3Byb3ApOworCQlmcmVlKGRybW1vZGVfY3J0Yy0+cHJvcHNbaV0uYXRvbXMpOwor CX0KKwlmcmVlKGRybW1vZGVfY3J0Yy0+cHJvcHMpOworCisJZHJtTW9kZUZyZWVDcnRjKGRybW1v ZGVfY3J0Yy0+bW9kZV9jcnRjKTsKKworCWZyZWUoZHJtbW9kZV9jcnRjKTsKKwljcnRjLT5kcml2 ZXJfcHJpdmF0ZSA9IE5VTEw7Cit9CisKKwogc3RhdGljIHhmODZDcnRjRnVuY3NSZWMgZHJtbW9k ZV9jcnRjX2Z1bmNzID0gewogCS5kcG1zID0gZHJtbW9kZV9jcnRjX2RwbXMsCiAJLnNldF9tb2Rl X21ham9yID0gZHJtbW9kZV9zZXRfbW9kZV9tYWpvciwKQEAgLTE2MDQsNiArMTYyMywxOCBAQCBz dGF0aWMgdm9pZCBkcm1tb2RlX291dHB1dF9kcG1zKHhmODZPdXRwdXRQdHIgb3V0cHV0LCBpbnQg bW9kZSkKIAl9CiB9CiAKK3N0YXRpYyBCb29sIGRybW1vZGVfY3J0Y19wcm9wZXJ0eV9pZ25vcmUo ZHJtTW9kZVByb3BlcnR5UHRyIHByb3ApCit7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gVFJVRTsK KwkvKiBJZ25vcmUgQ1JUQyBnYW1tYSBsdXQgc2l6ZXMgKi8KKwlpZiAoIXN0cmNtcChwcm9wLT5u YW1lLCAiR0FNTUFfTFVUX1NJWkUiKSB8fAorCSAgICAhc3RyY21wKHByb3AtPm5hbWUsICJERUdB TU1BX0xVVF9TSVpFIikpCisJCXJldHVybiBUUlVFOworCisJcmV0dXJuIEZBTFNFOworfQorCiBz dGF0aWMgQm9vbCBkcm1tb2RlX3Byb3BlcnR5X2lnbm9yZShkcm1Nb2RlUHJvcGVydHlQdHIgcHJv cCkKIHsKIAlpZiAoIXByb3ApCkBAIC0xNjE4LDYgKzE2NDksMTYzIEBAIHN0YXRpYyBCb29sIGRy bW1vZGVfcHJvcGVydHlfaWdub3JlKGRybU1vZGVQcm9wZXJ0eVB0ciBwcm9wKQogCXJldHVybiBG QUxTRTsKIH0KIAorLyoqCisqIENvbmZpZ3VyZSBhbmQgY2hhbmdlIHRoZSBnaXZlbiBvdXRwdXQg cHJvcGVydHkgdGhyb3VnaCByYW5kci4gQ3VycmVudGx5CisqIGlnbm9yZXMgRFJNX01PREVfUFJP UF9FTlUgcHJvcGVydHkgdHlwZXMuIFVzZWQgYXMgcGFydCBvZiBjcmVhdGVfcmVzb3VyY2VzLgor KgorKiBSZXR1cm46IDAgb24gc3VjY2VzcywgWC1kZWZpbmVkIGVycm9yIGNvZGVzIG9uIGZhaWx1 cmUuCisqLworc3RhdGljIGludCBfX3JyX2NvbmZpZ3VyZV9hbmRfY2hhbmdlX3Byb3BlcnR5KHhm ODZPdXRwdXRQdHIgb3V0cHV0LAorCQkJCQkgICAgICBkcm1tb2RlX3Byb3BfcHRyIHBtb2RlX3By b3ApCit7CisJZHJtTW9kZVByb3BlcnR5UHRyIG1vZGVfcHJvcCA9IHBtb2RlX3Byb3AtPm1vZGVf cHJvcDsKKwlCb29sIGlzX2ltbXV0YWJsZSA9IG1vZGVfcHJvcC0+ZmxhZ3MgJiBEUk1fTU9ERV9Q Uk9QX0lNTVVUQUJMRSA/CisJCQkJVFJVRSA6IEZBTFNFOworCWludCBlcnI7CisKKwlpZiAobW9k ZV9wcm9wLT5mbGFncyAmIERSTV9NT0RFX1BST1BfQkxPQikgeworCQlJTlQzMiBibG9iX2lkID0g cG1vZGVfcHJvcC0+dmFsdWU7CisJCUlOVDMyIHJhbmdlWzJdOworCisJCXJhbmdlWzBdID0gMDsK KwkJcmFuZ2VbMV0gPSAweDdmZmZmZmZmOyAgLyogTWF4IHNpZ25lZCAzMi1iaXQgaW50ZWdlciAq LworCisJCXBtb2RlX3Byb3AtPm51bV9hdG9tcyA9IDE7CisJCXBtb2RlX3Byb3AtPmF0b21zID0g Y2FsbG9jKHBtb2RlX3Byb3AtPm51bV9hdG9tcywgc2l6ZW9mKEF0b20pKTsKKwkJaWYgKCFwbW9k ZV9wcm9wLT5hdG9tcykKKwkJCXJldHVybiAtMTsKKworCQlwbW9kZV9wcm9wLT5hdG9tc1swXSA9 IE1ha2VBdG9tKG1vZGVfcHJvcC0+bmFtZSwKKwkJCQkJCXN0cmxlbihtb2RlX3Byb3AtPm5hbWUp LAorCQkJCQkJVFJVRSk7CisJCWVyciA9IFJSQ29uZmlndXJlT3V0cHV0UHJvcGVydHkob3V0cHV0 LT5yYW5kcl9vdXRwdXQsCisJCQkJCQlwbW9kZV9wcm9wLT5hdG9tc1swXSwKKwkJCQkJCUZBTFNF LCBUUlVFLAorCQkJCQkJaXNfaW1tdXRhYmxlLCAyLCByYW5nZSk7CisJCWlmIChlcnIpCisJCQln b3RvIHJyY29uZmlnX2Vycm9yOworCisJCWVyciA9IFJSQ2hhbmdlT3V0cHV0UHJvcGVydHkob3V0 cHV0LT5yYW5kcl9vdXRwdXQsCisJCQkJCSAgICAgcG1vZGVfcHJvcC0+YXRvbXNbMF0sCisJCQkJ CSAgICAgWEFfSU5URUdFUiwgMzIsCisJCQkJCSAgICAgUHJvcE1vZGVSZXBsYWNlLCAxLCAmYmxv Yl9pZCwKKwkJCQkJICAgICBGQUxTRSwgVFJVRSk7CisJCWlmIChlcnIpCisJCQlnb3RvIHJyY2hh bmdlX2Vycm9yOworCX0KKwllbHNlIGlmIChtb2RlX3Byb3AtPmZsYWdzICYgRFJNX01PREVfUFJP UF9SQU5HRSkgeworCQlJTlQzMiByYW5nZVsyXTsKKwkJSU5UMzIgdmFsdWUgPSBwbW9kZV9wcm9w LT52YWx1ZTsKKworCQlwbW9kZV9wcm9wLT5udW1fYXRvbXMgPSAxOworCQlwbW9kZV9wcm9wLT5h dG9tcyA9IGNhbGxvYyhwbW9kZV9wcm9wLT5udW1fYXRvbXMsIHNpemVvZihBdG9tKSk7CisJCWlm ICghcG1vZGVfcHJvcC0+YXRvbXMpCisJCQlyZXR1cm4gLTE7CisJCXBtb2RlX3Byb3AtPmF0b21z WzBdID0gTWFrZUF0b20obW9kZV9wcm9wLT5uYW1lLAorCQkJCQkJc3RybGVuKG1vZGVfcHJvcC0+ bmFtZSksCisJCQkJCQlUUlVFKTsKKwkJcmFuZ2VbMF0gPSBtb2RlX3Byb3AtPnZhbHVlc1swXTsK KwkJcmFuZ2VbMV0gPSBtb2RlX3Byb3AtPnZhbHVlc1sxXTsKKworCQllcnIgPSBSUkNvbmZpZ3Vy ZU91dHB1dFByb3BlcnR5KG91dHB1dC0+cmFuZHJfb3V0cHV0LAorCQkJCQkJcG1vZGVfcHJvcC0+ YXRvbXNbMF0sCisJCQkJCQlGQUxTRSwgVFJVRSwKKwkJCQkJCWlzX2ltbXV0YWJsZSwgMiwgcmFu Z2UpOworCQlpZiAoZXJyKQorCQkJZ290byBycmNvbmZpZ19lcnJvcjsKKworCQllcnIgPSBSUkNo YW5nZU91dHB1dFByb3BlcnR5KG91dHB1dC0+cmFuZHJfb3V0cHV0LAorCQkJCQkgICAgIHBtb2Rl X3Byb3AtPmF0b21zWzBdLAorCQkJCQkgICAgIFhBX0lOVEVHRVIsIDMyLAorCQkJCQkgICAgIFBy b3BNb2RlUmVwbGFjZSwgMSwgJnZhbHVlLAorCQkJCQkgICAgIEZBTFNFLCBUUlVFKTsKKwkJaWYg KGVycikKKwkJCWdvdG8gcnJjaGFuZ2VfZXJyb3I7CisJfQorCisJcmV0dXJuIDA7CisKK3JyY29u ZmlnX2Vycm9yOgorCXhmODZEcnZNc2cob3V0cHV0LT5zY3JuLT5zY3JuSW5kZXgsIFhfRVJST1Is CisJCSAgICJDb25maWd1cmluZyBwcm9wZXJ0eSAlcyBmYWlsZWQgd2l0aCAlZFxuIiwKKwkJICAg bW9kZV9wcm9wLT5uYW1lLCBlcnIpOworCXJldHVybiBlcnI7CisKK3JyY2hhbmdlX2Vycm9yOgor CXhmODZEcnZNc2cob3V0cHV0LT5zY3JuLT5zY3JuSW5kZXgsIFhfRVJST1IsCisJCSAgICJDaGFu Z2luZyBwcm9wZXJ0eSAlcyBmYWlsZWQgd2l0aCAlZFxuIiwKKwkJICAgbW9kZV9wcm9wLT5uYW1l LCBlcnIpOworCXJldHVybiBlcnI7CisKK30KKworc3RhdGljIHZvaWQgZHJtbW9kZV9jcnRjX2Ny ZWF0ZV9yZXNvdXJjZXMoeGY4NkNydGNQdHIgY3J0YywKKwkJCQkJICB4Zjg2T3V0cHV0UHRyIG91 dHB1dCkKK3sKKwlBTURHUFVFbnRQdHIgcEFNREdQVUVudCA9IEFNREdQVUVudFByaXYoY3J0Yy0+ c2Nybik7CisJaW50IGksIGo7CisKKwkvKiAncCcgcHJlZml4IGZvciBkcml2ZXIgcHJpdmF0ZSBv YmplY3RzICovCisJZHJtbW9kZV9jcnRjX3ByaXZhdGVfcHRyIHBtb2RlX2NydGMgPSBjcnRjLT5k cml2ZXJfcHJpdmF0ZTsKKwlkcm1Nb2RlQ3J0Y1B0ciBtb2RlX2NydGMgPSBwbW9kZV9jcnRjLT5t b2RlX2NydGM7CisKKwlkcm1tb2RlX3Byb3BfcHRyIHBtb2RlX3Byb3A7CisJZHJtTW9kZVByb3Bl cnR5UHRyIG1vZGVfcHJvcDsKKworCS8qIEdldCBsaXN0IG9mIERSTSBDUlRDIHByb3BlcnRpZXMs IGFuZCB0aGVpciB2YWx1ZXMgKi8KKwlkcm1Nb2RlT2JqZWN0UHJvcGVydGllc1B0ciBtb2RlX3By b3BzOworCW1vZGVfcHJvcHMgPSBkcm1Nb2RlT2JqZWN0R2V0UHJvcGVydGllcyhwQU1ER1BVRW50 LT5mZCwKKwkJCQkJCW1vZGVfY3J0Yy0+Y3J0Y19pZCwKKwkJCQkJCURSTV9NT0RFX09CSkVDVF9D UlRDKTsKKwlpZiAoIW1vZGVfcHJvcHMpCisJCWdvdG8gZXJyX2FsbG9jczsKKworCS8qIEFsbG9j YXRlLCB0aGVuIHBvcHVsYXRlIHRoZSBkcml2ZXItcHJpdmF0ZSBDUlRDIHByb3BlcnR5IGxpc3Qg Ki8KKwlwbW9kZV9jcnRjLT5wcm9wcyA9IGNhbGxvYyhtb2RlX3Byb3BzLT5jb3VudF9wcm9wcyAr IDEsCisJCQkJICAgICBzaXplb2YoZHJtbW9kZV9wcm9wX3JlYykpOworCWlmICghcG1vZGVfY3J0 Yy0+cHJvcHMpCisJCWdvdG8gZXJyX2FsbG9jczsKKworCXBtb2RlX2NydGMtPm51bV9wcm9wcyA9 IDA7CisKKwkvKiBGaWx0ZXIgdGhyb3VnaCBkcm0gY3J0YyBwcm9wZXJ0aWVzIGZvciByZWxldmFu dCBvbmVzLCBhbmQgc2F2ZQorCSAqIHRoZW0gKi8KKwlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IG1v ZGVfcHJvcHMtPmNvdW50X3Byb3BzOyBpKyspIHsKKwkJbW9kZV9wcm9wID0gZHJtTW9kZUdldFBy b3BlcnR5KHBBTURHUFVFbnQtPmZkLAorCQkJCQkgICAgICAgbW9kZV9wcm9wcy0+cHJvcHNbaV0p OworCQlpZiAoIW1vZGVfcHJvcCkKKwkJCWdvdG8gZXJyX2FsbG9jczsKKworCQlpZiAoZHJtbW9k ZV9jcnRjX3Byb3BlcnR5X2lnbm9yZShtb2RlX3Byb3ApKSB7CisJCQlkcm1Nb2RlRnJlZVByb3Bl cnR5KG1vZGVfcHJvcCk7CisJCQljb250aW51ZTsKKwkJfQorCisJCXBtb2RlX2NydGMtPm51bV9w cm9wcysrOworCQlwbW9kZV9wcm9wID0gJnBtb2RlX2NydGMtPnByb3BzW2pdOworCQlwbW9kZV9w cm9wLT5tb2RlX3Byb3AgPSBtb2RlX3Byb3A7CisJCXBtb2RlX3Byb3AtPnZhbHVlID0gbW9kZV9w cm9wcy0+cHJvcF92YWx1ZXNbaV07CisKKwkJaisrOworCX0KKworCS8qIEZpbmFsbHksIGNvbmZp Z3VyZSBhbmQgc2V0IHRoZSBwcm9wZXJ0aWVzICovCisJZm9yIChpID0gMDsgaSA8IHBtb2RlX2Ny dGMtPm51bV9wcm9wczsgaSsrKSB7CisJCXBtb2RlX3Byb3AgPSAmcG1vZGVfY3J0Yy0+cHJvcHNb aV07CisJCV9fcnJfY29uZmlndXJlX2FuZF9jaGFuZ2VfcHJvcGVydHkob3V0cHV0LCBwbW9kZV9w cm9wKTsKKwl9CisKKwlkcm1Nb2RlRnJlZU9iamVjdFByb3BlcnRpZXMobW9kZV9wcm9wcyk7CisJ cmV0dXJuOworCitlcnJfYWxsb2NzOgorCXhmODZEcnZNc2cob3V0cHV0LT5zY3JuLT5zY3JuSW5k ZXgsIFhfRVJST1IsCisJCSAgICJNZW1vcnkgZXJyb3IgY3JlYXRpbmcgcmVzb3VyY2VzIGZvciBD UlRDICVkXG4iLAorCQkgICBtb2RlX2NydGMtPmNydGNfaWQpOworCWRybU1vZGVGcmVlT2JqZWN0 UHJvcGVydGllcyhtb2RlX3Byb3BzKTsKKwlyZXR1cm47Cit9CisKIHN0YXRpYyB2b2lkIGRybW1v ZGVfb3V0cHV0X2NyZWF0ZV9yZXNvdXJjZXMoeGY4Nk91dHB1dFB0ciBvdXRwdXQpCiB7CiAJQU1E R1BVSW5mb1B0ciBpbmZvID0gQU1ER1BVUFRSKG91dHB1dC0+c2Nybik7CkBAIC0xNzQ3LDYgKzE5 MzUsNzIgQEAgc3RhdGljIHZvaWQgZHJtbW9kZV9vdXRwdXRfY3JlYXRlX3Jlc291cmNlcyh4Zjg2 T3V0cHV0UHRyIG91dHB1dCkKIAl9CiB9CiAKKy8qKgorKiBTZXQgYSBDUlRDIHByb3BlcnR5Lgor KgorKiBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtZXJybm8gb24gZmFpbHVyZS4KKyogQSA+MCByZXR1 cm4gdmFsdWUgaW1wbGllcyB0aGUgZ2l2ZW4gcHJvcGVydHkgd2FzIG5vdCBmb3VuZCBvbiB0aGUg Q1JUQy4KKyovCitzdGF0aWMgaW50IGRybW1vZGVfY3J0Y19zZXRfcHJvcGVydHkoeGY4NkNydGNQ dHIgY3J0YywgQXRvbSBwcm9wZXJ0eSwKKwkJCQkgICAgIFJSUHJvcGVydHlWYWx1ZVB0ciB2YWx1 ZSkKK3sKKwlBTURHUFVFbnRQdHIgcEFNREdQVUVudCA9IEFNREdQVUVudFByaXYoY3J0Yy0+c2Ny bik7CisJZHJtbW9kZV9jcnRjX3ByaXZhdGVfcHRyIHBtb2RlX2NydGMgPSBjcnRjLT5kcml2ZXJf cHJpdmF0ZTsKKwlkcm1tb2RlX3Byb3BfcHRyIHAgPSBOVUxMOworCWludCBpOworCisJZm9yIChp ID0gMDsgaSA8IHBtb2RlX2NydGMtPm51bV9wcm9wczsgaSsrKSB7CisJCXAgPSAmcG1vZGVfY3J0 Yy0+cHJvcHNbaV07CisKKwkJaWYgKHAtPmF0b21zWzBdID09IHByb3BlcnR5KQorCQkJYnJlYWs7 CisJfQorCWlmIChpID09IHBtb2RlX2NydGMtPm51bV9wcm9wcykgIC8qIFByb3BlcnR5IG5vdCBm b3VuZCBpbiBDUlRDLiAqLworCQlyZXR1cm4gMTsKKworCWlmIChwLT5tb2RlX3Byb3AtPmZsYWdz ICYgRFJNX01PREVfUFJPUF9CTE9CKSB7CisJCXVpbnQzMl90IGJsb2JfaWQ7CisJCWludCByZXQ7 CisKKwkJaWYgKHZhbHVlLT50eXBlICE9IFhBX0lOVEVHRVIgfHwgdmFsdWUtPmZvcm1hdCAhPSAz MiB8fAorCQkgICAgdmFsdWUtPnNpemUgIT0gMSkKKwkJCXJldHVybiAtRUlOVkFMOworCisJCWJs b2JfaWQgPSAqKHVpbnQzMl90ICopIHZhbHVlLT5kYXRhOworCisJCXJldCA9IGRybU1vZGVPYmpl Y3RTZXRQcm9wZXJ0eShwQU1ER1BVRW50LT5mZCwKKwkJCQkJICAgICAgIHBtb2RlX2NydGMtPm1v ZGVfY3J0Yy0+Y3J0Y19pZCwKKwkJCQkJICAgICAgIERSTV9NT0RFX09CSkVDVF9DUlRDLAorCQkJ CQkgICAgICAgcC0+bW9kZV9wcm9wLT5wcm9wX2lkLAorCQkJCQkgICAgICAgKHVpbnQ2NF90KWJs b2JfaWQpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKworCQlyZXR1cm4gMDsKKwl9CisJ aWYgKHAtPm1vZGVfcHJvcC0+ZmxhZ3MgJiBEUk1fTU9ERV9QUk9QX1JBTkdFKSB7CisJCXVpbnQz Ml90IHZhbDsKKwkJaW50IHJldDsKKworCQlpZiAodmFsdWUtPnR5cGUgIT0gWEFfSU5URUdFUiB8 fCB2YWx1ZS0+Zm9ybWF0ICE9IDMyIHx8CisJCSAgICB2YWx1ZS0+c2l6ZSAhPSAxKQorCQkJcmV0 dXJuIC1FSU5WQUw7CisJCXZhbCA9ICoodWludDMyX3QgKikgdmFsdWUtPmRhdGE7CisKKwkJcmV0 ID0gZHJtTW9kZU9iamVjdFNldFByb3BlcnR5KHBBTURHUFVFbnQtPmZkLAorCQkJCQkgICAgICAg cG1vZGVfY3J0Yy0+bW9kZV9jcnRjLT5jcnRjX2lkLAorCQkJCQkgICAgICAgRFJNX01PREVfT0JK RUNUX0NSVEMsCisJCQkJCSAgICAgICBwLT5tb2RlX3Byb3AtPnByb3BfaWQsCisJCQkJCSAgICAg ICAodWludDY0X3QpIHZhbCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCQlyZXR1cm4g MDsKKwl9CisKKwkvKiBObyBwcm9wZXJ0eSBzZXQuICovCisJcmV0dXJuIDE7Cit9CisKIHN0YXRp YyBCb29sCiBkcm1tb2RlX291dHB1dF9zZXRfcHJvcGVydHkoeGY4Nk91dHB1dFB0ciBvdXRwdXQs IEF0b20gcHJvcGVydHksCiAJCQkgICAgUlJQcm9wZXJ0eVZhbHVlUHRyIHZhbHVlKQpkaWZmIC0t Z2l0IGEvc3JjL2RybW1vZGVfZGlzcGxheS5oIGIvc3JjL2RybW1vZGVfZGlzcGxheS5oCmluZGV4 IDJhYTU2NzIuLmZjYWRjZTMgMTAwNjQ0Ci0tLSBhL3NyYy9kcm1tb2RlX2Rpc3BsYXkuaAorKysg Yi9zcmMvZHJtbW9kZV9kaXNwbGF5LmgKQEAgLTc0LDYgKzc0LDEzIEBAIHN0cnVjdCBkcm1tb2Rl X3NjYW5vdXQgewogfTsKIAogdHlwZWRlZiBzdHJ1Y3QgeworCWRybU1vZGVQcm9wZXJ0eVB0ciBt b2RlX3Byb3A7CisJdWludDY0X3QgdmFsdWU7CisJaW50IG51bV9hdG9tczsJCS8qIGlmIHJhbmdl IHByb3AsIG51bV9hdG9tcyA9PSAxOyBpZiBlbnVtIHByb3AsIG51bV9hdG9tcyA9PSBudW1fZW51 bXMgKyAxICovCisJQXRvbSAqYXRvbXM7Cit9IGRybW1vZGVfcHJvcF9yZWMsICpkcm1tb2RlX3By b3BfcHRyOworCit0eXBlZGVmIHN0cnVjdCB7CiAJZHJtbW9kZV9wdHIgZHJtbW9kZTsKIAlkcm1N b2RlQ3J0Y1B0ciBtb2RlX2NydGM7CiAJaW50IGh3X2lkOwpAQCAtMTA5LDE0ICsxMTYsMTAgQEAg dHlwZWRlZiBzdHJ1Y3QgewogCXVuc2lnbmVkIHByZXNlbnRfdmJsYW5rX21zYzsKIAlCb29sIHBy ZXNlbnRfZmxpcF9leHBlY3RlZDsKICNlbmRpZgotfSBkcm1tb2RlX2NydGNfcHJpdmF0ZV9yZWMs ICpkcm1tb2RlX2NydGNfcHJpdmF0ZV9wdHI7CiAKLXR5cGVkZWYgc3RydWN0IHsKLQlkcm1Nb2Rl UHJvcGVydHlQdHIgbW9kZV9wcm9wOwotCXVpbnQ2NF90IHZhbHVlOwotCWludCBudW1fYXRvbXM7 CQkvKiBpZiByYW5nZSBwcm9wLCBudW1fYXRvbXMgPT0gMTsgaWYgZW51bSBwcm9wLCBudW1fYXRv bXMgPT0gbnVtX2VudW1zICsgMSAqLwotCUF0b20gKmF0b21zOwotfSBkcm1tb2RlX3Byb3BfcmVj LCAqZHJtbW9kZV9wcm9wX3B0cjsKKwlpbnQgbnVtX3Byb3BzOworCWRybW1vZGVfcHJvcF9wdHIg cHJvcHM7Cit9IGRybW1vZGVfY3J0Y19wcml2YXRlX3JlYywgKmRybW1vZGVfY3J0Y19wcml2YXRl X3B0cjsKIAogdHlwZWRlZiBzdHJ1Y3QgewogCWRybW1vZGVfcHRyIGRybW1vZGU7Ci0tIAoyLjcu NAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdm eCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==