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.7 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 A580FC433E6 for ; Fri, 5 Feb 2021 21:47:18 +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 420D664E37 for ; Fri, 5 Feb 2021 21:47:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 420D664E37 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 BB5276F4EB; Fri, 5 Feb 2021 21:47:17 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 713C26F4EA for ; Fri, 5 Feb 2021 21:47:16 +0000 (UTC) IronPort-SDR: F5Fdbp25T2cZtkDov4gyUhGjeJNyukcEtO8VfAx0clQ9KFm8eULqwmVYa4GoU2prFzBH2M73so YSx/9KC6Lmfg== X-IronPort-AV: E=McAfee;i="6000,8403,9886"; a="181556773" X-IronPort-AV: E=Sophos;i="5.81,156,1610438400"; d="scan'208";a="181556773" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Feb 2021 13:47:10 -0800 IronPort-SDR: y2ZcGN3CeaTIEHVdTaoBj7+mDCbV5YMELmr4N1IQVlthOf9GGz3P22eraw3Ke8tkxtRU6QicWL y54DqVMRjvbg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,156,1610438400"; d="scan'208";a="416386495" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by fmsmga002.fm.intel.com with SMTP; 05 Feb 2021 13:47:09 -0800 Received: by stinkbox (sSMTP sendmail emulation); Fri, 05 Feb 2021 23:47:08 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Fri, 5 Feb 2021 23:46:26 +0200 Message-Id: <20210205214634.19341-8-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210205214634.19341-1-ville.syrjala@linux.intel.com> References: <20210205214634.19341-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v3 07/15] drm/i915: Extract icl+ .{enable, disable}_clock() vfuncs 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: Lucas De Marchi Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkZv ciBJQ0wrIHdlIGhhdmUgc2V2ZXJhbCBzdHlsZXMgb2YgY2xvY2sgcm91dGluZyBmb3IgRERJczoK MSkgVEMgRERJICsgVEMgUEhZCiAgIC0+IG5lZWRzIERESV9DTEtfU0VMPT1NRy9UQlQgcGFydCBm b3JtIGludGVsX2RkaV9jbGtfe3NlbGVjdCxkaXNhYmxlfSgpCiAgIGFuZCBJQ0xfRFBDTEtBX0NG R0NSMF9UQ19DTEtfT0ZGIHBhcnQgZm9ybSBpY2xfe21hcCx1bm1hcH1fcGxsc190b19wb3J0cygp CjIpIElDTC9UR0wgY29tYm8gRERJICsgY29tYm8gUEhZCiAgIC0+IGp1c3QgbmVlZCB0aGUgc3R1 ZmYgZnJvbSBpY2xfe21hcCx1bm1hcH1fcGxsc190b19wb3J0cygpCjMpIEpTTC9FSEwgVEMgRERJ ICsgY29tYm8gUEhZCiAgIC0+IG5lZWRzIERESV9DTEtfU0VMPT1NRyBwYXJ0IGZyb20gaW50ZWxf ZGRpX2Nsa197c2VsZWN0LGRpc2FibGV9KCkgYW5kCiAgIHRoZSBmdWxsIGNvbWJvIHN0eWxlIGNs b2NrIHNlbGVjdGlvbiBmcm9tIGljbF97bWFwLHVubWFwfV9wbGxzX3RvX3BvcnRzKCkKNCkgQURM Uy9SS0wKICAgLT4gdGhlc2UgdXNlIGJvdGggVEMgYW5kIGNvbWJvIERESXMgd2l0aCBjb21ibyBQ SFlzLCBob3dldmVyIHRoZXkKICAgYWx3YXlzIHVzZSB0aGUgZnVsbCBjb21ibyBzdHlsZSBjbG9j ayBzZWxlY3Rpb24gYXMgcGVyCiAgIGljbF97bWFwLHVubWFwfV9wbGxzX3RvX3BvcnRzKCkgYW5k IGRvIG5vdCB1c2UgRERJX0NMS19TRUwgYXQgYWxsLAogICB0aHVzIGdldCB0cmVhdGVkIHRoZSBz YW1lIGFzIDIpCgpXZSBleHRyYWN0IGFsbCB0aGF0IGZyb20gdGhlIGN1cnJlbnQgbWVzcyBpbiB0 aGUgZm9sbG93aW5nIHdheToKMSkgaWNsX2RkaV90Y197ZW5hYmxlLGRpc2FibGV9X2Nsb2NrKCkK MikgaWNsX2RkaV9jb21ib197ZW5hYmxlLGRpc2FibGV9X2Nsb2NrKCkKMykganNsX2RkaV90Y197 ZW5hYmxlLGRpc2FibGV9X2Nsb2NrKCkKNCkgZm9yIG5vdyB3ZSByZXVzZSBpY2xfZGRpX2NvbWJv X3tlbmFibGUsZGlzYWJsZX1fY2xvY2soKSBoZXJlCgp2Mjogcy9kZXZfcHJpdi9pOTE1LyAoTHVj YXMpCgpSZXZpZXdlZC1ieTogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyB8 IDE2MyArKysrKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwMiBpbnNlcnRp b25zKCspLCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGkuYwppbmRleCA5NGRmNWU4OTdkMTkuLmQ2Zjk0YTFlMzIwZSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCkBAIC0xNjQ0LDggKzE2NDQsOCBAQCBzdGF0aWMg dm9pZCBkZzFfZGRpX2Rpc2FibGVfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBsbC5sb2NrKTsKIH0KIAotc3RhdGljIHZvaWQg aWNsX21hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJ CSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitzdGF0aWMgdm9p ZCBpY2xfZGRpX2NvbWJvX2VuYWJsZV9jbG9jayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRl LT5zaGFyZWRfZHBsbDsKQEAgLTE2NzMsMjIgKzE2NzMsMjAgQEAgc3RhdGljIHZvaWQgaWNsX21h cF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWRybV9XQVJO X09OKCZkZXZfcHJpdi0+ZHJtLAogCQkgICAgKHZhbCAmIGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19v ZmYoZGV2X3ByaXYsIHBoeSkpID09IDApOwogCi0JaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZf cHJpdiwgcGh5KSkgewotCQkvKgotCQkgKiBFdmVuIHRob3VnaCB0aGlzIHJlZ2lzdGVyIHJlZmVy ZW5jZXMgRERJcywgbm90ZSB0aGF0IHdlCi0JCSAqIHdhbnQgdG8gcGFzcyB0aGUgUEhZIHJhdGhl ciB0aGFuIHRoZSBwb3J0IChEREkpLiAgRm9yCi0JCSAqIElDTCwgcG9ydD1waHkgaW4gYWxsIGNh c2VzIHNvIGl0IGRvZXNuJ3QgbWF0dGVyLCBidXQgZm9yCi0JCSAqIEVITCB0aGUgYnNwZWMgbm90 ZXMgdGhlIGZvbGxvd2luZzoKLQkJICoKLQkJICogICAiRERJRCBjbG9jayB0aWVkIHRvIERESUEg Y2xvY2ssIHNvIERQQ0xLQV9DRkdDUjAgRERJQQotCQkgKiAgIENsb2NrIFNlbGVjdCBjaG9vc2Vz IHRoZSBQTEwgZm9yIGJvdGggRERJQSBhbmQgRERJRCBhbmQKLQkJICogICBkcml2ZXMgcG9ydCBB IGluIGFsbCBjYXNlcy4iCi0JCSAqLwotCQl2YWwgJj0gfm1hc2s7Ci0JCXZhbCB8PSBzZWw7Ci0J CWludGVsX2RlX3dyaXRlKGRldl9wcml2LCByZWcsIHZhbCk7Ci0JCWludGVsX2RlX3Bvc3Rpbmdf cmVhZChkZXZfcHJpdiwgcmVnKTsKLQl9CisJLyoKKwkgKiBFdmVuIHRob3VnaCB0aGlzIHJlZ2lz dGVyIHJlZmVyZW5jZXMgRERJcywgbm90ZSB0aGF0IHdlCisJICogd2FudCB0byBwYXNzIHRoZSBQ SFkgcmF0aGVyIHRoYW4gdGhlIHBvcnQgKERESSkuICBGb3IKKwkgKiBJQ0wsIHBvcnQ9cGh5IGlu IGFsbCBjYXNlcyBzbyBpdCBkb2Vzbid0IG1hdHRlciwgYnV0IGZvcgorCSAqIEVITCB0aGUgYnNw ZWMgbm90ZXMgdGhlIGZvbGxvd2luZzoKKwkgKgorCSAqICAgIkRESUQgY2xvY2sgdGllZCB0byBE RElBIGNsb2NrLCBzbyBEUENMS0FfQ0ZHQ1IwIERESUEKKwkgKiAgIENsb2NrIFNlbGVjdCBjaG9v c2VzIHRoZSBQTEwgZm9yIGJvdGggRERJQSBhbmQgRERJRCBhbmQKKwkgKiAgIGRyaXZlcyBwb3J0 IEEgaW4gYWxsIGNhc2VzLiIKKwkgKi8KKwl2YWwgJj0gfm1hc2s7CisJdmFsIHw9IHNlbDsKKwlp bnRlbF9kZV93cml0ZShkZXZfcHJpdiwgcmVnLCB2YWwpOworCWludGVsX2RlX3Bvc3RpbmdfcmVh ZChkZXZfcHJpdiwgcmVnKTsKIAogCXZhbCAmPSB+aWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihk ZXZfcHJpdiwgcGh5KTsKIAlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgcmVnLCB2YWwpOwpAQCAt MTY5Niw3ICsxNjk0LDcgQEAgc3RhdGljIHZvaWQgaWNsX21hcF9wbGxzX3RvX3BvcnRzKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwbGwu bG9jayk7CiB9CiAKLXN0YXRpYyB2b2lkIGljbF91bm1hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3RhdGljIHZvaWQgaWNsX2RkaV9jb21ib19kaXNhYmxl X2Nsb2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0g cGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKQEAg LTE4NDUsNDcgKzE4NDMsNzEgQEAgdm9pZCBpY2xfc2FuaXRpemVfZW5jb2Rlcl9wbGxfbWFwcGlu ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJaWNsX3Nhbml0aXplX3BvcnRfY2xr X29mZihkZXZfcHJpdiwgcG9ydF9tYXNrLCBkZGlfY2xrX25lZWRlZCk7CiB9CiAKLXZvaWQgaW50 ZWxfZGRpX2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCi0JCQkgIGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQorc3RhdGljIHZvaWQganNs X2RkaV90Y19lbmFibGVfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJ ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5iYXNl LmRldik7CisJY29uc3Qgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRl LT5zaGFyZWRfZHBsbDsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Ci0JZW51bSBw aHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOworCisJaWYgKGRybV9X QVJOX09OKCZpOTE1LT5kcm0sICFwbGwpKQorCQlyZXR1cm47CisKKwkvKgorCSAqICJGb3IgRERJ QyBhbmQgRERJRCwgcHJvZ3JhbSBERElfQ0xLX1NFTCB0byBtYXAgdGhlIE1HIGNsb2NrIHRvIHRo ZSBwb3J0LgorCSAqICBNRyBkb2VzIG5vdCBleGlzdCwgYnV0IHRoZSBwcm9ncmFtbWluZyBpcyBy ZXF1aXJlZCB0byB1bmdhdGUgRERJQyBhbmQgRERJRC4iCisJICovCisJaW50ZWxfZGVfd3JpdGUo aTkxNSwgRERJX0NMS19TRUwocG9ydCksIERESV9DTEtfU0VMX01HKTsKKworCWljbF9kZGlfY29t Ym9fZW5hYmxlX2Nsb2NrKGVuY29kZXIsIGNydGNfc3RhdGUpOworfQorCitzdGF0aWMgdm9pZCBq c2xfZGRpX3RjX2Rpc2FibGVfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCit7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKKwllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CisKKwlpY2xfZGRpX2NvbWJv X2Rpc2FibGVfY2xvY2soZW5jb2Rlcik7CisKKwlpbnRlbF9kZV93cml0ZShpOTE1LCBERElfQ0xL X1NFTChwb3J0KSwgRERJX0NMS19TRUxfTk9ORSk7Cit9CisKK3N0YXRpYyB2b2lkIGljbF9kZGlf dGNfZW5hYmxlX2Nsb2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWNvbnN0 IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7 CisJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGk5MTUsIGVuY29kZXIt PnBvcnQpOworCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKIAotCWlmIChkcm1fV0FS Tl9PTigmZGV2X3ByaXYtPmRybSwgIXBsbCkpCisJaWYgKGRybV9XQVJOX09OKCZpOTE1LT5kcm0s ICFwbGwpKQogCQlyZXR1cm47CiAKLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHBsbC5sb2NrKTsK LQotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCWlmICghaW50ZWxfcGh5X2lz X2NvbWJvKGRldl9wcml2LCBwaHkpKQotCQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERESV9D TEtfU0VMKHBvcnQpLAotCQkJCSAgICAgICBpY2xfcGxsX3RvX2RkaV9jbGtfc2VsKGVuY29kZXIs IGNydGNfc3RhdGUpKTsKLQkJZWxzZSBpZiAoSVNfSlNMX0VITChkZXZfcHJpdikgJiYgcG9ydCA+ PSBQT1JUX0MpCi0JCQkvKgotCQkJICogTUcgZG9lcyBub3QgZXhpc3QgYnV0IHRoZSBwcm9ncmFt bWluZyBpcyByZXF1aXJlZAotCQkJICogdG8gdW5nYXRlIERESUMgYW5kIERESUQKLQkJCSAqLwot CQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERESV9DTEtfU0VMKHBvcnQpLAotCQkJCSAgICAg ICBERElfQ0xLX1NFTF9NRyk7Ci0JfQotCi0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBsbC5s b2NrKTsKKwlpbnRlbF9kZV93cml0ZShpOTE1LCBERElfQ0xLX1NFTChwb3J0KSwKKwkJICAgICAg IGljbF9wbGxfdG9fZGRpX2Nsa19zZWwoZW5jb2RlciwgY3J0Y19zdGF0ZSkpOworCisJbXV0ZXhf bG9jaygmaTkxNS0+ZHBsbC5sb2NrKTsKKworCWludGVsX2RlX3JtdyhpOTE1LCBJQ0xfRFBDTEtB X0NGR0NSMCwKKwkJICAgICBJQ0xfRFBDTEtBX0NGR0NSMF9UQ19DTEtfT0ZGKHRjX3BvcnQpLCAw KTsKKworCW11dGV4X3VubG9jaygmaTkxNS0+ZHBsbC5sb2NrKTsKIH0KIAotc3RhdGljIHZvaWQg aW50ZWxfZGRpX2Nsa19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQorc3Rh dGljIHZvaWQgaWNsX2RkaV90Y19kaXNhYmxlX2Nsb2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9w b3J0X3RvX3RjKGk5MTUsIGVuY29kZXItPnBvcnQpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rl ci0+cG9ydDsKLQllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9y dCk7Ci0KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewotCQlpZiAoIWludGVsX3Bo eV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSB8fAotCQkgICAgKElTX0pTTF9FSEwoZGV2X3ByaXYp ICYmIHBvcnQgPj0gUE9SVF9DKSkKLQkJCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBERElfQ0xL X1NFTChwb3J0KSwKLQkJCQkgICAgICAgRERJX0NMS19TRUxfTk9ORSk7Ci0JfQorCisJbXV0ZXhf bG9jaygmaTkxNS0+ZHBsbC5sb2NrKTsKKworCWludGVsX2RlX3JtdyhpOTE1LCBJQ0xfRFBDTEtB X0NGR0NSMCwKKwkJICAgICAwLCBJQ0xfRFBDTEtBX0NGR0NSMF9UQ19DTEtfT0ZGKHRjX3BvcnQp KTsKKworCW11dGV4X3VubG9jaygmaTkxNS0+ZHBsbC5sb2NrKTsKKworCWludGVsX2RlX3dyaXRl KGk5MTUsIERESV9DTEtfU0VMKHBvcnQpLCBERElfQ0xLX1NFTF9OT05FKTsKIH0KIAogc3RhdGlj IHZvaWQgY25sX2RkaV9lbmFibGVfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CkBAIC0xOTg2LDE2ICsyMDA4LDEyIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV9jbG9jayhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlpZiAoZW5jb2Rlci0+ZW5hYmxlX2Nsb2Nr KQogCQllbmNvZGVyLT5lbmFibGVfY2xvY2soZW5jb2RlciwgY3J0Y19zdGF0ZSk7Ci0JZWxzZQot CQlpbnRlbF9kZGlfY2xrX3NlbGVjdChlbmNvZGVyLCBjcnRjX3N0YXRlKTsKIH0KIAogc3RhdGlj IHZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCiB7CiAJaWYgKGVuY29kZXItPmRpc2FibGVfY2xvY2spCiAJCWVuY29kZXItPmRpc2FibGVf Y2xvY2soZW5jb2Rlcik7Ci0JZWxzZQotCQlpbnRlbF9kZGlfY2xrX2Rpc2FibGUoZW5jb2Rlcik7 CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0yNDc3LDkgKzI0OTUsNiBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAogCWRy bV9XQVJOX09OKCZkZXZfcHJpdi0+ZHJtLCBjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpOwog Ci0JaWYgKCFJU19ERzEoZGV2X3ByaXYpICYmIElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCi0J CWljbF9tYXBfcGxsc190b19wb3J0cyhlbmNvZGVyLCBjcnRjX3N0YXRlKTsKLQogCWludGVsX3Nl dF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwogCiAJ aWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpKSB7 CkBAIC0yNjc4LDkgKzI2OTMsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxl KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQlpbnRlbF9kZGlfcG9zdF9kaXNh YmxlX2RwKHN0YXRlLCBlbmNvZGVyLCBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJICBvbGRfY29ubl9z dGF0ZSk7CiAKLQlpZiAoIUlTX0RHMShkZXZfcHJpdikgJiYgSU5URUxfR0VOKGRldl9wcml2KSA+ PSAxMSkKLQkJaWNsX3VubWFwX3BsbHNfdG9fcG9ydHMoZW5jb2Rlcik7Ci0KIAlpZiAoaW50ZWxf Y3J0Y19oYXNfZHBfZW5jb2RlcihvbGRfY3J0Y19zdGF0ZSkgfHwgaXNfdGNfcG9ydCkKIAkJaW50 ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsCiAJCQkJCWludGVsX2RkaV9tYWluX2xpbmtf YXV4X2RvbWFpbihkaWdfcG9ydCksCkBAIC00MDE5LDYgKzQwMzEsMTYgQEAgc3RhdGljIGVudW0g aHBkX3BpbiBjbmxfaHBkX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ cmV0dXJuIEhQRF9QT1JUX0EgKyBwb3J0IC0gUE9SVF9BOwogfQogCitzdGF0aWMgYm9vbCBpbnRl bF9kZGlfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGVudW0gcG9ydCBwb3J0 KQoreworCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTIpCisJCXJldHVybiBwb3J0ID49IFBPUlRf VEMxOworCWVsc2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMSkKKwkJcmV0dXJuIHBvcnQgPj0g UE9SVF9DOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAjZGVmaW5lIHBvcnRfdGNfbmFt ZShwb3J0KSAoKHBvcnQpIC0gUE9SVF9UQzEgKyAnMScpCiAjZGVmaW5lIHRjX3BvcnRfbmFtZSh0 Y19wb3J0KSAoKHRjX3BvcnQpIC0gVENfUE9SVF8xICsgJzEnKQogCkBAIC00MTIzLDkgKzQxNDUs MjggQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0gcG9ydCBwb3J0KQogCWVuY29kZXItPmNsb25lYWJsZSA9IDA7CiAJZW5jb2Rlci0+ cGlwZV9tYXNrID0gfjA7CiAKLQlpZiAoSVNfREcxKGRldl9wcml2KSkgeworCWlmIChJU19BTERF UkxBS0VfUyhkZXZfcHJpdikgfHwgSVNfUk9DS0VUTEFLRShkZXZfcHJpdikpIHsKKwkJZW5jb2Rl ci0+ZW5hYmxlX2Nsb2NrID0gaWNsX2RkaV9jb21ib19lbmFibGVfY2xvY2s7CisJCWVuY29kZXIt PmRpc2FibGVfY2xvY2sgPSBpY2xfZGRpX2NvbWJvX2Rpc2FibGVfY2xvY2s7CisJfSBlbHNlIGlm IChJU19ERzEoZGV2X3ByaXYpKSB7CiAJCWVuY29kZXItPmVuYWJsZV9jbG9jayA9IGRnMV9kZGlf ZW5hYmxlX2Nsb2NrOwogCQllbmNvZGVyLT5kaXNhYmxlX2Nsb2NrID0gZGcxX2RkaV9kaXNhYmxl X2Nsb2NrOworCX0gZWxzZSBpZiAoSVNfSlNMX0VITChkZXZfcHJpdikpIHsKKwkJaWYgKGludGVs X2RkaV9pc190YyhkZXZfcHJpdiwgcG9ydCkpIHsKKwkJCWVuY29kZXItPmVuYWJsZV9jbG9jayA9 IGpzbF9kZGlfdGNfZW5hYmxlX2Nsb2NrOworCQkJZW5jb2Rlci0+ZGlzYWJsZV9jbG9jayA9IGpz bF9kZGlfdGNfZGlzYWJsZV9jbG9jazsKKwkJfSBlbHNlIHsKKwkJCWVuY29kZXItPmVuYWJsZV9j bG9jayA9IGljbF9kZGlfY29tYm9fZW5hYmxlX2Nsb2NrOworCQkJZW5jb2Rlci0+ZGlzYWJsZV9j bG9jayA9IGljbF9kZGlfY29tYm9fZGlzYWJsZV9jbG9jazsKKwkJfQorCX0gZWxzZSBpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSAxMSkgeworCQlpZiAoaW50ZWxfZGRpX2lzX3RjKGRldl9wcml2 LCBwb3J0KSkgeworCQkJZW5jb2Rlci0+ZW5hYmxlX2Nsb2NrID0gaWNsX2RkaV90Y19lbmFibGVf Y2xvY2s7CisJCQllbmNvZGVyLT5kaXNhYmxlX2Nsb2NrID0gaWNsX2RkaV90Y19kaXNhYmxlX2Ns b2NrOworCQl9IGVsc2UgeworCQkJZW5jb2Rlci0+ZW5hYmxlX2Nsb2NrID0gaWNsX2RkaV9jb21i b19lbmFibGVfY2xvY2s7CisJCQllbmNvZGVyLT5kaXNhYmxlX2Nsb2NrID0gaWNsX2RkaV9jb21i b19kaXNhYmxlX2Nsb2NrOworCQl9CiAJfSBlbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2 KSkgewogCQllbmNvZGVyLT5lbmFibGVfY2xvY2sgPSBjbmxfZGRpX2VuYWJsZV9jbG9jazsKIAkJ ZW5jb2Rlci0+ZGlzYWJsZV9jbG9jayA9IGNubF9kZGlfZGlzYWJsZV9jbG9jazsKLS0gCjIuMjYu MgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==