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 6F98AC6377D for ; Thu, 22 Jul 2021 05:39:27 +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 16D6E6008E for ; Thu, 22 Jul 2021 05:39:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 16D6E6008E 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 9219D6E92E; Thu, 22 Jul 2021 05:39:25 +0000 (UTC) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id F0D916E92E for ; Thu, 22 Jul 2021 05:39:24 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10052"; a="208456069" X-IronPort-AV: E=Sophos;i="5.84,260,1620716400"; d="scan'208";a="208456069" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2021 22:39:24 -0700 X-IronPort-AV: E=Sophos;i="5.84,260,1620716400"; d="scan'208";a="470415071" Received: from jkandi-mobl.amr.corp.intel.com (HELO josouza-mobl2.intel.com) ([10.209.170.189]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2021 22:39:24 -0700 From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= To: intel-gfx@lists.freedesktop.org Date: Wed, 21 Jul 2021 22:43:30 -0700 Message-Id: <20210722054338.12891-2-jose.souza@intel.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210722054338.12891-1-jose.souza@intel.com> References: <20210722054338.12891-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 02/10] drm/i915/bios: Start to support two integrated panels 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: Jani Nikula Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" VkJUIGhhcyBzdXBwb3J0IGZvciB1cCB0d28gaW50ZWdyYXRlZCBwYW5lbHMgYnV0IGk5MTUgb25s eSBzdXBwb3J0cyBvbmUuCgpTbyBoZXJlIHN0YXRpbmcgdG8gYWRkIHRoZSBiYXNpYyBzdXBwb3J0 IGZvciB0d28gaW50ZWdyYXRlZCBwYW5lbHMKYW5kIG1vdmluZyB0aGUgRFJSUyB0byBkZGlfdmJ0 X3BvcnRfaW5mbyBpbnN0ZWFkIG9mIGtlZXBpbmcgYSBnbG9iYWwKb25lLgpPdGhlciBWQlQgYmxv Y2tzIHdpbGwgYmUgY29udmVydGVkIGluIGZvbGxvd2luZyBwYXRjaGVzLgoKV2hpbGUgYXQgaXMg YWxzbyBudWNraW5nIGx2ZHNfZGl0aGVyIGFzIGl0IGlzIG5vdCB1c2VkLgoKQ2M6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBKYW5pIE5pa3VsYSA8 amFuaS5uaWt1bGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNv dXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Jpb3MuYyAgICAgfCAxODUgKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuaCAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgIHwgICA1ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZzLmggfCAgIDMgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgICA1ICstCiA1IGZpbGVzIGNoYW5nZWQs IDE1MCBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCmluZGV4IDViYzJjOTQ0ZDk5YjQuLjJiOTBlZmI0MWVjY2Ug MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCkBAIC0yMTEsMjIg KzIxMSwyMCBAQCBnZXRfbHZkc19mcF90aW1pbmcoY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJk YiwKIAlyZXR1cm4gKGNvbnN0IHN0cnVjdCBsdmRzX2ZwX3RpbWluZyAqKSgoY29uc3QgdTggKili ZGIgKyBvZnMpOwogfQogCi0vKiBQYXJzZSBnZW5lcmFsIHBhbmVsIG9wdGlvbnMgKi8KLXN0YXRp YyB2b2lkCi1wYXJzZV9wYW5lbF9vcHRpb25zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAotCQkgICAgY29uc3Qgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikKKy8qCisgKiBQYXJzZSBhbmQg c2V0IHZidC5wYW5lbF90eXBlLCBpdCB3aWxsIGJlIHVzZWQgYnkgdGhlIFZCVCBibG9ja3MgdGhh dCBhcmUKKyAqIG5vdCBiZWluZyBjYWxsZWQgZnJvbSBwYXJzZV9pbnRlZ3JhdGVkX3BhbmVsKCkg eWV0LgorICovCitzdGF0aWMgdm9pZCBwYXJzZV9wYW5lbF90eXBlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LAorCQkJICAgICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQogewog CWNvbnN0IHN0cnVjdCBiZGJfbHZkc19vcHRpb25zICpsdmRzX29wdGlvbnM7Ci0JaW50IHBhbmVs X3R5cGU7Ci0JaW50IGRycnNfbW9kZTsKLQlpbnQgcmV0OworCWludCByZXQsIHBhbmVsX3R5cGU7 CiAKIAlsdmRzX29wdGlvbnMgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfTFZEU19PUFRJT05TKTsK IAlpZiAoIWx2ZHNfb3B0aW9ucykKIAkJcmV0dXJuOwogCi0JaTkxNS0+dmJ0Lmx2ZHNfZGl0aGVy ID0gbHZkc19vcHRpb25zLT5waXhlbF9kaXRoZXI7Ci0KIAlyZXQgPSBpbnRlbF9vcHJlZ2lvbl9n ZXRfcGFuZWxfdHlwZShpOTE1KTsKIAlpZiAocmV0ID49IDApIHsKIAkJZHJtX1dBUk5fT04oJmk5 MTUtPmRybSwgcmV0ID4gMHhmKTsKQEAgLTI0Niw5ICsyNDQsMjUgQEAgcGFyc2VfcGFuZWxfb3B0 aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAl9CiAKIAlpOTE1LT52YnQucGFu ZWxfdHlwZSA9IHBhbmVsX3R5cGU7Cit9CisKKy8qIFBhcnNlIGdlbmVyYWwgcGFuZWwgb3B0aW9u cyAqLworc3RhdGljIHZvaWQKK3BhcnNlX3BhbmVsX29wdGlvbnMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCisJCSAgICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiLAorCQkgICAg c3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICppbmZvLAorCQkgICAgaW50IHBhbmVsX2luZGV4KQor eworCWNvbnN0IHN0cnVjdCBiZGJfbHZkc19vcHRpb25zICpsdmRzX29wdGlvbnM7CisJaW50IGRy cnNfbW9kZTsKKworCWx2ZHNfb3B0aW9ucyA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9MVkRTX09Q VElPTlMpOworCWlmICghbHZkc19vcHRpb25zKQorCQlyZXR1cm47CisKKwlkcnJzX21vZGUgPSBs dmRzX29wdGlvbnMtPmRwc19wYW5lbF90eXBlX2JpdHMgPj4gKHBhbmVsX2luZGV4ICogMik7CisJ ZHJyc19tb2RlICY9IE1PREVfTUFTSzsKIAotCWRycnNfbW9kZSA9IChsdmRzX29wdGlvbnMtPmRw c19wYW5lbF90eXBlX2JpdHMKLQkJCQk+PiAocGFuZWxfdHlwZSAqIDIpKSAmIE1PREVfTUFTSzsK IAkvKgogCSAqIFZCVCBoYXMgc3RhdGljIERSUlMgPSAwIGFuZCBzZWFtbGVzcyBEUlJTID0gMi4K IAkgKiBUaGUgYmVsb3cgcGllY2Ugb2YgY29kZSBpcyByZXF1aXJlZCB0byBhZGp1c3QgdmJ0LmRy cnNfdHlwZQpAQCAtMjU2LDE2ICsyNzAsMTYgQEAgcGFyc2VfcGFuZWxfb3B0aW9ucyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkgKi8KIAlzd2l0Y2ggKGRycnNfbW9kZSkgewogCWNh c2UgMDoKLQkJaTkxNS0+dmJ0LmRycnNfdHlwZSA9IFNUQVRJQ19EUlJTX1NVUFBPUlQ7CisJCWlu Zm8tPmRycnNfdHlwZSA9IFNUQVRJQ19EUlJTX1NVUFBPUlQ7CiAJCWRybV9kYmdfa21zKCZpOTE1 LT5kcm0sICJEUlJTIHN1cHBvcnRlZCBtb2RlIGlzIHN0YXRpY1xuIik7CiAJCWJyZWFrOwogCWNh c2UgMjoKLQkJaTkxNS0+dmJ0LmRycnNfdHlwZSA9IFNFQU1MRVNTX0RSUlNfU1VQUE9SVDsKKwkJ aW5mby0+ZHJyc190eXBlID0gU0VBTUxFU1NfRFJSU19TVVBQT1JUOwogCQlkcm1fZGJnX2ttcygm aTkxNS0+ZHJtLAogCQkJICAgICJEUlJTIHN1cHBvcnRlZCBtb2RlIGlzIHNlYW1sZXNzXG4iKTsK IAkJYnJlYWs7CiAJZGVmYXVsdDoKLQkJaTkxNS0+dmJ0LmRycnNfdHlwZSA9IERSUlNfTk9UX1NV UFBPUlRFRDsKKwkJaW5mby0+ZHJyc190eXBlID0gRFJSU19OT1RfU1VQUE9SVEVEOwogCQlkcm1f ZGJnX2ttcygmaTkxNS0+ZHJtLAogCQkJICAgICJEUlJTIG5vdCBzdXBwb3J0ZWQgKFZCVCBpbnB1 dClcbiIpOwogCQlicmVhazsKQEAgLTcxMCwyOCArNzI0LDQyIEBAIHBhcnNlX2RyaXZlcl9mZWF0 dXJlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCWk5MTUtPnZidC5pbnRfbHZk c19zdXBwb3J0ID0gMDsKIAl9CiAKLQlpZiAoYmRiLT52ZXJzaW9uIDwgMjI4KSB7Ci0JCWRybV9k Ymdfa21zKCZpOTE1LT5kcm0sICJEUlJTIFN0YXRlIEVuYWJsZWQ6JWRcbiIsCi0JCQkgICAgZHJp dmVyLT5kcnJzX2VuYWJsZWQpOwotCQkvKgotCQkgKiBJZiBEUlJTIGlzIG5vdCBzdXBwb3J0ZWQs IGRycnNfdHlwZSBoYXMgdG8gYmUgc2V0IHRvIDAuCi0JCSAqIFRoaXMgaXMgYmVjYXVzZSwgVkJU IGlzIGNvbmZpZ3VyZWQgaW4gc3VjaCBhIHdheSB0aGF0Ci0JCSAqIHN0YXRpYyBEUlJTIGlzIDAg YW5kIERSUlMgbm90IHN1cHBvcnRlZCBpcyByZXByZXNlbnRlZCBieQotCQkgKiBkcml2ZXItPmRy cnNfZW5hYmxlZD1mYWxzZQotCQkgKi8KLQkJaWYgKCFkcml2ZXItPmRycnNfZW5hYmxlZCkKLQkJ CWk5MTUtPnZidC5kcnJzX3R5cGUgPSBEUlJTX05PVF9TVVBQT1JURUQ7Ci0KKwlpZiAoYmRiLT52 ZXJzaW9uIDwgMjI4KQogCQlpOTE1LT52YnQucHNyLmVuYWJsZSA9IGRyaXZlci0+cHNyX2VuYWJs ZWQ7Ci0JfQorfQorCitzdGF0aWMgdm9pZAorcGFyc2VfZHJpdmVyX2ZlYXR1cmVzX2RycnNfb25s eShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCQljb25zdCBzdHJ1Y3QgYmRiX2hl YWRlciAqYmRiLAorCQkJCXN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyAqaW5mbykKK3sKKwljb25z dCBzdHJ1Y3QgYmRiX2RyaXZlcl9mZWF0dXJlcyAqZHJpdmVyOworCisJaWYgKGJkYi0+dmVyc2lv biA+PSAyMjgpCisJCXJldHVybjsKKworCWRyaXZlciA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9E UklWRVJfRkVBVFVSRVMpOworCWlmICghZHJpdmVyKQorCQlyZXR1cm47CisKKwlkcm1fZGJnX2tt cygmaTkxNS0+ZHJtLCAiRFJSUyBTdGF0ZSBFbmFibGVkOiVkXG4iLCBkcml2ZXItPmRycnNfZW5h YmxlZCk7CisJLyoKKwkgKiBJZiBEUlJTIGlzIG5vdCBzdXBwb3J0ZWQsIGRycnNfdHlwZSBoYXMg dG8gYmUgc2V0IHRvIDAuCisJICogVGhpcyBpcyBiZWNhdXNlLCBWQlQgaXMgY29uZmlndXJlZCBp biBzdWNoIGEgd2F5IHRoYXQKKwkgKiBzdGF0aWMgRFJSUyBpcyAwIGFuZCBEUlJTIG5vdCBzdXBw b3J0ZWQgaXMgcmVwcmVzZW50ZWQgYnkKKwkgKiBkcml2ZXItPmRycnNfZW5hYmxlZD1mYWxzZQor CSAqLworCWlmICghZHJpdmVyLT5kcnJzX2VuYWJsZWQpCisJCWluZm8tPmRycnNfdHlwZSA9IERS UlNfTk9UX1NVUFBPUlRFRDsKIH0KIAogc3RhdGljIHZvaWQKIHBhcnNlX3Bvd2VyX2NvbnNlcnZh dGlvbl9mZWF0dXJlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKLQkJCQkgIGNvbnN0 IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIpCisJCQkJICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAq YmRiLAorCQkJCSAgc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICppbmZvLAorCQkJCSAgaW50IHBh bmVsX2luZGV4KQogewogCWNvbnN0IHN0cnVjdCBiZGJfbGZwX3Bvd2VyICpwb3dlcjsKLQl1OCBw YW5lbF90eXBlID0gaTkxNS0+dmJ0LnBhbmVsX3R5cGU7CiAKIAlpZiAoYmRiLT52ZXJzaW9uIDwg MjI4KQogCQlyZXR1cm47CkBAIC03NDAsNyArNzY4LDcgQEAgcGFyc2VfcG93ZXJfY29uc2VydmF0 aW9uX2ZlYXR1cmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmICghcG93ZXIp CiAJCXJldHVybjsKIAotCWk5MTUtPnZidC5wc3IuZW5hYmxlID0gcG93ZXItPnBzciAmIEJJVChw YW5lbF90eXBlKTsKKwlpOTE1LT52YnQucHNyLmVuYWJsZSA9IHBvd2VyLT5wc3IgJiBCSVQocGFu ZWxfaW5kZXgpOwogCiAJLyoKIAkgKiBJZiBEUlJTIGlzIG5vdCBzdXBwb3J0ZWQsIGRycnNfdHlw ZSBoYXMgdG8gYmUgc2V0IHRvIDAuCkBAIC03NDgsMTEgKzc3NiwxMSBAQCBwYXJzZV9wb3dlcl9j b25zZXJ2YXRpb25fZmVhdHVyZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICog c3RhdGljIERSUlMgaXMgMCBhbmQgRFJSUyBub3Qgc3VwcG9ydGVkIGlzIHJlcHJlc2VudGVkIGJ5 CiAJICogcG93ZXItPmRycnMgJiBCSVQocGFuZWxfdHlwZSk9ZmFsc2UKIAkgKi8KLQlpZiAoIShw b3dlci0+ZHJycyAmIEJJVChwYW5lbF90eXBlKSkpCi0JCWk5MTUtPnZidC5kcnJzX3R5cGUgPSBE UlJTX05PVF9TVVBQT1JURUQ7CisJaWYgKCEocG93ZXItPmRycnMgJiBCSVQocGFuZWxfaW5kZXgp KSkKKwkJaW5mby0+ZHJyc190eXBlID0gRFJSU19OT1RfU1VQUE9SVEVEOwogCiAJaWYgKGJkYi0+ dmVyc2lvbiA+PSAyMzIpCi0JCWk5MTUtPnZidC5lZHAuaG9ibCA9IHBvd2VyLT5ob2JsICYgQklU KHBhbmVsX3R5cGUpOworCQlpOTE1LT52YnQuZWRwLmhvYmwgPSBwb3dlci0+aG9ibCAmIEJJVChw YW5lbF9pbmRleCk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0xODg3LDYgKzE5MTUsNzQgQEAgc3Rh dGljIGJvb2wgaXNfcG9ydF92YWxpZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZW51 bSBwb3J0IHBvcnQpCiAJcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmRi X2hlYWRlciAqZ2V0X2JkYl9oZWFkZXIoY29uc3Qgc3RydWN0IHZidF9oZWFkZXIgKnZidCkKK3sK Kwljb25zdCB2b2lkICpfdmJ0ID0gdmJ0OworCisJcmV0dXJuIF92YnQgKyB2YnQtPmJkYl9vZmZz ZXQ7Cit9CisKK3N0YXRpYyBpbnQKK2dldF9sZnBfcGFuZWxfaW5kZXgoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmk5MTUsCisJCSAgICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiLCBpbnQg bGZwX3BhbmVsX2luc3RhbmNlKQoreworCWNvbnN0IHN0cnVjdCBiZGJfbHZkc19vcHRpb25zICps dmRzX29wdGlvbnM7CisKKwlsdmRzX29wdGlvbnMgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfTFZE U19PUFRJT05TKTsKKwlpZiAoIWx2ZHNfb3B0aW9ucykKKwkJcmV0dXJuIC0xOworCisJc3dpdGNo IChsZnBfcGFuZWxfaW5zdGFuY2UpIHsKKwljYXNlIDE6CisJCXJldHVybiBsdmRzX29wdGlvbnMt PnBhbmVsX3R5cGU7CisJY2FzZSAyOgorCQlyZXR1cm4gbHZkc19vcHRpb25zLT5wYW5lbF90eXBl MjsKKwlkZWZhdWx0OgorCQlicmVhazsKKwl9CisKKwlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB2 b2lkIHBhcnNlX2ludGVncmF0ZWRfcGFuZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs CisJCQkJICAgc3RydWN0IGludGVsX2Jpb3NfZW5jb2Rlcl9kYXRhICpkZXZkYXRhLAorCQkJCSAg IHN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyAqaW5mbykKK3sKKwljb25zdCBzdHJ1Y3QgdmJ0X2hl YWRlciAqdmJ0ID0gaTkxNS0+b3ByZWdpb24udmJ0OworCWNvbnN0IHN0cnVjdCBiZGJfaGVhZGVy ICpiZGI7CisJaW50IGxmcF9pbnN0ID0gMCwgcGFuZWxfaW5kZXgsIG9wcmVnaW9uX3BhbmVsX2lu ZGV4OworCisJaWYgKGRldmRhdGEtPmNoaWxkLmhhbmRsZSA9PSBIQU5ETEVfTEZQXzEpCisJCWxm cF9pbnN0ID0gMTsKKwllbHNlIGlmIChkZXZkYXRhLT5jaGlsZC5oYW5kbGUgPT0gSEFORExFX0xG UF8yKQorCQlsZnBfaW5zdCA9IDI7CisKKwlpZiAobGZwX2luc3QgPT0gMCkKKwkJcmV0dXJuOwor CisJYmRiID0gZ2V0X2JkYl9oZWFkZXIodmJ0KTsKKwlwYW5lbF9pbmRleCA9IGdldF9sZnBfcGFu ZWxfaW5kZXgoaTkxNSwgYmRiLCBsZnBfaW5zdCk7CisKKwlvcHJlZ2lvbl9wYW5lbF9pbmRleCA9 IGludGVsX29wcmVnaW9uX2dldF9wYW5lbF90eXBlKGk5MTUpOworCS8qCisJICogVE9ETzogdGhl IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gYWx3YXlzIHVzZSB0aGUgcGFuZWwgaW5kZXggZnJvbQor CSAqIG9wcmVnaW9uIGlmIGF2YWlsYWJsZSBkdWUgdG8gaXNzdWVzIHdpdGggb2xkIHBsYXRmb3Jt cy4KKwkgKiBCdXQgdGhpcyBkbyBub3Qgc3VwcG9ydHMgdHdvIHBhbmVscyBhbmQgaW4gU0tMIG9y IG5ld2VyIEkgbmV2ZXIgc2F3IGEKKwkgKiBzeXN0ZW0gd2VyZSB0aGlzIGNhbGwgcmV0dXJucyBh IHZhbGlkIHZhbHVlLgorCSAqIFNvIHdpbGwgY2hhbmdlIHRoaXMgdG8gb25seSB1c2Ugb3ByZWdp b24gdXAgdG8gQkRXIGluIGEgc2VwYXJhdGVkCisJICogY29tbWl0LgorCSAqLworCWlmIChvcHJl Z2lvbl9wYW5lbF9pbmRleCA+PSAwKQorCQlwYW5lbF9pbmRleCA9IG9wcmVnaW9uX3BhbmVsX2lu ZGV4OworCisJaWYgKHBhbmVsX2luZGV4ID09IC0xKQorCQlyZXR1cm47CisKKwlwYXJzZV9wYW5l bF9vcHRpb25zKGk5MTUsIGJkYiwgaW5mbywgcGFuZWxfaW5kZXgpOworCXBhcnNlX3Bvd2VyX2Nv bnNlcnZhdGlvbl9mZWF0dXJlcyhpOTE1LCBiZGIsIGluZm8sIHBhbmVsX2luZGV4KTsKKwlwYXJz ZV9kcml2ZXJfZmVhdHVyZXNfZHJyc19vbmx5KGk5MTUsIGJkYiwgaW5mbyk7Cit9CisKIHN0YXRp YyB2b2lkIHBhcnNlX2RkaV9wb3J0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJ ICAgc3RydWN0IGludGVsX2Jpb3NfZW5jb2Rlcl9kYXRhICpkZXZkYXRhKQogewpAQCAtMjAxOCw2 ICsyMTE0LDggQEAgc3RhdGljIHZvaWQgcGFyc2VfZGRpX3BvcnQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCiAJCQkgICAgcG9ydF9uYW1lKHBvcnQpLCBpbmZvLT5kcF9tYXhfbGlua19y YXRlKTsKIAl9CiAKKwlwYXJzZV9pbnRlZ3JhdGVkX3BhbmVsKGk5MTUsIGRldmRhdGEsIGluZm8p OworCiAJaW5mby0+ZGV2ZGF0YSA9IGRldmRhdGE7CiB9CiAKQEAgLTIxNDQsOSArMjI0Miw2IEBA IGluaXRfdmJ0X2RlZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCS8qIERl ZmF1bHQgdG8gaGF2aW5nIGJhY2tsaWdodCAqLwogCWk5MTUtPnZidC5iYWNrbGlnaHQucHJlc2Vu dCA9IHRydWU7CiAKLQkvKiBMRlAgcGFuZWwgZGF0YSAqLwotCWk5MTUtPnZidC5sdmRzX2RpdGhl ciA9IDE7Ci0KIAkvKiBTRFZPIHBhbmVsIGRhdGEgKi8KIAlpOTE1LT52YnQuc2R2b19sdmRzX3Zi dF9tb2RlID0gTlVMTDsKIApAQCAtMjIyNiwxMyArMjMyMSw2IEBAIGluaXRfdmJ0X21pc3Npbmdf ZGVmYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaTkxNS0+dmJ0LnZlcnNp b24gPSAxNTU7CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqZ2V0X2JkYl9o ZWFkZXIoY29uc3Qgc3RydWN0IHZidF9oZWFkZXIgKnZidCkKLXsKLQljb25zdCB2b2lkICpfdmJ0 ID0gdmJ0OwotCi0JcmV0dXJuIF92YnQgKyB2YnQtPmJkYl9vZmZzZXQ7Ci19Ci0KIC8qKgogICog aW50ZWxfYmlvc19pc192YWxpZF92YnQgLSBkb2VzIHRoZSBnaXZlbiBidWZmZXIgY29udGFpbiBh IHZhbGlkIFZCVAogICogQGJ1ZjoJcG9pbnRlciB0byBhIGJ1ZmZlciB0byB2YWxpZGF0ZQpAQCAt MjM4NiwxMiArMjQ3NCwxMSBAQCB2b2lkIGludGVsX2Jpb3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKIAkvKiBHcmFiIHVzZWZ1bCBnZW5lcmFsIGRlZmluaXRpb25zICovCiAJ cGFyc2VfZ2VuZXJhbF9mZWF0dXJlcyhpOTE1LCBiZGIpOwogCXBhcnNlX2dlbmVyYWxfZGVmaW5p dGlvbnMoaTkxNSwgYmRiKTsKLQlwYXJzZV9wYW5lbF9vcHRpb25zKGk5MTUsIGJkYik7CisJcGFy c2VfcGFuZWxfdHlwZShpOTE1LCBiZGIpOwogCXBhcnNlX3BhbmVsX2R0ZChpOTE1LCBiZGIpOwog CXBhcnNlX2xmcF9iYWNrbGlnaHQoaTkxNSwgYmRiKTsKIAlwYXJzZV9zZHZvX3BhbmVsX2RhdGEo aTkxNSwgYmRiKTsKIAlwYXJzZV9kcml2ZXJfZmVhdHVyZXMoaTkxNSwgYmRiKTsKLQlwYXJzZV9w b3dlcl9jb25zZXJ2YXRpb25fZmVhdHVyZXMoaTkxNSwgYmRiKTsKIAlwYXJzZV9lZHAoaTkxNSwg YmRiKTsKIAlwYXJzZV9wc3IoaTkxNSwgYmRiKTsKIAlwYXJzZV9taXBpX2NvbmZpZyhpOTE1LCBi ZGIpOwpAQCAtMzAxMSwzICszMDk4LDExIEBAIGludGVsX2Jpb3NfZW5jb2Rlcl9kYXRhX2xvb2t1 cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgZW51bSBwb3J0IHBvcnQpCiB7CiAJcmV0 dXJuIGk5MTUtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmRldmRhdGE7CiB9CisKK2VudW0gZHJy c19zdXBwb3J0X3R5cGUKK2ludGVsX2Jpb3NfZHJyc190eXBlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7CisKKwlyZXR1cm4gaTkxNS0+dmJ0LmRkaV9wb3J0X2luZm9bZW5j b2Rlci0+cG9ydF0uZHJyc190eXBlOworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9iaW9zLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Jpb3MuaAppbmRleCA0NzA5YzRkMjk4MDU5Li5iYWQyODJiNjRjNWU2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Jpb3MuaApAQCAtMjY2LDQgKzI2Niw2IEBAIGJv b2wgaW50ZWxfYmlvc19lbmNvZGVyX3N1cHBvcnRzX3RidChjb25zdCBzdHJ1Y3QgaW50ZWxfYmlv c19lbmNvZGVyX2RhdGEgKmRldmRhCiBpbnQgaW50ZWxfYmlvc19lbmNvZGVyX2RwX2Jvb3N0X2xl dmVsKGNvbnN0IHN0cnVjdCBpbnRlbF9iaW9zX2VuY29kZXJfZGF0YSAqZGV2ZGF0YSk7CiBpbnQg aW50ZWxfYmlvc19lbmNvZGVyX2hkbWlfYm9vc3RfbGV2ZWwoY29uc3Qgc3RydWN0IGludGVsX2Jp b3NfZW5jb2Rlcl9kYXRhICpkZXZkYXRhKTsKIAorZW51bSBkcnJzX3N1cHBvcnRfdHlwZSBpbnRl bF9iaW9zX2RycnNfdHlwZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CisKICNlbmRp ZiAvKiBfSU5URUxfQklPU19IXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cC5jCmluZGV4IGMzODZlZjhlYjIwMDYuLjc5ZDRlM2VkYjJlZWYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKQEAgLTUxMzMsNiArNTEzMyw3IEBAIGludGVsX2RwX2Ry cnNfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZG93bmNsb2NrX21vZGUgPSBOVUxMOworCWVudW0g ZHJyc19zdXBwb3J0X3R5cGUgZHJyc190eXBlID0gaW50ZWxfYmlvc19kcnJzX3R5cGUoY29ubmVj dG9yLT5lbmNvZGVyKTsKIAogCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+ZHJycy53b3Jr LCBpbnRlbF9lZHBfZHJyc19kb3duY2xvY2tfd29yayk7CiAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYt PmRycnMubXV0ZXgpOwpAQCAtNTE0Myw3ICs1MTQ0LDcgQEAgaW50ZWxfZHBfZHJyc19pbml0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0J aWYgKGRldl9wcml2LT52YnQuZHJyc190eXBlICE9IFNFQU1MRVNTX0RSUlNfU1VQUE9SVCkgewor CWlmIChkcnJzX3R5cGUgIT0gU0VBTUxFU1NfRFJSU19TVVBQT1JUKSB7CiAJCWRybV9kYmdfa21z KCZkZXZfcHJpdi0+ZHJtLCAiVkJUIGRvZXNuJ3Qgc3VwcG9ydCBEUlJTXG4iKTsKIAkJcmV0dXJu IE5VTEw7CiAJfQpAQCAtNTE1NSw3ICs1MTU2LDcgQEAgaW50ZWxfZHBfZHJyc19pbml0KHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JZGV2 X3ByaXYtPmRycnMudHlwZSA9IGRldl9wcml2LT52YnQuZHJyc190eXBlOworCWRldl9wcml2LT5k cnJzLnR5cGUgPSBkcnJzX3R5cGU7CiAKIAlkZXZfcHJpdi0+ZHJycy5yZWZyZXNoX3JhdGVfdHlw ZSA9IERSUlNfSElHSF9SUjsKIAlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaAppbmRleCBkYmUyNGQ3ZTcz NzU5Li5jZDkyN2QxMzI1MGYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3ZidF9kZWZzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF92YnRfZGVmcy5oCkBAIC0zNTksNiArMzU5LDkgQEAgZW51bSB2YnRfZ21idXNfZGRpIHsK ICNkZWZpbmUgQkRCXzIzMF9WQlRfRFBfTUFYX0xJTktfUkFURV9VSEJSMTNQNQk2CiAjZGVmaW5l IEJEQl8yMzBfVkJUX0RQX01BWF9MSU5LX1JBVEVfVUhCUjIwCTcKIAorI2RlZmluZSBIQU5ETEVf TEZQXzEgMHgwMDA4CisjZGVmaW5lIEhBTkRMRV9MRlBfMiAweDAwODAKKwogLyoKICAqIFRoZSBj aGlsZCBkZXZpY2UgY29uZmlnLCBha2EgdGhlIGRpc3BsYXkgZGV2aWNlIGRhdGEgc3RydWN0dXJl LCBwcm92aWRlcyBhCiAgKiBkZXNjcmlwdGlvbiBvZiBhIHBvcnQgYW5kIGl0cyBjb25maWd1cmF0 aW9uIG9uIHRoZSBwbGF0Zm9ybS4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDAzMjFhMWY5 NzM4ZDYuLmQ5OTBjZWIyM2M4NWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNjU2LDYg KzY1Niw4IEBAIHN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyB7CiAJdTggYWx0ZXJuYXRlX2RkY19w aW47CiAKIAlpbnQgZHBfbWF4X2xpbmtfcmF0ZTsJCS8qIDAgZm9yIG5vdCBsaW1pdGVkIGJ5IFZC VCAqLworCisJZW51bSBkcnJzX3N1cHBvcnRfdHlwZSBkcnJzX3R5cGU7CiB9OwogCiBlbnVtIHBz cl9saW5lc190b193YWl0IHsKQEAgLTY3NCw3ICs2NzYsNiBAQCBzdHJ1Y3QgaW50ZWxfdmJ0X2Rh dGEgewogCiAJLyogRmVhdHVyZSBiaXRzICovCiAJdW5zaWduZWQgaW50IGludF90dl9zdXBwb3J0 OjE7Ci0JdW5zaWduZWQgaW50IGx2ZHNfZGl0aGVyOjE7CiAJdW5zaWduZWQgaW50IGludF9jcnRf c3VwcG9ydDoxOwogCXVuc2lnbmVkIGludCBsdmRzX3VzZV9zc2M6MTsKIAl1bnNpZ25lZCBpbnQg aW50X2x2ZHNfc3VwcG9ydDoxOwpAQCAtNjg1LDggKzY4Niw2IEBAIHN0cnVjdCBpbnRlbF92YnRf ZGF0YSB7CiAJdW5zaWduZWQgaW50IGJpb3NfbHZkc192YWw7IC8qIGluaXRpYWwgW1BDSF9dTFZE UyByZWcgdmFsIGluIFZCSU9TICovCiAJZW51bSBkcm1fcGFuZWxfb3JpZW50YXRpb24gb3JpZW50 YXRpb247CiAKLQllbnVtIGRycnNfc3VwcG9ydF90eXBlIGRycnNfdHlwZTsKLQogCXN0cnVjdCB7 CiAJCWludCByYXRlOwogCQlpbnQgbGFuZXM7Ci0tIAoyLjMyLjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=