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,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 E24A2C433B4 for ; Fri, 30 Apr 2021 15:34:53 +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 6523D6145D for ; Fri, 30 Apr 2021 15:34:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6523D6145D 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 00EF86E4BA; Fri, 30 Apr 2021 15:34:52 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD8F56E4BA for ; Fri, 30 Apr 2021 15:34:50 +0000 (UTC) IronPort-SDR: jsQsMKdnHEHJq2XMQvEoaxcEfQGiQdulTylhGaieCaGm26hwCVkYOFcuvuHfxn7wzwWL9jlLju 4Q67dIYC42AQ== X-IronPort-AV: E=McAfee;i="6200,9189,9970"; a="282650963" X-IronPort-AV: E=Sophos;i="5.82,263,1613462400"; d="scan'208";a="282650963" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Apr 2021 08:34:49 -0700 IronPort-SDR: tV+gOR3OPYZnzvAdi4L/FGR69usAQoXQzR7d+e0P+byfjW0+oZkfQg4Bwj+btvMCrFyExeU93e 0x6rKnsjNyIA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,263,1613462400"; d="scan'208";a="425056037" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.171]) by fmsmga008.fm.intel.com with SMTP; 30 Apr 2021 08:34:48 -0700 Received: by stinkbox (sSMTP sendmail emulation); Fri, 30 Apr 2021 18:34:47 +0300 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Fri, 30 Apr 2021 18:34:40 +0300 Message-Id: <20210430153444.29270-2-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210430153444.29270-1-ville.syrjala@linux.intel.com> References: <20210430153444.29270-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 1/5] drm/i915: Extract some helpers to compute cdclk register values 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" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkV4 dHJhY3QgYSBmZXcgb2YgdGhlIHN3aXRjaCBzdGF0ZW1lbnRzIGludG8gaGVscGVyIGZ1bmN0aW9u cyB0bwpyZWR1Y2UgdGhlIHBvbGx1dGlvbiBpbiB0aGUgY2RjbGsgcHJvZ3JhbW1pbmcgZnVuY3Rp b25zLgoKU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xr LmMgfCAxODYgKysrKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgODggaW5zZXJ0 aW9ucygrKSwgOTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9jZGNsay5jCmluZGV4IDFmMGJkMjNiYjg4My4uZDUzMTRmOWFjZjgzIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCkBAIC03MjMsNiArNzIzLDIzIEBA IHN0YXRpYyB2b2lkIGJkd19nZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQliZHdfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrX2NvbmZpZy0+Y2RjbGspOwogfQog CitzdGF0aWMgdTMyIGJkd19jZGNsa19mcmVxX3NlbChpbnQgY2RjbGspCit7CisJc3dpdGNoIChj ZGNsaykgeworCWRlZmF1bHQ6CisJCU1JU1NJTkdfQ0FTRShjZGNsayk7CisJCWZhbGx0aHJvdWdo OworCWNhc2UgMzM3NTAwOgorCQlyZXR1cm4gTENQTExfQ0xLX0ZSRVFfMzM3XzVfQkRXOworCWNh c2UgNDUwMDAwOgorCQlyZXR1cm4gTENQTExfQ0xLX0ZSRVFfNDUwOworCWNhc2UgNTQwMDAwOgor CQlyZXR1cm4gTENQTExfQ0xLX0ZSRVFfNTRPX0JEVzsKKwljYXNlIDY3NTAwMDoKKwkJcmV0dXJu IExDUExMX0NMS19GUkVRXzY3NV9CRFc7CisJfQorfQorCiBzdGF0aWMgdm9pZCBiZHdfc2V0X2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2NkY2xrX2NvbmZpZyAqY2RjbGtfY29uZmlnLAogCQkJICBlbnVtIHBpcGUgcGlwZSkK QEAgLTc2MiwyNSArNzc5LDcgQEAgc3RhdGljIHZvaWQgYmR3X3NldF9jZGNsayhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAl2YWwgPSBpbnRlbF9kZV9yZWFkKGRldl9wcml2 LCBMQ1BMTF9DVEwpOwogCXZhbCAmPSB+TENQTExfQ0xLX0ZSRVFfTUFTSzsKLQotCXN3aXRjaCAo Y2RjbGspIHsKLQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UoY2RjbGspOwotCQlmYWxsdGhyb3Vn aDsKLQljYXNlIDMzNzUwMDoKLQkJdmFsIHw9IExDUExMX0NMS19GUkVRXzMzN181X0JEVzsKLQkJ YnJlYWs7Ci0JY2FzZSA0NTAwMDA6Ci0JCXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV80NTA7Ci0JCWJy ZWFrOwotCWNhc2UgNTQwMDAwOgotCQl2YWwgfD0gTENQTExfQ0xLX0ZSRVFfNTRPX0JEVzsKLQkJ YnJlYWs7Ci0JY2FzZSA2NzUwMDA6Ci0JCXZhbCB8PSBMQ1BMTF9DTEtfRlJFUV82NzVfQkRXOwot CQlicmVhazsKLQl9Ci0KKwl2YWwgfD0gYmR3X2NkY2xrX2ZyZXFfc2VsKGNkY2xrKTsKIAlpbnRl bF9kZV93cml0ZShkZXZfcHJpdiwgTENQTExfQ1RMLCB2YWwpOwogCiAJdmFsID0gaW50ZWxfZGVf cmVhZChkZXZfcHJpdiwgTENQTExfQ1RMKTsKQEAgLTk1NCwxMCArOTUzLDggQEAgc3RhdGljIHZv aWQgc2tsX3NldF9wcmVmZXJyZWRfY2RjbGtfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJaW50ZWxfdXBkYXRlX21heF9jZGNsayhkZXZfcHJpdik7CiB9CiAKLXN0YXRp YyB2b2lkIHNrbF9kcGxsMF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBpbnQgdmNvKQorc3RhdGljIHUzMiBza2xfZHBsbDBfbGlua19yYXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZjbykKIHsKLQl1MzIgdmFsOwotCiAJZHJtX1dBUk5f T04oJmRldl9wcml2LT5kcm0sIHZjbyAhPSA4MTAwMDAwICYmIHZjbyAhPSA4NjQwMDAwKTsKIAog CS8qCkBAIC05NjksMTcgKzk2NiwyMiBAQCBzdGF0aWMgdm9pZCBza2xfZHBsbDBfZW5hYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZjbykKIAkgKiByYXRlIGxhdGVy IG9uLCB3aXRoIHRoZSBjb25zdHJhaW50IG9mIGNob29zaW5nIGEgZnJlcXVlbmN5IHRoYXQKIAkg KiB3b3JrcyB3aXRoIHZjby4KIAkgKi8KKwlpZiAodmNvID09IDg2NDAwMDApCisJCXJldHVybiBE UExMX0NUUkwxX0xJTktfUkFURShEUExMX0NUUkwxX0xJTktfUkFURV8xMDgwLCBTS0xfRFBMTDAp OworCWVsc2UKKwkJcmV0dXJuIERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19S QVRFXzgxMCwgU0tMX0RQTEwwKTsKK30KKworc3RhdGljIHZvaWQgc2tsX2RwbGwwX2VuYWJsZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2Y28pCit7CisJdTMyIHZhbDsK KwogCXZhbCA9IGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERQTExfQ1RSTDEpOwogCiAJdmFsICY9 IH4oRFBMTF9DVFJMMV9IRE1JX01PREUoU0tMX0RQTEwwKSB8IERQTExfQ1RSTDFfU1NDKFNLTF9E UExMMCkgfAogCQkgRFBMTF9DVFJMMV9MSU5LX1JBVEVfTUFTSyhTS0xfRFBMTDApKTsKIAl2YWwg fD0gRFBMTF9DVFJMMV9PVkVSUklERShTS0xfRFBMTDApOwotCWlmICh2Y28gPT0gODY0MDAwMCkK LQkJdmFsIHw9IERQTExfQ1RSTDFfTElOS19SQVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzEwODAs Ci0JCQkJCSAgICBTS0xfRFBMTDApOwotCWVsc2UKLQkJdmFsIHw9IERQTExfQ1RSTDFfTElOS19S QVRFKERQTExfQ1RSTDFfTElOS19SQVRFXzgxMCwKLQkJCQkJICAgIFNLTF9EUExMMCk7CisJdmFs IHw9IHNrbF9kcGxsMF9saW5rX3JhdGUoZGV2X3ByaXYsIHZjbyk7CiAKIAlpbnRlbF9kZV93cml0 ZShkZXZfcHJpdiwgRFBMTF9DVFJMMSwgdmFsKTsKIAlpbnRlbF9kZV9wb3N0aW5nX3JlYWQoZGV2 X3ByaXYsIERQTExfQ1RSTDEpOwpAQCAtMTAwNiw2ICsxMDA4LDI5IEBAIHN0YXRpYyB2b2lkIHNr bF9kcGxsMF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlkZXZf cHJpdi0+Y2RjbGsuaHcudmNvID0gMDsKIH0KIAorc3RhdGljIHUzMiBza2xfY2RjbGtfZnJlcV9z ZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICAgaW50IGNkY2xr LCBpbnQgdmNvKQoreworCXN3aXRjaCAoY2RjbGspIHsKKwlkZWZhdWx0OgorCQlkcm1fV0FSTl9P TigmZGV2X3ByaXYtPmRybSwKKwkJCSAgICBjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlw YXNzKTsKKwkJZHJtX1dBUk5fT04oJmRldl9wcml2LT5kcm0sIHZjbyAhPSAwKTsKKwkJZmFsbHRo cm91Z2g7CisJY2FzZSAzMDg1NzE6CisJY2FzZSAzMzc1MDA6CisJCXJldHVybiBDRENMS19GUkVR XzMzN18zMDg7CisJY2FzZSA0NTAwMDA6CisJY2FzZSA0MzIwMDA6CisJCXJldHVybiBDRENMS19G UkVRXzQ1MF80MzI7CisJY2FzZSA1NDAwMDA6CisJCXJldHVybiBDRENMS19GUkVRXzU0MDsKKwlj YXNlIDYxNzE0MzoKKwljYXNlIDY3NTAwMDoKKwkJcmV0dXJuIENEQ0xLX0ZSRVFfNjc1XzYxNzsK Kwl9Cit9CisKIHN0YXRpYyB2b2lkIHNrbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfY29uZmlnICpjZGNs a19jb25maWcsCiAJCQkgIGVudW0gcGlwZSBwaXBlKQpAQCAtMTAzNiwyOSArMTA2MSw3IEBAIHN0 YXRpYyB2b2lkIHNrbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCQlyZXR1cm47CiAJfQogCi0JLyogQ2hvb3NlIGZyZXF1ZW5jeSBmb3IgdGhpcyBjZGNsayAq LwotCXN3aXRjaCAoY2RjbGspIHsKLQlkZWZhdWx0OgotCQlkcm1fV0FSTl9PTigmZGV2X3ByaXYt PmRybSwKLQkJCSAgICBjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKTsKLQkJZHJt X1dBUk5fT04oJmRldl9wcml2LT5kcm0sIHZjbyAhPSAwKTsKLQkJZmFsbHRocm91Z2g7Ci0JY2Fz ZSAzMDg1NzE6Ci0JY2FzZSAzMzc1MDA6Ci0JCWZyZXFfc2VsZWN0ID0gQ0RDTEtfRlJFUV8zMzdf MzA4OwotCQlicmVhazsKLQljYXNlIDQ1MDAwMDoKLQljYXNlIDQzMjAwMDoKLQkJZnJlcV9zZWxl Y3QgPSBDRENMS19GUkVRXzQ1MF80MzI7Ci0JCWJyZWFrOwotCWNhc2UgNTQwMDAwOgotCQlmcmVx X3NlbGVjdCA9IENEQ0xLX0ZSRVFfNTQwOwotCQlicmVhazsKLQljYXNlIDYxNzE0MzoKLQljYXNl IDY3NTAwMDoKLQkJZnJlcV9zZWxlY3QgPSBDRENMS19GUkVRXzY3NV82MTc7Ci0JCWJyZWFrOwot CX0KKwlmcmVxX3NlbGVjdCA9IHNrbF9jZGNsa19mcmVxX3NlbChkZXZfcHJpdiwgY2RjbGssIHZj byk7CiAKIAlpZiAoZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyAhPSAwICYmCiAJICAgIGRldl9wcml2 LT5jZGNsay5ody52Y28gIT0gdmNvKQpAQCAtMTU0OSwxMyArMTU1Miw0MCBAQCBzdGF0aWMgdTMy IGJ4dF9jZGNsa19jZDJ4X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBl bnVtIHBpcGUgcGlwZQogCX0KIH0KIAorc3RhdGljIHUzMiBieHRfY2RjbGtfY2QyeF9kaXZfc2Vs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgIGludCBjZGNsaywgaW50 IHZjbykKK3sKKwkvKiBjZGNsayA9IHZjbyAvIDIgLyBkaXZ7MSwxLjUsMiw0fSAqLworCXN3aXRj aCAoRElWX1JPVU5EX0NMT1NFU1QodmNvLCBjZGNsaykpIHsKKwlkZWZhdWx0OgorCQlkcm1fV0FS Tl9PTigmZGV2X3ByaXYtPmRybSwKKwkJCSAgICBjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcu YnlwYXNzKTsKKwkJZHJtX1dBUk5fT04oJmRldl9wcml2LT5kcm0sIHZjbyAhPSAwKTsKKwkJZmFs bHRocm91Z2g7CisJY2FzZSAyOgorCQlyZXR1cm4gQlhUX0NEQ0xLX0NEMlhfRElWX1NFTF8xOwor CWNhc2UgMzoKKwkJZHJtX1dBUk4oJmRldl9wcml2LT5kcm0sCisJCQkgRElTUExBWV9WRVIoZGV2 X3ByaXYpID49IDEwLAorCQkJICJVbnN1cHBvcnRlZCBkaXZpZGVyXG4iKTsKKwkJcmV0dXJuIEJY VF9DRENMS19DRDJYX0RJVl9TRUxfMV81OworCWNhc2UgNDoKKwkJcmV0dXJuIEJYVF9DRENMS19D RDJYX0RJVl9TRUxfMjsKKwljYXNlIDg6CisJCWRybV9XQVJOKCZkZXZfcHJpdi0+ZHJtLAorCQkJ IERJU1BMQVlfVkVSKGRldl9wcml2KSA+PSAxMSB8fCBJU19DQU5OT05MQUtFKGRldl9wcml2KSwK KwkJCSAiVW5zdXBwb3J0ZWQgZGl2aWRlclxuIik7CisJCXJldHVybiBCWFRfQ0RDTEtfQ0QyWF9E SVZfU0VMXzQ7CisJfQorfQorCiBzdGF0aWMgdm9pZCBieHRfc2V0X2NkY2xrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX2Nv bmZpZyAqY2RjbGtfY29uZmlnLAogCQkJICBlbnVtIHBpcGUgcGlwZSkKIHsKIAlpbnQgY2RjbGsg PSBjZGNsa19jb25maWctPmNkY2xrOwogCWludCB2Y28gPSBjZGNsa19jb25maWctPnZjbzsKLQl1 MzIgdmFsLCBkaXZpZGVyOworCXUzMiB2YWw7CiAJaW50IHJldDsKIAogCS8qIEluZm9ybSBwb3dl ciBjb250cm9sbGVyIG9mIHVwY29taW5nIGZyZXF1ZW5jeSBjaGFuZ2UuICovCkBAIC0xNTgwLDMz ICsxNjEwLDYgQEAgc3RhdGljIHZvaWQgYnh0X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCXJldHVybjsKIAl9CiAKLQkvKiBjZGNsayA9IHZjbyAvIDIgLyBk aXZ7MSwxLjUsMiw0fSAqLwotCXN3aXRjaCAoRElWX1JPVU5EX0NMT1NFU1QodmNvLCBjZGNsaykp IHsKLQlkZWZhdWx0OgotCQlkcm1fV0FSTl9PTigmZGV2X3ByaXYtPmRybSwKLQkJCSAgICBjZGNs ayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKTsKLQkJZHJtX1dBUk5fT04oJmRldl9wcml2 LT5kcm0sIHZjbyAhPSAwKTsKLQkJZmFsbHRocm91Z2g7Ci0JY2FzZSAyOgotCQlkaXZpZGVyID0g QlhUX0NEQ0xLX0NEMlhfRElWX1NFTF8xOwotCQlicmVhazsKLQljYXNlIDM6Ci0JCWRybV9XQVJO KCZkZXZfcHJpdi0+ZHJtLAotCQkJIERJU1BMQVlfVkVSKGRldl9wcml2KSA+PSAxMCwKLQkJCSAi VW5zdXBwb3J0ZWQgZGl2aWRlclxuIik7Ci0JCWRpdmlkZXIgPSBCWFRfQ0RDTEtfQ0QyWF9ESVZf U0VMXzFfNTsKLQkJYnJlYWs7Ci0JY2FzZSA0OgotCQlkaXZpZGVyID0gQlhUX0NEQ0xLX0NEMlhf RElWX1NFTF8yOwotCQlicmVhazsKLQljYXNlIDg6Ci0JCWRybV9XQVJOKCZkZXZfcHJpdi0+ZHJt LAotCQkJIERJU1BMQVlfVkVSKGRldl9wcml2KSA+PSAxMSB8fCBJU19DQU5OT05MQUtFKGRldl9w cml2KSwKLQkJCSAiVW5zdXBwb3J0ZWQgZGl2aWRlclxuIik7Ci0JCWRpdmlkZXIgPSBCWFRfQ0RD TEtfQ0QyWF9ESVZfU0VMXzQ7Ci0JCWJyZWFrOwotCX0KLQogCWlmIChESVNQTEFZX1ZFUihkZXZf cHJpdikgPj0gMTEgfHwgSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKIAkJaWYgKGRldl9wcml2 LT5jZGNsay5ody52Y28gIT0gMCAmJgogCQkgICAgZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyAhPSB2 Y28pCkBAIC0xNjI0LDggKzE2MjcsOSBAQCBzdGF0aWMgdm9pZCBieHRfc2V0X2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCWJ4dF9kZV9wbGxfZW5hYmxlKGRldl9w cml2LCB2Y28pOwogCX0KIAotCXZhbCA9IGRpdmlkZXIgfCBza2xfY2RjbGtfZGVjaW1hbChjZGNs aykgfAotCQlieHRfY2RjbGtfY2QyeF9waXBlKGRldl9wcml2LCBwaXBlKTsKKwl2YWwgPSBieHRf Y2RjbGtfY2QyeF9kaXZfc2VsKGRldl9wcml2LCBjZGNsaywgdmNvKSB8CisJCWJ4dF9jZGNsa19j ZDJ4X3BpcGUoZGV2X3ByaXYsIHBpcGUpIHwKKwkJc2tsX2NkY2xrX2RlY2ltYWwoY2RjbGspOwog CiAJLyoKIAkgKiBEaXNhYmxlIFNTQSBQcmVjaGFyZ2Ugd2hlbiBDRCBjbG9jayBmcmVxdWVuY3kg PCA1MDAgTUh6LApAQCAtMTcxMSwyMyArMTcxNSw5IEBAIHN0YXRpYyB2b2lkIGJ4dF9zYW5pdGl6 ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJZXhwZWN0ZWQgPSBz a2xfY2RjbGtfZGVjaW1hbChjZGNsayk7CiAKIAkvKiBGaWd1cmUgb3V0IHdoYXQgQ0QyWCBkaXZp ZGVyIHdlIHNob3VsZCBiZSB1c2luZyBmb3IgdGhpcyBjZGNsayAqLwotCXN3aXRjaCAoRElWX1JP VU5EX0NMT1NFU1QoZGV2X3ByaXYtPmNkY2xrLmh3LnZjbywKLQkJCQkgIGRldl9wcml2LT5jZGNs ay5ody5jZGNsaykpIHsKLQljYXNlIDI6Ci0JCWV4cGVjdGVkIHw9IEJYVF9DRENMS19DRDJYX0RJ Vl9TRUxfMTsKLQkJYnJlYWs7Ci0JY2FzZSAzOgotCQlleHBlY3RlZCB8PSBCWFRfQ0RDTEtfQ0Qy WF9ESVZfU0VMXzFfNTsKLQkJYnJlYWs7Ci0JY2FzZSA0OgotCQlleHBlY3RlZCB8PSBCWFRfQ0RD TEtfQ0QyWF9ESVZfU0VMXzI7Ci0JCWJyZWFrOwotCWNhc2UgODoKLQkJZXhwZWN0ZWQgfD0gQlhU X0NEQ0xLX0NEMlhfRElWX1NFTF80OwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlnb3RvIHNhbml0 aXplOwotCX0KKwlleHBlY3RlZCB8PSBieHRfY2RjbGtfY2QyeF9kaXZfc2VsKGRldl9wcml2LAor CQkJCQkgICBkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGssCisJCQkJCSAgIGRldl9wcml2LT5jZGNs ay5ody52Y28pOwogCiAJLyoKIAkgKiBEaXNhYmxlIFNTQSBQcmVjaGFyZ2Ugd2hlbiBDRCBjbG9j ayBmcmVxdWVuY3kgPCA1MDAgTUh6LAotLSAKMi4yNi4zCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK