From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mahesh Kumar Subject: [PATCH 2/3] drm/i915/icl: Enable 2nd DBuf slice only when needed Date: Thu, 5 Apr 2018 11:30:18 +0530 Message-ID: <20180405060019.4018-3-mahesh1.kumar@intel.com> References: <20180405060019.4018-1-mahesh1.kumar@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 98D4F6E69A for ; Thu, 5 Apr 2018 05:59:48 +0000 (UTC) In-Reply-To: <20180405060019.4018-1-mahesh1.kumar@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 Cc: lucas.demarchi@intel.com, paulo.r.zanoni@intel.com, rodrigo.vivi@intel.com List-Id: intel-gfx@lists.freedesktop.org SUNMIGhhcyB0d28gc2xpY2VzIG9mIERCdWYsIGVhY2ggc2xpY2Ugb2Ygc2l6ZSAxMDI0IGJsb2Nr cy4KV2Ugc2hvdWxkIG5vdCBhbHdheXMgZW5hYmxlIHNsaWNlLTIuIEl0IHNob3VsZCBiZSBlbmFi bGVkIG9ubHkgaWYKZGlzcGxheSB0b3RhbCByZXF1aXJlZCBCVyBpcyA+IDEyR0JwcyBPUiBtb3Jl IHRoYW4gMSBwaXBlcyBhcmUgZW5hYmxlZC4KCkNoYW5nZXMgc2luY2UgVjE6CiAtIHR5cGVjYXN0 IHRvdGFsX2RhdGFfcmF0ZSB0byB1NjQgYmVmb3JlIG11bHRpcGxpY2F0aW9uIHRvIHNvbHZlIGFu eQogICBwb3NzaWJsZSBvdmVyZmxvdyAoUm9kcmlnbykKIC0gZml4IHdoZXJlIHNrbF93bV9nZXRf aHdfc3RhdGUgd2FzIG1lbXNldHRpbmcgZGRiLCByZXN1bHRpbmcKICAgZW5hYmxlZF9zbGljZXMg dG8gYmVjb21lIHplcm8KIC0gRml4IHRoZSBsb2dpYyBvZiBjYWxjdWxhdGluZyBkZGJfc2l6ZQpD aGFuZ2VzIHNpbmNlIFYyOgogLSBJZiBuby1jcnRjIGlzIHBhcnQgb2YgY29tbWl0IHJlcXVpcmVk X3NsaWNlcyB3aWxsIGhhdmUgdmFsdWUgIjAiLAogICBkb24ndCB0cnkgdG8gZGlzYWJsZSBEQnVm IHNsaWNlLgpDaGFuZ2VzIHNpbmNlIFYzOgogLSBDcmVhdGUgYSBnZW5lcmljIGhlbHBlciB0byBl bmFibGUvZGlzYWJsZSBzbGljZQogLSBkb24ndCByZXR1cm4gZWFybHkgaWYgdG90YWxfZGF0YV9y YXRlIGlzIDAsIGl0IG1heSBiZSBjdXJzb3Igb25seQogICBjb21taXQsIG9yIGF0b21pYyBtb2Rl c2V0IHdpdGhvdXQgYW55IHBsYW5lLgoKU2lnbmVkLW9mZi1ieTogTWFoZXNoIEt1bWFyIDxtYWhl c2gxLmt1bWFyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgICAgfCAxMCArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAg ICAgIHwgIDYgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgfCA1 NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5jIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiA0 IGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggOTZhMWU2YTdmNjllLi5iYzc5NTMwNzY1 N2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEyMTk2LDYgKzEyMTk2 LDggQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJYm9vbCBwcm9ncmVzczsKIAllbnVtIHBpcGUgcGlwZTsKIAlpbnQgaTsKKwl1 aW50OF90IGh3X2VuYWJsZWRfc2xpY2VzID0gZGV2X3ByaXYtPndtLnNrbF9ody5kZGIuZW5hYmxl ZF9zbGljZXM7CisJdWludDhfdCByZXF1aXJlZF9zbGljZXMgPSBpbnRlbF9zdGF0ZS0+d21fcmVz dWx0cy5kZGIuZW5hYmxlZF9zbGljZXM7CiAKIAljb25zdCBzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAq ZW50cmllc1tJOTE1X01BWF9QSVBFU10gPSB7fTsKIApAQCAtMTIyMDQsNiArMTIyMDYsMTAgQEAg c3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAJCWlmIChuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQogCQkJZW50cmllc1tpXSA9ICZ0b19p bnRlbF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKS0+d20uc2tsLmRkYjsKIAorCS8qIElmIDJu ZCBEQnVmIHNsaWNlIHJlcXVpcmVkLCBlbmFibGUgaXQgaGVyZSAqLworCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDExICYmIHJlcXVpcmVkX3NsaWNlcyA+IGh3X2VuYWJsZWRfc2xpY2VzKQor CQlpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKGRldl9wcml2LCByZXF1aXJlZF9zbGljZXMpOworCiAJ LyoKIAkgKiBXaGVuZXZlciB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBwaXBlcyBjaGFuZ2VzLCB3ZSBu ZWVkIHRvIG1ha2Ugc3VyZSB3ZQogCSAqIHVwZGF0ZSB0aGUgcGlwZXMgaW4gdGhlIHJpZ2h0IG9y ZGVyIHNvIHRoYXQgdGhlaXIgZGRiIGFsbG9jYXRpb25zCkBAIC0xMjI1NCw2ICsxMjI2MCwxMCBA QCBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX2NydGNzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKIAkJCXByb2dyZXNzID0gdHJ1ZTsKIAkJfQogCX0gd2hpbGUgKHByb2dyZXNzKTsKKwor CS8qIElmIDJuZCBEQnVmIHNsaWNlIGlzIG5vIG1vcmUgcmVxdWlyZWQgZGlzYWJsZSBpdCAqLwor CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmIHJlcXVpcmVkX3NsaWNlcyA8IGh3X2Vu YWJsZWRfc2xpY2VzKQorCQlpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKGRldl9wcml2LCByZXF1aXJl ZF9zbGljZXMpOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfaGVscGVyX2ZyZWVfc3Rh dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAppbmRleCBkMTQ1MmZkMmE1OGQuLjQ3M2ExYWQ3ZjMyYiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKQEAgLTE0MCw2ICsxNDAsMTAgQEAKICNkZWZpbmUgS0h6KHgpICgxMDAwICogKHgp KQogI2RlZmluZSBNSHooeCkgS0h6KDEwMDAgKiAoeCkpCiAKKyNkZWZpbmUgS0Jwcyh4KSAoMTAw MCAqICh4KSkKKyNkZWZpbmUgTUJwcyh4KSBLQnBzKDEwMDAgKiAoeCkpCisjZGVmaW5lIEdCcHMo eCkgKCh1aW50NjRfdCkgMTAwMCAqIE1CcHMoKHgpKSkKKwogLyoKICAqIERpc3BsYXkgcmVsYXRl ZCBzdHVmZgogICovCkBAIC0xOTE0LDYgKzE5MTgsOCBAQCBib29sIGludGVsX2Rpc3BsYXlfcG93 ZXJfZ2V0X2lmX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ CQllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRvbWFpbik7CiB2b2lkIGludGVsX2Rp c3BsYXlfcG93ZXJfcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAg ICAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW4pOwordm9pZCBpY2xfZGJ1 Zl9zbGljZXNfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAg ICB1aW50OF90IHJlcV9zbGljZXMpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQKIGFzc2VydF9ycG1f ZGV2aWNlX25vdF9zdXNwZW5kZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggM2ZmMzdkNWJhMzUzLi5jYWEyOWY5NDkzMzUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtMzc3MSw5ICszNzcxLDQyIEBAIGJvb2wgaW50ZWxf Y2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlyZXR1cm4g dHJ1ZTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9nZXRfZGRiX3NpemUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAorCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgdG90 YWxfZGF0YV9yYXRlLAorCQkJCSAgICAgICBjb25zdCBpbnQgbnVtX2FjdGl2ZSwKKwkJCQkgICAg ICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiKQoreworCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOworCXU2NCB0b3RhbF9kYXRhX2J3OworCXUxNiBk ZGJfc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5kZGJfc2l6ZTsKKworCVdBUk5fT04oZGRi X3NpemUgPT0gMCk7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQorCQlyZXR1cm4g ZGRiX3NpemUgLSA0OyAvKiA0IGJsb2NrcyBmb3IgYnlwYXNzIHBhdGggYWxsb2NhdGlvbiAqLwor CisJYWRqdXN0ZWRfbW9kZSA9ICZjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwl0b3RhbF9k YXRhX2J3ID0gKHU2NCl0b3RhbF9kYXRhX3JhdGUgKiBkcm1fbW9kZV92cmVmcmVzaChhZGp1c3Rl ZF9tb2RlKTsKKworCS8qCisJICogMTJHQi9zIGlzIG1heGltdW0gQlcgc3VwcG9ydGVkIGJ5IHNp bmdsZSBEQnVmIHNsaWNlLgorCSAqLworCWlmICh0b3RhbF9kYXRhX2J3ID49IEdCcHMoMTIpIHx8 IG51bV9hY3RpdmUgPiAxKQorCQlkZGItPmVuYWJsZWRfc2xpY2VzID0gMjsKKwllbHNlIHsKKwkJ ZGRiLT5lbmFibGVkX3NsaWNlcyA9IDE7CisJCWRkYl9zaXplIC89IDI7CisJfQorCisJcmV0dXJu IGRkYl9zaXplOworfQorCiBzdGF0aWMgdm9pZAogc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9u X2xpbWl0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjc3RhdGUsCisJCQkJICAgY29uc3QgdW5zaWduZWQgaW50IHRvdGFsX2Rh dGFfcmF0ZSwKKwkJCQkgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIsCiAJCQkJICAg c3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jLCAvKiBvdXQgKi8KIAkJCQkgICBpbnQgKm51bV9h Y3RpdmUgLyogb3V0ICovKQogewpAQCAtMzc5NiwxMSArMzgyOSw4IEBAIHNrbF9kZGJfZ2V0X3Bp cGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAllbHNlCiAJCSpu dW1fYWN0aXZlID0gaHdlaWdodDMyKGRldl9wcml2LT5hY3RpdmVfY3J0Y3MpOwogCi0JZGRiX3Np emUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+ZGRiX3NpemU7Ci0JV0FSTl9PTihkZGJfc2l6ZSA9 PSAwKTsKLQotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCi0JCWRkYl9zaXplIC09IDQ7 IC8qIDQgYmxvY2tzIGZvciBieXBhc3MgcGF0aCBhbGxvY2F0aW9uICovCisJZGRiX3NpemUgPSBp bnRlbF9nZXRfZGRiX3NpemUoZGV2X3ByaXYsIGNzdGF0ZSwgdG90YWxfZGF0YV9yYXRlLAorCQkJ CSAgICAgICpudW1fYWN0aXZlLCBkZGIpOwogCiAJLyoKIAkgKiBJZiB0aGUgc3RhdGUgZG9lc24n dCBjaGFuZ2UgdGhlIGFjdGl2ZSBDUlRDJ3MsIHRoZW4gdGhlcmUncwpAQCAtNDIzOSw3ICs0MjY5 LDExIEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlLAogCQlyZXR1cm4gMDsKIAl9CiAKLQlza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGlt aXRzKGRldiwgY3N0YXRlLCBhbGxvYywgJm51bV9hY3RpdmUpOworCXRvdGFsX2RhdGFfcmF0ZSA9 IHNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNzdGF0ZSwKKwkJCQkJCQkgICBwbGFu ZV9kYXRhX3JhdGUsCisJCQkJCQkJICAgcGxhbmVfeV9kYXRhX3JhdGUpOworCXNrbF9kZGJfZ2V0 X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoZGV2LCBjc3RhdGUsIHRvdGFsX2RhdGFfcmF0ZSwgZGRi LAorCQkJCQkgICBhbGxvYywgJm51bV9hY3RpdmUpOwogCWFsbG9jX3NpemUgPSBza2xfZGRiX2Vu dHJ5X3NpemUoYWxsb2MpOwogCWlmIChhbGxvY19zaXplID09IDApCiAJCXJldHVybiAwOwpAQCAt NDI3NCw5ICs0MzA4LDYgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUsCiAJICoKIAkgKiBGSVhNRTogd2UgbWF5IG5vdCBhbGxvY2F0ZSBldmVy eSBzaW5nbGUgYmxvY2sgaGVyZS4KIAkgKi8KLQl0b3RhbF9kYXRhX3JhdGUgPSBza2xfZ2V0X3Rv dGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShjc3RhdGUsCi0JCQkJCQkJICAgcGxhbmVfZGF0YV9yYXRl LAotCQkJCQkJCSAgIHBsYW5lX3lfZGF0YV9yYXRlKTsKIAlpZiAodG90YWxfZGF0YV9yYXRlID09 IDApCiAJCXJldHVybiAwOwogCkBAIC01MzgyLDggKzU0MTMsMTIgQEAgdm9pZCBza2xfd21fZ2V0 X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCS8qIEZ1bGx5IHJlY29tcHV0ZSBE REIgb24gZmlyc3QgYXRvbWljIGNvbW1pdCAqLwogCQlkZXZfcHJpdi0+d20uZGlzdHJ1c3RfYmlv c193bSA9IHRydWU7CiAJfSBlbHNlIHsKLQkJLyogRWFzeS9jb21tb24gY2FzZTsganVzdCBzYW5p dGl6ZSBEREIgbm93IGlmIGV2ZXJ5dGhpbmcgb2ZmICovCi0JCW1lbXNldChkZGIsIDAsIHNpemVv ZigqZGRiKSk7CisJCS8qCisJCSAqIEVhc3kvY29tbW9uIGNhc2U7IGp1c3Qgc2FuaXRpemUgRERC IG5vdyBpZiBldmVyeXRoaW5nIG9mZgorCQkgKiBLZWVwIGRidWYgc2xpY2UgaW5mbyBpbnRhY3QK KwkJICovCisJCW1lbXNldChkZGItPnBsYW5lLCAwLCBzaXplb2YoZGRiLT5wbGFuZSkpOworCQlt ZW1zZXQoZGRiLT55X3BsYW5lLCAwLCBzaXplb2YoZGRiLT55X3BsYW5lKSk7CiAJfQogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggNThiZTU0MmQ2NjBiLi41 NmNkZWMwNmU2YjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRp bWVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKQEAg LTI2MjcsMzIgKzI2MjcsNjkgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19zeW5j X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAltdXRleF91bmxvY2soJnBv d2VyX2RvbWFpbnMtPmxvY2spOwogfQogCi1zdGF0aWMgdm9pZCBnZW45X2RidWZfZW5hYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyBpbmxpbmUKK2Jvb2wgaW50 ZWxfZGJ1Zl9zbGljZV9zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJ ICBpOTE1X3JlZ190IHJlZywgYm9vbCBlbmFibGUpCiB7Ci0JSTkxNV9XUklURShEQlVGX0NUTCwg STkxNV9SRUFEKERCVUZfQ1RMKSB8IERCVUZfUE9XRVJfUkVRVUVTVCk7Ci0JUE9TVElOR19SRUFE KERCVUZfQ1RMKTsKKwl1MzIgdmFsLCBzdGF0dXM7CiAKKwl2YWwgPSBJOTE1X1JFQUQocmVnKTsK Kwl2YWwgPSBlbmFibGUgPyAodmFsIHwgREJVRl9QT1dFUl9SRVFVRVNUKSA6ICh2YWwgJiB+REJV Rl9QT1dFUl9SRVFVRVNUKTsKKwlJOTE1X1dSSVRFKHJlZywgdmFsKTsKKwlQT1NUSU5HX1JFQUQo cmVnKTsKIAl1ZGVsYXkoMTApOwogCi0JaWYgKCEoSTkxNV9SRUFEKERCVUZfQ1RMKSAmIERCVUZf UE9XRVJfU1RBVEUpKQotCQlEUk1fRVJST1IoIkRCdWYgcG93ZXIgZW5hYmxlIHRpbWVvdXRcbiIp OworCXN0YXR1cyA9IEk5MTVfUkVBRChyZWcpICYgREJVRl9QT1dFUl9TVEFURTsKKwlpZiAoKGVu YWJsZSAmJiAhc3RhdHVzKSB8fCAoIWVuYWJsZSAmJiBzdGF0dXMpKSB7CisJCURSTV9FUlJPUigi REJ1cyBwb3dlciAlcyB0aW1lb3V0IVxuIiwKKwkJCQkJZW5hYmxlID8gImVuYWJsZSIgOiAiZGlz YWJsZSIpOworCQlyZXR1cm4gZmFsc2U7CisJfQorCXJldHVybiB0cnVlOworfQorCitzdGF0aWMg dm9pZCBnZW45X2RidWZfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK K3sKKwlpbnRlbF9kYnVmX3NsaWNlX3NldChkZXZfcHJpdiwgREJVRl9DVEwsIHRydWUpOwogfQog CiBzdGF0aWMgdm9pZCBnZW45X2RidWZfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7Ci0JSTkxNV9XUklURShEQlVGX0NUTCwgSTkxNV9SRUFEKERCVUZfQ1RMKSAm IH5EQlVGX1BPV0VSX1JFUVVFU1QpOwotCVBPU1RJTkdfUkVBRChEQlVGX0NUTCk7CisJaW50ZWxf ZGJ1Zl9zbGljZV9zZXQoZGV2X3ByaXYsIERCVUZfQ1RMLCBmYWxzZSk7Cit9CiAKLQl1ZGVsYXko MTApOworc3RhdGljIHVpbnQ4X3QgaW50ZWxfZGJ1Zl9tYXhfc2xpY2VzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQor CQlyZXR1cm4gMTsKKwlyZXR1cm4gMjsKK30KIAotCWlmIChJOTE1X1JFQUQoREJVRl9DVEwpICYg REJVRl9QT1dFUl9TVEFURSkKLQkJRFJNX0VSUk9SKCJEQnVmIHBvd2VyIGRpc2FibGUgdGltZW91 dCFcbiIpOwordm9pZCBpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKKwkJCSAgICB1aW50OF90IHJlcV9zbGljZXMpCit7CisJdWludDhfdCBo d19lbmFibGVkX3NsaWNlcyA9IGRldl9wcml2LT53bS5za2xfaHcuZGRiLmVuYWJsZWRfc2xpY2Vz OworCXUzMiB2YWw7CisJYm9vbCByZXQ7CisKKwlpZiAocmVxX3NsaWNlcyA+IGludGVsX2RidWZf bWF4X3NsaWNlcyhkZXZfcHJpdikpIHsKKwkJRFJNX0VSUk9SKCJJbnZhbGlkIG51bWJlciBvZiBk YnVmIHNsaWNlcyByZXF1ZXN0ZWRcbiIpOworCQlyZXR1cm47CisJfQorCisJaWYgKHJlcV9zbGlj ZXMgPT0gaHdfZW5hYmxlZF9zbGljZXMgfHwgcmVxX3NsaWNlcyA9PSAwKQorCQlyZXR1cm47CisK Kwl2YWwgPSBJOTE1X1JFQUQoREJVRl9DVExfUzIpOworCWlmIChyZXFfc2xpY2VzID4gaHdfZW5h YmxlZF9zbGljZXMpCisJCXJldCA9IGludGVsX2RidWZfc2xpY2Vfc2V0KGRldl9wcml2LCBEQlVG X0NUTF9TMiwgdHJ1ZSk7CisJZWxzZQorCQlyZXQgPSBpbnRlbF9kYnVmX3NsaWNlX3NldChkZXZf cHJpdiwgREJVRl9DVExfUzIsIGZhbHNlKTsKKworCWlmIChyZXQpCisJCWRldl9wcml2LT53bS5z a2xfaHcuZGRiLmVuYWJsZWRfc2xpY2VzID0gcmVxX3NsaWNlczsKIH0KIAotLyoKLSAqIFRPRE86 IHdlIHNob3VsZG4ndCBhbHdheXMgZW5hYmxlIERCVUZfQ1RMX1MyLCB3ZSBzaG91bGQgb25seSBl bmFibGUgaXQgd2hlbgotICogbmVlZGVkIGFuZCBrZWVwIGl0IGRpc2FibGVkIGFzIG11Y2ggYXMg cG9zc2libGUuCi0gKi8KIHN0YXRpYyB2b2lkIGljbF9kYnVmX2VuYWJsZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJSTkxNV9XUklURShEQlVGX0NUTF9TMSwgSTkxNV9S RUFEKERCVUZfQ1RMX1MxKSB8IERCVUZfUE9XRVJfUkVRVUVTVCk7Ci0tIAoyLjE2LjIKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=