From mboxrd@z Thu Jan 1 00:00:00 1970 From: Praveen Paneri Subject: [PATCH] lib/igt_draw: Add Y-tiling support Date: Fri, 9 Jun 2017 15:48:19 +0530 Message-ID: <1497003499-14841-1-git-send-email-praveen.paneri@intel.com> References: <1493390254-5232-4-git-send-email-praveen.paneri@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E6156E57A for ; Fri, 9 Jun 2017 10:09:28 +0000 (UTC) In-Reply-To: <1493390254-5232-4-git-send-email-praveen.paneri@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: paulo.r.zanoni@intel.com, Praveen Paneri List-Id: intel-gfx@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIFktdGlsaW5nIHN1cHBvcnQgZm9yIGlndF9kcmF3X3JlY3QgZnVuY3Rp b24uCgp2MjogVXNlIGhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGlsZSBzaXplcyAoVmlsbGUpCgp2 MzogTW92ZWQgaWd0X2dldF9mYl90aWxlX3NpemUoKSBvdXQgb2YgdGhlIGZvciBsb29wCiBmb3Ig YmV0dGVyIHBlcmZvcm1hbmNlIChQYXVsbykKClNpZ25lZC1vZmYtYnk6IFByYXZlZW4gUGFuZXJp IDxwcmF2ZWVuLnBhbmVyaUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9kcmF3LmMgfCAxMzkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbGliL2lndF9kcmF3LmMgYi9saWIvaWd0X2RyYXcuYwppbmRleCAyOWFlYzg1Li4yMTM4 YmY3IDEwMDY0NAotLS0gYS9saWIvaWd0X2RyYXcuYworKysgYi9saWIvaWd0X2RyYXcuYwpAQCAt MTM2LDMyICsxMzYsNDUgQEAgc3RhdGljIGludCBzd2l6emxlX2FkZHIoaW50IGFkZHIsIGludCBz d2l6emxlKQogCiAvKiBJdCdzIGFsbCBpbiAicGl4ZWwgY29vcmRpbmF0ZXMiLCBzbyBtYWtlIHN1 cmUgeW91IG11bHRpcGx5L2RpdmlkZSBieSB0aGUgYnBwCiAgKiBpZiB5b3UgbmVlZCB0by4gKi8K LXN0YXRpYyBpbnQgbGluZWFyX3hfeV90b190aWxlZF9wb3MoaW50IHgsIGludCB5LCB1aW50MzJf dCBzdHJpZGUsIGludCBzd2l6emxlLAotCQkJCSAgIGludCBicHApCitzdGF0aWMgaW50IGxpbmVh cl94X3lfdG9fdGlsZWRfcG9zKGludCBmZCwgaW50IHgsIGludCB5LCB1aW50MzJfdCBzdHJpZGUs IGludCBzd2l6emxlLAorCQkJCSAgIGludCBicHAsIGludCB0aWxpbmcsIHVpbnQzMl90IHRpbGVf d2lkdGgsCisJCQkJICAgdWludDMyX3QgdGlsZV9oZWlnaHQpCiB7Ci0JaW50IHhfdGlsZV9zaXpl LCB5X3RpbGVfc2l6ZTsKLQlpbnQgeF90aWxlX24sIHlfdGlsZV9uLCB4X3RpbGVfb2ZmLCB5X3Rp bGVfb2ZmOwotCWludCBsaW5lX3NpemUsIHRpbGVfc2l6ZTsKKwl1aW50MzJfdCB0aWxlX3NpemU7 CisJaW50IHRpbGVfeCwgdGlsZV95OyAvKiBDby1vcmRpbmF0ZXMgb2YgdGhlIHRpbGUgaG9sZGlu ZyB0aGUgcGl4ZWwgKi8KKwlpbnQgdGlsZV94X29mZiwgdGlsZV95X29mZjsgLyogcGl4ZWwgcG9z aXRpb24gaW5zaWRlIHRoZSB0aWxlICovCiAJaW50IHRpbGVfbiwgdGlsZV9vZmY7Ci0JaW50IHRp bGVkX3BvcywgdGlsZXNfcGVyX2xpbmU7CisJaW50IGxpbmVfc2l6ZSwgdGlsZXNfcGVyX2xpbmU7 CisJaW50IHRpbGVkX3BvczsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGJwcCAvIDg7CiAKIAlsaW5lX3Np emUgPSBzdHJpZGU7Ci0JeF90aWxlX3NpemUgPSA1MTI7Ci0JeV90aWxlX3NpemUgPSA4OwotCXRp bGVfc2l6ZSA9IHhfdGlsZV9zaXplICogeV90aWxlX3NpemU7Ci0JdGlsZXNfcGVyX2xpbmUgPSBs aW5lX3NpemUgLyB4X3RpbGVfc2l6ZTsKKwl0aWxlX3NpemUgPSB0aWxlX3dpZHRoICogdGlsZV9o ZWlnaHQ7CisJdGlsZXNfcGVyX2xpbmUgPSBsaW5lX3NpemUgLyB0aWxlX3dpZHRoOwogCi0JeV90 aWxlX24gPSB5IC8geV90aWxlX3NpemU7Ci0JeV90aWxlX29mZiA9IHkgJSB5X3RpbGVfc2l6ZTsK Kwl0aWxlX3kgPSB5IC8gdGlsZV9oZWlnaHQ7CisJdGlsZV95X29mZiA9IHkgJSB0aWxlX2hlaWdo dDsKIAotCXhfdGlsZV9uID0gKHggKiBwaXhlbF9zaXplKSAvIHhfdGlsZV9zaXplOwotCXhfdGls ZV9vZmYgPSAoeCAqIHBpeGVsX3NpemUpICUgeF90aWxlX3NpemU7CisJdGlsZV94ID0gKHggKiBw aXhlbF9zaXplKSAvIHRpbGVfd2lkdGg7CisJdGlsZV94X29mZiA9ICh4ICogcGl4ZWxfc2l6ZSkg JSB0aWxlX3dpZHRoOwogCi0JdGlsZV9uID0geV90aWxlX24gKiB0aWxlc19wZXJfbGluZSArIHhf dGlsZV9uOwotCXRpbGVfb2ZmID0geV90aWxlX29mZiAqIHhfdGlsZV9zaXplICsgeF90aWxlX29m ZjsKLQl0aWxlZF9wb3MgPSB0aWxlX24gKiB0aWxlX3NpemUgKyB0aWxlX29mZjsKKwl0aWxlX24g PSB0aWxlX3kgKiB0aWxlc19wZXJfbGluZSArIHRpbGVfeDsKKworCWlmICh0aWxpbmcgPT0gSTkx NV9USUxJTkdfWCApIHsKKwkJdGlsZV9vZmYgPSB0aWxlX3lfb2ZmICogdGlsZV93aWR0aCArIHRp bGVfeF9vZmY7CisJfSBlbHNlIHsgLyogKHRpbGluZyA9PSBJOTE1X1RJTElOR19ZICkgKi8KKwkJ aW50IHhfb3dvcmRfbiwgeF9vd29yZF9vZmY7CisJCWludCBvd29yZF9zaXplID0gMTY7CisKKwkJ LyogY29tcHV0YXRpb24gaW5zaWRlIHRoZSB0aWxlICovCisJCXhfb3dvcmRfbiA9IHRpbGVfeF9v ZmYgLyBvd29yZF9zaXplOworCQl4X293b3JkX29mZiA9IHRpbGVfeF9vZmYgJSBvd29yZF9zaXpl OworCQl0aWxlX29mZiA9IHhfb3dvcmRfbiAqIHRpbGVfaGVpZ2h0ICogb3dvcmRfc2l6ZQorCQkJ ICAgKyB0aWxlX3lfb2ZmICogb3dvcmRfc2l6ZQorCQkJICAgKyB4X293b3JkX29mZjsKKwl9CiAK Kwl0aWxlZF9wb3MgPSB0aWxlX24gKiB0aWxlX3NpemUgKyB0aWxlX29mZjsKIAl0aWxlZF9wb3Mg PSBzd2l6emxlX2FkZHIodGlsZWRfcG9zLCBzd2l6emxlKTsKIAogCXJldHVybiB0aWxlZF9wb3Mg LyBwaXhlbF9zaXplOwpAQCAtMTY5LDM0ICsxODIsNDggQEAgc3RhdGljIGludCBsaW5lYXJfeF95 X3RvX3RpbGVkX3BvcyhpbnQgeCwgaW50IHksIHVpbnQzMl90IHN0cmlkZSwgaW50IHN3aXp6bGUs CiAKIC8qIEl0J3MgYWxsIGluICJwaXhlbCBjb29yZGluYXRlcyIsIHNvIG1ha2Ugc3VyZSB5b3Ug bXVsdGlwbHkvZGl2aWRlIGJ5IHRoZSBicHAKICAqIGlmIHlvdSBuZWVkIHRvLiAqLwotc3RhdGlj IHZvaWQgdGlsZWRfcG9zX3RvX3hfeV9saW5lYXIoaW50IHRpbGVkX3BvcywgdWludDMyX3Qgc3Ry aWRlLAotCQkJCSAgICBpbnQgc3dpenpsZSwgaW50IGJwcCwgaW50ICp4LCBpbnQgKnkpCitzdGF0 aWMgdm9pZCB0aWxlZF9wb3NfdG9feF95X2xpbmVhcihpbnQgZmQsIGludCB0aWxlZF9wb3MsIHVp bnQzMl90IHN0cmlkZSwKKwkJCQkgICAgaW50IHN3aXp6bGUsIGludCBicHAsIGludCAqeCwgaW50 ICp5LAorCQkJCSAgICBpbnQgdGlsaW5nLCB1aW50MzJfdCB0aWxlX3dpZHRoLAorCQkJCSAgICB1 aW50MzJfdCB0aWxlX2hlaWdodCkKIHsKLQlpbnQgdGlsZV9uLCB0aWxlX29mZiwgdGlsZXNfcGVy X2xpbmUsIGxpbmVfc2l6ZTsKLQlpbnQgeF90aWxlX29mZiwgeV90aWxlX29mZjsKLQlpbnQgeF90 aWxlX24sIHlfdGlsZV9uOwotCWludCB4X3RpbGVfc2l6ZSwgeV90aWxlX3NpemUsIHRpbGVfc2l6 ZTsKKwl1aW50MzJfdCB0aWxlX3NpemU7CisJaW50IHRpbGVfeCwgdGlsZV95OyAvKiBDby1vcmRp bmF0ZXMgb2YgdGhlIHRpbGUgaG9sZGluZyB0aGUgcGl4ZWwgKi8KKwlpbnQgdGlsZV94X29mZiwg dGlsZV95X29mZjsgLyogcGl4ZWwgcG9zaXRpb24gaW5zaWRlIHRoZSB0aWxlICovCisJaW50IHRp bGVfbiwgdGlsZV9vZmY7CisJaW50IGxpbmVfc2l6ZSwgdGlsZXNfcGVyX2xpbmU7CiAJaW50IHBp eGVsX3NpemUgPSBicHAgLyA4OwogCiAJdGlsZWRfcG9zID0gc3dpenpsZV9hZGRyKHRpbGVkX3Bv cywgc3dpenpsZSk7CiAKIAlsaW5lX3NpemUgPSBzdHJpZGU7Ci0JeF90aWxlX3NpemUgPSA1MTI7 Ci0JeV90aWxlX3NpemUgPSA4OwotCXRpbGVfc2l6ZSA9IHhfdGlsZV9zaXplICogeV90aWxlX3Np emU7Ci0JdGlsZXNfcGVyX2xpbmUgPSBsaW5lX3NpemUgLyB4X3RpbGVfc2l6ZTsKKwl0aWxlX3Np emUgPSB0aWxlX3dpZHRoICogdGlsZV9oZWlnaHQ7CisJdGlsZXNfcGVyX2xpbmUgPSBsaW5lX3Np emUgLyB0aWxlX3dpZHRoOwogCiAJdGlsZV9uID0gdGlsZWRfcG9zIC8gdGlsZV9zaXplOwogCXRp bGVfb2ZmID0gdGlsZWRfcG9zICUgdGlsZV9zaXplOwogCi0JeV90aWxlX29mZiA9IHRpbGVfb2Zm IC8geF90aWxlX3NpemU7Ci0JeF90aWxlX29mZiA9IHRpbGVfb2ZmICUgeF90aWxlX3NpemU7CisJ dGlsZV94ID0gdGlsZV9uICUgdGlsZXNfcGVyX2xpbmU7CisJdGlsZV95ID0gdGlsZV9uIC8gdGls ZXNfcGVyX2xpbmU7CisKKwlpZiAodGlsaW5nID09IEk5MTVfVElMSU5HX1ggKSB7CisKKwkJdGls ZV95X29mZiA9IHRpbGVfb2ZmIC8gdGlsZV93aWR0aDsKKwkJdGlsZV94X29mZiA9IHRpbGVfb2Zm ICUgdGlsZV93aWR0aDsKKwl9IGVsc2UgeworCQlpbnQgeF9vd29yZF9uLCB4X293b3JkX29mZjsK KwkJaW50IG93b3JkX3NpemUgPSAxNjsKKworCQl4X293b3JkX24gPSB0aWxlX29mZiAvIChvd29y ZF9zaXplICogdGlsZV9oZWlnaHQpOworCQl4X293b3JkX29mZiA9IHRpbGVfb2ZmICUgb3dvcmRf c2l6ZTsKIAotCXhfdGlsZV9uID0gdGlsZV9uICUgdGlsZXNfcGVyX2xpbmU7Ci0JeV90aWxlX24g PSB0aWxlX24gLyB0aWxlc19wZXJfbGluZTsKKwkJdGlsZV94X29mZiA9IHhfb3dvcmRfbiAqIG93 b3JkX3NpemUgKyB4X293b3JkX29mZjsKKwkJdGlsZV95X29mZiA9ICh0aWxlX29mZiAtIHhfb3dv cmRfbiAqIG93b3JkX3NpemUgKiB0aWxlX2hlaWdodCkKKwkJCSAgICAgLyBvd29yZF9zaXplOwor CX0KIAotCSp4ID0gKHhfdGlsZV9uICogeF90aWxlX3NpemUgKyB4X3RpbGVfb2ZmKSAvIHBpeGVs X3NpemU7Ci0JKnkgPSB5X3RpbGVfbiAqIHlfdGlsZV9zaXplICsgeV90aWxlX29mZjsKKwkqeCA9 ICh0aWxlX3ggKiB0aWxlX3dpZHRoICsgdGlsZV94X29mZikgLyBwaXhlbF9zaXplOworCSp5ID0g dGlsZV95ICogdGlsZV9oZWlnaHQgKyB0aWxlX3lfb2ZmOwogfQogCiBzdGF0aWMgdm9pZCBzZXRf cGl4ZWwodm9pZCAqX3B0ciwgaW50IGluZGV4LCB1aW50MzJfdCBjb2xvciwgaW50IGJwcCkKQEAg LTIyNCwxNSArMjUxLDIxIEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9wdHJfbGluZWFyKHZvaWQg KnB0ciwgdWludDMyX3Qgc3RyaWRlLAogCX0KIH0KIAotc3RhdGljIHZvaWQgZHJhd19yZWN0X3B0 cl90aWxlZCh2b2lkICpwdHIsIHVpbnQzMl90IHN0cmlkZSwgaW50IHN3aXp6bGUsCi0JCQkJc3Ry dWN0IHJlY3QgKnJlY3QsIHVpbnQzMl90IGNvbG9yLCBpbnQgYnBwKQorc3RhdGljIHZvaWQgZHJh d19yZWN0X3B0cl90aWxlZChpbnQgZmQsIHZvaWQgKnB0ciwgdWludDMyX3Qgc3RyaWRlLCBpbnQg c3dpenpsZSwKKwkJCQlzdHJ1Y3QgcmVjdCAqcmVjdCwgdWludDMyX3QgY29sb3IsIGludCBicHAs CisJCQkJaW50IHRpbGluZykKIHsKIAlpbnQgeCwgeSwgcG9zOworCXVpbnQzMl90IHRpbGVfd2lk dGgsIHRpbGVfaGVpZ2h0OworCisJaWd0X2dldF9mYl90aWxlX3NpemUoZmQsICh1aW50NjRfdClp Z3RfZmJfdGlsaW5nX3RvX21vZCh0aWxpbmcpLCBicHAsCisJCQkmdGlsZV93aWR0aCwgJnRpbGVf aGVpZ2h0KTsKIAogCWZvciAoeSA9IHJlY3QtPnk7IHkgPCByZWN0LT55ICsgcmVjdC0+aDsgeSsr KSB7CiAJCWZvciAoeCA9IHJlY3QtPng7IHggPCByZWN0LT54ICsgcmVjdC0+dzsgeCsrKSB7Ci0J CQlwb3MgPSBsaW5lYXJfeF95X3RvX3RpbGVkX3Bvcyh4LCB5LCBzdHJpZGUsIHN3aXp6bGUsCi0J CQkJCQkgICAgICBicHApOworCQkJcG9zID0gbGluZWFyX3hfeV90b190aWxlZF9wb3MoZmQsIHgs IHksIHN0cmlkZSwgc3dpenpsZSwKKwkJCQkJCSAgICAgIGJwcCwgdGlsaW5nLCB0aWxlX3dpZHRo LAorCQkJCQkJICAgICAgdGlsZV9oZWlnaHQpOwogCQkJc2V0X3BpeGVsKHB0ciwgcG9zLCBjb2xv ciwgYnBwKTsKIAkJfQogCX0KQEAgLTI1OSw4ICsyOTIsMTIgQEAgc3RhdGljIHZvaWQgZHJhd19y ZWN0X21tYXBfY3B1KGludCBmZCwgc3RydWN0IGJ1Zl9kYXRhICpidWYsIHN0cnVjdCByZWN0ICpy ZWN0LAogCQlkcmF3X3JlY3RfcHRyX2xpbmVhcihwdHIsIGJ1Zi0+c3RyaWRlLCByZWN0LCBjb2xv ciwgYnVmLT5icHApOwogCQlicmVhazsKIAljYXNlIEk5MTVfVElMSU5HX1g6Ci0JCWRyYXdfcmVj dF9wdHJfdGlsZWQocHRyLCBidWYtPnN0cmlkZSwgc3dpenpsZSwgcmVjdCwgY29sb3IsCi0JCQkJ ICAgIGJ1Zi0+YnBwKTsKKwkJZHJhd19yZWN0X3B0cl90aWxlZChmZCwgcHRyLCBidWYtPnN0cmlk ZSwgc3dpenpsZSwgcmVjdCwgY29sb3IsCisJCQkJICAgIGJ1Zi0+YnBwLCB0aWxpbmcpOworCQli cmVhazsKKwljYXNlIEk5MTVfVElMSU5HX1k6CisJCWRyYXdfcmVjdF9wdHJfdGlsZWQoZmQsIHB0 ciwgYnVmLT5zdHJpZGUsIHN3aXp6bGUsIHJlY3QsIGNvbG9yLAorCQkJCSAgICBidWYtPmJwcCwg dGlsaW5nKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJaWd0X2Fzc2VydChmYWxzZSk7CkBAIC0z MDksOCArMzQ2LDEyIEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9tbWFwX3djKGludCBmZCwgc3Ry dWN0IGJ1Zl9kYXRhICpidWYsIHN0cnVjdCByZWN0ICpyZWN0LAogCQlkcmF3X3JlY3RfcHRyX2xp bmVhcihwdHIsIGJ1Zi0+c3RyaWRlLCByZWN0LCBjb2xvciwgYnVmLT5icHApOwogCQlicmVhazsK IAljYXNlIEk5MTVfVElMSU5HX1g6Ci0JCWRyYXdfcmVjdF9wdHJfdGlsZWQocHRyLCBidWYtPnN0 cmlkZSwgc3dpenpsZSwgcmVjdCwgY29sb3IsCi0JCQkJICAgIGJ1Zi0+YnBwKTsKKwkJZHJhd19y ZWN0X3B0cl90aWxlZChmZCwgcHRyLCBidWYtPnN0cmlkZSwgc3dpenpsZSwgcmVjdCwgY29sb3Is CisJCQkJICAgIGJ1Zi0+YnBwLCB0aWxpbmcpOworCQlicmVhazsKKwljYXNlIEk5MTVfVElMSU5H X1k6CisJCWRyYXdfcmVjdF9wdHJfdGlsZWQoZmQsIHB0ciwgYnVmLT5zdHJpZGUsIHN3aXp6bGUs IHJlY3QsIGNvbG9yLAorCQkJCSAgICBidWYtPmJwcCwgdGlsaW5nKTsKIAkJYnJlYWs7CiAJZGVm YXVsdDoKIAkJaWd0X2Fzc2VydChmYWxzZSk7CkBAIC0zMzgsNyArMzc5LDcgQEAgc3RhdGljIHZv aWQgZHJhd19yZWN0X3B3cml0ZV91bnRpbGVkKGludCBmZCwgc3RydWN0IGJ1Zl9kYXRhICpidWYs CiAKIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9wd3JpdGVfdGlsZWQoaW50IGZkLCBzdHJ1Y3QgYnVm X2RhdGEgKmJ1ZiwKIAkJCQkgICBzdHJ1Y3QgcmVjdCAqcmVjdCwgdWludDMyX3QgY29sb3IsCi0J CQkJICAgdWludDMyX3Qgc3dpenpsZSkKKwkJCQkgICB1aW50MzJfdCBzd2l6emxlLCBpbnQgdGls aW5nKQogewogCWludCBpOwogCWludCB0aWxlZF9wb3MsIHgsIHksIHBpeGVsX3NpemU7CkBAIC0z NDcsNiArMzg4LDcgQEAgc3RhdGljIHZvaWQgZHJhd19yZWN0X3B3cml0ZV90aWxlZChpbnQgZmQs IHN0cnVjdCBidWZfZGF0YSAqYnVmLAogCWJvb2wgZmx1c2hfdG1wID0gZmFsc2U7CiAJaW50IHRt cF9zdGFydF9wb3MgPSAwOwogCWludCBwaXhlbHNfd3JpdHRlbiA9IDA7CisJdWludDMyX3QgdGls ZV93aWR0aCwgdGlsZV9oZWlnaHQ7CiAKIAkvKiBXZSBkaWRuJ3QgaW1wbGVtZW50IHN1cG9ydCBm b3IgdGhlIG9sZGVyIHRpbGluZyBtZXRob2RzIHlldC4gKi8KIAlpZ3RfcmVxdWlyZShpbnRlbF9n ZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpID49IDUpOwpAQCAtMzYwLDkgKzQwMiwxMyBAQCBz dGF0aWMgdm9pZCBkcmF3X3JlY3RfcHdyaXRlX3RpbGVkKGludCBmZCwgc3RydWN0IGJ1Zl9kYXRh ICpidWYsCiAJZm9yIChpID0gMDsgaSA8IHRtcF9zaXplOyBpKyspCiAJCXNldF9waXhlbCh0bXAs IGksIGNvbG9yLCBidWYtPmJwcCk7CiAKKwlpZ3RfZ2V0X2ZiX3RpbGVfc2l6ZShmZCwgKHVpbnQ2 NF90KWlndF9mYl90aWxpbmdfdG9fbW9kKHRpbGluZyksCisJCQkgICAgIGJ1Zi0+YnBwLCAmdGls ZV93aWR0aCwgJnRpbGVfaGVpZ2h0KTsKKwogCWZvciAodGlsZWRfcG9zID0gMDsgdGlsZWRfcG9z IDwgYnVmLT5zaXplOyB0aWxlZF9wb3MgKz0gcGl4ZWxfc2l6ZSkgewotCQl0aWxlZF9wb3NfdG9f eF95X2xpbmVhcih0aWxlZF9wb3MsIGJ1Zi0+c3RyaWRlLCBzd2l6emxlLAotCQkJCQlidWYtPmJw cCwgJngsICZ5KTsKKwkJdGlsZWRfcG9zX3RvX3hfeV9saW5lYXIoZmQsIHRpbGVkX3BvcywgYnVm LT5zdHJpZGUsIHN3aXp6bGUsCisJCQkJCWJ1Zi0+YnBwLCAmeCwgJnksIHRpbGluZywgdGlsZV93 aWR0aCwKKwkJCQkJdGlsZV9oZWlnaHQpOwogCiAJCWlmICh4ID49IHJlY3QtPnggJiYgeCA8IHJl Y3QtPnggKyByZWN0LT53ICYmCiAJCSAgICB5ID49IHJlY3QtPnkgJiYgeSA8IHJlY3QtPnkgKyBy ZWN0LT5oKSB7CkBAIC0zOTksNyArNDQ1LDEwIEBAIHN0YXRpYyB2b2lkIGRyYXdfcmVjdF9wd3Jp dGUoaW50IGZkLCBzdHJ1Y3QgYnVmX2RhdGEgKmJ1ZiwKIAkJZHJhd19yZWN0X3B3cml0ZV91bnRp bGVkKGZkLCBidWYsIHJlY3QsIGNvbG9yKTsKIAkJYnJlYWs7CiAJY2FzZSBJOTE1X1RJTElOR19Y OgotCQlkcmF3X3JlY3RfcHdyaXRlX3RpbGVkKGZkLCBidWYsIHJlY3QsIGNvbG9yLCBzd2l6emxl KTsKKwkJZHJhd19yZWN0X3B3cml0ZV90aWxlZChmZCwgYnVmLCByZWN0LCBjb2xvciwgc3dpenps ZSwgdGlsaW5nKTsKKwkJYnJlYWs7CisJY2FzZSBJOTE1X1RJTElOR19ZOgorCQlkcmF3X3JlY3Rf cHdyaXRlX3RpbGVkKGZkLCBidWYsIHJlY3QsIGNvbG9yLCBzd2l6emxlLCB0aWxpbmcpOwogCQli cmVhazsKIAlkZWZhdWx0OgogCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKLS0gCjEuOS4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK