From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 11/12] drm/i915: Keep track of the cdclk as if all crtc's were active. Date: Thu, 19 Nov 2015 16:07:24 +0100 Message-ID: <1447945645-32005-12-git-send-email-maarten.lankhorst@linux.intel.com> References: <1447945645-32005-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 7A5AD6E994 for ; Thu, 19 Nov 2015 07:07:38 -0800 (PST) In-Reply-To: <1447945645-32005-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 T24gc2t5bGFrZSB3aGVuIGNhbGN1bGF0aW5nIHBsYW5lIHZpc2liaWxpdHkgd2l0aCB0aGUgY3J0 YyBpbgpkcG1zIG9mZiBtb2RlIHRoZSByZWFsIGNkY2xrIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB3 aGF0IGl0IHdvdWxkIGJlCmlmIHRoZSBjcnRjIHdhcyBhY3RpdmUuIFRoaXMgbWF5IHJlc3VsdCBp biBhIFdBUk5fT04oY2RjbGsgPCBjcnRjX2Nsb2NrKQpmcm9tIHNrbF9tYXhfc2NhbGUuIFRoZSBm aXggaXMgdG8ga2VlcCBhIGF0b21pY19jZGNsayB0aGF0IHdvdWxkIGJlIHRydWUKaWYgYWxsIGNy dGMncyB3ZXJlIGFjdGl2ZS4KClRoaXMgaXMgcmVxdWlyZWQgdG8gZ2V0IHRoZSBzYW1lIGNhbGN1 bGF0aW9ucyBkb25lIGNvcnJlY3RseSByZWdhcmRsZXNzCm9mIGRwbXMgbW9kZS4KClNpZ25lZC1v ZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5j b20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDU1ICsrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAg IHwgIDYgKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzY2FlY2Y4OTZmMTcuLmYzYWQ3MmFi ZWVhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xNzc2LDcgKzE3NzYsNyBAQCBzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAKIAl1bnNpZ25lZCBpbnQgZnNiX2ZyZXEsIG1lbV9mcmVx LCBpc19kZHIzOwogCXVuc2lnbmVkIGludCBza2xfYm9vdF9jZGNsazsKLQl1bnNpZ25lZCBpbnQg Y2RjbGtfZnJlcSwgbWF4X2NkY2xrX2ZyZXE7CisJdW5zaWduZWQgaW50IGNkY2xrX2ZyZXEsIG1h eF9jZGNsa19mcmVxLCBhdG9taWNfY2RjbGtfZnJlcTsKIAl1bnNpZ25lZCBpbnQgbWF4X2RvdGNs a19mcmVxOwogCXVuc2lnbmVkIGludCBocGxsX2ZyZXE7CiAJdW5zaWduZWQgaW50IGN6Y2xrX2Zy ZXE7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggN2Y2OWY5OGQ4YjIzLi5i MmJmOTJhM2I3MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTUzMTIs NiArNTMxMiw3IEBAIHN0YXRpYyB2b2lkIG1vZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0aWMgdm9pZCBtb2Rlc2V0X3VwZGF0 ZV9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewor CXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKHN0YXRlKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXVu c2lnbmVkIGxvbmcgcHV0X2RvbWFpbnNbSTkxNV9NQVhfUElQRVNdID0ge307CkBAIC01MzI1LDEz ICs1MzI2LDkgQEAgc3RhdGljIHZvaWQgbW9kZXNldF91cGRhdGVfY3J0Y19wb3dlcl9kb21haW5z KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCQltb2Rlc2V0X2dldF9jcnRjX3Bv d2VyX2RvbWFpbnMoY3J0Yyk7CiAJfQogCi0JaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRf Y29tbWl0X2NkY2xrKSB7Ci0JCXVuc2lnbmVkIGludCBjZGNsayA9IHRvX2ludGVsX2F0b21pY19z dGF0ZShzdGF0ZSktPmNkY2xrOwotCi0JCWlmIChjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGtfZnJl cSAmJgotCQkgICAgIVdBUk5fT04oIXN0YXRlLT5hbGxvd19tb2Rlc2V0KSkKLQkJCWRldl9wcml2 LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xrKHN0YXRlKTsKLQl9CisJaWYgKGRldl9wcml2 LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xrICYmCisJICAgIGludGVsX3N0YXRlLT5kZXZf Y2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEpCisJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVz ZXRfY29tbWl0X2NkY2xrKHN0YXRlKTsKIAogCWZvciAoaSA9IDA7IGkgPCBJOTE1X01BWF9QSVBF UzsgaSsrKQogCQlpZiAocHV0X2RvbWFpbnNbaV0pCkBAIC02MDM5LDEzICs2MDM2LDE4IEBAIHN0 YXRpYyBpbnQgdmFsbGV5dmlld19tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50 IG1heF9waXhjbGsgPSBpbnRlbF9tb2RlX21heF9waXhjbGsoZGV2LCBzdGF0ZSk7CisJc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQorCQl0b19pbnRlbF9hdG9taWNfc3Rh dGUoc3RhdGUpOwogCiAJaWYgKG1heF9waXhjbGsgPCAwKQogCQlyZXR1cm4gbWF4X3BpeGNsazsK IAotCXRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrID0KKwlpbnRlbF9zdGF0ZS0+ Y2RjbGsgPSBpbnRlbF9zdGF0ZS0+ZGV2X2NkY2xrID0KIAkJdmFsbGV5dmlld19jYWxjX2NkY2xr KGRldl9wcml2LCBtYXhfcGl4Y2xrKTsKIAorCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRj cykKKwkJaW50ZWxfc3RhdGUtPmRldl9jZGNsayA9IHZhbGxleXZpZXdfY2FsY19jZGNsayhkZXZf cHJpdiwgMCk7CisKIAlyZXR1cm4gMDsKIH0KIApAQCAtNjA1NCwxMyArNjA1NiwxOCBAQCBzdGF0 aWMgaW50IGJyb3h0b25fbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCWludCBtYXhf cGl4Y2xrID0gaW50ZWxfbW9kZV9tYXhfcGl4Y2xrKGRldiwgc3RhdGUpOworCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0 YXRlKTsKIAogCWlmIChtYXhfcGl4Y2xrIDwgMCkKIAkJcmV0dXJuIG1heF9waXhjbGs7CiAKLQl0 b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5jZGNsayA9CisJaW50ZWxfc3RhdGUtPmNkY2xr ID0gaW50ZWxfc3RhdGUtPmRldl9jZGNsayA9CiAJCWJyb3h0b25fY2FsY19jZGNsayhkZXZfcHJp diwgbWF4X3BpeGNsayk7CiAKKwlpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpCisJCWlu dGVsX3N0YXRlLT5kZXZfY2RjbGsgPSBicm94dG9uX2NhbGNfY2RjbGsoZGV2X3ByaXYsIDApOwor CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTYxMDMsOCArNjExMCwxMCBAQCBzdGF0aWMgdm9pZCB2bHZf cHJvZ3JhbV9wZmlfY3JlZGl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBz dGF0aWMgdm9pZCB2YWxsZXl2aWV3X21vZGVzZXRfY29tbWl0X2NkY2xrKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9sZF9z dGF0ZS0+ZGV2OwotCXVuc2lnbmVkIGludCByZXFfY2RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3Rh dGUob2xkX3N0YXRlKS0+Y2RjbGs7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfaW50 ZWxfc3RhdGUgPQorCQl0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKTsKKwl1bnNpZ25l ZCByZXFfY2RjbGsgPSBvbGRfaW50ZWxfc3RhdGUtPmRldl9jZGNsazsKIAogCS8qCiAJICogRklY TUU6IFdlIGNhbiBlbmQgdXAgaGVyZSB3aXRoIGFsbCBwb3dlciBkb21haW5zIG9mZiwgeWV0CkBA IC05NTc0LDcgKzk1ODMsOSBAQCB2b2lkIGhzd19kaXNhYmxlX3BjOChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBicm94dG9uX21vZGVzZXRfY29tbWl0X2Nk Y2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IG9sZF9zdGF0ZS0+ZGV2OwotCXVuc2lnbmVkIGludCByZXFfY2RjbGsgPSB0 b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKS0+Y2RjbGs7CisJc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG9s ZF9zdGF0ZSk7CisJdW5zaWduZWQgaW50IHJlcV9jZGNsayA9IG9sZF9pbnRlbF9zdGF0ZS0+ZGV2 X2NkY2xrOwogCiAJYnJveHRvbl9zZXRfY2RjbGsoZGV2LCByZXFfY2RjbGspOwogfQpAQCAtOTcw MCw2ICs5NzExLDcgQEAgc3RhdGljIHZvaWQgYnJvYWR3ZWxsX3NldF9jZGNsayhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgY2RjbGspCiBzdGF0aWMgaW50IGJyb2Fkd2VsbF9tb2Rlc2V0X2Nh bGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7CisJc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3Rh dGUpOwogCWludCBtYXhfcGl4Y2xrID0gaWxrX21heF9waXhlbF9yYXRlKHN0YXRlKTsKIAlpbnQg Y2RjbGs7CiAKQEAgLTk3MjIsNyArOTczNCw5IEBAIHN0YXRpYyBpbnQgYnJvYWR3ZWxsX21vZGVz ZXRfY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCXJldHVybiAt RUlOVkFMOwogCX0KIAotCXRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrID0gY2Rj bGs7CisJaW50ZWxfc3RhdGUtPmNkY2xrID0gaW50ZWxfc3RhdGUtPmRldl9jZGNsayA9IGNkY2xr OworCWlmICghaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcykKKwkJaW50ZWxfc3RhdGUtPmRldl9j ZGNsayA9IDMzNzUwMDsKIAogCXJldHVybiAwOwogfQpAQCAtOTczMCw3ICs5NzQ0LDkgQEAgc3Rh dGljIGludCBicm9hZHdlbGxfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKIHN0YXRpYyB2b2lkIGJyb2Fkd2VsbF9tb2Rlc2V0X2NvbW1pdF9jZGNsayhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBvbGRfc3RhdGUtPmRldjsKLQl1bnNpZ25lZCBpbnQgcmVxX2NkY2xrID0gdG9faW50 ZWxfYXRvbWljX3N0YXRlKG9sZF9zdGF0ZSktPmNkY2xrOworCXN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKm9sZF9pbnRlbF9zdGF0ZSA9CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3Rh dGUpOworCXVuc2lnbmVkIHJlcV9jZGNsayA9IG9sZF9pbnRlbF9zdGF0ZS0+ZGV2X2NkY2xrOwog CiAJYnJvYWR3ZWxsX3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7CiB9CkBAIC0xMzA2NiwxOCAr MTMwODIsMTUgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAJICogYWRqdXN0ZWRfbW9kZSBiaXRzIGluIHRoZSBjcnRjIGRp cmVjdGx5LgogCSAqLwogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsp IHsKLQkJdW5zaWduZWQgaW50IGNkY2xrOwotCiAJCXJldCA9IGRldl9wcml2LT5kaXNwbGF5Lm1v ZGVzZXRfY2FsY19jZGNsayhzdGF0ZSk7CiAKLQkJY2RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3Rh dGUoc3RhdGUpLT5jZGNsazsKLQkJaWYgKCFyZXQgJiYgY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xr X2ZyZXEpCisJCWlmICghcmV0ICYmIGludGVsX3N0YXRlLT5kZXZfY2RjbGsgIT0gZGV2X3ByaXYt PmNkY2xrX2ZyZXEpCiAJCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7CiAK IAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4gcmV0OwogCX0gZWxzZQotCQl0b19pbnRlbF9hdG9t aWNfc3RhdGUoc3RhdGUpLT5jZGNsayA9IGRldl9wcml2LT5jZGNsa19mcmVxOworCQl0b19pbnRl bF9hdG9taWNfc3RhdGUoc3RhdGUpLT5jZGNsayA9IGRldl9wcml2LT5hdG9taWNfY2RjbGtfZnJl cTsKIAogCWludGVsX21vZGVzZXRfY2xlYXJfcGxscyhzdGF0ZSk7CiAKQEAgLTEzMzU4LDYgKzEz MzcxLDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCW1lbWNweShkZXZfcHJpdi0+bWluX3BpeGNsaywgaW50ZWxfc3RhdGUtPm1pbl9w aXhjbGssCiAJCSAgICAgICBzaXplb2YoaW50ZWxfc3RhdGUtPm1pbl9waXhjbGspKTsKIAkJZGV2 X3ByaXYtPmFjdGl2ZV9jcnRjcyA9IGludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3M7CisJCWRldl9w cml2LT5hdG9taWNfY2RjbGtfZnJlcSA9IGludGVsX3N0YXRlLT5jZGNsazsKIAl9CiAKIAlmb3Jf ZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CkBAIC0xNTAy Niw3ICsxNTA0MCwxMiBAQCBzdGF0aWMgdm9pZCBpOTE1X2Rpc2FibGVfdmdhKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAKIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0X2h3KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKKwogCWludGVsX3VwZGF0ZV9jZGNsayhkZXYpOworCisJZGV2X3ByaXYtPmF0 b21pY19jZGNsa19mcmVxID0gZGV2X3ByaXYtPmNkY2xrX2ZyZXE7CisKIAlpbnRlbF9wcmVwYXJl X2RkaShkZXYpOwogCWludGVsX2luaXRfY2xvY2tfZ2F0aW5nKGRldik7CiAJaW50ZWxfZW5hYmxl X2d0X3Bvd2Vyc2F2ZShkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBkMmUxZGM2 OThmY2EuLjdmZDAyNWY2NGY0YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTI0Nyw2 ICsyNDcsMTIgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSB7CiAKIAl1bnNpZ25lZCBpbnQg Y2RjbGs7CiAKKwkvKgorCSAqIENhbGN1bGF0ZWQgZGV2aWNlIGNkY2xrLCBjYW4gYmUgZGlmZmVy ZW50IGZyb20gY2RjbGsKKwkgKiBvbmx5IHdoZW4gYWxsIGNydGMncyBhcmUgRFBNUyBvZmYuCisJ ICovCisJdW5zaWduZWQgaW50IGRldl9jZGNsazsKKwogCWJvb2wgZHBsbF9zZXQsIG1vZGVzZXQ7 CiAKIAl1bnNpZ25lZCBpbnQgYWN0aXZlX2NydGNzOwotLSAKMi4xLjAKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==