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=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,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 7A1BFC352A5 for ; Mon, 10 Feb 2020 17:10:44 +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 5BBD520870 for ; Mon, 10 Feb 2020 17:10:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5BBD520870 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=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 B66026ECE2; Mon, 10 Feb 2020 17:10:33 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E3C76ECE1; Mon, 10 Feb 2020 17:10:32 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Feb 2020 09:10:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,425,1574150400"; d="scan'208";a="233168231" Received: from helsinki.fi.intel.com ([10.237.66.159]) by orsmga003.jf.intel.com with ESMTP; 10 Feb 2020 09:10:30 -0800 From: Gwan-gyeong Mun To: intel-gfx@lists.freedesktop.org Date: Mon, 10 Feb 2020 19:10:07 +0200 Message-Id: <20200210171021.109684-5-gwan-gyeong.mun@intel.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200210171021.109684-1-gwan-gyeong.mun@intel.com> References: <20200210171021.109684-1-gwan-gyeong.mun@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v6 04/18] drm/i915/dp: Add writing of DP SDPs 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: , Cc: linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" SXQgYWRkcyByb3V0aW5lcyB0aGF0IHdyaXRlIERQIFZTQyBTRFAgYW5kIERQIEhEUiBNZXRhZGF0 YSBJbmZvZnJhbWUgU0RQLgpJbiBvcmRlciB0byBwYWNrIERQIFZTQyBTRFAsIGl0IGFkZHMgaW50 ZWxfZHBfdnNjX3NkcF9wYWNrKCkgZnVuY3Rpb24uCkl0IGZvbGxvd3MgRFAgMS40YSBzcGVjLiBb VGFibGUgMi0xMTY6IFZTQyBTRFAgSGVhZGVyIEJ5dGVzXSBhbmQKW1RhYmxlIDItMTE3OiBWU0Mg U0RQIFBheWxvYWQgZm9yIERCMTYgdGhyb3VnaCBEQjE4XQoKSW4gb3JkZXIgdG8gcGFjayBEUCBI RFIgTWV0YWRhdGEgSW5mb2ZyYW1lIFNEUCwgaXQgYWRkcwppbnRlbF9kcF9oZHJfbWV0YWRhdGFf aW5mb2ZyYW1lX3NkcF9wYWNrKCkgZnVuY3Rpb24uCkFuZCBpdCBmb2xsb3dzIERQIDEuNGEgc3Bl Yy4KKFtUYWJsZSAyLTEyNTogSU5GT0ZSQU1FIFNEUCB2MS4yIEhlYWRlciBCeXRlc10gYW5kCltU YWJsZSAyLTEyNjogSU5GT0ZSQU1FIFNEUCB2MS4yIFBheWxvYWQgRGF0YSBCeXRlcyAtIERCMCB0 aHJvdWdoIERCMzFdKQphbmQgQ1RBLTg2MS1HIHNwZWMuIFtUYWJsZS00MiBEeW5hbWljIFJhbmdl IGFuZCBNYXN0ZXJpbmcgSW5mb0ZyYW1lXS4KCkEgbWVjaGFuaXNtIGFuZCBhIG5hbWluZyBydWxl IG9mIGludGVsX2RwX3NldF9pbmZvZnJhbWVzKCkgZnVuY3Rpb24KcmVmZXJlbmNlcyBpbnRlbF9l bmNvZGVyLT5zZXRfaW5mb2ZyYW1lcygpIG9mIGludGVsX2hkbWkuYyAuClZTQyBTRFAgaXMgdXNl ZCBmb3IgUFNSIGFuZCBQaXhlbCBFbmNvZGluZyBhbmQgQ29sb3JpbWV0cnkgRm9ybWF0cyBjYXNl cy4KQmVjYXVzZSBQU1Igcm91dGluZSBoYXMgaXRzIG93biByb3V0aW5lIG9mIHdyaXRpbmcgYSBW U0MgU0RQLCB3aGVuIHRoZSBQU1IKaXMgZW5hYmxlZCwgaW50ZWxfZHBfc2V0X2luZm9mcmFtZXMo KSBkb2VzIG5vdCB3cml0ZSBhIFZTQyBTRFAuCgp2MzoKICAtIEV4cGxpY2l0bHkgZGlzYWJsZSB1 bnVzZWQgRElQcyAoQVZJLCBHQ1AsIFZTLCBTUEQsIERSTS4gVGhleSB3aWxsIGJlCiAgICB1c2Vk IGZvciBIRE1JKSwgd2hlbiBpbnRlbF9kcF9zZXRfaW5mb2ZyYW1lcygpIGZ1bmN0aW9uIHdpbGwg YmUgY2FsbGVkLgogIC0gUmVwbGFjZSBhIHN0cnVjdHVyZSBuYW1lIHRvIGRybV9kcF92c2Nfc2Rw IGZyb20gaW50ZWxfZHBfdnNjX3NkcC4KdjQ6IFVzZSBzdHJ1Y3QgZHJtX2RldmljZSBsb2dnaW5n IG1hY3Jvcwp2NToKICAtIHVzZSBpbnRlbF9kZV8qKCkgZnVuY3Rpb25zIGZvciByZWdpc3RlciBh Y2Nlc3MKICAtIEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBVbWEKICAgIFBvbGlzaCBj b21taXQgbWVzc2FnZSBhbmQgY29tbWVudHMKICAgIEFkZCA2YnBjIHRvIHBhY2tpbmcgb2YgVlND IFNEUAoKU2lnbmVkLW9mZi1ieTogR3dhbi1neWVvbmcgTXVuIDxnd2FuLWd5ZW9uZy5tdW5AaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyB8IDE5 OSArKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHAuaCB8ICAgMyArCiAyIGZpbGVzIGNoYW5nZWQsIDIwMiBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCmluZGV4IDQ3MmNlMzIwM2EwOS4u YmM1MzJjY2ExMjVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCkBA IC00NzM5LDYgKzQ3MzksMjA1IEBAIGludGVsX2RwX25lZWRzX3ZzY19zZHAoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcmV0dXJuIGZhbHNlOwogfQogCitzdGF0 aWMgc3NpemVfdCBpbnRlbF9kcF92c2Nfc2RwX3BhY2soY29uc3Qgc3RydWN0IGRybV9kcF92c2Nf c2RwICp2c2MsCisJCQkJICAgICBzdHJ1Y3QgZHBfc2RwICpzZHAsIHNpemVfdCBzaXplKQorewor CXNpemVfdCBsZW5ndGggPSBzaXplb2Yoc3RydWN0IGRwX3NkcCk7CisKKwlpZiAoc2l6ZSA8IGxl bmd0aCkKKwkJcmV0dXJuIC1FTk9TUEM7CisKKwltZW1zZXQoc2RwLCAwLCBzaXplKTsKKworCS8q CisJICogUHJlcGFyZSBWU0MgSGVhZGVyIGZvciBTVSBhcyBwZXIgRFAgMS40YSBzcGVjLCBUYWJs ZSAyLTExOQorCSAqIFZTQyBTRFAgSGVhZGVyIEJ5dGVzCisJICovCisJc2RwLT5zZHBfaGVhZGVy LkhCMCA9IDA7IC8qIFNlY29uZGFyeS1EYXRhIFBhY2tldCBJRCA9IDAgKi8KKwlzZHAtPnNkcF9o ZWFkZXIuSEIxID0gdnNjLT5zZHBfdHlwZTsgLyogU2Vjb25kYXJ5LWRhdGEgUGFja2V0IFR5cGUg Ki8KKwlzZHAtPnNkcF9oZWFkZXIuSEIyID0gdnNjLT5yZXZpc2lvbjsgLyogUmV2aXNpb24gTnVt YmVyICovCisJc2RwLT5zZHBfaGVhZGVyLkhCMyA9IHZzYy0+bGVuZ3RoOyAvKiBOdW1iZXIgb2Yg VmFsaWQgRGF0YSBCeXRlcyAqLworCisJLyogVlNDIFNEUCBQYXlsb2FkIGZvciBEQjE2IHRocm91 Z2ggREIxOCAqLworCS8qIFBpeGVsIEVuY29kaW5nIGFuZCBDb2xvcmltZXRyeSBGb3JtYXRzICAq LworCXNkcC0+ZGJbMTZdID0gKHZzYy0+cGl4ZWxmb3JtYXQgJiAweGYpIDw8IDQ7IC8qIERCMTZb Nzo0XSAqLworCXNkcC0+ZGJbMTZdIHw9IHZzYy0+Y29sb3JpbWV0cnkgJiAweGY7IC8qIERCMTZb MzowXSAqLworCisJc3dpdGNoICh2c2MtPmJwYykgeworCWNhc2UgNjoKKwkJLyogNmJwYzogMHgw ICovCisJCWJyZWFrOworCWNhc2UgODoKKwkJc2RwLT5kYlsxN10gPSAweDE7IC8qIERCMTdbMzow XSAqLworCQlicmVhazsKKwljYXNlIDEwOgorCQlzZHAtPmRiWzE3XSA9IDB4MjsKKwkJYnJlYWs7 CisJY2FzZSAxMjoKKwkJc2RwLT5kYlsxN10gPSAweDM7CisJCWJyZWFrOworCWNhc2UgMTY6CisJ CXNkcC0+ZGJbMTddID0gMHg0OworCQlicmVhazsKKwlkZWZhdWx0OgorCQlNSVNTSU5HX0NBU0Uo dnNjLT5icGMpOworCQlicmVhazsKKwl9CisJLyogRHluYW1pYyBSYW5nZSBhbmQgQ29tcG9uZW50 IEJpdCBEZXB0aCAqLworCWlmICh2c2MtPmR5bmFtaWNfcmFuZ2UgPT0gRFBfRFlOQU1JQ19SQU5H RV9DVEEpCisJCXNkcC0+ZGJbMTddIHw9IDB4ODA7ICAvKiBEQjE3WzddICovCisKKwkvKiBDb250 ZW50IFR5cGUgKi8KKwlzZHAtPmRiWzE4XSA9IHZzYy0+Y29udGVudF90eXBlICYgMHg3OworCisJ cmV0dXJuIGxlbmd0aDsKK30KKworc3RhdGljIHNzaXplX3QKK2ludGVsX2RwX2hkcl9tZXRhZGF0 YV9pbmZvZnJhbWVfc2RwX3BhY2soY29uc3Qgc3RydWN0IGhkbWlfZHJtX2luZm9mcmFtZSAqZHJt X2luZm9mcmFtZSwKKwkJCQkJIHN0cnVjdCBkcF9zZHAgKnNkcCwKKwkJCQkJIHNpemVfdCBzaXpl KQoreworCXNpemVfdCBsZW5ndGggPSBzaXplb2Yoc3RydWN0IGRwX3NkcCk7CisJY29uc3QgaW50 IGluZm9mcmFtZV9zaXplID0gSERNSV9JTkZPRlJBTUVfSEVBREVSX1NJWkUgKyBIRE1JX0RSTV9J TkZPRlJBTUVfU0laRTsKKwl1bnNpZ25lZCBjaGFyIGJ1ZltIRE1JX0lORk9GUkFNRV9IRUFERVJf U0laRSArIEhETUlfRFJNX0lORk9GUkFNRV9TSVpFXTsKKwlzc2l6ZV90IGxlbjsKKworCWlmIChz aXplIDwgbGVuZ3RoKQorCQlyZXR1cm4gLUVOT1NQQzsKKworCW1lbXNldChzZHAsIDAsIHNpemUp OworCisJbGVuID0gaGRtaV9kcm1faW5mb2ZyYW1lX3BhY2tfb25seShkcm1faW5mb2ZyYW1lLCBi dWYsIHNpemVvZihidWYpKTsKKwlpZiAobGVuIDwgMCkgeworCQlEUk1fREVCVUdfS01TKCJidWZm ZXIgc2l6ZSBpcyBzbWFsbGVyIHRoYW4gaGRyIG1ldGFkYXRhIGluZm9mcmFtZVxuIik7CisJCXJl dHVybiAtRU5PU1BDOworCX0KKworCWlmIChsZW4gIT0gaW5mb2ZyYW1lX3NpemUpIHsKKwkJRFJN X0RFQlVHX0tNUygid3Jvbmcgc3RhdGljIGhkciBtZXRhZGF0YSBzaXplXG4iKTsKKwkJcmV0dXJu IC1FTk9TUEM7CisJfQorCisJLyoKKwkgKiBTZXQgdXAgdGhlIGluZm9mcmFtZSBzZHAgcGFja2V0 IGZvciBIRFIgc3RhdGljIG1ldGFkYXRhLgorCSAqIFByZXBhcmUgVlNDIEhlYWRlciBmb3IgU1Ug YXMgcGVyIERQIDEuNGEgc3BlYywKKwkgKiBUYWJsZSAyLTEwMCBhbmQgVGFibGUgMi0xMDEKKwkg Ki8KKworCS8qIFNlY29uZGFyeS1EYXRhIFBhY2tldCBJRCwgMDBoIGZvciBub24tQXVkaW8gSU5G T0ZSQU1FICovCisJc2RwLT5zZHBfaGVhZGVyLkhCMCA9IDA7CisJLyoKKwkgKiBQYWNrZXQgVHlw ZSA4MGggKyBOb24tYXVkaW8gSU5GT0ZSQU1FIFR5cGUgdmFsdWUKKwkgKiBIRE1JX0lORk9GUkFN RV9UWVBFX0RSTTogMHg4NworCSAqIC0gODBoICsgTm9uLWF1ZGlvIElORk9GUkFNRSBUeXBlIHZh bHVlCisJICogLSBJbmZvRnJhbWUgVHlwZTogMHgwNworCSAqICAgIFtDVEEtODYxLUcgVGFibGUt NDIgRHluYW1pYyBSYW5nZSBhbmQgTWFzdGVyaW5nIEluZm9GcmFtZV0KKwkgKi8KKwlzZHAtPnNk cF9oZWFkZXIuSEIxID0gZHJtX2luZm9mcmFtZS0+dHlwZTsKKwkvKgorCSAqIExlYXN0IFNpZ25p ZmljYW50IEVpZ2h0IEJpdHMgb2YgKERhdGEgQnl0ZSBDb3VudCDigJMgMSkKKwkgKiBpbmZvZnJh bWVfc2l6ZSAtIDEKKwkgKi8KKwlzZHAtPnNkcF9oZWFkZXIuSEIyID0gMHgxRDsKKwkvKiBJTkZP RlJBTUUgU0RQIFZlcnNpb24gTnVtYmVyICovCisJc2RwLT5zZHBfaGVhZGVyLkhCMyA9ICgweDEz IDw8IDIpOworCS8qIENUQSBIZWFkZXIgQnl0ZSAyIChJTkZPRlJBTUUgVmVyc2lvbiBOdW1iZXIp ICovCisJc2RwLT5kYlswXSA9IGRybV9pbmZvZnJhbWUtPnZlcnNpb247CisJLyogQ1RBIEhlYWRl ciBCeXRlIDMgKExlbmd0aCBvZiBJTkZPRlJBTUUpOiBIRE1JX0RSTV9JTkZPRlJBTUVfU0laRSAq LworCXNkcC0+ZGJbMV0gPSBkcm1faW5mb2ZyYW1lLT5sZW5ndGg7CisJLyoKKwkgKiBDb3B5IEhE TUlfRFJNX0lORk9GUkFNRV9TSVpFIHNpemUgZnJvbSBhIGJ1ZmZlciBhZnRlcgorCSAqIEhETUlf SU5GT0ZSQU1FX0hFQURFUl9TSVpFCisJICovCisJQlVJTERfQlVHX09OKHNpemVvZihzZHAtPmRi KSA8IEhETUlfRFJNX0lORk9GUkFNRV9TSVpFICsgMik7CisJbWVtY3B5KCZzZHAtPmRiWzJdLCAm YnVmW0hETUlfSU5GT0ZSQU1FX0hFQURFUl9TSVpFXSwKKwkgICAgICAgSERNSV9EUk1fSU5GT0ZS QU1FX1NJWkUpOworCisJLyoKKwkgKiBTaXplIG9mIERQIGluZm9mcmFtZSBzZHAgcGFja2V0IGZv ciBIRFIgc3RhdGljIG1ldGFkYXRhIGNvbnNpc3RzIG9mCisJICogLSBEUCBTRFAgSGVhZGVyKHN0 cnVjdCBkcF9zZHBfaGVhZGVyKTogNCBieXRlcworCSAqIC0gVHdvIERhdGEgQmxvY2tzOiAyIGJ5 dGVzCisJICogICAgQ1RBIEhlYWRlciBCeXRlMiAoSU5GT0ZSQU1FIFZlcnNpb24gTnVtYmVyKQor CSAqICAgIENUQSBIZWFkZXIgQnl0ZTMgKExlbmd0aCBvZiBJTkZPRlJBTUUpCisJICogLSBIRE1J X0RSTV9JTkZPRlJBTUVfU0laRTogMjYgYnl0ZXMKKwkgKgorCSAqIFByaW9yIHRvIEdFTjExJ3Mg R01QIHJlZ2lzdGVyIHNpemUgaXMgaWRlbnRpY2FsIHRvIERQIEhEUiBzdGF0aWMgbWV0YWRhdGEK KwkgKiBpbmZvZnJhbWUgc2l6ZS4gQnV0IEdFTjExKyBoYXMgbGFyZ2VyIHRoYW4gdGhhdCBzaXpl LCB3cml0ZV9pbmZvZnJhbWUKKwkgKiB3aWxsIHBhZCByZXN0IG9mIHRoZSBzaXplLgorCSAqLwor CXJldHVybiBzaXplb2Yoc3RydWN0IGRwX3NkcF9oZWFkZXIpICsgMiArIEhETUlfRFJNX0lORk9G UkFNRV9TSVpFOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF93cml0ZV9kcF9zZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgICAgdW5zaWduZWQgaW50IHR5cGUpCit7CisJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQo ZW5jb2Rlcik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7CisJc3RydWN0IGRwX3NkcCBzZHAgPSB7fTsKKwlzc2l6ZV90IGxl bjsKKworCWlmICgoY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5lbmFibGUgJgorCSAgICAgaW50ZWxf aGRtaV9pbmZvZnJhbWVfZW5hYmxlKHR5cGUpKSA9PSAwKQorCQlyZXR1cm47CisKKwlzd2l0Y2gg KHR5cGUpIHsKKwljYXNlIERQX1NEUF9WU0M6CisJCWxlbiA9IGludGVsX2RwX3ZzY19zZHBfcGFj aygmY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy52c2MsICZzZHAsCisJCQkJCSAgICBzaXplb2Yoc2Rw KSk7CisJCWJyZWFrOworCWNhc2UgSERNSV9QQUNLRVRfVFlQRV9HQU1VVF9NRVRBREFUQToKKwkJ bGVuID0gaW50ZWxfZHBfaGRyX21ldGFkYXRhX2luZm9mcmFtZV9zZHBfcGFjaygmY3J0Y19zdGF0 ZS0+aW5mb2ZyYW1lcy5kcm0uZHJtLAorCQkJCQkJCSAgICAgICAmc2RwLCBzaXplb2Yoc2RwKSk7 CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCU1JU1NJTkdfQ0FTRSh0eXBlKTsKKwkJYnJlYWs7CisJ fQorCisJaWYgKGRybV9XQVJOX09OKCZkZXZfcHJpdi0+ZHJtLCBsZW4gPCAwKSkKKwkJcmV0dXJu OworCisJaW50ZWxfZGlnX3BvcnQtPndyaXRlX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRl LCB0eXBlLCAmc2RwLCBsZW4pOworfQorCit2b2lkIGludGVsX2RwX3NldF9pbmZvZnJhbWVzKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJICAgICBib29sIGVuYWJsZSwKKwkJCSAg ICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgICAgIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQoreworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwor CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7CisJ aTkxNV9yZWdfdCByZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwoY3J0Y19zdGF0ZS0+Y3B1X3RyYW5z Y29kZXIpOworCXUzMiBkaXBfZW5hYmxlID0gVklERU9fRElQX0VOQUJMRV9BVklfSFNXIHwgVklE RU9fRElQX0VOQUJMRV9HQ1BfSFNXIHwKKwkJCSBWSURFT19ESVBfRU5BQkxFX1ZTX0hTVyB8IFZJ REVPX0RJUF9FTkFCTEVfR01QX0hTVyB8CisJCQkgVklERU9fRElQX0VOQUJMRV9TUERfSFNXIHwg VklERU9fRElQX0VOQUJMRV9EUk1fR0xLOworCXUzMiB2YWwgPSBpbnRlbF9kZV9yZWFkKGRldl9w cml2LCByZWcpOworCisJLyogVE9ETzogQWRkIERTQyBjYXNlIChESVBfRU5BQkxFX1BQUykgKi8K KwkvKiBXaGVuIFBTUiBpcyBlbmFibGVkLCB0aGlzIHJvdXRpbmUgZG9lc24ndCBkaXNhYmxlIFZT QyBESVAgKi8KKwlpZiAoaW50ZWxfcHNyX2VuYWJsZWQoaW50ZWxfZHApKQorCQl2YWwgJj0gfmRp cF9lbmFibGU7CisJZWxzZQorCQl2YWwgJj0gfihkaXBfZW5hYmxlIHwgVklERU9fRElQX0VOQUJM RV9WU0NfSFNXKTsKKworCWlmICghZW5hYmxlKSB7CisJCWludGVsX2RlX3dyaXRlKGRldl9wcml2 LCByZWcsIHZhbCk7CisJCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgcmVnKTsKKwkJ cmV0dXJuOworCX0KKworCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCByZWcsIHZhbCk7CisJaW50 ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCByZWcpOworCisJLyogV2hlbiBQU1IgaXMgZW5h YmxlZCwgVlNDIFNEUCBpcyBoYW5kbGVkIGJ5IFBTUiByb3V0aW5lICovCisJaWYgKCFpbnRlbF9w c3JfZW5hYmxlZChpbnRlbF9kcCkpCisJCWludGVsX3dyaXRlX2RwX3NkcChlbmNvZGVyLCBjcnRj X3N0YXRlLCBEUF9TRFBfVlNDKTsKKworCWludGVsX3dyaXRlX2RwX3NkcChlbmNvZGVyLCBjcnRj X3N0YXRlLCBIRE1JX1BBQ0tFVF9UWVBFX0dBTVVUX01FVEFEQVRBKTsKK30KKwogc3RhdGljIHZv aWQKIGludGVsX2RwX3NldHVwX3ZzY19zZHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJ ICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oCmluZGV4IDNkYTE2NjA1NDc4OC4uMGRjMDlh NDYzZWUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5oCkBAIC0xMTYs NiArMTE2LDkgQEAgdm9pZCBpbnRlbF9kcF92c2NfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsCiB2b2lkIGludGVsX2RwX2hkcl9tZXRhZGF0YV9lbmFibGUoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp Owordm9pZCBpbnRlbF9kcF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwgYm9vbCBlbmFibGUsCisJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAorCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSk7CiBib29sIGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpOwogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBpbnRl bF9kcF91bnVzZWRfbGFuZV9tYXNrKGludCBsYW5lX2NvdW50KQotLSAKMi4yNS4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK