From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93148C07E95 for ; Fri, 2 Jul 2021 20:46:24 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2F0656140E for ; Fri, 2 Jul 2021 20:46:23 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2F0656140E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CDE336E20B; Fri, 2 Jul 2021 20:46:22 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id D79086E20B for ; Fri, 2 Jul 2021 20:46:21 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10033"; a="208735884" X-IronPort-AV: E=Sophos;i="5.83,320,1616482800"; d="scan'208";a="208735884" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Jul 2021 13:46:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.83,320,1616482800"; d="scan'208";a="494257212" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by fmsmga002.fm.intel.com with SMTP; 02 Jul 2021 13:46:18 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 02 Jul 2021 23:46:18 +0300 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Fri, 2 Jul 2021 23:46:00 +0300 Message-Id: <20210702204603.596-6-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210702204603.596-1-ville.syrjala@linux.intel.com> References: <20210702204603.596-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 5/8] drm/i915/fbc: Rework cfb stride/size calculations X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClRo ZSBjb2RlIHRvIGNhbGN1bGF0ZSB0aGUgY2ZiIHN0cmlkZS9zaXplIGlzIGEgYml0IG9mIG1lc3Mu ClRoZSBjZmIgc2l6ZSBpcyBnZXR0aW5nIGNhbGN1bGF0ZWQgYmFzZWQgcHVyZWx5IG9uIHRoZSBw bGFuZQpzdHJpZGUgYW5kIHBsYW5lIGhlaWdodC4gVGhhdCBkb2Vzbid0IGFjY291bnQgZm9yIGV4 dHJhCmFsaWdubWVudCB3ZSB3YW50IGZvciB0aGUgY2ZiIHN0cmlkZS4gVGhlIGdlbjkgb3ZlcnJp ZGUKc3RyaWRlIE9UT0ggaXMganVzdCBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBwbGFuZSB3aWR0 aCwgYW5kCml0IGRvZXMgdHJ5IHRvIG1ha2UgdGhpbmdzIG1vcmUgYWxpZ25lZCBidXQgYW55IGV4 dHJhIGFsaWdubWVudAphZGRlZCB0aGVyZSBpcyBub3QgY29uc2lkZXJlZCBpbiB0aGUgY2ZiIHNp emUgY2FsY3VsYXRpb25zLgpTbyBub3QgYXQgYWxsIGNvbnZpbmNlZCB0aGlzIGlzIHdvcmtpbmcg YXMgaW50ZW5kZWQuIEFkZGl0aW9uYWxseQp0aGUgY29tcHJlc3Npb24gbGltaXQgaGFuZGxpbmcg aXMgc3BsaXQgYmV0d2VlbiB0aGUgY2ZiIGFsbG9jYXRpb24KY29kZSBhbmQgZzR4X2RwZmNfY3Rs X2xpbWl0KCkgKGZvciB0aGUgMTZicHAgY2FzZSksIHdoaWNoIGlzIGp1c3QKY29uZnVzaW5nLgoK TGV0J3Mgc3RyZWFtbGluZSB0aGUgd2hvbGUgdGhpbmc6Ci0gU3RhcnQgd2l0aCB0aGUgcGxhbmUg c3RyaWRlLCBjb252ZXJ0IHRoYXQgaW50byBjZmIgc3RyaWRlIChjZmIgaXMKICBhbHdheXMgNCBi eXRlcyBwZXIgcGl4ZWwpLiBBbGwgdGhlIGNhbGN1bGF0aW9ucyB3aWxsIGFzc3VtZSAxOjEKICBj b21wcmVzc2lvbiBsaW1pdCBzaW5jZSB0aGF0IHdpbGwgZ2l2ZSB1cyB0aGUgbWF4IHZhbHVlcywg YW5kIHdlCiAgZG9uJ3QgeWV0IGtub3cgaG93IG11Y2ggc3RvbGVuIG1lbW9yeSB3ZSB3aWxsIGJl IGFibGUgdG8gYWxsb2NhdGUKLSBBbGlnbiB0aGUgY2ZiIHN0cmlkZSB0byA1MTIgYnl0ZXMgb24g bW9kZXJuIHBsYXRmb3Jtcy4gVGhpcyBndWFyYW50ZWVzCiAgdGhlIDQgbGluZSBzZWdtZW50IHdp bGwgYmUgNTEyIGJ5dGUgYWxpZ25lZCByZWdhcmRsZXMgb2YgdGhlIGZpbmFsCiAgY29tcHJlc3Np b24gbGltaXQgd2UgY2hvb3NlIGxhdGVyLiBUaGUgNTEyIGJ5dGUgYWxpZ25tZW50IGZvciB0aGUK ICBzZWdtZW50IGlzIHJlcXVpcmVkIGJ5IGF0IGxlYXN0IHNvbWUgb2YgdGhlIHBsYXRmb3Jtcywg YW5kIGp1c3QgZG9pbmcKICBpdCBhbHdheXMgc2VlbXMgbGlrZSB0aGUgZWFzaWVzdCBvcHRpb24K LSBGaWd1cmUgb3V0IGlmIHdlIG5lZWQgdG8gdXNlIHRoZSBvdmVycmlkZSBzdHJpZGUgb3Igbm90 LiBGb3IgWC10aWxlZAogIGl0J3MgbmV2ZXIgbmVlZGVkIHNpbmNlIHRoZSBwbGFuZSBzdHJpZGUg aXMgYWxyZWFkeSA1MTIgYnl0ZSBhbGlnbmVkLAogIGZvciBZLXRpbGVkIGl0IHdpbGwgYmUgbmVl ZGVkIGlmIHRoZSBwbGFuZSBzdHJpZGUgaXMgbm90IGEgbXVsdGlwbGUKICBvZiA1MTIgYnl0ZXMs IGFuZCBmb3IgbGluZWFyIGl0J3MgYXBwYXJlbnRseSBhbHdheXMgbmVlZGVkIGJlY2F1c2UgdGhl CiAgaGFyZHdhcmUgbWlzY2FsY3VsYXRlcyB0aGUgY2ZiIHN0cmlkZSBhcyBQTEFORV9TVFJJREUq NTEyIGluc3RlYWQgb2YKICB0aGUgUExBTkVfU1RSSURFKjY0IHRoYXQgaXQgdXNlIHdpdGggbGlu ZWFyLgotIFRoZSBjZmIgc2l6ZSB3aWxsIGJlIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIGFsaWdu ZWQgY2ZiIHN0cmlkZSB0bwogIGd1YXJhbnRlZSB3ZSBhY3R1YWxseSByZXNlcnZlZCBlbm91Z2gg c3RvbGVuIG1lbW9yeSBhbmQgdGhlIEZCQyBodwogIHdvbid0IGVuZCB1cCBzY3JpYmJsaW5nIG92 ZXIgd2hhdGV2ZXIgZWxzZSBpcyBhbGxvY2F0ZWQgaW4gc3RvbGVuCi0gVGhlIGNvbXByZXNzaW9u IGxpbWl0IGhhbmRsaW5nIHdlIGp1c3QgZG8gZnVsbHkgaW4gdGhlIGNmYiBhbGxvY2F0aW9uCiAg Y29kZSB0byBtYWtlIHRoaW5ncyBsZXNzIGNvbmZ1c2luZwoKU2lnbmVkLW9mZi1ieTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jIHwgMTQxICsrKysrKysrKysrKysrLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgIHwgICA0ICstCiAy IGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCmluZGV4IGY1Y2JiYzUzODM3Yy4uMmJh ZjU4YWYwMTZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2ZiYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKQEAg LTYyLDE5ICs2Miw1NCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfZ2V0X3BsYW5lX3NvdXJjZV9z aXplKGNvbnN0IHN0cnVjdCBpbnRlbF9mYmNfc3RhdGVfY2FjaGUgKgogCQkqaGVpZ2h0ID0gY2Fj aGUtPnBsYW5lLnNyY19oOwogfQogCi1zdGF0aWMgaW50IGludGVsX2ZiY19jYWxjdWxhdGVfY2Zi X3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCQljb25zdCBzdHJ1 Y3QgaW50ZWxfZmJjX3N0YXRlX2NhY2hlICpjYWNoZSkKKy8qIHBsYW5lIHN0cmlkZSBpbiBwaXhl bHMgKi8KK3N0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZmJjX3BsYW5lX3N0cmlkZShjb25zdCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCWludCBsaW5lczsKKwlj b25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5ody5mYjsKKwl1 bnNpZ25lZCBpbnQgc3RyaWRlOworCisJc3RyaWRlID0gcGxhbmVfc3RhdGUtPnZpZXcuY29sb3Jf cGxhbmVbMF0uc3RyaWRlOworCWlmICghZHJtX3JvdGF0aW9uXzkwX29yXzI3MChwbGFuZV9zdGF0 ZS0+aHcucm90YXRpb24pKQorCQlzdHJpZGUgLz0gZmItPmZvcm1hdC0+Y3BwWzBdOworCisJcmV0 dXJuIHN0cmlkZTsKK30KKworLyogcGxhbmUgc3RyaWRlIGJhc2VkIGNmYiBzdHJpZGUgaW4gYnl0 ZXMsIGFzc3VtaW5nIDE6MSBjb21wcmVzc2lvbiBsaW1pdCAqLworc3RhdGljIHVuc2lnbmVkIGlu dCBfaW50ZWxfZmJjX2NmYl9zdHJpZGUoY29uc3Qgc3RydWN0IGludGVsX2ZiY19zdGF0ZV9jYWNo ZSAqY2FjaGUpCit7CisJLyogRkJDIGFsd2F5cyA0IGJ5dGVzIHBlciBwaXhlbCBpbnRlcm5hbGx5 ICovCisJcmV0dXJuIGNhY2hlLT5mYi5zdHJpZGUgKiA0OworfQorCisvKiBwcm9wZXJseSBhbGln bmVkIGNmYiBzdHJpZGUgaW4gYnl0ZXMsIGFzc3VtaW5nIDE6MSBjb21wcmVzc2lvbiBsaW1pdCAq Lworc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9mYmNfY2ZiX3N0cmlkZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9mYmNfc3RhdGVfY2Fj aGUgKmNhY2hlKQoreworCXVuc2lnbmVkIGludCBzdHJpZGUgPSBfaW50ZWxfZmJjX2NmYl9zdHJp ZGUoY2FjaGUpOworCisJLyoKKwkgKiBBdCBsZWFzdCBzb21lIG9mIHRoZSBwbGF0Zm9ybXMgcmVx dWlyZSBlYWNoIDQgbGluZSBzZWdtZW50IHRvCisJICogYmUgNTEyIGJ5dGUgYWxpZ25lZC4gQWxp Z25pbmcgZWFjaCBsaW5lIHRvIDUxMiBieXRlcyBndWFyYW50ZWVzCisJICogdGhhdCByZWdhcmRs ZXNzIG9mIHRoZSBjb21wcmVzc2lvbiBsaW1pdCB3ZSBjaG9vc2UgbGF0ZXIuCisJICovCisJaWYg KERJU1BMQVlfVkVSKGk5MTUpID09IDkpCisJCXJldHVybiBBTElHTihzdHJpZGUsIDUxMik7CisJ ZWxzZQorCQlyZXR1cm4gc3RyaWRlOworfQorCitzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2Zi Y19jZmJfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9mYmNfc3RhdGVfY2FjaGUgKmNhY2hlKQoreworCWludCBsaW5l cyA9IGNhY2hlLT5wbGFuZS5zcmNfaDsKIAotCWludGVsX2ZiY19nZXRfcGxhbmVfc291cmNlX3Np emUoY2FjaGUsIE5VTEwsICZsaW5lcyk7CiAJaWYgKERJU1BMQVlfVkVSKGRldl9wcml2KSA9PSA3 KQogCQlsaW5lcyA9IG1pbihsaW5lcywgMjA0OCk7CiAJZWxzZSBpZiAoRElTUExBWV9WRVIoZGV2 X3ByaXYpID49IDgpCiAJCWxpbmVzID0gbWluKGxpbmVzLCAyNTYwKTsKIAotCS8qIEhhcmR3YXJl IG5lZWRzIHRoZSBmdWxsIGJ1ZmZlciBzdHJpZGUsIG5vdCBqdXN0IHRoZSBhY3RpdmUgYXJlYS4g Ki8KLQlyZXR1cm4gbGluZXMgKiBjYWNoZS0+ZmIuc3RyaWRlOworCXJldHVybiBsaW5lcyAqIGlu dGVsX2ZiY19jZmJfc3RyaWRlKGRldl9wcml2LCBjYWNoZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGk4 eHhfZmJjX2RlYWN0aXZhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpAQCAt MTUwLDE1ICsxODUsOSBAQCBzdGF0aWMgYm9vbCBpOHh4X2ZiY19pc19hY3RpdmUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgdTMyIGc0eF9kcGZjX2N0bF9saW1p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQljb25zdCBzdHJ1Y3QgaW50ZWxf ZmJjX3JlZ19wYXJhbXMgKnBhcmFtcyA9ICZpOTE1LT5mYmMucGFyYW1zOwotCWludCBsaW1pdCA9 IGk5MTUtPmZiYy5saW1pdDsKLQotCWlmIChwYXJhbXMtPmZiLmZvcm1hdC0+Y3BwWzBdID09IDIp Ci0JCWxpbWl0IDw8PSAxOwotCi0Jc3dpdGNoIChsaW1pdCkgeworCXN3aXRjaCAoaTkxNS0+ZmJj LmxpbWl0KSB7CiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKGxpbWl0KTsKKwkJTUlTU0lOR19D QVNFKGk5MTUtPmZiYy5saW1pdCk7CiAJCWZhbGx0aHJvdWdoOwogCWNhc2UgMToKIAkJcmV0dXJu IERQRkNfQ1RMX0xJTUlUXzFYOwpAQCAtMzAxLDcgKzMzMCw4IEBAIHN0YXRpYyBib29sIGlsa19m YmNfaXNfYWN0aXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogc3RhdGlj IHZvaWQgZ2VuN19mYmNfYWN0aXZhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogewotCXN0cnVjdCBpbnRlbF9mYmNfcmVnX3BhcmFtcyAqcGFyYW1zID0gJmRldl9wcml2LT5m YmMucGFyYW1zOworCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9ICZkZXZfcHJpdi0+ZmJjOworCWNv bnN0IHN0cnVjdCBpbnRlbF9mYmNfcmVnX3BhcmFtcyAqcGFyYW1zID0gJmZiYy0+cGFyYW1zOwog CXUzMiBkcGZjX2N0bDsKIAogCS8qIERpc3BsYXkgV0EgIzA1Mjk6IHNrbCwga2JsLCBieHQuICov CkBAIC0zMTAsNyArMzQwLDcgQEAgc3RhdGljIHZvaWQgZ2VuN19mYmNfYWN0aXZhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJCWlmIChwYXJhbXMtPm92ZXJyaWRlX2Nm Yl9zdHJpZGUpCiAJCQl2YWwgfD0gQ0hJQ0tFTl9GQkNfU1RSSURFX09WRVJSSURFIHwKLQkJCQlD SElDS0VOX0ZCQ19TVFJJREUocGFyYW1zLT5vdmVycmlkZV9jZmJfc3RyaWRlKTsKKwkJCQlDSElD S0VOX0ZCQ19TVFJJREUocGFyYW1zLT5vdmVycmlkZV9jZmJfc3RyaWRlIC8gZmJjLT5saW1pdCk7 CiAKIAkJaW50ZWxfZGVfcm13KGRldl9wcml2LCBDSElDS0VOX01JU0NfNCwKIAkJCSAgICAgQ0hJ Q0tFTl9GQkNfU1RSSURFX09WRVJSSURFIHwKQEAgLTQ0Myw3ICs0NzMsMTIgQEAgc3RhdGljIHU2 NCBpbnRlbF9mYmNfc3RvbGVuX2VuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJcmV0dXJuIG1pbihlbmQsIGludGVsX2ZiY19jZmJfYmFzZV9tYXgoZGV2X3ByaXYpKTsKIH0K IAotc3RhdGljIGludCBpbnRlbF9mYmNfbWF4X2xpbWl0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwgaW50IGZiX2NwcCkKK3N0YXRpYyBpbnQgaW50ZWxfZmJjX21pbl9saW1pdChp bnQgZmJfY3BwKQoreworCXJldHVybiBmYl9jcHAgPT0gMiA/IDIgOiAxOworfQorCitzdGF0aWMg aW50IGludGVsX2ZiY19tYXhfbGltaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogewogCS8qCiAJICogRklYTUU6IEZCQzEgY2FuIGhhdmUgYXJiaXRyYXJ5IGNmYiBzdHJpZGUs CkBAIC00NTcsNyArNDkyLDcgQEAgc3RhdGljIGludCBpbnRlbF9mYmNfbWF4X2xpbWl0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGZiX2NwcCkKIAkJcmV0dXJuIDE7CiAK IAkvKiBGQkMyIGNhbiBvbmx5IGRvIDE6MSwgMToyLCAxOjQgKi8KLQlyZXR1cm4gZmJfY3BwID09 IDIgPyAyIDogNDsKKwlyZXR1cm4gNDsKIH0KIAogc3RhdGljIGludCBmaW5kX2NvbXByZXNzaW9u X2xpbWl0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTQ2Niw3ICs1MDEs OSBAQCBzdGF0aWMgaW50IGZpbmRfY29tcHJlc3Npb25fbGltaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogewogCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9ICZkZXZfcHJpdi0+ ZmJjOwogCXU2NCBlbmQgPSBpbnRlbF9mYmNfc3RvbGVuX2VuZChkZXZfcHJpdik7Ci0JaW50IHJl dCwgbGltaXQgPSAxOworCWludCByZXQsIGxpbWl0ID0gaW50ZWxfZmJjX21pbl9saW1pdChmYl9j cHApOworCisJc2l6ZSAvPSBsaW1pdDsKIAogCS8qIFRyeSB0byBvdmVyLWFsbG9jYXRlIHRvIHJl ZHVjZSByZWFsbG9jYXRpb25zIGFuZCBmcmFnbWVudGF0aW9uLiAqLwogCXJldCA9IGk5MTVfZ2Vt X3N0b2xlbl9pbnNlcnRfbm9kZV9pbl9yYW5nZShkZXZfcHJpdiwgJmZiYy0+Y29tcHJlc3NlZF9m YiwKQEAgLTQ3NCw3ICs1MTEsNyBAQCBzdGF0aWMgaW50IGZpbmRfY29tcHJlc3Npb25fbGltaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChyZXQgPT0gMCkKIAkJcmV0 dXJuIGxpbWl0OwogCi0JZm9yICg7IGxpbWl0IDw9IGludGVsX2ZiY19tYXhfbGltaXQoZGV2X3By aXYsIGZiX2NwcCk7IGxpbWl0IDw8PSAxKSB7CisJZm9yICg7IGxpbWl0IDw9IGludGVsX2ZiY19t YXhfbGltaXQoZGV2X3ByaXYpOyBsaW1pdCA8PD0gMSkgewogCQlyZXQgPSBpOTE1X2dlbV9zdG9s ZW5faW5zZXJ0X25vZGVfaW5fcmFuZ2UoZGV2X3ByaXYsICZmYmMtPmNvbXByZXNzZWRfZmIsCiAJ CQkJCQkJICAgc2l6ZSA+Pj0gMSwgNDA5NiwgMCwgZW5kKTsKIAkJaWYgKHJldCA9PSAwKQpAQCAt NTA1LDEwICs1NDIsOSBAQCBzdGF0aWMgaW50IGludGVsX2ZiY19hbGxvY19jZmIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXJldCA9IGZpbmRfY29tcHJlc3Npb25fbGltaXQo ZGV2X3ByaXYsIHNpemUsIGZiX2NwcCk7CiAJaWYgKCFyZXQpCiAJCWdvdG8gZXJyX2xsYjsKLQll bHNlIGlmIChyZXQgPiAxKSB7CisJZWxzZSBpZiAocmV0ID4gaW50ZWxfZmJjX21pbl9saW1pdChm Yl9jcHApKQogCQlkcm1faW5mb19vbmNlKCZkZXZfcHJpdi0+ZHJtLAogCQkJICAgICAgIlJlZHVj aW5nIHRoZSBjb21wcmVzc2VkIGZyYW1lYnVmZmVyIHNpemUuIFRoaXMgbWF5IGxlYWQgdG8gbGVz cyBwb3dlciBzYXZpbmdzIHRoYW4gYSBub24tcmVkdWNlZC1zaXplLiBUcnkgdG8gaW5jcmVhc2Ug c3RvbGVuIG1lbW9yeSBzaXplIGlmIGF2YWlsYWJsZSBpbiBCSU9TLlxuIik7Ci0JfQogCiAJZmJj LT5saW1pdCA9IHJldDsKIApAQCAtNzE5LDExICs3NTUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9m YmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJY2FjaGUt PmZiLmZvcm1hdCA9IGZiLT5mb3JtYXQ7CiAJY2FjaGUtPmZiLm1vZGlmaWVyID0gZmItPm1vZGlm aWVyOwotCi0JLyogRklYTUUgaXMgdGhpcyBjb3JyZWN0PyAqLwotCWNhY2hlLT5mYi5zdHJpZGUg PSBwbGFuZV9zdGF0ZS0+dmlldy5jb2xvcl9wbGFuZVswXS5zdHJpZGU7Ci0JaWYgKGRybV9yb3Rh dGlvbl85MF9vcl8yNzAocGxhbmVfc3RhdGUtPmh3LnJvdGF0aW9uKSkKLQkJY2FjaGUtPmZiLnN0 cmlkZSAqPSBmYi0+Zm9ybWF0LT5jcHBbMF07CisJY2FjaGUtPmZiLnN0cmlkZSA9IGludGVsX2Zi Y19wbGFuZV9zdHJpZGUocGxhbmVfc3RhdGUpOwogCiAJLyogRkJDMSBjb21wcmVzc2lvbiBpbnRl cnZhbDogYXJiaXRyYXJ5IGNob2ljZSBvZiAxIHNlY29uZCAqLwogCWNhY2hlLT5pbnRlcnZhbCA9 IGRybV9tb2RlX3ZyZWZyZXNoKCZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlKTsKQEAgLTc0 NiwyNyArNzc4LDI5IEBAIHN0YXRpYyBib29sIGludGVsX2ZiY19jZmJfc2l6ZV9jaGFuZ2VkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfZmJjICpm YmMgPSAmZGV2X3ByaXYtPmZiYzsKIAotCXJldHVybiBpbnRlbF9mYmNfY2FsY3VsYXRlX2NmYl9z aXplKGRldl9wcml2LCAmZmJjLT5zdGF0ZV9jYWNoZSkgPgorCXJldHVybiBpbnRlbF9mYmNfY2Zi X3NpemUoZGV2X3ByaXYsICZmYmMtPnN0YXRlX2NhY2hlKSA+CiAJCWZiYy0+Y29tcHJlc3NlZF9m Yi5zaXplICogZmJjLT5saW1pdDsKIH0KIAotc3RhdGljIHUxNiBpbnRlbF9mYmNfb3ZlcnJpZGVf Y2ZiX3N0cmlkZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdTE2 IGludGVsX2ZiY19vdmVycmlkZV9jZmJfc3RyaWRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9mYmNfc3RhdGVfY2FjaGUgKmNhY2hl KQogewotCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9ICZkZXZfcHJpdi0+ZmJjOwotCXN0cnVjdCBp bnRlbF9mYmNfc3RhdGVfY2FjaGUgKmNhY2hlID0gJmZiYy0+c3RhdGVfY2FjaGU7CisJdW5zaWdu ZWQgaW50IHN0cmlkZSA9IF9pbnRlbF9mYmNfY2ZiX3N0cmlkZShjYWNoZSk7CisJdW5zaWduZWQg aW50IHN0cmlkZV9hbGlnbmVkID0gaW50ZWxfZmJjX2NmYl9zdHJpZGUoZGV2X3ByaXYsIGNhY2hl KTsKIAotCWlmICgoRElTUExBWV9WRVIoZGV2X3ByaXYpID09IDkpICYmCi0JICAgIGNhY2hlLT5m Yi5tb2RpZmllciAhPSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCkKLQkJcmV0dXJuIERJVl9ST1VO RF9VUChjYWNoZS0+cGxhbmUuc3JjX3csIDMyICogZmJjLT5saW1pdCkgKiA4OwotCWVsc2UKLQkJ cmV0dXJuIDA7Ci19CisJLyoKKwkgKiBPdmVycmlkZSBzdHJpZGUgaW4gNjQgYnl0ZSB1bml0cyBw ZXIgNCBsaW5lIHNlZ21lbnQuCisJICoKKwkgKiBHZW45IGh3IG1pc2NhbGN1bGF0ZXMgY2ZiIHN0 cmlkZSBmb3IgbGluZWFyIGFzCisJICogUExBTkVfU1RSSURFKjUxMiBpbnN0ZWFkIG9mIFBMQU5F X1NUUklERSo2NCwgc28KKwkgKiB3ZSBhbHdheXMgbmVlZCB0byB1c2UgdGhlIG92ZXJyaWRlIHRo ZXJlLgorCSAqLworCWlmIChzdHJpZGUgIT0gc3RyaWRlX2FsaWduZWQgfHwKKwkgICAgKERJU1BM QVlfVkVSKGRldl9wcml2KSA9PSA5ICYmCisJICAgICBjYWNoZS0+ZmIubW9kaWZpZXIgPT0gRFJN X0ZPUk1BVF9NT0RfTElORUFSKSkKKwkJcmV0dXJuIHN0cmlkZV9hbGlnbmVkICogNCAvIDY0Owog Ci1zdGF0aWMgYm9vbCBpbnRlbF9mYmNfb3ZlcnJpZGVfY2ZiX3N0cmlkZV9jaGFuZ2VkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMg PSAmZGV2X3ByaXYtPmZiYzsKLQotCXJldHVybiBmYmMtPnBhcmFtcy5vdmVycmlkZV9jZmJfc3Ry aWRlICE9IGludGVsX2ZiY19vdmVycmlkZV9jZmJfc3RyaWRlKGRldl9wcml2KTsKKwlyZXR1cm4g MDsKIH0KIAogc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nhbl9lbmFibGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQpAQCAtODYxLDcgKzg5NSw4IEBAIHN0YXRpYyBib29sIGludGVs X2ZiY19jYW5fYWN0aXZhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJCXJldHVybiBmYWxz ZTsKIAl9CiAKLQlpZiAoIXN0cmlkZV9pc192YWxpZChkZXZfcHJpdiwgY2FjaGUtPmZiLm1vZGlm aWVyLCBjYWNoZS0+ZmIuc3RyaWRlKSkgeworCWlmICghc3RyaWRlX2lzX3ZhbGlkKGRldl9wcml2 LCBjYWNoZS0+ZmIubW9kaWZpZXIsCisJCQkgICAgIGNhY2hlLT5mYi5zdHJpZGUgKiBjYWNoZS0+ ZmIuZm9ybWF0LT5jcHBbMF0pKSB7CiAJCWZiYy0+bm9fZmJjX3JlYXNvbiA9ICJmcmFtZWJ1ZmZl ciBzdHJpZGUgbm90IHN1cHBvcnRlZCI7CiAJCXJldHVybiBmYWxzZTsKIAl9CkBAIC05NDksOSAr OTg0LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX2dldF9yZWdfcGFyYW1zKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCXBhcmFtcy0+ZmIubW9kaWZpZXIgPSBjYWNoZS0+ZmIubW9kaWZpZXI7 CiAJcGFyYW1zLT5mYi5zdHJpZGUgPSBjYWNoZS0+ZmIuc3RyaWRlOwogCi0JcGFyYW1zLT5jZmJf c2l6ZSA9IGludGVsX2ZiY19jYWxjdWxhdGVfY2ZiX3NpemUoZGV2X3ByaXYsIGNhY2hlKTsKLQot CXBhcmFtcy0+b3ZlcnJpZGVfY2ZiX3N0cmlkZSA9IGNhY2hlLT5vdmVycmlkZV9jZmJfc3RyaWRl OworCXBhcmFtcy0+Y2ZiX3N0cmlkZSA9IGludGVsX2ZiY19jZmJfc3RyaWRlKGRldl9wcml2LCBj YWNoZSk7CisJcGFyYW1zLT5jZmJfc2l6ZSA9IGludGVsX2ZiY19jZmJfc2l6ZShkZXZfcHJpdiwg Y2FjaGUpOworCXBhcmFtcy0+b3ZlcnJpZGVfY2ZiX3N0cmlkZSA9IGludGVsX2ZiY19vdmVycmlk ZV9jZmJfc3RyaWRlKGRldl9wcml2LCBjYWNoZSk7CiAKIAlwYXJhbXMtPnBsYW5lX3Zpc2libGUg PSBjYWNoZS0+cGxhbmUudmlzaWJsZTsKIH0KQEAgLTk4MiwxMCArMTAxNywxMyBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9mYmNfY2FuX2ZsaXBfbnVrZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIAlpZiAocGFyYW1zLT5mYi5zdHJpZGUgIT0gY2FjaGUtPmZiLnN0cmlk ZSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JaWYgKHBhcmFtcy0+Y2ZiX3NpemUgIT0gaW50ZWxfZmJj X2NhbGN1bGF0ZV9jZmJfc2l6ZShkZXZfcHJpdiwgY2FjaGUpKQorCWlmIChwYXJhbXMtPmNmYl9z dHJpZGUgIT0gaW50ZWxfZmJjX2NmYl9zdHJpZGUoZGV2X3ByaXYsIGNhY2hlKSkKIAkJcmV0dXJu IGZhbHNlOwogCi0JaWYgKHBhcmFtcy0+b3ZlcnJpZGVfY2ZiX3N0cmlkZSAhPSBjYWNoZS0+b3Zl cnJpZGVfY2ZiX3N0cmlkZSkKKwlpZiAocGFyYW1zLT5jZmJfc2l6ZSAhPSBpbnRlbF9mYmNfY2Zi X3NpemUoZGV2X3ByaXYsIGNhY2hlKSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKHBhcmFtcy0+ b3ZlcnJpZGVfY2ZiX3N0cmlkZSAhPSBpbnRlbF9mYmNfb3ZlcnJpZGVfY2ZiX3N0cmlkZShkZXZf cHJpdiwgY2FjaGUpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXR1cm4gdHJ1ZTsKQEAgLTEyNjYs OCArMTMwNCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY19lbmFibGUoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCiAKIAlpZiAoZmJjLT5jcnRjKSB7CiAJCWlmIChmYmMtPmNydGMg IT0gY3J0YyB8fAotCQkgICAgKCFpbnRlbF9mYmNfY2ZiX3NpemVfY2hhbmdlZChkZXZfcHJpdikg JiYKLQkJICAgICAhaW50ZWxfZmJjX292ZXJyaWRlX2NmYl9zdHJpZGVfY2hhbmdlZChkZXZfcHJp dikpKQorCQkgICAgIWludGVsX2ZiY19jZmJfc2l6ZV9jaGFuZ2VkKGRldl9wcml2KSkKIAkJCWdv dG8gb3V0OwogCiAJCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2X3ByaXYpOwpAQCAtMTI4MiwxNSAr MTMxOSwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfZW5hYmxlKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAogCQlnb3RvIG91dDsKIAogCWlmIChpbnRlbF9mYmNfYWxsb2NfY2Zi KGRldl9wcml2LAotCQkJCWludGVsX2ZiY19jYWxjdWxhdGVfY2ZiX3NpemUoZGV2X3ByaXYsIGNh Y2hlKSwKKwkJCQlpbnRlbF9mYmNfY2ZiX3NpemUoZGV2X3ByaXYsIGNhY2hlKSwKIAkJCQlwbGFu ZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdKSkgewogCQljYWNoZS0+cGxhbmUudmlzaWJs ZSA9IGZhbHNlOwogCQlmYmMtPm5vX2ZiY19yZWFzb24gPSAibm90IGVub3VnaCBzdG9sZW4gbWVt b3J5IjsKIAkJZ290byBvdXQ7CiAJfQogCi0JY2FjaGUtPm92ZXJyaWRlX2NmYl9zdHJpZGUgPSBp bnRlbF9mYmNfb3ZlcnJpZGVfY2ZiX3N0cmlkZShkZXZfcHJpdik7Ci0KIAlkcm1fZGJnX2ttcygm ZGV2X3ByaXYtPmRybSwgIkVuYWJsaW5nIEZCQyBvbiBwaXBlICVjXG4iLAogCQkgICAgcGlwZV9u YW1lKGNydGMtPnBpcGUpKTsKIAlmYmMtPm5vX2ZiY19yZWFzb24gPSAiRkJDIGVuYWJsZWQgYnV0 IG5vdCBhY3RpdmUgeWV0XG4iOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggOTFhMmQyNDI1 ZmQzLi5kMTI0MzA2YzBhMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNDAxLDcgKzQw MSw2IEBAIHN0cnVjdCBpbnRlbF9mYmMgewogCQl9IGZiOwogCiAJCXVuc2lnbmVkIGludCBmZW5j ZV95X29mZnNldDsKLQkJdTE2IG92ZXJyaWRlX2NmYl9zdHJpZGU7CiAJCXUxNiBpbnRlcnZhbDsK IAkJczggZmVuY2VfaWQ7CiAJCWJvb2wgcHNyMl9hY3RpdmU7CkBAIC00MjYsNyArNDI1LDggQEAg c3RydWN0IGludGVsX2ZiYyB7CiAJCQl1NjQgbW9kaWZpZXI7CiAJCX0gZmI7CiAKLQkJaW50IGNm Yl9zaXplOworCQl1bnNpZ25lZCBpbnQgY2ZiX3N0cmlkZTsKKwkJdW5zaWduZWQgaW50IGNmYl9z aXplOwogCQl1bnNpZ25lZCBpbnQgZmVuY2VfeV9vZmZzZXQ7CiAJCXUxNiBvdmVycmlkZV9jZmJf c3RyaWRlOwogCQl1MTYgaW50ZXJ2YWw7Ci0tIAoyLjMxLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=