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 E466FC433DB for ; Mon, 1 Feb 2021 18:34:11 +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 9D8FB64E3C for ; Mon, 1 Feb 2021 18:34:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9D8FB64E3C 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 2C0286E996; Mon, 1 Feb 2021 18:34:11 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE1B96E996 for ; Mon, 1 Feb 2021 18:34:09 +0000 (UTC) IronPort-SDR: szNnr23Fh8jvl+mfRdV2xIVQuaQUR7sj1+5y5CqGIkgvnRtpW+nnqlGGGGMPIWkdNvsti1C+iW 7v/mPza+SQkQ== X-IronPort-AV: E=McAfee;i="6000,8403,9882"; a="177223829" X-IronPort-AV: E=Sophos;i="5.79,393,1602572400"; d="scan'208";a="177223829" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Feb 2021 10:34:09 -0800 IronPort-SDR: +QJV5MEW5Vk7rn1BrZkpQHqMeeeCneDzcJB4fLgpzWAhxt3TdS9Jz5b0OUkYTN+MPQdZueN3Ed E8ZbTTXY1KOw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,393,1602572400"; d="scan'208";a="370037207" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by fmsmga008.fm.intel.com with SMTP; 01 Feb 2021 10:34:07 -0800 Received: by stinkbox (sSMTP sendmail emulation); Mon, 01 Feb 2021 20:34:06 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Mon, 1 Feb 2021 20:33:36 +0200 Message-Id: <20210201183343.15292-9-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210201183343.15292-1-ville.syrjala@linux.intel.com> References: <20210201183343.15292-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 08/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: , 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 X3tlbmFibGUsZGlzYWJsZX1fY2xvY2soKSBoZXJlCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgfCAxNDkgKysrKysrKysrKysrKysrLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwppbmRleCAzOWNiYWEwM2QyNjEuLmFh Yzg1ZTg2ZDc3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCkBA IC0zMjA1LDggKzMyMDUsOCBAQCBzdGF0aWMgdm9pZCBkZzFfZGRpX2Rpc2FibGVfY2xvY2soc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHBs bC5sb2NrKTsKIH0KIAotc3RhdGljIHZvaWQgaWNsX21hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCitzdGF0aWMgdm9pZCBpY2xfZGRpX2NvbWJvX2VuYWJsZV9jbG9jayhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3No YXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKQEAgLTMyMjAsMjIgKzMy MjAsMjAgQEAgc3RhdGljIHZvaWQgaWNsX21hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCWRybV9XQVJOX09OKCZkZXZfcHJpdi0+ZHJtLAogCQkgICAgKHZh bCAmIGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19vZmYoZGV2X3ByaXYsIHBoeSkpID09IDApOwogCi0J aWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkgewotCQkvKgotCQkgKiBFdmVu IHRob3VnaCB0aGlzIHJlZ2lzdGVyIHJlZmVyZW5jZXMgRERJcywgbm90ZSB0aGF0IHdlCi0JCSAq IHdhbnQgdG8gcGFzcyB0aGUgUEhZIHJhdGhlciB0aGFuIHRoZSBwb3J0IChEREkpLiAgRm9yCi0J CSAqIElDTCwgcG9ydD1waHkgaW4gYWxsIGNhc2VzIHNvIGl0IGRvZXNuJ3QgbWF0dGVyLCBidXQg Zm9yCi0JCSAqIEVITCB0aGUgYnNwZWMgbm90ZXMgdGhlIGZvbGxvd2luZzoKLQkJICoKLQkJICog ICAiRERJRCBjbG9jayB0aWVkIHRvIERESUEgY2xvY2ssIHNvIERQQ0xLQV9DRkdDUjAgRERJQQot CQkgKiAgIENsb2NrIFNlbGVjdCBjaG9vc2VzIHRoZSBQTEwgZm9yIGJvdGggRERJQSBhbmQgRERJ RCBhbmQKLQkJICogICBkcml2ZXMgcG9ydCBBIGluIGFsbCBjYXNlcy4iCi0JCSAqLwotCQl2YWwg Jj0gfmljbF9kcGNsa2FfY2ZnY3IwX2Nsa19zZWxfbWFzayhkZXZfcHJpdiwgcGh5KTsKLQkJdmFs IHw9IGljbF9kcGNsa2FfY2ZnY3IwX2Nsa19zZWwoZGV2X3ByaXYsIHBsbC0+aW5mby0+aWQsIHBo eSk7Ci0JCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCByZWcsIHZhbCk7Ci0JCWludGVsX2RlX3Bv c3RpbmdfcmVhZChkZXZfcHJpdiwgcmVnKTsKLQl9CisJLyoKKwkgKiBFdmVuIHRob3VnaCB0aGlz IHJlZ2lzdGVyIHJlZmVyZW5jZXMgRERJcywgbm90ZSB0aGF0IHdlCisJICogd2FudCB0byBwYXNz IHRoZSBQSFkgcmF0aGVyIHRoYW4gdGhlIHBvcnQgKERESSkuICBGb3IKKwkgKiBJQ0wsIHBvcnQ9 cGh5IGluIGFsbCBjYXNlcyBzbyBpdCBkb2Vzbid0IG1hdHRlciwgYnV0IGZvcgorCSAqIEVITCB0 aGUgYnNwZWMgbm90ZXMgdGhlIGZvbGxvd2luZzoKKwkgKgorCSAqICAgIkRESUQgY2xvY2sgdGll ZCB0byBERElBIGNsb2NrLCBzbyBEUENMS0FfQ0ZHQ1IwIERESUEKKwkgKiAgIENsb2NrIFNlbGVj dCBjaG9vc2VzIHRoZSBQTEwgZm9yIGJvdGggRERJQSBhbmQgRERJRCBhbmQKKwkgKiAgIGRyaXZl cyBwb3J0IEEgaW4gYWxsIGNhc2VzLiIKKwkgKi8KKwl2YWwgJj0gfmljbF9kcGNsa2FfY2ZnY3Iw X2Nsa19zZWxfbWFzayhkZXZfcHJpdiwgcGh5KTsKKwl2YWwgfD0gaWNsX2RwY2xrYV9jZmdjcjBf Y2xrX3NlbChkZXZfcHJpdiwgcGxsLT5pbmZvLT5pZCwgcGh5KTsKKwlpbnRlbF9kZV93cml0ZShk ZXZfcHJpdiwgcmVnLCB2YWwpOworCWludGVsX2RlX3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgcmVn KTsKIAogCXZhbCAmPSB+aWNsX2RwY2xrYV9jZmdjcjBfY2xrX29mZihkZXZfcHJpdiwgcGh5KTsK IAlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgcmVnLCB2YWwpOwpAQCAtMzI0Myw3ICszMjQxLDcg QEAgc3RhdGljIHZvaWQgaWNsX21hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRwbGwubG9jayk7CiB9CiAKLXN0 YXRpYyB2b2lkIGljbF91bm1hcF9wbGxzX3RvX3BvcnRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQorc3RhdGljIHZvaWQgaWNsX2RkaV9jb21ib19kaXNhYmxlX2Nsb2NrKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcGh5IHBoeSA9IGludGVs X3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKQEAgLTMzODIsNDcgKzMzODAs NzEgQEAgdm9pZCBpY2xfc2FuaXRpemVfZW5jb2Rlcl9wbGxfbWFwcGluZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKIAkJaWNsX3Nhbml0aXplX3BvcnRfY2xrX29mZihkZXZfcHJpdiwg cG9ydF9tYXNrLCBkZGlfY2xrX25lZWRlZCk7CiB9CiAKLXN0YXRpYyB2b2lkIGludGVsX2RkaV9j bGtfc2VsZWN0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAotCQkJCSBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyB2b2lkIGpzbF9kZGlfdGNf ZW5hYmxlX2Nsb2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKwljb25z dCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxs OwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKLQllbnVtIHBoeSBwaHkgPSBpbnRl bF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CisKKwlpZiAoZHJtX1dBUk5fT04oJmRldl9w cml2LT5kcm0sICFwbGwpKQorCQlyZXR1cm47CisKKwkvKgorCSAqICJGb3IgRERJQyBhbmQgRERJ RCwgcHJvZ3JhbSBERElfQ0xLX1NFTCB0byBtYXAgdGhlIE1HIGNsb2NrIHRvIHRoZSBwb3J0Lgor CSAqICBNRyBkb2VzIG5vdCBleGlzdCwgYnV0IHRoZSBwcm9ncmFtbWluZyBpcyByZXF1aXJlZCB0 byB1bmdhdGUgRERJQyBhbmQgRERJRC4iCisJICovCisJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYs IERESV9DTEtfU0VMKHBvcnQpLCBERElfQ0xLX1NFTF9NRyk7CisKKwlpY2xfZGRpX2NvbWJvX2Vu YWJsZV9jbG9jayhlbmNvZGVyLCBjcnRjX3N0YXRlKTsKK30KKworc3RhdGljIHZvaWQganNsX2Rk aV90Y19kaXNhYmxlX2Nsb2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQoreworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOworCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKKworCWljbF9kZGlfY29tYm9f ZGlzYWJsZV9jbG9jayhlbmNvZGVyKTsKKworCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBERElf Q0xLX1NFTChwb3J0KSwgRERJX0NMS19TRUxfTk9ORSk7Cit9CisKK3N0YXRpYyB2b2lkIGljbF9k ZGlfdGNfZW5hYmxlX2Nsb2NrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAorCQkJCSAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK IAljb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJl ZF9kcGxsOworCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJp diwgZW5jb2Rlci0+cG9ydCk7CisJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCiAJ aWYgKGRybV9XQVJOX09OKCZkZXZfcHJpdi0+ZHJtLCAhcGxsKSkKIAkJcmV0dXJuOwogCisJaW50 ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERESV9DTEtfU0VMKHBvcnQpLAorCQkgICAgICAgaWNsX3Bs bF90b19kZGlfY2xrX3NlbChlbmNvZGVyLCBjcnRjX3N0YXRlKSk7CisKIAltdXRleF9sb2NrKCZk ZXZfcHJpdi0+ZHBsbC5sb2NrKTsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7 Ci0JCWlmICghaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQotCQkJaW50ZWxfZGVf d3JpdGUoZGV2X3ByaXYsIERESV9DTEtfU0VMKHBvcnQpLAotCQkJCSAgICAgICBpY2xfcGxsX3Rv X2RkaV9jbGtfc2VsKGVuY29kZXIsIGNydGNfc3RhdGUpKTsKLQkJZWxzZSBpZiAoSVNfSlNMX0VI TChkZXZfcHJpdikgJiYgcG9ydCA+PSBQT1JUX0MpCi0JCQkvKgotCQkJICogTUcgZG9lcyBub3Qg ZXhpc3QgYnV0IHRoZSBwcm9ncmFtbWluZyBpcyByZXF1aXJlZAotCQkJICogdG8gdW5nYXRlIERE SUMgYW5kIERESUQKLQkJCSAqLwotCQkJaW50ZWxfZGVfd3JpdGUoZGV2X3ByaXYsIERESV9DTEtf U0VMKHBvcnQpLAotCQkJCSAgICAgICBERElfQ0xLX1NFTF9NRyk7Ci0JfQorCWludGVsX2RlX3Jt dyhkZXZfcHJpdiwgSUNMX0RQQ0xLQV9DRkdDUjAsCisJCSAgICAgSUNMX0RQQ0xLQV9DRkdDUjBf VENfQ0xLX09GRih0Y19wb3J0KSwgMCk7CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcGxs LmxvY2spOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9kZGlfY2xrX2Rpc2FibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCitzdGF0aWMgdm9pZCBpY2xfZGRpX3RjX2Rpc2FibGVfY2xv Y2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisJZW51bSB0Y19w b3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsK IAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Ci0JZW51bSBwaHkgcGh5ID0gaW50ZWxf cG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwotCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gMTEpIHsKLQkJaWYgKCFpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkgfHwKLQkJ ICAgIChJU19KU0xfRUhMKGRldl9wcml2KSAmJiBwb3J0ID49IFBPUlRfQykpCi0JCQlpbnRlbF9k ZV93cml0ZShkZXZfcHJpdiwgRERJX0NMS19TRUwocG9ydCksCi0JCQkJICAgICAgIERESV9DTEtf U0VMX05PTkUpOwotCX0KKworCW11dGV4X2xvY2soJmRldl9wcml2LT5kcGxsLmxvY2spOworCisJ aW50ZWxfZGVfcm13KGRldl9wcml2LCBJQ0xfRFBDTEtBX0NGR0NSMCwKKwkJICAgICAwLCBJQ0xf RFBDTEtBX0NGR0NSMF9UQ19DTEtfT0ZGKHRjX3BvcnQpKTsKKworCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRwbGwubG9jayk7CisKKwlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgRERJX0NMS19T RUwocG9ydCksIERESV9DTEtfU0VMX05PTkUpOwogfQogCiBzdGF0aWMgdm9pZCBjbmxfZGRpX2Vu YWJsZV9jbG9jayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKQEAgLTM1MjMsMTYgKzM1 NDUsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV9jbG9jayhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAlpZiAoZW5jb2Rlci0+ZW5hYmxlX2Nsb2NrKQogCQllbmNv ZGVyLT5lbmFibGVfY2xvY2soZW5jb2RlciwgY3J0Y19zdGF0ZSk7Ci0JZWxzZQotCQlpbnRlbF9k ZGlfY2xrX3NlbGVjdChlbmNvZGVyLCBjcnRjX3N0YXRlKTsKIH0KIAogc3RhdGljIHZvaWQgaW50 ZWxfZGRpX2Rpc2FibGVfY2xvY2soc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJ aWYgKGVuY29kZXItPmRpc2FibGVfY2xvY2spCiAJCWVuY29kZXItPmRpc2FibGVfY2xvY2soZW5j b2Rlcik7Ci0JZWxzZQotCQlpbnRlbF9kZGlfY2xrX2Rpc2FibGUoZW5jb2Rlcik7CiB9CiAKIHN0 YXRpYyB2b2lkCkBAIC00MDE0LDkgKzQwMzIsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJl X2VuYWJsZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAogCWRybV9XQVJOX09O KCZkZXZfcHJpdi0+ZHJtLCBjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpOwogCi0JaWYgKCFJ U19ERzEoZGV2X3ByaXYpICYmIElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCi0JCWljbF9tYXBf cGxsc190b19wb3J0cyhlbmNvZGVyLCBjcnRjX3N0YXRlKTsKLQogCWludGVsX3NldF9jcHVfZmlm b191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwogCiAJaWYgKGludGVs X2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpKSB7CkBAIC00MjE1 LDkgKzQyMzAsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQlpbnRlbF9kZGlfcG9zdF9kaXNhYmxlX2RwKHN0 YXRlLCBlbmNvZGVyLCBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJICBvbGRfY29ubl9zdGF0ZSk7CiAK LQlpZiAoIUlTX0RHMShkZXZfcHJpdikgJiYgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKLQkJ aWNsX3VubWFwX3BsbHNfdG9fcG9ydHMoZW5jb2Rlcik7Ci0KIAlpZiAoaW50ZWxfY3J0Y19oYXNf ZHBfZW5jb2RlcihvbGRfY3J0Y19zdGF0ZSkgfHwgaXNfdGNfcG9ydCkKIAkJaW50ZWxfZGlzcGxh eV9wb3dlcl9wdXQoZGV2X3ByaXYsCiAJCQkJCWludGVsX2RkaV9tYWluX2xpbmtfYXV4X2RvbWFp bihkaWdfcG9ydCksCkBAIC01NTU2LDYgKzU1NjgsMTYgQEAgc3RhdGljIGVudW0gaHBkX3BpbiBj bmxfaHBkX3BpbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJcmV0dXJuIEhQ RF9QT1JUX0EgKyBwb3J0IC0gUE9SVF9BOwogfQogCitzdGF0aWMgYm9vbCBpbnRlbF9kZGlfaXNf dGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGVudW0gcG9ydCBwb3J0KQoreworCWlm IChJTlRFTF9HRU4oaTkxNSkgPj0gMTIpCisJCXJldHVybiBwb3J0ID49IFBPUlRfVEMxOworCWVs c2UgaWYgKElOVEVMX0dFTihpOTE1KSA+PSAxMSkKKwkJcmV0dXJuIHBvcnQgPj0gUE9SVF9DOwor CWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAjZGVmaW5lIHBvcnRfdGNfbmFtZShwb3J0KSAo KHBvcnQpIC0gUE9SVF9UQzEgKyAnMScpCiAjZGVmaW5lIHRjX3BvcnRfbmFtZSh0Y19wb3J0KSAo KHRjX3BvcnQpIC0gVENfUE9SVF8xICsgJzEnKQogCkBAIC01NjYwLDkgKzU2ODIsMjggQEAgdm9p ZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0g cG9ydCBwb3J0KQogCWVuY29kZXItPmNsb25lYWJsZSA9IDA7CiAJZW5jb2Rlci0+cGlwZV9tYXNr ID0gfjA7CiAKLQlpZiAoSVNfREcxKGRldl9wcml2KSkgeworCWlmIChJU19BTERFUkxBS0VfUyhk ZXZfcHJpdikgfHwgSVNfUk9DS0VUTEFLRShkZXZfcHJpdikpIHsKKwkJZW5jb2Rlci0+ZW5hYmxl X2Nsb2NrID0gaWNsX2RkaV9jb21ib19lbmFibGVfY2xvY2s7CisJCWVuY29kZXItPmRpc2FibGVf Y2xvY2sgPSBpY2xfZGRpX2NvbWJvX2Rpc2FibGVfY2xvY2s7CisJfSBlbHNlIGlmIChJU19ERzEo ZGV2X3ByaXYpKSB7CiAJCWVuY29kZXItPmVuYWJsZV9jbG9jayA9IGRnMV9kZGlfZW5hYmxlX2Ns b2NrOwogCQllbmNvZGVyLT5kaXNhYmxlX2Nsb2NrID0gZGcxX2RkaV9kaXNhYmxlX2Nsb2NrOwor CX0gZWxzZSBpZiAoSVNfSlNMX0VITChkZXZfcHJpdikpIHsKKwkJaWYgKGludGVsX2RkaV9pc190 YyhkZXZfcHJpdiwgcG9ydCkpIHsKKwkJCWVuY29kZXItPmVuYWJsZV9jbG9jayA9IGpzbF9kZGlf dGNfZW5hYmxlX2Nsb2NrOworCQkJZW5jb2Rlci0+ZGlzYWJsZV9jbG9jayA9IGpzbF9kZGlfdGNf ZGlzYWJsZV9jbG9jazsKKwkJfSBlbHNlIHsKKwkJCWVuY29kZXItPmVuYWJsZV9jbG9jayA9IGlj bF9kZGlfY29tYm9fZW5hYmxlX2Nsb2NrOworCQkJZW5jb2Rlci0+ZGlzYWJsZV9jbG9jayA9IGlj bF9kZGlfY29tYm9fZGlzYWJsZV9jbG9jazsKKwkJfQorCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSAxMSkgeworCQlpZiAoaW50ZWxfZGRpX2lzX3RjKGRldl9wcml2LCBwb3J0KSkg eworCQkJZW5jb2Rlci0+ZW5hYmxlX2Nsb2NrID0gaWNsX2RkaV90Y19lbmFibGVfY2xvY2s7CisJ CQllbmNvZGVyLT5kaXNhYmxlX2Nsb2NrID0gaWNsX2RkaV90Y19kaXNhYmxlX2Nsb2NrOworCQl9 IGVsc2UgeworCQkJZW5jb2Rlci0+ZW5hYmxlX2Nsb2NrID0gaWNsX2RkaV9jb21ib19lbmFibGVf Y2xvY2s7CisJCQllbmNvZGVyLT5kaXNhYmxlX2Nsb2NrID0gaWNsX2RkaV9jb21ib19kaXNhYmxl X2Nsb2NrOworCQl9CiAJfSBlbHNlIGlmIChJU19DQU5OT05MQUtFKGRldl9wcml2KSkgewogCQll bmNvZGVyLT5lbmFibGVfY2xvY2sgPSBjbmxfZGRpX2VuYWJsZV9jbG9jazsKIAkJZW5jb2Rlci0+ ZGlzYWJsZV9jbG9jayA9IGNubF9kZGlfZGlzYWJsZV9jbG9jazsKLS0gCjIuMjYuMgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==