From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v2] drm/i915/vbt: Handle generic DTD block Date: Mon, 28 Oct 2019 12:41:40 -0700 Message-ID: <20191028194140.964-1-matthew.d.roper@intel.com> References: <20191010010356.31413-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id E17346E9DF for ; Mon, 28 Oct 2019 19:41:05 +0000 (UTC) In-Reply-To: <20191010010356.31413-1-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org VkJUIHJldmlzaW9uIDIyOSBhZGRzIGEgbmV3ICJHZW5lcmljIERURCIgYmxvY2sgNTggYW5kIGRl cHJlY2F0ZXMgdGhlCm9sZCBMRlAgcGFuZWwgbW9kZSBkYXRhIGluIGJsb2NrIDQyLiAgTGV0J3Mg c3RhcnQgcGFyc2luZyB0aGlzIGJsb2NrIHRvCmZpbGwgaW4gdGhlIHBhbmVsIGZpeGVkIG1vZGUg b24gZGV2aWNlcyB3aXRoIGEgPj0yMjkgVkJULgoKdjI6CiAqIFVwZGF0ZSBhY2NvcmRpbmcgdG8g dGhlIHJlY2VudCB1cGRhdGVzOgogICAgLSBEVEQgc2l6ZSBpcyBub3cgMTYgYml0cyBpbnN0ZWFk IG9mIDI0CiAgICAtIHBvbGFyaXR5IGlzIG5vdyBqdXN0IGEgc2luZ2xlIGJpdCBmb3IgaHN5bmMg YW5kIHZzeW5jIGFuZCBpcwogICAgICBwcm9wZXJseSBkb2N1bWVudGVkCiAqIE1pbm9yIGNoZWNr cGF0Y2ggZml4CgpCc3BlYzogNTQ3NTEKQnNwZWM6IDIwMTQ4CkNjOiBKYW5pIE5pa3VsYSA8amFu aS5uaWt1bGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQu cm9wZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Ymlvcy5jICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCB8IDMxICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg MTE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Jpb3MuYwppbmRleCA2M2MxYmQ0YzI5NTQuLjBkMTUwNGUyM2E0OSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKQEAgLTIwMiw2ICsyMDIs NzIgQEAgZ2V0X2x2ZHNfZnBfdGltaW5nKGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIsCiAJ cmV0dXJuIChjb25zdCBzdHJ1Y3QgbHZkc19mcF90aW1pbmcgKikoKGNvbnN0IHU4ICopYmRiICsg b2ZzKTsKIH0KIAorc3RhdGljIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICoKK3BhcnNlX2dlbmVy aWNfZHRkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICBjb25zdCBzdHJ1 Y3QgYmRiX2dlbmVyaWNfZHRkICpnZW5lcmljX2R0ZCkKK3sKKwljb25zdCBzdHJ1Y3QgYmRiX2dl bmVyaWNfZHRkX2VudHJ5ICpkdGQ7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVsX2Zp eGVkX21vZGU7CisJaW50IG51bV9kdGQ7CisKKwlpZiAoZ2VuZXJpY19kdGQtPmdkdGRfc2l6ZSA8 IHNpemVvZihzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkX2VudHJ5KSkgeworCQlEUk1fRVJST1IoIkdE VEQgc2l6ZSAldSBpcyB0b28gc21hbGwuXG4iLAorCQkJICBnZW5lcmljX2R0ZC0+Z2R0ZF9zaXpl KTsKKwkJcmV0dXJuIE5VTEw7CisJfSBlbHNlIGlmIChnZW5lcmljX2R0ZC0+Z2R0ZF9zaXplICE9 CisJCSAgIHNpemVvZihzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkX2VudHJ5KSkgeworCQlEUk1fRVJS T1IoIlVuZXhwZWN0ZWQgR0RURCBzaXplICV1XG4iLCBnZW5lcmljX2R0ZC0+Z2R0ZF9zaXplKTsK KwkJLyogRFREIGhhcyB1bmtub3duIGZpZWxkcywgYnV0IGtlZXAgZ29pbmcgKi8KKwl9CisKKwlu dW1fZHRkID0gKGdldF9ibG9ja3NpemUoZ2VuZXJpY19kdGQpIC0KKwkJICAgc2l6ZW9mKHN0cnVj dCBiZGJfZ2VuZXJpY19kdGQpKSAvIGdlbmVyaWNfZHRkLT5nZHRkX3NpemU7CisJaWYgKGRldl9w cml2LT52YnQucGFuZWxfdHlwZSA+IG51bV9kdGQpIHsKKwkJRFJNX0VSUk9SKCJQYW5lbCB0eXBl ICVkIG5vdCBmb3VuZCBpbiB0YWJsZSBvZiAlZCBEVEQnc1xuIiwKKwkJCSAgZGV2X3ByaXYtPnZi dC5wYW5lbF90eXBlLCBudW1fZHRkKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJZHRkID0gJmdl bmVyaWNfZHRkLT5kdGRbZGV2X3ByaXYtPnZidC5wYW5lbF90eXBlXTsKKworCXBhbmVsX2ZpeGVk X21vZGUgPSBremFsbG9jKHNpemVvZigqcGFuZWxfZml4ZWRfbW9kZSksIEdGUF9LRVJORUwpOwor CWlmICghcGFuZWxfZml4ZWRfbW9kZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwYW5lbF9maXhlZF9t b2RlLT5oZGlzcGxheSA9IGR0ZC0+aGFjdGl2ZTsKKwlwYW5lbF9maXhlZF9tb2RlLT5oc3luY19z dGFydCA9CisJCXBhbmVsX2ZpeGVkX21vZGUtPmhkaXNwbGF5ICsgZHRkLT5oZnJvbnRfcG9yY2g7 CisJcGFuZWxfZml4ZWRfbW9kZS0+aHN5bmNfZW5kID0KKwkJcGFuZWxfZml4ZWRfbW9kZS0+aHN5 bmNfc3RhcnQgKyBkdGQtPmhzeW5jOworCXBhbmVsX2ZpeGVkX21vZGUtPmh0b3RhbCA9IHBhbmVs X2ZpeGVkX21vZGUtPmhzeW5jX2VuZDsKKworCXBhbmVsX2ZpeGVkX21vZGUtPnZkaXNwbGF5ID0g ZHRkLT52YWN0aXZlOworCXBhbmVsX2ZpeGVkX21vZGUtPnZzeW5jX3N0YXJ0ID0KKwkJcGFuZWxf Zml4ZWRfbW9kZS0+dmRpc3BsYXkgKyBkdGQtPnZmcm9udF9wb3JjaDsKKwlwYW5lbF9maXhlZF9t b2RlLT52c3luY19lbmQgPQorCQlwYW5lbF9maXhlZF9tb2RlLT52c3luY19zdGFydCArIGR0ZC0+ dnN5bmM7CisJcGFuZWxfZml4ZWRfbW9kZS0+dnRvdGFsID0gcGFuZWxfZml4ZWRfbW9kZS0+dnN5 bmNfZW5kOworCisJcGFuZWxfZml4ZWRfbW9kZS0+Y2xvY2sgPSBkdGQtPnBpeGVsX2Nsb2NrOwor CXBhbmVsX2ZpeGVkX21vZGUtPndpZHRoX21tID0gZHRkLT53aWR0aF9tbTsKKwlwYW5lbF9maXhl ZF9tb2RlLT5oZWlnaHRfbW0gPSBkdGQtPmhlaWdodF9tbTsKKworCXBhbmVsX2ZpeGVkX21vZGUt PnR5cGUgPSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKKwlkcm1fbW9kZV9zZXRfbmFtZShwYW5l bF9maXhlZF9tb2RlKTsKKworCWlmIChkdGQtPmhzeW5jX3BvbGFyaXR5KQorCQlwYW5lbF9maXhl ZF9tb2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BIU1lOQzsKKwllbHNlCisJCXBhbmVsX2Zp eGVkX21vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTkhTWU5DOworCisJaWYgKGR0ZC0+dnN5 bmNfcG9sYXJpdHkpCisJCXBhbmVsX2ZpeGVkX21vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdf UFZTWU5DOworCWVsc2UKKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxB R19OVlNZTkM7CisKKwlyZXR1cm4gcGFuZWxfZml4ZWRfbW9kZTsKK30KKwogLyogVHJ5IHRvIGZp bmQgaW50ZWdyYXRlZCBwYW5lbCBkYXRhICovCiBzdGF0aWMgdm9pZAogcGFyc2VfbGZwX3BhbmVs X2RhdGEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjEwLDYgKzI3Niw3 IEBAIHBhcnNlX2xmcF9wYW5lbF9kYXRhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAljb25zdCBzdHJ1Y3QgYmRiX2x2ZHNfb3B0aW9ucyAqbHZkc19vcHRpb25zOwogCWNvbnN0 IHN0cnVjdCBiZGJfbHZkc19sZnBfZGF0YSAqbHZkc19sZnBfZGF0YTsKIAljb25zdCBzdHJ1Y3Qg YmRiX2x2ZHNfbGZwX2RhdGFfcHRycyAqbHZkc19sZnBfZGF0YV9wdHJzOworCWNvbnN0IHN0cnVj dCBiZGJfZ2VuZXJpY19kdGQgKmdlbmVyaWNfZHRkOwogCWNvbnN0IHN0cnVjdCBsdmRzX2R2b190 aW1pbmcgKnBhbmVsX2R2b190aW1pbmc7CiAJY29uc3Qgc3RydWN0IGx2ZHNfZnBfdGltaW5nICpm cF90aW1pbmc7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVsX2ZpeGVkX21vZGU7CkBA IC0yNjIsNiArMzI5LDE4IEBAIHBhcnNlX2xmcF9wYW5lbF9kYXRhKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJYnJlYWs7CiAJfQogCisJaWYgKGJkYi0+dmVyc2lvbiA+PSAy MjkpIHsKKwkJZ2VuZXJpY19kdGQgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfR0VORVJJQ19EVEQp OworCQlpZiAoIWdlbmVyaWNfZHRkKQorCQkJcmV0dXJuOworCisJCXBhbmVsX2ZpeGVkX21vZGUg PSBwYXJzZV9nZW5lcmljX2R0ZChkZXZfcHJpdiwgZ2VuZXJpY19kdGQpOworCQlpZiAoIXBhbmVs X2ZpeGVkX21vZGUpCisJCQlyZXR1cm47CisKKwkJZ290byBza2lwX2xlZ2FjeV9sZnA7CisJfQor CiAJbHZkc19sZnBfZGF0YSA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9MVkRTX0xGUF9EQVRBKTsK IAlpZiAoIWx2ZHNfbGZwX2RhdGEpCiAJCXJldHVybjsKQEAgLTI4Miw5ICszNjEsNiBAQCBwYXJz ZV9sZnBfcGFuZWxfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlk ZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3ZidF9tb2RlID0gcGFuZWxfZml4ZWRfbW9kZTsKIAotCURS TV9ERUJVR19LTVMoIkZvdW5kIHBhbmVsIG1vZGUgaW4gQklPUyBWQlQgdGFibGVzOlxuIik7Ci0J ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZShwYW5lbF9maXhlZF9tb2RlKTsKLQogCWZwX3Rp bWluZyA9IGdldF9sdmRzX2ZwX3RpbWluZyhiZGIsIGx2ZHNfbGZwX2RhdGEsCiAJCQkJICAgICAg IGx2ZHNfbGZwX2RhdGFfcHRycywKIAkJCQkgICAgICAgcGFuZWxfdHlwZSk7CkBAIC0yOTcsNiAr MzczLDExIEBAIHBhcnNlX2xmcF9wYW5lbF9kYXRhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJCQkgICAgICBkZXZfcHJpdi0+dmJ0LmJpb3NfbHZkc192YWwpOwogCQl9CiAJ fQorCitza2lwX2xlZ2FjeV9sZnA6CisJRFJNX0RFQlVHX0tNUygiRm91bmQgcGFuZWwgbW9kZSBp biBCSU9TIFZCVCB0YWJsZXM6XG4iKTsKKwlkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lKHBh bmVsX2ZpeGVkX21vZGUpOworCiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZzLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZzLmgKaW5kZXggNjlhN2NiMWZhMTIxLi44MmZjYWIw YjM3NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0 X2RlZnMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZz LmgKQEAgLTExNSw2ICsxMTUsNyBAQCBlbnVtIGJkYl9ibG9ja19pZCB7CiAJQkRCX01JUElfQ09O RklHCQkJPSA1MiwKIAlCREJfTUlQSV9TRVFVRU5DRQkJPSA1MywKIAlCREJfQ09NUFJFU1NJT05f UEFSQU1FVEVSUwk9IDU2LAorCUJEQl9HRU5FUklDX0RURAkJCT0gNTgsCiAJQkRCX1NLSVAJCQk9 IDI1NCwgLyogVkJJT1MgcHJpdmF0ZSBibG9jaywgaWdub3JlICovCiB9OwogCkBAIC04NjMsNCAr ODY0LDM0IEBAIHN0cnVjdCBiZGJfY29tcHJlc3Npb25fcGFyYW1ldGVycyB7CiAJc3RydWN0IGRz Y19jb21wcmVzc2lvbl9wYXJhbWV0ZXJzX2VudHJ5IGRhdGFbMTZdOwogfSBfX3BhY2tlZDsKIAor LyoKKyAqIEJsb2NrIDU4IC0gR2VuZXJpYyBEVEQgQmxvY2sKKyAqLworCitzdHJ1Y3QgYmRiX2dl bmVyaWNfZHRkX2VudHJ5IHsKKwl1MzIgcGl4ZWxfY2xvY2s7CisJdTE2IGhhY3RpdmU7CisJdTE2 IGhibGFuazsKKwl1MTYgaGZyb250X3BvcmNoOworCXUxNiBoc3luYzsKKwl1MTYgdmFjdGl2ZTsK Kwl1MTYgdmJsYW5rOworCXUxNiB2ZnJvbnRfcG9yY2g7CisJdTE2IHZzeW5jOworCXUxNiB3aWR0 aF9tbTsKKwl1MTYgaGVpZ2h0X21tOworCisJLyogRmxhZ3MgKi8KKwl1OCByc3ZkX2ZsYWdzOjY7 CisJdTggdnN5bmNfcG9sYXJpdHk6MTsKKwl1OCBoc3luY19wb2xhcml0eToxOworCisJdTMyIHJz dmQ6MjQ7Cit9IF9fcGFja2VkOworCitzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkIHsKKwl1MTYgZ2R0 ZF9zaXplOworCXN0cnVjdCBiZGJfZ2VuZXJpY19kdGRfZW50cnkgZHRkWzBdOwkvKiB1cCB0byAy NCBEVEQncyAqLworfSBfX3BhY2tlZDsKKwogI2VuZGlmIC8qIF9JTlRFTF9WQlRfREVGU19IXyAq LwotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng= 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=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 0E368CA9EC0 for ; Mon, 28 Oct 2019 19:41:07 +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 DCE8420873 for ; Mon, 28 Oct 2019 19:41:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DCE8420873 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 8EF016E9DF; Mon, 28 Oct 2019 19:41:06 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id E17346E9DF for ; Mon, 28 Oct 2019 19:41:05 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Oct 2019 12:41:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,241,1569308400"; d="scan'208";a="211527857" Received: from mdroper-desk1.fm.intel.com ([10.1.27.135]) by orsmga002.jf.intel.com with ESMTP; 28 Oct 2019 12:41:04 -0700 From: Matt Roper To: intel-gfx@lists.freedesktop.org Date: Mon, 28 Oct 2019 12:41:40 -0700 Message-Id: <20191028194140.964-1-matthew.d.roper@intel.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20191010010356.31413-1-matthew.d.roper@intel.com> References: <20191010010356.31413-1-matthew.d.roper@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2] drm/i915/vbt: Handle generic DTD block X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 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" Message-ID: <20191028194140.KjhyzWEH2LPJw1OcuxrrFbmpBxSvBWpdQEUSjYC4nvI@z> VkJUIHJldmlzaW9uIDIyOSBhZGRzIGEgbmV3ICJHZW5lcmljIERURCIgYmxvY2sgNTggYW5kIGRl cHJlY2F0ZXMgdGhlCm9sZCBMRlAgcGFuZWwgbW9kZSBkYXRhIGluIGJsb2NrIDQyLiAgTGV0J3Mg c3RhcnQgcGFyc2luZyB0aGlzIGJsb2NrIHRvCmZpbGwgaW4gdGhlIHBhbmVsIGZpeGVkIG1vZGUg b24gZGV2aWNlcyB3aXRoIGEgPj0yMjkgVkJULgoKdjI6CiAqIFVwZGF0ZSBhY2NvcmRpbmcgdG8g dGhlIHJlY2VudCB1cGRhdGVzOgogICAgLSBEVEQgc2l6ZSBpcyBub3cgMTYgYml0cyBpbnN0ZWFk IG9mIDI0CiAgICAtIHBvbGFyaXR5IGlzIG5vdyBqdXN0IGEgc2luZ2xlIGJpdCBmb3IgaHN5bmMg YW5kIHZzeW5jIGFuZCBpcwogICAgICBwcm9wZXJseSBkb2N1bWVudGVkCiAqIE1pbm9yIGNoZWNr cGF0Y2ggZml4CgpCc3BlYzogNTQ3NTEKQnNwZWM6IDIwMTQ4CkNjOiBKYW5pIE5pa3VsYSA8amFu aS5uaWt1bGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQu cm9wZXJAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Ymlvcy5jICAgICB8IDg3ICsrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfdmJ0X2RlZnMuaCB8IDMxICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg MTE1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Jpb3MuYwppbmRleCA2M2MxYmQ0YzI5NTQuLjBkMTUwNGUyM2E0OSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKQEAgLTIwMiw2ICsyMDIs NzIgQEAgZ2V0X2x2ZHNfZnBfdGltaW5nKGNvbnN0IHN0cnVjdCBiZGJfaGVhZGVyICpiZGIsCiAJ cmV0dXJuIChjb25zdCBzdHJ1Y3QgbHZkc19mcF90aW1pbmcgKikoKGNvbnN0IHU4ICopYmRiICsg b2ZzKTsKIH0KIAorc3RhdGljIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICoKK3BhcnNlX2dlbmVy aWNfZHRkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJICBjb25zdCBzdHJ1 Y3QgYmRiX2dlbmVyaWNfZHRkICpnZW5lcmljX2R0ZCkKK3sKKwljb25zdCBzdHJ1Y3QgYmRiX2dl bmVyaWNfZHRkX2VudHJ5ICpkdGQ7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVsX2Zp eGVkX21vZGU7CisJaW50IG51bV9kdGQ7CisKKwlpZiAoZ2VuZXJpY19kdGQtPmdkdGRfc2l6ZSA8 IHNpemVvZihzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkX2VudHJ5KSkgeworCQlEUk1fRVJST1IoIkdE VEQgc2l6ZSAldSBpcyB0b28gc21hbGwuXG4iLAorCQkJICBnZW5lcmljX2R0ZC0+Z2R0ZF9zaXpl KTsKKwkJcmV0dXJuIE5VTEw7CisJfSBlbHNlIGlmIChnZW5lcmljX2R0ZC0+Z2R0ZF9zaXplICE9 CisJCSAgIHNpemVvZihzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkX2VudHJ5KSkgeworCQlEUk1fRVJS T1IoIlVuZXhwZWN0ZWQgR0RURCBzaXplICV1XG4iLCBnZW5lcmljX2R0ZC0+Z2R0ZF9zaXplKTsK KwkJLyogRFREIGhhcyB1bmtub3duIGZpZWxkcywgYnV0IGtlZXAgZ29pbmcgKi8KKwl9CisKKwlu dW1fZHRkID0gKGdldF9ibG9ja3NpemUoZ2VuZXJpY19kdGQpIC0KKwkJICAgc2l6ZW9mKHN0cnVj dCBiZGJfZ2VuZXJpY19kdGQpKSAvIGdlbmVyaWNfZHRkLT5nZHRkX3NpemU7CisJaWYgKGRldl9w cml2LT52YnQucGFuZWxfdHlwZSA+IG51bV9kdGQpIHsKKwkJRFJNX0VSUk9SKCJQYW5lbCB0eXBl ICVkIG5vdCBmb3VuZCBpbiB0YWJsZSBvZiAlZCBEVEQnc1xuIiwKKwkJCSAgZGV2X3ByaXYtPnZi dC5wYW5lbF90eXBlLCBudW1fZHRkKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJZHRkID0gJmdl bmVyaWNfZHRkLT5kdGRbZGV2X3ByaXYtPnZidC5wYW5lbF90eXBlXTsKKworCXBhbmVsX2ZpeGVk X21vZGUgPSBremFsbG9jKHNpemVvZigqcGFuZWxfZml4ZWRfbW9kZSksIEdGUF9LRVJORUwpOwor CWlmICghcGFuZWxfZml4ZWRfbW9kZSkKKwkJcmV0dXJuIE5VTEw7CisKKwlwYW5lbF9maXhlZF9t b2RlLT5oZGlzcGxheSA9IGR0ZC0+aGFjdGl2ZTsKKwlwYW5lbF9maXhlZF9tb2RlLT5oc3luY19z dGFydCA9CisJCXBhbmVsX2ZpeGVkX21vZGUtPmhkaXNwbGF5ICsgZHRkLT5oZnJvbnRfcG9yY2g7 CisJcGFuZWxfZml4ZWRfbW9kZS0+aHN5bmNfZW5kID0KKwkJcGFuZWxfZml4ZWRfbW9kZS0+aHN5 bmNfc3RhcnQgKyBkdGQtPmhzeW5jOworCXBhbmVsX2ZpeGVkX21vZGUtPmh0b3RhbCA9IHBhbmVs X2ZpeGVkX21vZGUtPmhzeW5jX2VuZDsKKworCXBhbmVsX2ZpeGVkX21vZGUtPnZkaXNwbGF5ID0g ZHRkLT52YWN0aXZlOworCXBhbmVsX2ZpeGVkX21vZGUtPnZzeW5jX3N0YXJ0ID0KKwkJcGFuZWxf Zml4ZWRfbW9kZS0+dmRpc3BsYXkgKyBkdGQtPnZmcm9udF9wb3JjaDsKKwlwYW5lbF9maXhlZF9t b2RlLT52c3luY19lbmQgPQorCQlwYW5lbF9maXhlZF9tb2RlLT52c3luY19zdGFydCArIGR0ZC0+ dnN5bmM7CisJcGFuZWxfZml4ZWRfbW9kZS0+dnRvdGFsID0gcGFuZWxfZml4ZWRfbW9kZS0+dnN5 bmNfZW5kOworCisJcGFuZWxfZml4ZWRfbW9kZS0+Y2xvY2sgPSBkdGQtPnBpeGVsX2Nsb2NrOwor CXBhbmVsX2ZpeGVkX21vZGUtPndpZHRoX21tID0gZHRkLT53aWR0aF9tbTsKKwlwYW5lbF9maXhl ZF9tb2RlLT5oZWlnaHRfbW0gPSBkdGQtPmhlaWdodF9tbTsKKworCXBhbmVsX2ZpeGVkX21vZGUt PnR5cGUgPSBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKKwlkcm1fbW9kZV9zZXRfbmFtZShwYW5l bF9maXhlZF9tb2RlKTsKKworCWlmIChkdGQtPmhzeW5jX3BvbGFyaXR5KQorCQlwYW5lbF9maXhl ZF9tb2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BIU1lOQzsKKwllbHNlCisJCXBhbmVsX2Zp eGVkX21vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTkhTWU5DOworCisJaWYgKGR0ZC0+dnN5 bmNfcG9sYXJpdHkpCisJCXBhbmVsX2ZpeGVkX21vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdf UFZTWU5DOworCWVsc2UKKwkJcGFuZWxfZml4ZWRfbW9kZS0+ZmxhZ3MgfD0gRFJNX01PREVfRkxB R19OVlNZTkM7CisKKwlyZXR1cm4gcGFuZWxfZml4ZWRfbW9kZTsKK30KKwogLyogVHJ5IHRvIGZp bmQgaW50ZWdyYXRlZCBwYW5lbCBkYXRhICovCiBzdGF0aWMgdm9pZAogcGFyc2VfbGZwX3BhbmVs X2RhdGEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjEwLDYgKzI3Niw3 IEBAIHBhcnNlX2xmcF9wYW5lbF9kYXRhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAljb25zdCBzdHJ1Y3QgYmRiX2x2ZHNfb3B0aW9ucyAqbHZkc19vcHRpb25zOwogCWNvbnN0 IHN0cnVjdCBiZGJfbHZkc19sZnBfZGF0YSAqbHZkc19sZnBfZGF0YTsKIAljb25zdCBzdHJ1Y3Qg YmRiX2x2ZHNfbGZwX2RhdGFfcHRycyAqbHZkc19sZnBfZGF0YV9wdHJzOworCWNvbnN0IHN0cnVj dCBiZGJfZ2VuZXJpY19kdGQgKmdlbmVyaWNfZHRkOwogCWNvbnN0IHN0cnVjdCBsdmRzX2R2b190 aW1pbmcgKnBhbmVsX2R2b190aW1pbmc7CiAJY29uc3Qgc3RydWN0IGx2ZHNfZnBfdGltaW5nICpm cF90aW1pbmc7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVsX2ZpeGVkX21vZGU7CkBA IC0yNjIsNiArMzI5LDE4IEBAIHBhcnNlX2xmcF9wYW5lbF9kYXRhKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAkJYnJlYWs7CiAJfQogCisJaWYgKGJkYi0+dmVyc2lvbiA+PSAy MjkpIHsKKwkJZ2VuZXJpY19kdGQgPSBmaW5kX3NlY3Rpb24oYmRiLCBCREJfR0VORVJJQ19EVEQp OworCQlpZiAoIWdlbmVyaWNfZHRkKQorCQkJcmV0dXJuOworCisJCXBhbmVsX2ZpeGVkX21vZGUg PSBwYXJzZV9nZW5lcmljX2R0ZChkZXZfcHJpdiwgZ2VuZXJpY19kdGQpOworCQlpZiAoIXBhbmVs X2ZpeGVkX21vZGUpCisJCQlyZXR1cm47CisKKwkJZ290byBza2lwX2xlZ2FjeV9sZnA7CisJfQor CiAJbHZkc19sZnBfZGF0YSA9IGZpbmRfc2VjdGlvbihiZGIsIEJEQl9MVkRTX0xGUF9EQVRBKTsK IAlpZiAoIWx2ZHNfbGZwX2RhdGEpCiAJCXJldHVybjsKQEAgLTI4Miw5ICszNjEsNiBAQCBwYXJz ZV9sZnBfcGFuZWxfZGF0YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlk ZXZfcHJpdi0+dmJ0LmxmcF9sdmRzX3ZidF9tb2RlID0gcGFuZWxfZml4ZWRfbW9kZTsKIAotCURS TV9ERUJVR19LTVMoIkZvdW5kIHBhbmVsIG1vZGUgaW4gQklPUyBWQlQgdGFibGVzOlxuIik7Ci0J ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZShwYW5lbF9maXhlZF9tb2RlKTsKLQogCWZwX3Rp bWluZyA9IGdldF9sdmRzX2ZwX3RpbWluZyhiZGIsIGx2ZHNfbGZwX2RhdGEsCiAJCQkJICAgICAg IGx2ZHNfbGZwX2RhdGFfcHRycywKIAkJCQkgICAgICAgcGFuZWxfdHlwZSk7CkBAIC0yOTcsNiAr MzczLDExIEBAIHBhcnNlX2xmcF9wYW5lbF9kYXRhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJCQkgICAgICBkZXZfcHJpdi0+dmJ0LmJpb3NfbHZkc192YWwpOwogCQl9CiAJ fQorCitza2lwX2xlZ2FjeV9sZnA6CisJRFJNX0RFQlVHX0tNUygiRm91bmQgcGFuZWwgbW9kZSBp biBCSU9TIFZCVCB0YWJsZXM6XG4iKTsKKwlkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lKHBh bmVsX2ZpeGVkX21vZGUpOworCiB9CiAKIHN0YXRpYyB2b2lkCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZzLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZzLmgKaW5kZXggNjlhN2NiMWZhMTIxLi44MmZjYWIw YjM3NTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmJ0 X2RlZnMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3ZidF9kZWZz LmgKQEAgLTExNSw2ICsxMTUsNyBAQCBlbnVtIGJkYl9ibG9ja19pZCB7CiAJQkRCX01JUElfQ09O RklHCQkJPSA1MiwKIAlCREJfTUlQSV9TRVFVRU5DRQkJPSA1MywKIAlCREJfQ09NUFJFU1NJT05f UEFSQU1FVEVSUwk9IDU2LAorCUJEQl9HRU5FUklDX0RURAkJCT0gNTgsCiAJQkRCX1NLSVAJCQk9 IDI1NCwgLyogVkJJT1MgcHJpdmF0ZSBibG9jaywgaWdub3JlICovCiB9OwogCkBAIC04NjMsNCAr ODY0LDM0IEBAIHN0cnVjdCBiZGJfY29tcHJlc3Npb25fcGFyYW1ldGVycyB7CiAJc3RydWN0IGRz Y19jb21wcmVzc2lvbl9wYXJhbWV0ZXJzX2VudHJ5IGRhdGFbMTZdOwogfSBfX3BhY2tlZDsKIAor LyoKKyAqIEJsb2NrIDU4IC0gR2VuZXJpYyBEVEQgQmxvY2sKKyAqLworCitzdHJ1Y3QgYmRiX2dl bmVyaWNfZHRkX2VudHJ5IHsKKwl1MzIgcGl4ZWxfY2xvY2s7CisJdTE2IGhhY3RpdmU7CisJdTE2 IGhibGFuazsKKwl1MTYgaGZyb250X3BvcmNoOworCXUxNiBoc3luYzsKKwl1MTYgdmFjdGl2ZTsK Kwl1MTYgdmJsYW5rOworCXUxNiB2ZnJvbnRfcG9yY2g7CisJdTE2IHZzeW5jOworCXUxNiB3aWR0 aF9tbTsKKwl1MTYgaGVpZ2h0X21tOworCisJLyogRmxhZ3MgKi8KKwl1OCByc3ZkX2ZsYWdzOjY7 CisJdTggdnN5bmNfcG9sYXJpdHk6MTsKKwl1OCBoc3luY19wb2xhcml0eToxOworCisJdTMyIHJz dmQ6MjQ7Cit9IF9fcGFja2VkOworCitzdHJ1Y3QgYmRiX2dlbmVyaWNfZHRkIHsKKwl1MTYgZ2R0 ZF9zaXplOworCXN0cnVjdCBiZGJfZ2VuZXJpY19kdGRfZW50cnkgZHRkWzBdOwkvKiB1cCB0byAy NCBEVEQncyAqLworfSBfX3BhY2tlZDsKKwogI2VuZGlmIC8qIF9JTlRFTF9WQlRfREVGU19IXyAq LwotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=