From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH v5] drm/i915/guc: Add GuC css header parser Date: Tue, 13 Oct 2015 15:30:09 -0700 Message-ID: <1444775409-20312-1-git-send-email-yu.dai@intel.com> References: <561CE75A.3030200@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 151036E39D for ; Tue, 13 Oct 2015 15:32:09 -0700 (PDT) In-Reply-To: <561CE75A.3030200@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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGUgc2l6ZSAvIG9mZnNldCBpbmZv cm1hdGlvbiBvZiBhbGwgZmlybXdhcmUgaW5ncmVkaWVudHMgYXJlCm5vdyBjYWN1bGF0ZWQgZnJv bSBoZWFkZXIuIERyaXZlciB3aWxsIHZhbGlkYXRlIHRoZSBoZWFkZXIgYW5kCnJzYSBrZXkgc2l6 ZS4gSWYgYW55IGNvbXBvbmVudCBpcyBvdXQgb2YgYm91bmRhcnksIGRyaXZlciB3aWxsCnJlamVj dCB0aGUgbG9hZGluZyB0b28uCgp2NTogVGlkeSB1cCBHdUMgdGl0bGVzIGluIGtlcm5lbC9Eb2MK CnY0OiBOb3cgdXNpbmcgJ3NpemVfZHcnIGZvciB0aG9zZSBkZWZpbmVkIGluIGNzc19oZWFkZXIK CnYzOiAxKSBNb3ZlIERPQyB0byBpbnRlbF9ndWNfZndpZi5oIHJpZ2h0IGJlZm9yZSBjc3NfaGVh ZGVyCmRlZmluaXRpb24uIEFkZCBtb3JlIGNvbW1lbnRzLgogICAgMikgQ2hhbmdlICdzaXplJyB0 byAnbGVuJyBvciAnbGVuZ3RoJyB0byBhdm9pZCBjb25mdXNpb24uCiAgICAzKSBBZGQgVU9TX1JT QV9TQ1JBVENIX01BWF9DT1VOVCBhY2NvcmRpbmcgdG8gQlNwZWMuIEFuZApkcml2ZXIgdmFsaWRh dGUgc2l6ZSBvZiBSU0Ega2V5IG5vdy4KICAgIDQpIEFkZCBmdyBjb21wb25lbnQgc2l6ZS9vZmZz ZXQgaW5mbyB0byBpbnRlbF9ndWNfZncuCgp2MjogQWRkIGluZGVudCBpbnRvIERPQyB0byBtYWtl IGZpeGVkLXdpZHRoIGZvcm1hdCByYXRoZXIgdGhhbgpjaGFuZ2UgdGhlIHRtcGwuCgp2MTogMSkg Z3VjX2Nzc19oZWFkZXIgaXMgZGVmaW5lZCBhcyBfX3BhY2tlZCBub3cKICAgIDIpIEFkZCBhbmQg Y29ycmVjdCBHdUMgcmVsYXRlZCB0b3BpY3MgaW4ga2VybmVsL0RvYwoKU2lnbmVkLW9mZi1ieTog QWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2Ry bS50bXBsICAgICAgICAgICAgIHwgMTMgKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgICAgICAgIHwgIDYgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3Jl Zy5oICAgICAgICB8ICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Np b24uYyB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAg fCAgOCArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmggICAgICB8IDcy ICsrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19s b2FkZXIuYyAgICB8IDk1ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogNyBmaWxlcyBj aGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv RG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2Ry bS50bXBsCmluZGV4IDllNjQ0YjMuLmRiZDVkN2QgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24v RG9jQm9vay9kcm0udG1wbAorKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwKQEAg LTQwOTMsMTcgKzQwOTMsMjIgQEAgaW50IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4KICAgICAgIDwv c2VjdDI+CiAgICAgPC9zZWN0MT4KICAgICA8c2VjdDE+Ci0gICAgICA8dGl0bGU+R3VDLWJhc2Vk IENvbW1hbmQgU3VibWlzc2lvbjwvdGl0bGU+CisgICAgICA8dGl0bGU+R3VDPC90aXRsZT4KICAg ICAgIDxzZWN0Mj4KLSAgICAgICAgPHRpdGxlPkd1QzwvdGl0bGU+CisgICAgICAgIDx0aXRsZT5H dUMtc3BlY2lmaWMgZmlybXdhcmUgbG9hZGVyPC90aXRsZT4KICFQZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX2xvYWRlci5jIEd1Qy1zcGVjaWZpYyBmaXJtd2FyZSBsb2FkZXIKICFJZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCiAgICAgICA8L3NlY3QyPgogICAg ICAgPHNlY3QyPgotICAgICAgICA8dGl0bGU+R3VDIENsaWVudDwvdGl0bGU+Ci0hUGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBHdUMtYmFzZWQgY29tbWFuZCBzdWJt aXNzaXNvbgorICAgICAgICA8dGl0bGU+R3VDLWJhc2VkIGNvbW1hbmQgc3VibWlzc2lvbjwvdGl0 bGU+CishUGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBHdUMtYmFz ZWQgY29tbWFuZCBzdWJtaXNzaW9uCiAhSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1 Ym1pc3Npb24uYwogICAgICAgPC9zZWN0Mj4KKyAgICAgIDxzZWN0Mj4KKyAgICAgICAgPHRpdGxl Pkd1QyBGaXJtd2FyZSBMYXlvdXQ8L3RpdGxlPgorIVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfZndpZi5oIEd1QyBGaXJtd2FyZSBMYXlvdXQKKyFJZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX2Z3aWYuaAorICAgICAgPC9zZWN0Mj4KICAgICA8L3NlY3QxPgogCiAgICAgPHNl Y3QxPgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwppbmRleCBhM2IyMmJkLi5lY2E5NGQw IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjQwMiw2ICsyNDAyLDEyIEBA IHN0YXRpYyBpbnQgaTkxNV9ndWNfbG9hZF9zdGF0dXNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCiAJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCwgZ3VjX2Z3LT5ndWNf ZndfbWlub3Jfd2FudGVkKTsKIAlzZXFfcHJpbnRmKG0sICJcdHZlcnNpb24gZm91bmQ6ICVkLiVk XG4iLAogCQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jf Zm91bmQpOworCXNlcV9wcmludGYobSwgIlx0aGVhZGVyOiBvZmZzZXQgaXMgJWQ7IHNpemUgPSAl ZFxuIiwKKwkJZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0LCBndWNfZnctPmhlYWRlcl9zaXplKTsKKwlz ZXFfcHJpbnRmKG0sICJcdHVDb2RlOiBvZmZzZXQgaXMgJWQ7IHNpemUgPSAlZFxuIiwKKwkJZ3Vj X2Z3LT51Y29kZV9vZmZzZXQsIGd1Y19mdy0+dWNvZGVfc2l6ZSk7CisJc2VxX3ByaW50ZihtLCAi XHRSU0E6IG9mZnNldCBpcyAlZDsgc2l6ZSA9ICVkXG4iLAorCQlndWNfZnctPnJzYV9vZmZzZXQs IGd1Y19mdy0+cnNhX3NpemUpOwogCiAJdG1wID0gSTkxNV9SRUFEKEdVQ19TVEFUVVMpOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCmluZGV4IGM0Y2IxYzAuLmI1MWI4MjggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCkBAIC00Miw2ICs0Miw3IEBACiAjZGVmaW5lIFNP RlRfU0NSQVRDSChuKQkJCSgweGMxODAgKyAoKG4pICogNCkpCiAKICNkZWZpbmUgVU9TX1JTQV9T Q1JBVENIKGkpCQkoMHhjMjAwICsgKGkpICogNCkKKyNkZWZpbmUgICBVT1NfUlNBX1NDUkFUQ0hf TUFYX0NPVU5UCSAgNjQKICNkZWZpbmUgRE1BX0FERFJfMF9MT1cJCQkweGMzMDAKICNkZWZpbmUg RE1BX0FERFJfMF9ISUdICQkJMHhjMzA0CiAjZGVmaW5lIERNQV9BRERSXzFfTE9XCQkJMHhjMzA4 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKaW5kZXggMDM2YjQy Yi4uMDYxMTQ4MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3Vi bWlzc2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24u YwpAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgImludGVsX2d1Yy5oIgogCiAvKioKLSAqIERP QzogR3VDIENsaWVudAorICogRE9DOiBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNzaW9uCiAgKgog ICogaTkxNV9ndWNfY2xpZW50OgogICogV2UgdXNlIHRoZSB0ZXJtIGNsaWVudCB0byBhdm9pZCBj b25mdXNpb24gd2l0aCBjb250ZXh0cy4gQSBpOTE1X2d1Y19jbGllbnQgaXMKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjLmgKaW5kZXggMDgxZDVmNi4uNWJhNTg2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjLmgKQEAgLTc2LDExICs3NiwxNyBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKIAl1aW50MTZf dAkJCWd1Y19md19taW5vcl93YW50ZWQ7CiAJdWludDE2X3QJCQlndWNfZndfbWFqb3JfZm91bmQ7 CiAJdWludDE2X3QJCQlndWNfZndfbWlub3JfZm91bmQ7CisKKwl1aW50MzJfdCBoZWFkZXJfc2l6 ZTsKKwl1aW50MzJfdCBoZWFkZXJfb2Zmc2V0OworCXVpbnQzMl90IHJzYV9zaXplOworCXVpbnQz Ml90IHJzYV9vZmZzZXQ7CisJdWludDMyX3QgdWNvZGVfc2l6ZTsKKwl1aW50MzJfdCB1Y29kZV9v ZmZzZXQ7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfZ3VjIHsKIAlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IGd1 Y19mdzsKLQogCXVpbnQzMl90IGxvZ19mbGFnczsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqbG9nX29iajsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2Z3aWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgKaW5kZXggNTkz ZDJmNS4uZDI1YzViNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2Z3aWYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCkBAIC0x MjIsNiArMTIyLDc4IEBACiAKICNkZWZpbmUgR1VDX0NUTF9NQVhfRFdPUkRTCQkoR1VDX0NUTF9S U1JWRCArIDEpCiAKKy8qKgorICogRE9DOiBHdUMgRmlybXdhcmUgTGF5b3V0CisgKgorICogVGhl IEd1QyBmaXJtd2FyZSBsYXlvdXQgbG9va3MgbGlrZSB0aGlzOgorICoKKyAqICAgICArLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICB8ICAgICAgICBndWNfY3NzX2hlYWRl ciAgICAgICAgIHwKKyAqICAgICB8IGNvbnRhaW5zIG1ham9yL21pbm9yIHZlcnNpb24gIHwKKyAq ICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICB8ICAgICAgICAg ICAgIHVDb2RlICAgICAgICAgICAgIHwKKyAqICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsKKyAqICAgICB8ICAgICAgICAgUlNBIHNpZ25hdHVyZSAgICAgICAgIHwKKyAqICAg ICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqICAgICB8ICAgICAgICAgIG1v ZHVsdXMga2V5ICAgICAgICAgIHwKKyAqICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKKyAqICAgICB8ICAgICAgICAgIGV4cG9uZW50IHZhbCAgICAgICAgIHwKKyAqICAgICAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAqCisgKiBUaGUgZmlybXdhcmUgbWF5 IG9yIG1heSBub3QgaGF2ZSBtb2R1bHVzIGtleSBhbmQgZXhwb25lbnQgZGF0YS4gVGhlIGhlYWRl ciwKKyAqIHVDb2RlIGFuZCBSU0Egc2lnbmF0dXJlIGFyZSBtdXN0LWhhdmUgY29tcG9uZW50cyB0 aGF0IHdpbGwgYmUgdXNlZCBieSBkcml2ZXIuCisgKiBMZW5ndGggb2YgZWFjaCBjb21wb25lbnRz LCB3aGljaCBpcyBhbGwgaW4gZHdvcmRzLCBjYW4gYmUgZm91bmQgaW4gaGVhZGVyLgorICogSW4g dGhlIGNhc2UgdGhhdCBtb2R1bHVzIGFuZCBleHBvbmVudCBhcmUgbm90IHByZXNlbnQgaW4gZncs IGEuay5hIHRydW5jYXRlZAorICogaW1hZ2UsIHRoZSBsZW5ndGggdmFsdWUgc3RpbGwgYXBwZWFy cyBpbiBoZWFkZXIuCisgKgorICogRHJpdmVyIHdpbGwgZG8gc29tZSBiYXNpYyBmdyBzaXplIHZh bGlkYXRpb24gYmFzZWQgb24gdGhlIGZvbGxvd2luZyBydWxlczoKKyAqCisgKiAxLiBIZWFkZXIs IHVDb2RlIGFuZCBSU0EgYXJlIG11c3QtaGF2ZSBjb21wb25lbnRzLgorICogMi4gQWxsIGZpcm13 YXJlIGNvbXBvbmVudHMsIGlmIHRoZXkgcHJlc2VudCwgYXJlIGluIHRoZSBzZXF1ZW5jZSBpbGx1 c3RyYXRlZAorICogaW4gdGhlIGxheW91dCB0YWJsZSBhYm92ZS4KKyAqIDMuIExlbmd0aCBpbmZv IG9mIGVhY2ggY29tcG9uZW50IGNhbiBiZSBmb3VuZCBpbiBoZWFkZXIsIGluIGR3b3Jkcy4KKyAq IDQuIE1vZHVsdXMgYW5kIGV4cG9uZW50IGtleSBhcmUgbm90IHJlcXVpcmVkIGJ5IGRyaXZlci4g VGhleSBtYXkgbm90IGFwcGVhcgorICogaW4gZncuIFNvIGRyaXZlciB3aWxsIGxvYWQgYSB0cnVu Y2F0ZWQgZmlybXdhcmUgaW4gdGhpcyBjYXNlLgorKi8KKworc3RydWN0IGd1Y19jc3NfaGVhZGVy IHsKKwl1aW50MzJfdCBtb2R1bGVfdHlwZTsKKwkvKiBoZWFkZXJfc2l6ZSBpbmNsdWRlcyBhbGwg bm9uLXVDb2RlIGJpdHMsIGluY2x1ZGluZyBjc3NfaGVhZGVyLCByc2EKKwkgKiBrZXksIG1vZHVs dXMga2V5IGFuZCBleHBvbmVudCBkYXRhLiAqLworCXVpbnQzMl90IGhlYWRlcl9zaXplX2R3Owor CXVpbnQzMl90IGhlYWRlcl92ZXJzaW9uOworCXVpbnQzMl90IG1vZHVsZV9pZDsKKwl1aW50MzJf dCBtb2R1bGVfdmVuZG9yOworCXVuaW9uIHsKKwkJc3RydWN0IHsKKwkJCXVpbnQ4X3QgZGF5Owor CQkJdWludDhfdCBtb250aDsKKwkJCXVpbnQxNl90IHllYXI7CisJCX07CisJCXVpbnQzMl90IGRh dGU7CisJfTsKKwl1aW50MzJfdCBzaXplX2R3OyAvKiB1Q29kZSBwbHVzIGhlYWRlcl9zaXplX2R3 ICovCisJdWludDMyX3Qga2V5X3NpemVfZHc7CisJdWludDMyX3QgbW9kdWx1c19zaXplX2R3Owor CXVpbnQzMl90IGV4cG9uZW50X3NpemVfZHc7CisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJdWlu dDhfdCBob3VyOworCQkJdWludDhfdCBtaW47CisJCQl1aW50MTZfdCBzZWM7CisJCX07CisJCXVp bnQzMl90IHRpbWU7CisJfTsKKworCWNoYXIgdXNlcm5hbWVbOF07CisJY2hhciBidWlsZG51bWJl clsxMl07CisJdWludDMyX3QgZGV2aWNlX2lkOworCXVpbnQzMl90IGd1Y19zd192ZXJzaW9uOwor CXVpbnQzMl90IHByb2RfcHJlcHJvZF9mdzsKKwl1aW50MzJfdCByZXNlcnZlZFsxMl07CisJdWlu dDMyX3QgaGVhZGVyX2luZm87Cit9IF9fcGFja2VkOworCiBzdHJ1Y3QgZ3VjX2Rvb3JiZWxsX2lu Zm8gewogCXUzMiBkYl9zdGF0dXM7CiAJdTMyIGNvb2tpZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19sb2FkZXIuYwppbmRleCBhMTdiNmE1Li42MTJlYWQ3IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiaW50 ZWxfZ3VjLmgiCiAKIC8qKgotICogRE9DOiBHdUMKKyAqIERPQzogR3VDLXNwZWNpZmljIGZpcm13 YXJlIGxvYWRlcgogICoKICAqIGludGVsX2d1YzoKICAqIFRvcCBsZXZlbCBzdHJ1Y3R1cmUgb2Yg Z3VjLiBJdCBoYW5kbGVzIGZpcm13YXJlIGxvYWRpbmcgYW5kIG1hbmFnZXMgY2xpZW50CkBAIC0y MDgsMTYgKzIwOCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBndWNfdWNvZGVfcmVzcG9uc2Uoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogLyoKICAqIFRyYW5zZmVyIHRoZSBmaXJt d2FyZSBpbWFnZSB0byBSQU0gZm9yIGV4ZWN1dGlvbiBieSB0aGUgbWljcm9jb250cm9sbGVyLgog ICoKLSAqIEd1QyBGaXJtd2FyZSBsYXlvdXQ6Ci0gKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsgIC0tLS0KLSAqIHwgICAgICAgICAgQ1NTIGhlYWRlciAgICAgICAgICAgfCAgMTI4 QgotICogfCBjb250YWlucyBtYWpvci9taW5vciB2ZXJzaW9uICB8Ci0gKiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsgIC0tLS0KLSAqIHwgICAgICAgICAgICAgdUNvZGUgICAgICAg ICAgICAgfAotICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAtLS0tCi0gKiB8 ICAgICAgICAgUlNBIHNpZ25hdHVyZSAgICAgICAgIHwgIDI1NkIKLSAqICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKyAgLS0tLQotICoKICAqIEFyY2hpdGVjdHVyYWxseSwgdGhlIERN QSBlbmdpbmUgaXMgYmlkaXJlY3Rpb25hbCwgYW5kIGNhbiBwb3RlbnRpYWxseSBldmVuCiAgKiB0 cmFuc2ZlciBiZXR3ZWVuIEdUVCBsb2NhdGlvbnMuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBsZWZ0 IG91dCBvZiB0aGUgQVBJCiAgKiBmb3Igbm93IGFzIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGl0LgpA QCAtMjI1LDMzICsyMTUsMjkgQEAgc3RhdGljIGlubGluZSBib29sIGd1Y191Y29kZV9yZXNwb25z ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKiBOb3RlIHRoYXQgR3VDIG5l ZWRzIHRoZSBDU1MgaGVhZGVyIHBsdXMgdUtlcm5lbCBjb2RlIHRvIGJlIGNvcGllZCBieSB0aGUK ICAqIERNQSBlbmdpbmUgaW4gb25lIG9wZXJhdGlvbiwgd2hlcmVhcyB0aGUgUlNBIHNpZ25hdHVy ZSBpcyBsb2FkZWQgdmlhIE1NSU8uCiAgKi8KLQotI2RlZmluZSBVT1NfQ1NTX0hFQURFUl9PRkZT RVQJCTAKLSNkZWZpbmUgVU9TX1ZFUl9NSU5PUl9PRkZTRVQJCTB4NDQKLSNkZWZpbmUgVU9TX1ZF Ul9NQUpPUl9PRkZTRVQJCTB4NDYKLSNkZWZpbmUgVU9TX0NTU19IRUFERVJfU0laRQkJMHg4MAot I2RlZmluZSBVT1NfUlNBX1NJR19TSVpFCQkweDEwMAotCiBzdGF0aWMgaW50IGd1Y191Y29kZV94 ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGlu dGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCXN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpmd19vYmogPSBndWNfZnctPmd1Y19md19vYmo7CiAJdW5zaWduZWQg bG9uZyBvZmZzZXQ7CiAJc3RydWN0IHNnX3RhYmxlICpzZyA9IGZ3X29iai0+cGFnZXM7Ci0JdTMy IHN0YXR1cywgdWNvZGVfc2l6ZSwgcnNhW1VPU19SU0FfU0lHX1NJWkUgLyBzaXplb2YodTMyKV07 CisJdTMyIHN0YXR1cywgcnNhW1VPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlRdOwogCWludCBpLCBy ZXQgPSAwOwogCi0JLyogdUNvZGUgc2l6ZSwgYWxzbyBpcyB3aGVyZSBSU0Egc2lnbmF0dXJlIHN0 YXJ0cyAqLwotCW9mZnNldCA9IHVjb2RlX3NpemUgPSBndWNfZnctPmd1Y19md19zaXplIC0gVU9T X1JTQV9TSUdfU0laRTsKLQlJOTE1X1dSSVRFKERNQV9DT1BZX1NJWkUsIHVjb2RlX3NpemUpOwor CS8qIHdoZXJlIFJTQSBzaWduYXR1cmUgc3RhcnRzICovCisJb2Zmc2V0ID0gZ3VjX2Z3LT5yc2Ff b2Zmc2V0OwogCiAJLyogQ29weSBSU0Egc2lnbmF0dXJlIGZyb20gdGhlIGZ3IGltYWdlIHRvIEhX IGZvciB2ZXJpZmljYXRpb24gKi8KLQlzZ19wY29weV90b19idWZmZXIoc2ctPnNnbCwgc2ctPm5l bnRzLCByc2EsIFVPU19SU0FfU0lHX1NJWkUsIG9mZnNldCk7Ci0JZm9yIChpID0gMDsgaSA8IFVP U19SU0FfU0lHX1NJWkUgLyBzaXplb2YodTMyKTsgaSsrKQorCXNnX3Bjb3B5X3RvX2J1ZmZlcihz Zy0+c2dsLCBzZy0+bmVudHMsIHJzYSwgc2l6ZW9mKHJzYSksIG9mZnNldCk7CisJZm9yIChpID0g MDsgaSA8IFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQ7IGkrKykKIAkJSTkxNV9XUklURShVT1Nf UlNBX1NDUkFUQ0goaSksIHJzYVtpXSk7CiAKKwkvKiBUaGUgaGVhZGVyIHBsdXMgdUNvZGUgd2ls bCBiZSBjb3BpZWQgdG8gV09QQ00gdmlhIERNQSwgZXhjbHVkaW5nIGFueQorCSAqIG90aGVyIGNv bXBvbmVudHMgKi8KKwlJOTE1X1dSSVRFKERNQV9DT1BZX1NJWkUsIGd1Y19mdy0+aGVhZGVyX3Np emUgKyBndWNfZnctPnVjb2RlX3NpemUpOworCiAJLyogU2V0IHRoZSBzb3VyY2UgYWRkcmVzcyBm b3IgdGhlIG5ldyBibG9iICovCi0Jb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGZ3 X29iaik7CisJb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGZ3X29iaikgKyBndWNf ZnctPmhlYWRlcl9vZmZzZXQ7CiAJSTkxNV9XUklURShETUFfQUREUl8wX0xPVywgbG93ZXJfMzJf Yml0cyhvZmZzZXQpKTsKIAlJOTE1X1dSSVRFKERNQV9BRERSXzBfSElHSCwgdXBwZXJfMzJfYml0 cyhvZmZzZXQpICYgMHhGRkZGKTsKIApAQCAtNDU3LDEwICs0NDMsOCBAQCBzdGF0aWMgdm9pZCBn dWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAq Z3VjX2Z3KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJY29uc3Qgc3Ry dWN0IGZpcm13YXJlICpmdzsKLQljb25zdCB1OCAqY3NzX2hlYWRlcjsKLQljb25zdCBzaXplX3Qg bWluc2l6ZSA9IFVPU19DU1NfSEVBREVSX1NJWkUgKyBVT1NfUlNBX1NJR19TSVpFOwotCWNvbnN0 IHNpemVfdCBtYXhzaXplID0gR1VDX1dPUENNX1NJWkVfVkFMVUUgKyBVT1NfUlNBX1NJR19TSVpF Ci0JCQktIDB4ODAwMDsgLyogMzJrIHJlc2VydmVkICg4SyBzdGFjayArIDI0ayBjb250ZXh0KSAq LworCXN0cnVjdCBndWNfY3NzX2hlYWRlciAqY3NzOworCXNpemVfdCBzaXplOwogCWludCBlcnI7 CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJiZWZvcmUgcmVxdWVzdGluZyBmaXJtd2FyZTogR3VDIGZ3 IGZldGNoIHN0YXR1cyAlc1xuIiwKQEAgLTQ3NCwxMiArNDU4LDUyIEBAIHN0YXRpYyB2b2lkIGd1 Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpn dWNfZncpCiAKIAlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCBHdUMgZncgZnJvbSAlcyBzdWNjZWVk ZWQsIGZ3ICVwXG4iLAogCQlndWNfZnctPmd1Y19md19wYXRoLCBmdyk7Ci0JRFJNX0RFQlVHX0RS SVZFUigiZmlybXdhcmUgZmlsZSBzaXplICV6dSAobWluaW11bSAlenUsIG1heGltdW0gJXp1KVxu IiwKLQkJZnctPnNpemUsIG1pbnNpemUsIG1heHNpemUpOwogCi0JLyogQ2hlY2sgdGhlIHNpemUg b2YgdGhlIGJsb2IgYmVmb2UgZXhhbWluaW5nIGJ1ZmZlciBjb250ZW50cyAqLwotCWlmIChmdy0+ c2l6ZSA8IG1pbnNpemUgfHwgZnctPnNpemUgPiBtYXhzaXplKQorCS8qIENoZWNrIHRoZSBzaXpl IG9mIHRoZSBibG9iIGJlZm9yZSBleGFtaW5pbmcgYnVmZmVyIGNvbnRlbnRzICovCisJaWYgKGZ3 LT5zaXplIDwgc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKKwkJRFJNX0VSUk9SKCJG aXJtd2FyZSBoZWFkZXIgaXMgbWlzc2luZ1xuIik7CiAJCWdvdG8gZmFpbDsKKwl9CisKKwljc3Mg PSAoc3RydWN0IGd1Y19jc3NfaGVhZGVyICopZnctPmRhdGE7CisKKwkvKiBGaXJtd2FyZSBiaXRz IGFsd2F5cyBzdGFydCBmcm9tIGhlYWRlciAqLworCWd1Y19mdy0+aGVhZGVyX29mZnNldCA9IDA7 CisJZ3VjX2Z3LT5oZWFkZXJfc2l6ZSA9IChjc3MtPmhlYWRlcl9zaXplX2R3IC0gY3NzLT5tb2R1 bHVzX3NpemVfZHcgLQorCQljc3MtPmtleV9zaXplX2R3IC0gY3NzLT5leHBvbmVudF9zaXplX2R3 KSAqIHNpemVvZih1MzIpOworCisJaWYgKGd1Y19mdy0+aGVhZGVyX3NpemUgIT0gc2l6ZW9mKHN0 cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKKwkJRFJNX0VSUk9SKCJDU1MgaGVhZGVyIGRlZmluaXRp b24gbWlzbWF0Y2hcbiIpOworCQlnb3RvIGZhaWw7CisJfQorCisJLyogdGhlbiwgdUNvZGUgKi8K KwlndWNfZnctPnVjb2RlX29mZnNldCA9IGd1Y19mdy0+aGVhZGVyX29mZnNldCArIGd1Y19mdy0+ aGVhZGVyX3NpemU7CisJZ3VjX2Z3LT51Y29kZV9zaXplID0gKGNzcy0+c2l6ZV9kdyAtIGNzcy0+ aGVhZGVyX3NpemVfZHcpICogc2l6ZW9mKHUzMik7CisKKwkvKiBub3cgUlNBICovCisJaWYgKGNz cy0+a2V5X3NpemVfZHcgIT0gVU9TX1JTQV9TQ1JBVENIX01BWF9DT1VOVCkgeworCQlEUk1fRVJS T1IoIlJTQSBrZXkgc2l6ZSBpcyBiYWRcbiIpOworCQlnb3RvIGZhaWw7CisJfQorCWd1Y19mdy0+ cnNhX29mZnNldCA9IGd1Y19mdy0+dWNvZGVfb2Zmc2V0ICsgZ3VjX2Z3LT51Y29kZV9zaXplOwor CWd1Y19mdy0+cnNhX3NpemUgPSBjc3MtPmtleV9zaXplX2R3ICogc2l6ZW9mKHUzMik7CisKKwkv KiBBdCBsZWFzdCwgaXQgc2hvdWxkIGhhdmUgaGVhZGVyLCB1Q29kZSBhbmQgUlNBLiBTaXplIG9m IGFsbCB0aHJlZS4gKi8KKwlzaXplID0gZ3VjX2Z3LT5oZWFkZXJfc2l6ZSArIGd1Y19mdy0+dWNv ZGVfc2l6ZSArIGd1Y19mdy0+cnNhX3NpemU7CisJaWYgKGZ3LT5zaXplIDwgc2l6ZSkgeworCQlE Uk1fRVJST1IoIk1pc3NpbmcgZmlybXdhcmUgY29tcG9uZW50c1xuIik7CisJCWdvdG8gZmFpbDsK Kwl9CisKKwkvKiBIZWFkZXIgYW5kIHVDb2RlIHdpbGwgYmUgbG9hZGVkIHRvIFdPUENNLiBTaXpl IG9mIHRoZSB0d28uICovCisJc2l6ZSA9IGd1Y19mdy0+aGVhZGVyX3NpemUgKyBndWNfZnctPnVj b2RlX3NpemU7CisKKwkvKiBUb3AgMzJrIG9mIFdPUENNIGlzIHJlc2VydmVkICg4SyBzdGFjayAr IDI0ayBSQzYgY29udGV4dCkuICovCisJaWYgKHNpemUgPiBHVUNfV09QQ01fU0laRV9WQUxVRSAt IDB4ODAwMCkgeworCQlEUk1fRVJST1IoIkZpcm13YXJlIGlzIHRvbyBsYXJnZSB0byBmaXQgaW4g V09QQ01cbiIpOworCQlnb3RvIGZhaWw7CisJfQogCiAJLyoKIAkgKiBUaGUgR3VDIGZpcm13YXJl IGltYWdlIGhhcyB0aGUgdmVyc2lvbiBudW1iZXIgZW1iZWRkZWQgYXQgYSB3ZWxsLWtub3duCkBA IC00ODcsOSArNTExLDggQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKIAkgKiBUV08gYnl0ZXMgZWFj aCAoaS5lLiB1MTYpLCBhbHRob3VnaCBhbGwgcG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRlZmlu ZWQKIAkgKiBpbiB0ZXJtcyBvZiBieXRlcyAodTgpLgogCSAqLwotCWNzc19oZWFkZXIgPSBmdy0+ ZGF0YSArIFVPU19DU1NfSEVBREVSX09GRlNFVDsKLQlndWNfZnctPmd1Y19md19tYWpvcl9mb3Vu ZCA9ICoodTE2ICopKGNzc19oZWFkZXIgKyBVT1NfVkVSX01BSk9SX09GRlNFVCk7Ci0JZ3VjX2Z3 LT5ndWNfZndfbWlub3JfZm91bmQgPSAqKHUxNiAqKShjc3NfaGVhZGVyICsgVU9TX1ZFUl9NSU5P Ul9PRkZTRVQpOworCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0gY3NzLT5ndWNfc3dfdmVy c2lvbiA+PiAxNjsKKwlndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA9IGNzcy0+Z3VjX3N3X3Zl cnNpb24gJiAweEZGRkY7CiAKIAlpZiAoZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgIT0gZ3Vj X2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkIHx8CiAJICAgIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2Zv dW5kIDwgZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkKSB7Ci0tIAoxLjkuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK