From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jordan Crouse Subject: [PATCH 3/5] drm/msm/disp/dpu: Remove dpu_kms_utils Date: Thu, 26 Jul 2018 14:30:12 -0600 Message-ID: <20180726203014.3270-4-jcrouse@codeaurora.org> References: <20180726203014.3270-1-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180726203014.3270-1-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Tm9uZSBvZiB0aGUgZnVuY3Rpb25zIGluIGRwdV9rbXNfdXRpbHMuYyBzZWVtIHRvIGJlIHVzZWQg c28KcmVtb3ZlIHRoZW0gYWxsLgoKU2lnbmVkLW9mZi1ieTogSm9yZGFuIENyb3VzZSA8amNyb3Vz ZUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlICAgICAg ICAgICAgICAgICAgfCAgIDEgLQogZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2tt cy5oICAgICAgIHwgMTEyIC0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9rbXNfdXRpbHMuYyB8IDE1MyAtLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hh bmdlZCwgMjY2IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9rbXNfdXRpbHMuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlCmluZGV4IDE2 MzllYThjMGQxMy4uN2M3NzNlMDAzNjYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vTWFrZWZpbGUKQEAgLTY4LDcgKzY4 LDYgQEAgbXNtLXkgOj0gXAogCWRpc3AvZHB1MS9kcHVfaW9fdXRpbC5vIFwKIAlkaXNwL2RwdTEv ZHB1X2lycS5vIFwKIAlkaXNwL2RwdTEvZHB1X2ttcy5vIFwKLQlkaXNwL2RwdTEvZHB1X2ttc191 dGlscy5vIFwKIAlkaXNwL2RwdTEvZHB1X21kc3MubyBcCiAJZGlzcC9kcHUxL2RwdV9wbGFuZS5v IFwKIAlkaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5vIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9rbXMuaAppbmRleCA0MDdjMWVkMjdmZTYuLjY2ZDQ2NjYyOGUyYiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaApAQCAtMjcwLDExOCArMjcwLDYgQEAg dm9pZCAqZHB1X2RlYnVnZnNfZ2V0X3Jvb3Qoc3RydWN0IGRwdV9rbXMgKmRwdV9rbXMpOwogICov CiAjZGVmaW5lIERQVV9LTVNfSU5GT19NQVhfU0laRQk0MDk2CiAKLS8qKgotICogc3RydWN0IGRw dV9rbXNfaW5mbyAtIGNvbm5lY3RvciBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmVyCi0g KiBAZGF0YTogQXJyYXkgb2YgaW5mb3JtYXRpb24gY2hhcmFjdGVyIGRhdGEKLSAqIEBsZW46IEN1 cnJlbnQgbGVuZ3RoIG9mIGluZm9ybWF0aW9uIGRhdGEKLSAqIEBzdGFnZWRfbGVuOiBUZW1wb3Jh cnkgZGF0YSBidWZmZXIgbGVuZ3RoLCBjb21taXQgdG8KLSAqICAgICAgICAgICAgICBsZW4gdXNp bmcgZHB1X2ttc19pbmZvX3N0b3AKLSAqIEBzdGFydDogV2hldGhlciBvciBub3QgYSBwYXJ0aWFs IGRhdGEgZW50cnkgd2FzIGp1c3Qgc3RhcnRlZAotICovCi1zdHJ1Y3QgZHB1X2ttc19pbmZvIHsK LQljaGFyIGRhdGFbRFBVX0tNU19JTkZPX01BWF9TSVpFXTsKLQl1aW50MzJfdCBsZW47Ci0JdWlu dDMyX3Qgc3RhZ2VkX2xlbjsKLQlib29sIHN0YXJ0OwotfTsKLQotLyoqCi0gKiBEUFVfS01TX0lO Rk9fREFUQSAtIE1hY3JvIGZvciBhY2Nlc3NpbmcgZHB1X2ttc19pbmZvIGRhdGEgYnl0ZXMKLSAq IEBTOiBQb2ludGVyIHRvIGRwdV9rbXNfaW5mbyBzdHJ1Y3R1cmUKLSAqIFJldHVybnM6IFBvaW50 ZXIgdG8gYnl0ZSBkYXRhCi0gKi8KLSNkZWZpbmUgRFBVX0tNU19JTkZPX0RBVEEoUykgICAgKChT KSA/ICgoc3RydWN0IGRwdV9rbXNfaW5mbyAqKShTKSktPmRhdGEgOiAwKQotCi0vKioKLSAqIERQ VV9LTVNfSU5GT19EQVRBTEVOIC0gTWFjcm8gZm9yIGFjY2Vzc2luZyBkcHVfa21zX2luZm8gZGF0 YSBsZW5ndGgKLSAqCQkJaXQgYWRkcyBhbiBleHRyYSBjaGFyYWN0ZXIgbGVuZ3RoIHRvIGNvdW50 IG51bGwuCi0gKiBAUzogUG9pbnRlciB0byBkcHVfa21zX2luZm8gc3RydWN0dXJlCi0gKiBSZXR1 cm5zOiBTaXplIG9mIGF2YWlsYWJsZSBieXRlIGRhdGEKLSAqLwotI2RlZmluZSBEUFVfS01TX0lO Rk9fREFUQUxFTihTKSAoKFMpID8gKChzdHJ1Y3QgZHB1X2ttc19pbmZvICopKFMpKS0+bGVuICsg MSBcCi0JCQkJCQkJOiAwKQotCi0vKioKLSAqIGRwdV9rbXNfaW5mb19yZXNldCAtIHJlc2V0IGRw dV9rbXNfaW5mbyBzdHJ1Y3R1cmUKLSAqIEBpbmZvOiBQb2ludGVyIHRvIGRwdV9rbXNfaW5mbyBz dHJ1Y3R1cmUKLSAqLwotdm9pZCBkcHVfa21zX2luZm9fcmVzZXQoc3RydWN0IGRwdV9rbXNfaW5m byAqaW5mbyk7Ci0KLS8qKgotICogZHB1X2ttc19pbmZvX2FkZF9rZXlpbnQgLSBhZGQgaW50ZWdl ciB2YWx1ZSB0byAnZHB1X2ttc19pbmZvJwotICogQGluZm86IFBvaW50ZXIgdG8gZHB1X2ttc19p bmZvIHN0cnVjdHVyZQotICogQGtleTogUG9pbnRlciB0byBrZXkgc3RyaW5nCi0gKiBAdmFsdWU6 IFNpZ25lZCA2NC1iaXQgaW50ZWdlciB2YWx1ZQotICovCi12b2lkIGRwdV9rbXNfaW5mb19hZGRf a2V5aW50KHN0cnVjdCBkcHVfa21zX2luZm8gKmluZm8sCi0JCWNvbnN0IGNoYXIgKmtleSwKLQkJ aW50NjRfdCB2YWx1ZSk7Ci0KLS8qKgotICogZHB1X2ttc19pbmZvX2FkZF9rZXlzdHIgLSBhZGQg c3RyaW5nIHZhbHVlIHRvICdkcHVfa21zX2luZm8nCi0gKiBAaW5mbzogUG9pbnRlciB0byBkcHVf a21zX2luZm8gc3RydWN0dXJlCi0gKiBAa2V5OiBQb2ludGVyIHRvIGtleSBzdHJpbmcKLSAqIEB2 YWx1ZTogUG9pbnRlciB0byBzdHJpbmcgdmFsdWUKLSAqLwotdm9pZCBkcHVfa21zX2luZm9fYWRk X2tleXN0cihzdHJ1Y3QgZHB1X2ttc19pbmZvICppbmZvLAotCQljb25zdCBjaGFyICprZXksCi0J CWNvbnN0IGNoYXIgKnZhbHVlKTsKLQotLyoqCi0gKiBkcHVfa21zX2luZm9fc3RhcnQgLSBiZWdp biBhZGRpbmcga2V5IHRvICdkcHVfa21zX2luZm8nCi0gKiBVc2FnZToKLSAqICAgICAgZHB1X2tt c19pbmZvX3N0YXJ0KGtleSkKLSAqICAgICAgZHB1X2ttc19pbmZvX2FwcGVuZCh2YWxfMSkKLSAq ICAgICAgLi4uCi0gKiAgICAgIGRwdV9rbXNfaW5mb19hcHBlbmQodmFsX24pCi0gKiAgICAgIGRw dV9rbXNfaW5mb19zdG9wCi0gKiBAaW5mbzogUG9pbnRlciB0byBkcHVfa21zX2luZm8gc3RydWN0 dXJlCi0gKiBAa2V5OiBQb2ludGVyIHRvIGtleSBzdHJpbmcKLSAqLwotdm9pZCBkcHVfa21zX2lu Zm9fc3RhcnQoc3RydWN0IGRwdV9rbXNfaW5mbyAqaW5mbywKLQkJY29uc3QgY2hhciAqa2V5KTsK LQotLyoqCi0gKiBkcHVfa21zX2luZm9fYXBwZW5kIC0gYXBwZW5kIHZhbHVlIHN0cmluZyB0byAn ZHB1X2ttc19pbmZvJwotICogVXNhZ2U6Ci0gKiAgICAgIGRwdV9rbXNfaW5mb19zdGFydChrZXkp Ci0gKiAgICAgIGRwdV9rbXNfaW5mb19hcHBlbmQodmFsXzEpCi0gKiAgICAgIC4uLgotICogICAg ICBkcHVfa21zX2luZm9fYXBwZW5kKHZhbF9uKQotICogICAgICBkcHVfa21zX2luZm9fc3RvcAot ICogQGluZm86IFBvaW50ZXIgdG8gZHB1X2ttc19pbmZvIHN0cnVjdHVyZQotICogQHN0cjogUG9p bnRlciB0byBwYXJ0aWFsIHZhbHVlIHN0cmluZwotICovCi12b2lkIGRwdV9rbXNfaW5mb19hcHBl bmQoc3RydWN0IGRwdV9rbXNfaW5mbyAqaW5mbywKLQkJY29uc3QgY2hhciAqc3RyKTsKLQotLyoq Ci0gKiBkcHVfa21zX2luZm9fYXBwZW5kX2Zvcm1hdCAtIGFwcGVuZCBmb3JtYXQgY29kZSBzdHJp bmcgdG8gJ2RwdV9rbXNfaW5mbycKLSAqIFVzYWdlOgotICogICAgICBkcHVfa21zX2luZm9fc3Rh cnQoa2V5KQotICogICAgICBkcHVfa21zX2luZm9fYXBwZW5kX2Zvcm1hdChmb3VyY2MsIG1vZGlm aWVyKQotICogICAgICAuLi4KLSAqICAgICAgZHB1X2ttc19pbmZvX3N0b3AKLSAqIEBpbmZvOiBQ b2ludGVyIHRvIGRwdV9rbXNfaW5mbyBzdHJ1Y3R1cmUKLSAqIEBwaXhlbF9mb3JtYXQ6IEZPVVJD QyBmb3JtYXQgY29kZQotICogQG1vZGlmaWVyOiA2NC1iaXQgZHJtIGZvcm1hdCBtb2RpZmllcgot ICovCi12b2lkIGRwdV9rbXNfaW5mb19hcHBlbmRfZm9ybWF0KHN0cnVjdCBkcHVfa21zX2luZm8g KmluZm8sCi0JCXVpbnQzMl90IHBpeGVsX2Zvcm1hdCwKLQkJdWludDY0X3QgbW9kaWZpZXIpOwot Ci0vKioKLSAqIGRwdV9rbXNfaW5mb19zdG9wIC0gZmluaXNoIGFkZGluZyBrZXkgdG8gJ2RwdV9r bXNfaW5mbycKLSAqIFVzYWdlOgotICogICAgICBkcHVfa21zX2luZm9fc3RhcnQoa2V5KQotICog ICAgICBkcHVfa21zX2luZm9fYXBwZW5kKHZhbF8xKQotICogICAgICAuLi4KLSAqICAgICAgZHB1 X2ttc19pbmZvX2FwcGVuZCh2YWxfbikKLSAqICAgICAgZHB1X2ttc19pbmZvX3N0b3AKLSAqIEBp bmZvOiBQb2ludGVyIHRvIGRwdV9rbXNfaW5mbyBzdHJ1Y3R1cmUKLSAqLwotdm9pZCBkcHVfa21z X2luZm9fc3RvcChzdHJ1Y3QgZHB1X2ttc19pbmZvICppbmZvKTsKLQogLyoqCiAgKiBWYmxhbmsg ZW5hYmxlL2Rpc2FibGUgZnVuY3Rpb25zCiAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9rbXNfdXRpbHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9rbXNfdXRpbHMuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTgw YjNkYTVhOWZlLi4wMDAwMDAwMDAwMDAKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2ttc191dGlscy5jCisrKyAvZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAKLS8qIENv cHlyaWdodCAoYykgMjAxNS0yMDE4LCBUaGUgTGludXggRm91bmRhdGlvbi4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYW5kCi0gKiBvbmx5IHZlcnNp b24gMiBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KLSAqCi0g KiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgotICovCi0KLSNkZWZpbmUgcHJfZm10KGZtdCkJImRwdS1rbXNf dXRpbHM6WyVzXSAiIGZtdCwgX19mdW5jX18KLQotI2luY2x1ZGUgImRwdV9rbXMuaCIKLQotdm9p ZCBkcHVfa21zX2luZm9fcmVzZXQoc3RydWN0IGRwdV9rbXNfaW5mbyAqaW5mbykKLXsKLQlpZiAo aW5mbykgewotCQlpbmZvLT5sZW4gPSAwOwotCQlpbmZvLT5zdGFnZWRfbGVuID0gMDsKLQl9Ci19 Ci0KLXZvaWQgZHB1X2ttc19pbmZvX2FkZF9rZXlpbnQoc3RydWN0IGRwdV9rbXNfaW5mbyAqaW5m bywKLQkJY29uc3QgY2hhciAqa2V5LAotCQlpbnQ2NF90IHZhbHVlKQotewotCXVpbnQzMl90IGxl bjsKLQotCWlmIChpbmZvICYmIGtleSkgewotCQlsZW4gPSBzbnByaW50ZihpbmZvLT5kYXRhICsg aW5mby0+bGVuLAotCQkJCURQVV9LTVNfSU5GT19NQVhfU0laRSAtIGluZm8tPmxlbiwKLQkJCQki JXM9JWxsZFxuIiwKLQkJCQlrZXksCi0JCQkJdmFsdWUpOwotCi0JCS8qIGNoZWNrIGlmIHNucHJp bnRmIHRydW5jYXRlZCB0aGUgc3RyaW5nICovCi0JCWlmICgoaW5mby0+bGVuICsgbGVuKSA8IERQ VV9LTVNfSU5GT19NQVhfU0laRSkKLQkJCWluZm8tPmxlbiArPSBsZW47Ci0JfQotfQotCi12b2lk IGRwdV9rbXNfaW5mb19hZGRfa2V5c3RyKHN0cnVjdCBkcHVfa21zX2luZm8gKmluZm8sCi0JCWNv bnN0IGNoYXIgKmtleSwKLQkJY29uc3QgY2hhciAqdmFsdWUpCi17Ci0JdWludDMyX3QgbGVuOwot Ci0JaWYgKGluZm8gJiYga2V5ICYmIHZhbHVlKSB7Ci0JCWxlbiA9IHNucHJpbnRmKGluZm8tPmRh dGEgKyBpbmZvLT5sZW4sCi0JCQkJRFBVX0tNU19JTkZPX01BWF9TSVpFIC0gaW5mby0+bGVuLAot CQkJCSIlcz0lc1xuIiwKLQkJCQlrZXksCi0JCQkJdmFsdWUpOwotCi0JCS8qIGNoZWNrIGlmIHNu cHJpbnRmIHRydW5jYXRlZCB0aGUgc3RyaW5nICovCi0JCWlmICgoaW5mby0+bGVuICsgbGVuKSA8 IERQVV9LTVNfSU5GT19NQVhfU0laRSkKLQkJCWluZm8tPmxlbiArPSBsZW47Ci0JfQotfQotCi12 b2lkIGRwdV9rbXNfaW5mb19zdGFydChzdHJ1Y3QgZHB1X2ttc19pbmZvICppbmZvLAotCQljb25z dCBjaGFyICprZXkpCi17Ci0JdWludDMyX3QgbGVuOwotCi0JaWYgKGluZm8gJiYga2V5KSB7Ci0J CWxlbiA9IHNucHJpbnRmKGluZm8tPmRhdGEgKyBpbmZvLT5sZW4sCi0JCQkJRFBVX0tNU19JTkZP X01BWF9TSVpFIC0gaW5mby0+bGVuLAotCQkJCSIlcz0iLAotCQkJCWtleSk7Ci0KLQkJaW5mby0+ c3RhcnQgPSB0cnVlOwotCi0JCS8qIGNoZWNrIGlmIHNucHJpbnRmIHRydW5jYXRlZCB0aGUgc3Ry aW5nICovCi0JCWlmICgoaW5mby0+bGVuICsgbGVuKSA8IERQVV9LTVNfSU5GT19NQVhfU0laRSkK LQkJCWluZm8tPnN0YWdlZF9sZW4gPSBpbmZvLT5sZW4gKyBsZW47Ci0JfQotfQotCi12b2lkIGRw dV9rbXNfaW5mb19hcHBlbmQoc3RydWN0IGRwdV9rbXNfaW5mbyAqaW5mbywKLQkJY29uc3QgY2hh ciAqc3RyKQotewotCXVpbnQzMl90IGxlbjsKLQotCWlmIChpbmZvKSB7Ci0JCWxlbiA9IHNucHJp bnRmKGluZm8tPmRhdGEgKyBpbmZvLT5zdGFnZWRfbGVuLAotCQkJCURQVV9LTVNfSU5GT19NQVhf U0laRSAtIGluZm8tPnN0YWdlZF9sZW4sCi0JCQkJIiVzIiwKLQkJCQlzdHIpOwotCi0JCS8qIGNo ZWNrIGlmIHNucHJpbnRmIHRydW5jYXRlZCB0aGUgc3RyaW5nICovCi0JCWlmICgoaW5mby0+c3Rh Z2VkX2xlbiArIGxlbikgPCBEUFVfS01TX0lORk9fTUFYX1NJWkUpIHsKLQkJCWluZm8tPnN0YWdl ZF9sZW4gKz0gbGVuOwotCQkJaW5mby0+c3RhcnQgPSBmYWxzZTsKLQkJfQotCX0KLX0KLQotdm9p ZCBkcHVfa21zX2luZm9fYXBwZW5kX2Zvcm1hdChzdHJ1Y3QgZHB1X2ttc19pbmZvICppbmZvLAot CQl1aW50MzJfdCBwaXhlbF9mb3JtYXQsCi0JCXVpbnQ2NF90IG1vZGlmaWVyKQotewotCXVpbnQz Ml90IGxlbjsKLQotCWlmICghaW5mbykKLQkJcmV0dXJuOwotCi0JaWYgKG1vZGlmaWVyKSB7Ci0J CWxlbiA9IHNucHJpbnRmKGluZm8tPmRhdGEgKyBpbmZvLT5zdGFnZWRfbGVuLAotCQkJCURQVV9L TVNfSU5GT19NQVhfU0laRSAtIGluZm8tPnN0YWdlZF9sZW4sCi0JCQkJaW5mby0+c3RhcnQgPwot CQkJCSIlYyVjJWMlYy8lbGxYLyVsbFgiIDogIiAlYyVjJWMlYy8lbGxYLyVsbFgiLAotCQkJCShw aXhlbF9mb3JtYXQgPj4gMCkgJiAweEZGLAotCQkJCShwaXhlbF9mb3JtYXQgPj4gOCkgJiAweEZG LAotCQkJCShwaXhlbF9mb3JtYXQgPj4gMTYpICYgMHhGRiwKLQkJCQkocGl4ZWxfZm9ybWF0ID4+ IDI0KSAmIDB4RkYsCi0JCQkJKG1vZGlmaWVyID4+IDU2KSAmIDB4RkYsCi0JCQkJbW9kaWZpZXIg JiAoKDFVTEwgPDwgNTYpIC0gMSkpOwotCX0gZWxzZSB7Ci0JCWxlbiA9IHNucHJpbnRmKGluZm8t PmRhdGEgKyBpbmZvLT5zdGFnZWRfbGVuLAotCQkJCURQVV9LTVNfSU5GT19NQVhfU0laRSAtIGlu Zm8tPnN0YWdlZF9sZW4sCi0JCQkJaW5mby0+c3RhcnQgPwotCQkJCSIlYyVjJWMlYyIgOiAiICVj JWMlYyVjIiwKLQkJCQkocGl4ZWxfZm9ybWF0ID4+IDApICYgMHhGRiwKLQkJCQkocGl4ZWxfZm9y bWF0ID4+IDgpICYgMHhGRiwKLQkJCQkocGl4ZWxfZm9ybWF0ID4+IDE2KSAmIDB4RkYsCi0JCQkJ KHBpeGVsX2Zvcm1hdCA+PiAyNCkgJiAweEZGKTsKLQl9Ci0KLQkvKiBjaGVjayBpZiBzbnByaW50 ZiB0cnVuY2F0ZWQgdGhlIHN0cmluZyAqLwotCWlmICgoaW5mby0+c3RhZ2VkX2xlbiArIGxlbikg PCBEUFVfS01TX0lORk9fTUFYX1NJWkUpIHsKLQkJaW5mby0+c3RhZ2VkX2xlbiArPSBsZW47Ci0J CWluZm8tPnN0YXJ0ID0gZmFsc2U7Ci0JfQotfQotCi12b2lkIGRwdV9rbXNfaW5mb19zdG9wKHN0 cnVjdCBkcHVfa21zX2luZm8gKmluZm8pCi17Ci0JdWludDMyX3QgbGVuOwotCi0JaWYgKGluZm8p IHsKLQkJLyogaW5zZXJ0IGZpbmFsIGRlbGltaXRlciAqLwotCQlsZW4gPSBzbnByaW50ZihpbmZv LT5kYXRhICsgaW5mby0+c3RhZ2VkX2xlbiwKLQkJCQlEUFVfS01TX0lORk9fTUFYX1NJWkUgLSBp bmZvLT5zdGFnZWRfbGVuLAotCQkJCSJcbiIpOwotCi0JCS8qIGNoZWNrIGlmIHNucHJpbnRmIHRy dW5jYXRlZCB0aGUgc3RyaW5nICovCi0JCWlmICgoaW5mby0+c3RhZ2VkX2xlbiArIGxlbikgPCBE UFVfS01TX0lORk9fTUFYX1NJWkUpCi0JCQlpbmZvLT5sZW4gPSBpbmZvLT5zdGFnZWRfbGVuICsg bGVuOwotCX0KLX0KLS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZnJlZWRyZW5vCg==