From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 3/3] drm/i915: Use atomic state to obtain load detection crtc, v3. Date: Tue, 9 Feb 2016 13:52:23 +0100 Message-ID: <1455022343-15222-3-git-send-email-maarten.lankhorst@linux.intel.com> References: <20160203163408.GF23290@intel.com> <1455022343-15222-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id D0B3D6E13C for ; Tue, 9 Feb 2016 04:52:28 -0800 (PST) In-Reply-To: <1455022343-15222-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SW5zdGVhZCBvZiByZXN0b3JpbmcgZHBtcyBhbmQgYSBmbGFnIGZvciB3aGV0aGVyIGEgdGVtcCBm YiBpcyBhbGxvY2F0ZWQgZHVwbGljYXRlCmFuIGF0b21pYyBzdGF0ZSBiZWZvcmUgdGhlIG5ldyBz dGF0ZSBpcyBjb21taXR0ZWQsIGFuZCBjb21taXQgaXQgdGhlIG9sZCBzdGF0ZQppbiBpbnRlbF9y ZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUuCgpDaGFuZ2VzIHNpbmNlIHYxOgotIFVzZSBhIHJlYWwg YXRvbWljIHN0YXRlLiAoVmlsbGUpCkNoYW5nZXMgc2luY2UgdjI6Ci0gRG8gbm90IHByZXNlcnZl IHNoYXJlZF9kcGxsIGFueSBtb3JlLCBubyBuZWVkIHRvIGRvIHNvLiAoVmlsbGUpCgpTaWduZWQt b2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEzMiArKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggICAgIHwgICA0ICstCiAyIGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyks IDgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA0 YzkxZmQxYzUyMjIuLmFkNmQyM2MxN2Q0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwpAQCAtMTAzMzIsNiArMTAzMzIsNyBAQCBtb2RlX2ZpdHNfaW5fZmJkZXYoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAlpZiAob2JqLT5iYXNlLnNpemUgPCBtb2RlLT52ZGlzcGxheSAqIGZi LT5waXRjaGVzWzBdKQogCQlyZXR1cm4gTlVMTDsKIAorCWRybV9mcmFtZWJ1ZmZlcl9yZWZlcmVu Y2UoZmIpOwogCXJldHVybiBmYjsKICNlbHNlCiAJcmV0dXJuIE5VTEw7CkBAIC0xMDM4Nyw3ICsx MDM4OCw3IEBAIGJvb2wgaW50ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2 OwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwogCXN0cnVjdCBkcm1fbW9kZV9jb25maWcg KmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IE5VTEw7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gTlVMTCwgKnJl c3RvcmVfc3RhdGUgPSBOVUxMOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0 b3Jfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJaW50IHJl dCwgaSA9IC0xOwpAQCAtMTAzOTYsNiArMTAzOTcsOCBAQCBib29sIGludGVsX2dldF9sb2FkX2Rl dGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCSAgICAgIGNvbm5l Y3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lLAogCQkgICAgICBlbmNvZGVyLT5iYXNlLmlk LCBlbmNvZGVyLT5uYW1lKTsKIAorCW9sZC0+cmVzdG9yZV9zdGF0ZSA9IE5VTEw7CisKIHJldHJ5 OgogCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNvbmZpZy0+Y29ubmVjdGlvbl9tdXRleCwgY3R4 KTsKIAlpZiAocmV0KQpAQCAtMTA0MTIsMjQgKzEwNDE1LDE1IEBAIHJldHJ5OgogCSAqLwogCiAJ LyogU2VlIGlmIHdlIGFscmVhZHkgaGF2ZSBhIENSVEMgZm9yIHRoaXMgY29ubmVjdG9yICovCi0J aWYgKGVuY29kZXItPmNydGMpIHsKLQkJY3J0YyA9IGVuY29kZXItPmNydGM7CisJaWYgKGNvbm5l Y3Rvci0+c3RhdGUtPmNydGMpIHsKKwkJY3J0YyA9IGNvbm5lY3Rvci0+c3RhdGUtPmNydGM7CiAK IAkJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+bXV0ZXgsIGN0eCk7CiAJCWlmIChyZXQp CiAJCQlnb3RvIGZhaWw7Ci0JCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPnByaW1hcnkt Pm11dGV4LCBjdHgpOwotCQlpZiAocmV0KQotCQkJZ290byBmYWlsOwotCi0JCW9sZC0+ZHBtc19t b2RlID0gY29ubmVjdG9yLT5kcG1zOwotCQlvbGQtPmxvYWRfZGV0ZWN0X3RlbXAgPSBmYWxzZTsK IAogCQkvKiBNYWtlIHN1cmUgdGhlIGNydGMgYW5kIGNvbm5lY3RvciBhcmUgcnVubmluZyAqLwot CQlpZiAoY29ubmVjdG9yLT5kcG1zICE9IERSTV9NT0RFX0RQTVNfT04pCi0JCQljb25uZWN0b3It PmZ1bmNzLT5kcG1zKGNvbm5lY3RvciwgRFJNX01PREVfRFBNU19PTik7Ci0KLQkJcmV0dXJuIHRy dWU7CisJCWdvdG8gZm91bmQ7CiAJfQogCiAJLyogRmluZCBhbiB1bnVzZWQgb25lIChpZiBwb3Nz aWJsZSkgKi8KQEAgLTEwNDM3LDggKzEwNDMxLDE1IEBAIHJldHJ5OgogCQlpKys7CiAJCWlmICgh KGVuY29kZXItPnBvc3NpYmxlX2NydGNzICYgKDEgPDwgaSkpKQogCQkJY29udGludWU7Ci0JCWlm IChwb3NzaWJsZV9jcnRjLT5zdGF0ZS0+ZW5hYmxlKQorCisJCXJldCA9IGRybV9tb2Rlc2V0X2xv Y2soJnBvc3NpYmxlX2NydGMtPm11dGV4LCBjdHgpOworCQlpZiAocmV0KQorCQkJZ290byBmYWls OworCisJCWlmIChwb3NzaWJsZV9jcnRjLT5zdGF0ZS0+ZW5hYmxlKSB7CisJCQlkcm1fbW9kZXNl dF91bmxvY2soJnBvc3NpYmxlX2NydGMtPm11dGV4KTsKIAkJCWNvbnRpbnVlOworCQl9CiAKIAkJ Y3J0YyA9IHBvc3NpYmxlX2NydGM7CiAJCWJyZWFrOwpAQCAtMTA0NTIsMjMgKzEwNDUzLDIyIEBA IHJldHJ5OgogCQlnb3RvIGZhaWw7CiAJfQogCi0JcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0 Yy0+bXV0ZXgsIGN0eCk7Ci0JaWYgKHJldCkKLQkJZ290byBmYWlsOworZm91bmQ6CisJaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisKIAlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZj cnRjLT5wcmltYXJ5LT5tdXRleCwgY3R4KTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKLQlp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlvbGQtPmRwbXNfbW9kZSA9IGNvbm5l Y3Rvci0+ZHBtczsKLQlvbGQtPmxvYWRfZGV0ZWN0X3RlbXAgPSB0cnVlOwotCW9sZC0+cmVsZWFz ZV9mYiA9IE5VTEw7Ci0KIAlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKLQlp ZiAoIXN0YXRlKQotCQlyZXR1cm4gZmFsc2U7CisJcmVzdG9yZV9zdGF0ZSA9IGRybV9hdG9taWNf c3RhdGVfYWxsb2MoZGV2KTsKKwlpZiAoIXN0YXRlIHx8ICFyZXN0b3JlX3N0YXRlKSB7CisJCXJl dCA9IC1FTk9NRU07CisJCWdvdG8gZmFpbDsKKwl9CiAKIAlzdGF0ZS0+YWNxdWlyZV9jdHggPSBj dHg7CisJcmVzdG9yZV9zdGF0ZS0+YWNxdWlyZV9jdHggPSBjdHg7CiAKIAljb25uZWN0b3Jfc3Rh dGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7CiAJ aWYgKElTX0VSUihjb25uZWN0b3Jfc3RhdGUpKSB7CkBAIC0xMDQ3Niw3ICsxMDQ3Niw5IEBAIHJl dHJ5OgogCQlnb3RvIGZhaWw7CiAJfQogCi0JY29ubmVjdG9yX3N0YXRlLT5jcnRjID0gY3J0YzsK KwlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9jb25uZWN0b3IoY29ubmVjdG9yX3N0YXRl LCBjcnRjKTsKKwlpZiAocmV0KQorCQlnb3RvIGZhaWw7CiAKIAljcnRjX3N0YXRlID0gaW50ZWxf YXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKIAlpZiAoSVNfRVJSKGNy dGNfc3RhdGUpKSB7CkBAIC0xMDUwMCw3ICsxMDUwMiw2IEBAIHJldHJ5OgogCWlmIChmYiA9PSBO VUxMKSB7CiAJCURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHRtcCBmYiBmb3IgbG9hZC1kZXRlY3Rp b25cbiIpOwogCQlmYiA9IGludGVsX2ZyYW1lYnVmZmVyX2NyZWF0ZV9mb3JfbW9kZShkZXYsIG1v ZGUsIDI0LCAzMik7Ci0JCW9sZC0+cmVsZWFzZV9mYiA9IGZiOwogCX0gZWxzZQogCQlEUk1fREVC VUdfS01TKCJyZXVzaW5nIGZiZGV2IGZvciBsb2FkLWRldGVjdGlvbiBmcmFtZWJ1ZmZlclxuIik7 CiAJaWYgKElTX0VSUihmYikpIHsKQEAgLTEwNTEyLDE1ICsxMDUxMywyOCBAQCByZXRyeToKIAlp ZiAocmV0KQogCQlnb3RvIGZhaWw7CiAKLQlkcm1fbW9kZV9jb3B5KCZjcnRjX3N0YXRlLT5iYXNl Lm1vZGUsIG1vZGUpOworCWRybV9mcmFtZWJ1ZmZlcl91bnJlZmVyZW5jZShmYik7CisKKwlyZXQg PSBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKCZjcnRjX3N0YXRlLT5iYXNlLCBtb2RlKTsK KwlpZiAocmV0KQorCQlnb3RvIGZhaWw7CisKKwlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0 b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHJlc3RvcmVfc3RhdGUsIGNvbm5lY3RvcikpOworCWlm ICghcmV0KQorCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0 ZShyZXN0b3JlX3N0YXRlLCBjcnRjKSk7CisJaWYgKCFyZXQpCisJCXJldCA9IFBUUl9FUlJfT1Jf WkVSTyhkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0ZShyZXN0b3JlX3N0YXRlLCBjcnRjLT5wcmlt YXJ5KSk7CisJaWYgKHJldCkgeworCQlEUk1fREVCVUdfS01TKCJGYWlsZWQgdG8gY3JlYXRlIGEg Y29weSBvZiBvbGQgc3RhdGUgdG8gcmVzdG9yZTogJWlcbiIsIHJldCk7CisJCWdvdG8gZmFpbDsK Kwl9CiAKIAlpZiAoZHJtX2F0b21pY19jb21taXQoc3RhdGUpKSB7CiAJCURSTV9ERUJVR19LTVMo ImZhaWxlZCB0byBzZXQgbW9kZSBvbiBsb2FkLWRldGVjdCBwaXBlXG4iKTsKLQkJaWYgKG9sZC0+ cmVsZWFzZV9mYikKLQkJCW9sZC0+cmVsZWFzZV9mYi0+ZnVuY3MtPmRlc3Ryb3kob2xkLT5yZWxl YXNlX2ZiKTsKIAkJZ290byBmYWlsOwogCX0KLQljcnRjLT5wcmltYXJ5LT5jcnRjID0gY3J0YzsK KworCW9sZC0+cmVzdG9yZV9zdGF0ZSA9IHJlc3RvcmVfc3RhdGU7CiAKIAkvKiBsZXQgdGhlIGNv bm5lY3RvciBnZXQgdGhyb3VnaCBvbmUgZnVsbCBjeWNsZSBiZWZvcmUgdGVzdGluZyAqLwogCWlu dGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIGludGVsX2NydGMtPnBpcGUpOwpAQCAtMTA1MjgsNyAr MTA1NDIsOCBAQCByZXRyeToKIAogZmFpbDoKIAlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUp OwotCXN0YXRlID0gTlVMTDsKKwlkcm1fYXRvbWljX3N0YXRlX2ZyZWUocmVzdG9yZV9zdGF0ZSk7 CisJcmVzdG9yZV9zdGF0ZSA9IHN0YXRlID0gTlVMTDsKIAogCWlmIChyZXQgPT0gLUVERUFETEsp IHsKIAkJZHJtX21vZGVzZXRfYmFja29mZihjdHgpOwpAQCAtMTA1NDIsNjUgKzEwNTU3LDI0IEBA IHZvaWQgaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCiAJCQkJICAgIHN0cnVjdCBpbnRlbF9sb2FkX2RldGVjdF9waXBlICpvbGQs CiAJCQkJICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQogewotCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlciA9CiAJCWludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKTsK IAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKLQlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBlbmNvZGVyLT5jcnRjOwotCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGU7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0 ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUgPSBvbGQtPnJlc3RvcmVfc3RhdGU7CiAJaW50IHJldDsKIAogCURS TV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdLCBbRU5DT0RFUjolZDolc11cbiIsCiAJCSAg ICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lLAogCQkgICAgICBlbmNvZGVy LT5iYXNlLmlkLCBlbmNvZGVyLT5uYW1lKTsKIAotCWlmIChvbGQtPmxvYWRfZGV0ZWN0X3RlbXAp IHsKLQkJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Ci0JCWlmICghc3RhdGUp Ci0JCQlnb3RvIGZhaWw7Ci0KLQkJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4OwotCi0JCWNvbm5l Y3Rvcl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubmVj dG9yKTsKLQkJaWYgKElTX0VSUihjb25uZWN0b3Jfc3RhdGUpKQotCQkJZ290byBmYWlsOwotCi0J CWNydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2Ny dGMpOwotCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQotCQkJZ290byBmYWlsOwotCi0JCWNvbm5l Y3Rvcl9zdGF0ZS0+Y3J0YyA9IE5VTEw7Ci0KLQkJY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPSBj cnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSA9IGZhbHNlOwotCi0JCXJldCA9IGludGVsX21vZGVzZXRf c2V0dXBfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMsIE5VTEwsIE5VTEwsCi0JCQkJCQkgICAgICAw LCAwKTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZmFpbDsKLQotCQlyZXQgPSBkcm1fYXRvbWljX2Nv bW1pdChzdGF0ZSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGZhaWw7Ci0KLQkJaWYgKG9sZC0+cmVs ZWFzZV9mYikgewotCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZShvbGQtPnJl bGVhc2VfZmIpOwotCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKG9sZC0+cmVsZWFzZV9m Yik7Ci0JCX0KLQorCWlmICghc3RhdGUpCiAJCXJldHVybjsKLQl9Ci0KLQkvKiBTd2l0Y2ggY3J0 YyBhbmQgZW5jb2RlciBiYWNrIG9mZiBpZiBuZWNlc3NhcnkgKi8KLQlpZiAob2xkLT5kcG1zX21v ZGUgIT0gRFJNX01PREVfRFBNU19PTikKLQkJY29ubmVjdG9yLT5mdW5jcy0+ZHBtcyhjb25uZWN0 b3IsIG9sZC0+ZHBtc19tb2RlKTsKIAotCXJldHVybjsKLWZhaWw6Ci0JRFJNX0RFQlVHX0tNUygi Q291bGRuJ3QgcmVsZWFzZSBsb2FkIGRldGVjdCBwaXBlLlxuIik7Ci0JZHJtX2F0b21pY19zdGF0 ZV9mcmVlKHN0YXRlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CisJaWYgKHJl dCkgeworCQlEUk1fREVCVUdfS01TKCJDb3VsZG4ndCByZWxlYXNlIGxvYWQgZGV0ZWN0IHBpcGU6 ICVpXG4iLCByZXQpOworCQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOworCX0KIH0KIAog c3RhdGljIGludCBpOXh4X3BsbF9yZWZjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggODc4MTcyYTQ1ZjM5Li4zMzVlNmIyNGIwYmMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC05MTAsOSArOTEwLDcgQEAgc3RydWN0IGludGVsX3Vu cGluX3dvcmsgewogfTsKIAogc3RydWN0IGludGVsX2xvYWRfZGV0ZWN0X3BpcGUgewotCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKnJlbGVhc2VfZmI7Ci0JYm9vbCBsb2FkX2RldGVjdF90ZW1wOwot CWludCBkcG1zX21vZGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnJlc3RvcmVfc3RhdGU7 CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmNvZGVyICoKLS0gCjIuMS4wCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK