From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH v6] drm/i915/guc: Add GuC css header parser Date: Mon, 19 Oct 2015 16:10:54 -0700 Message-ID: <1445296254-27710-1-git-send-email-yu.dai@intel.com> References: <1444775409-20312-1-git-send-email-yu.dai@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id A78446E1FB for ; Mon, 19 Oct 2015 16:12:28 -0700 (PDT) In-Reply-To: <1444775409-20312-1-git-send-email-yu.dai@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 dCB0aGUgbG9hZGluZyB0b28uCgp2NjogQ2xlYW4gdXAgd2FybmluZ3MgZnJvbSBtYWtlIGRvY3MK CnY1OiBUaWR5IHVwIEd1QyB0aXRsZXMgaW4ga2VybmVsL0RvYwoKdjQ6IE5vdyB1c2luZyAnc2l6 ZV9kdycgZm9yIHRob3NlIGRlZmluZWQgaW4gY3NzX2hlYWRlcgoKdjM6IDEpIE1vdmUgRE9DIHRv IGludGVsX2d1Y19md2lmLmggcmlnaHQgYmVmb3JlIGNzc19oZWFkZXIKZGVmaW5pdGlvbi4gQWRk IG1vcmUgY29tbWVudHMuCiAgICAyKSBDaGFuZ2UgJ3NpemUnIHRvICdsZW4nIG9yICdsZW5ndGgn IHRvIGF2b2lkIGNvbmZ1c2lvbi4KICAgIDMpIEFkZCBVT1NfUlNBX1NDUkFUQ0hfTUFYX0NPVU5U IGFjY29yZGluZyB0byBCU3BlYy4gQW5kCmRyaXZlciB2YWxpZGF0ZSBzaXplIG9mIFJTQSBrZXkg bm93LgogICAgNCkgQWRkIGZ3IGNvbXBvbmVudCBzaXplL29mZnNldCBpbmZvIHRvIGludGVsX2d1 Y19mdy4KCnYyOiBBZGQgaW5kZW50IGludG8gRE9DIHRvIG1ha2UgZml4ZWQtd2lkdGggZm9ybWF0 IHJhdGhlciB0aGFuCmNoYW5nZSB0aGUgdG1wbC4KCnYxOiAxKSBndWNfY3NzX2hlYWRlciBpcyBk ZWZpbmVkIGFzIF9fcGFja2VkIG5vdwogICAgMikgQWRkIGFuZCBjb3JyZWN0IEd1QyByZWxhdGVk IHRvcGljcyBpbiBrZXJuZWwvRG9jCgpTaWduZWQtb2ZmLWJ5OiBBbGV4IERhaSA8eXUuZGFpQGlu dGVsLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwgICAgICAgICAgICAg fCAxMiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgfCAg NiArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmggICAgICAgIHwgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIHwgIDggKy0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCAgICAgICAgICAgfCAgOCArKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmggICAgICB8IDcyICsrKysrKysrKysrKysrKysr KysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyAgICB8IDk1ICsr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0 aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NC b29rL2dwdS50bXBsIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsCmluZGV4IGMwNWQ3 ZGYuLjNkY2U2ZjYgMTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9ncHUudG1wbAor KysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwKQEAgLTQxMTUsMTcgKzQxMTUsMjEg QEAgaW50IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4KICAgICAgIDwvc2VjdDI+CiAgICAgPC9zZWN0 MT4KICAgICA8c2VjdDE+Ci0gICAgICA8dGl0bGU+R3VDLWJhc2VkIENvbW1hbmQgU3VibWlzc2lv bjwvdGl0bGU+CisgICAgICA8dGl0bGU+R3VDPC90aXRsZT4KICAgICAgIDxzZWN0Mj4KLSAgICAg ICAgPHRpdGxlPkd1QzwvdGl0bGU+CisgICAgICAgIDx0aXRsZT5HdUMtc3BlY2lmaWMgZmlybXdh cmUgbG9hZGVyPC90aXRsZT4KICFQZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRl ci5jIEd1Qy1zcGVjaWZpYyBmaXJtd2FyZSBsb2FkZXIKICFJZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX2xvYWRlci5jCiAgICAgICA8L3NlY3QyPgogICAgICAgPHNlY3QyPgotICAgICAg ICA8dGl0bGU+R3VDIENsaWVudDwvdGl0bGU+Ci0hUGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z3VjX3N1Ym1pc3Npb24uYyBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNzaXNvbgorICAgICAgICA8 dGl0bGU+R3VDLWJhc2VkIGNvbW1hbmQgc3VibWlzc2lvbjwvdGl0bGU+CishUGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNz aW9uCiAhSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwogICAgICAg PC9zZWN0Mj4KKyAgICAgIDxzZWN0Mj4KKyAgICAgICAgPHRpdGxlPkd1QyBGaXJtd2FyZSBMYXlv dXQ8L3RpdGxlPgorIVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oIEd1QyBG aXJtd2FyZSBMYXlvdXQKKyAgICAgIDwvc2VjdDI+CiAgICAgPC9zZWN0MT4KIAogICAgIDxzZWN0 MT4KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggYTNiMjJiZC4uZWNhOTRkMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTI0MDIsNiArMjQwMiwxMiBAQCBz dGF0aWMgaW50IGk5MTVfZ3VjX2xvYWRfc3RhdHVzX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICpkYXRhKQogCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQsIGd1Y19mdy0+Z3VjX2Z3 X21pbm9yX3dhbnRlZCk7CiAJc2VxX3ByaW50ZihtLCAiXHR2ZXJzaW9uIGZvdW5kOiAlZC4lZFxu IiwKIAkJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2Zv dW5kKTsKKwlzZXFfcHJpbnRmKG0sICJcdGhlYWRlcjogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRc biIsCisJCWd1Y19mdy0+aGVhZGVyX29mZnNldCwgZ3VjX2Z3LT5oZWFkZXJfc2l6ZSk7CisJc2Vx X3ByaW50ZihtLCAiXHR1Q29kZTogb2Zmc2V0IGlzICVkOyBzaXplID0gJWRcbiIsCisJCWd1Y19m dy0+dWNvZGVfb2Zmc2V0LCBndWNfZnctPnVjb2RlX3NpemUpOworCXNlcV9wcmludGYobSwgIlx0 UlNBOiBvZmZzZXQgaXMgJWQ7IHNpemUgPSAlZFxuIiwKKwkJZ3VjX2Z3LT5yc2Ffb2Zmc2V0LCBn dWNfZnctPnJzYV9zaXplKTsKIAogCXRtcCA9IEk5MTVfUkVBRChHVUNfU1RBVFVTKTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaAppbmRleCBjNGNiMWMwLi5iNTFiODI4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaApAQCAtNDIsNiArNDIsNyBAQAogI2RlZmluZSBTT0ZU X1NDUkFUQ0gobikJCQkoMHhjMTgwICsgKChuKSAqIDQpKQogCiAjZGVmaW5lIFVPU19SU0FfU0NS QVRDSChpKQkJKDB4YzIwMCArIChpKSAqIDQpCisjZGVmaW5lICAgVU9TX1JTQV9TQ1JBVENIX01B WF9DT1VOVAkgIDY0CiAjZGVmaW5lIERNQV9BRERSXzBfTE9XCQkJMHhjMzAwCiAjZGVmaW5lIERN QV9BRERSXzBfSElHSAkJCTB4YzMwNAogI2RlZmluZSBETUFfQUREUl8xX0xPVwkJCTB4YzMwOApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCmluZGV4IDAzNmI0MmIu LjU4YTYxYzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1p c3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMK QEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJpbnRlbF9ndWMuaCIKIAogLyoqCi0gKiBET0M6 IEd1QyBDbGllbnQKKyAqIERPQzogR3VDLWJhc2VkIGNvbW1hbmQgc3VibWlzc2lvbgogICoKICAq IGk5MTVfZ3VjX2NsaWVudDoKICAqIFdlIHVzZSB0aGUgdGVybSBjbGllbnQgdG8gYXZvaWQgY29u ZnVzaW9uIHdpdGggY29udGV4dHMuIEEgaTkxNV9ndWNfY2xpZW50IGlzCkBAIC01ODgsOCArNTg4 LDcgQEAgc3RhdGljIHZvaWQgbHJfY29udGV4dF91cGRhdGUoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpycSkKIC8qKgogICogaTkxNV9ndWNfc3VibWl0KCkgLSBTdWJtaXQgY29tbWFuZHMg dGhyb3VnaCBHdUMKICAqIEBjbGllbnQ6CXRoZSBndWMgY2xpZW50IHdoZXJlIGNvbW1hbmRzIHdp bGwgZ28gdGhyb3VnaAotICogQGN0eDoJTFJDIHdoZXJlIGNvbW1hbmRzIGNvbWUgZnJvbQotICog QHJpbmc6CUhXIGVuZ2luZSB0aGF0IHdpbGwgZXhjdXRlIHRoZSBjb21tYW5kcworICogQHJxOgkJ cmVxdWVzdCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbW1hbmRzCiAgKgogICogUmV0dXJuOgkwIGlm IHN1Y2NlZWQKICAqLwpAQCAtNzMxLDcgKzczMCw4IEBAIHN0YXRpYyB2b2lkIGd1Y19jbGllbnRf ZnJlZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICogCQlUaGUga2VybmVsIGNsaWVudCB0byBy ZXBsYWNlIEV4ZWNMaXN0IHN1Ym1pc3Npb24gaXMgY3JlYXRlZCB3aXRoCiAgKiAJCU5PUk1BTCBw cmlvcml0eS4gUHJpb3JpdHkgb2YgYSBjbGllbnQgZm9yIHNjaGVkdWxlciBjYW4gYmUgSElHSCwK ICAqIAkJd2hpbGUgYSBwcmVlbXB0aW9uIGNvbnRleHQgY2FuIHVzZSBDUklUSUNBTC4KLSAqIEBj dHgJCXRoZSBjb250ZXh0IHRvIG93biB0aGUgY2xpZW50ICh3ZSB1c2UgdGhlIGRlZmF1bHQgcmVu ZGVyIGNvbnRleHQpCisgKiBAY3R4Ogl0aGUgY29udGV4dCB0aGF0IG93bnMgdGhlIGNsaWVudCAo d2UgdXNlIHRoZSBkZWZhdWx0IHJlbmRlcgorICogCQljb250ZXh0KQogICoKICAqIFJldHVybjoJ QW4gaTkxNV9ndWNfY2xpZW50IG9iamVjdCBpZiBzdWNjZXNzLgogICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Yy5oCmluZGV4IDA4MWQ1ZjYuLjViYTU4NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Yy5oCkBAIC03NiwxMSArNzYsMTcgQEAgc3RydWN0IGludGVsX2d1Y19mdyB7CiAJdWludDE2X3QJ CQlndWNfZndfbWlub3Jfd2FudGVkOwogCXVpbnQxNl90CQkJZ3VjX2Z3X21ham9yX2ZvdW5kOwog CXVpbnQxNl90CQkJZ3VjX2Z3X21pbm9yX2ZvdW5kOworCisJdWludDMyX3QgaGVhZGVyX3NpemU7 CisJdWludDMyX3QgaGVhZGVyX29mZnNldDsKKwl1aW50MzJfdCByc2Ffc2l6ZTsKKwl1aW50MzJf dCByc2Ffb2Zmc2V0OworCXVpbnQzMl90IHVjb2RlX3NpemU7CisJdWludDMyX3QgdWNvZGVfb2Zm c2V0OwogfTsKIAogc3RydWN0IGludGVsX2d1YyB7CiAJc3RydWN0IGludGVsX2d1Y19mdyBndWNf Znc7Ci0KIAl1aW50MzJfdCBsb2dfZmxhZ3M7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg KmxvZ19vYmo7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19m d2lmLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCmluZGV4IDU5M2Qy ZjUuLjQwYjJlYTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19m d2lmLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaApAQCAtMTIy LDYgKzEyMiw3OCBAQAogCiAjZGVmaW5lIEdVQ19DVExfTUFYX0RXT1JEUwkJKEdVQ19DVExfUlNS VkQgKyAxKQogCisvKioKKyAqIERPQzogR3VDIEZpcm13YXJlIExheW91dAorICoKKyAqIFRoZSBH dUMgZmlybXdhcmUgbGF5b3V0IGxvb2tzIGxpa2UgdGhpczoKKyAqCisgKiAgICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgfCAgICAgICAgZ3VjX2Nzc19oZWFkZXIg ICAgICAgICB8CisgKiAgICAgfCBjb250YWlucyBtYWpvci9taW5vciB2ZXJzaW9uICB8CisgKiAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgfCAgICAgICAgICAg ICB1Q29kZSAgICAgICAgICAgICB8CisgKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rCisgKiAgICAgfCAgICAgICAgIFJTQSBzaWduYXR1cmUgICAgICAgICB8CisgKiAgICAg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKiAgICAgfCAgICAgICAgICBtb2R1 bHVzIGtleSAgICAgICAgICB8CisgKiAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rCisgKiAgICAgfCAgICAgICAgICBleHBvbmVudCB2YWwgICAgICAgICB8CisgKiAgICAgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgKgorICogVGhlIGZpcm13YXJlIG1heSBv ciBtYXkgbm90IGhhdmUgbW9kdWx1cyBrZXkgYW5kIGV4cG9uZW50IGRhdGEuIFRoZSBoZWFkZXIs CisgKiB1Q29kZSBhbmQgUlNBIHNpZ25hdHVyZSBhcmUgbXVzdC1oYXZlIGNvbXBvbmVudHMgdGhh dCB3aWxsIGJlIHVzZWQgYnkgZHJpdmVyLgorICogTGVuZ3RoIG9mIGVhY2ggY29tcG9uZW50cywg d2hpY2ggaXMgYWxsIGluIGR3b3JkcywgY2FuIGJlIGZvdW5kIGluIGhlYWRlci4KKyAqIEluIHRo ZSBjYXNlIHRoYXQgbW9kdWx1cyBhbmQgZXhwb25lbnQgYXJlIG5vdCBwcmVzZW50IGluIGZ3LCBh LmsuYSB0cnVuY2F0ZWQKKyAqIGltYWdlLCB0aGUgbGVuZ3RoIHZhbHVlIHN0aWxsIGFwcGVhcnMg aW4gaGVhZGVyLgorICoKKyAqIERyaXZlciB3aWxsIGRvIHNvbWUgYmFzaWMgZncgc2l6ZSB2YWxp ZGF0aW9uIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgcnVsZXM6CisgKgorICogMS4gSGVhZGVyLCB1 Q29kZSBhbmQgUlNBIGFyZSBtdXN0LWhhdmUgY29tcG9uZW50cy4KKyAqIDIuIEFsbCBmaXJtd2Fy ZSBjb21wb25lbnRzLCBpZiB0aGV5IHByZXNlbnQsIGFyZSBpbiB0aGUgc2VxdWVuY2UgaWxsdXN0 cmF0ZWQKKyAqIGluIHRoZSBsYXlvdXQgdGFibGUgYWJvdmUuCisgKiAzLiBMZW5ndGggaW5mbyBv ZiBlYWNoIGNvbXBvbmVudCBjYW4gYmUgZm91bmQgaW4gaGVhZGVyLCBpbiBkd29yZHMuCisgKiA0 LiBNb2R1bHVzIGFuZCBleHBvbmVudCBrZXkgYXJlIG5vdCByZXF1aXJlZCBieSBkcml2ZXIuIFRo ZXkgbWF5IG5vdCBhcHBlYXIKKyAqIGluIGZ3LiBTbyBkcml2ZXIgd2lsbCBsb2FkIGEgdHJ1bmNh dGVkIGZpcm13YXJlIGluIHRoaXMgY2FzZS4KKyAqLworCitzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIg eworCXVpbnQzMl90IG1vZHVsZV90eXBlOworCS8qIGhlYWRlcl9zaXplIGluY2x1ZGVzIGFsbCBu b24tdUNvZGUgYml0cywgaW5jbHVkaW5nIGNzc19oZWFkZXIsIHJzYQorCSAqIGtleSwgbW9kdWx1 cyBrZXkgYW5kIGV4cG9uZW50IGRhdGEuICovCisJdWludDMyX3QgaGVhZGVyX3NpemVfZHc7CisJ dWludDMyX3QgaGVhZGVyX3ZlcnNpb247CisJdWludDMyX3QgbW9kdWxlX2lkOworCXVpbnQzMl90 IG1vZHVsZV92ZW5kb3I7CisJdW5pb24geworCQlzdHJ1Y3QgeworCQkJdWludDhfdCBkYXk7CisJ CQl1aW50OF90IG1vbnRoOworCQkJdWludDE2X3QgeWVhcjsKKwkJfTsKKwkJdWludDMyX3QgZGF0 ZTsKKwl9OworCXVpbnQzMl90IHNpemVfZHc7IC8qIHVDb2RlIHBsdXMgaGVhZGVyX3NpemVfZHcg Ki8KKwl1aW50MzJfdCBrZXlfc2l6ZV9kdzsKKwl1aW50MzJfdCBtb2R1bHVzX3NpemVfZHc7CisJ dWludDMyX3QgZXhwb25lbnRfc2l6ZV9kdzsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJCQl1aW50 OF90IGhvdXI7CisJCQl1aW50OF90IG1pbjsKKwkJCXVpbnQxNl90IHNlYzsKKwkJfTsKKwkJdWlu dDMyX3QgdGltZTsKKwl9OworCisJY2hhciB1c2VybmFtZVs4XTsKKwljaGFyIGJ1aWxkbnVtYmVy WzEyXTsKKwl1aW50MzJfdCBkZXZpY2VfaWQ7CisJdWludDMyX3QgZ3VjX3N3X3ZlcnNpb247CisJ dWludDMyX3QgcHJvZF9wcmVwcm9kX2Z3OworCXVpbnQzMl90IHJlc2VydmVkWzEyXTsKKwl1aW50 MzJfdCBoZWFkZXJfaW5mbzsKK30gX19wYWNrZWQ7CisKIHN0cnVjdCBndWNfZG9vcmJlbGxfaW5m byB7CiAJdTMyIGRiX3N0YXR1czsKIAl1MzIgY29va2llOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvYWRlci5jCmluZGV4IGExN2I2YTUuLjYxMmVhZDcgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJpbnRl bF9ndWMuaCIKIAogLyoqCi0gKiBET0M6IEd1QworICogRE9DOiBHdUMtc3BlY2lmaWMgZmlybXdh cmUgbG9hZGVyCiAgKgogICogaW50ZWxfZ3VjOgogICogVG9wIGxldmVsIHN0cnVjdHVyZSBvZiBn dWMuIEl0IGhhbmRsZXMgZmlybXdhcmUgbG9hZGluZyBhbmQgbWFuYWdlcyBjbGllbnQKQEAgLTIw OCwxNiArMjA4LDYgQEAgc3RhdGljIGlubGluZSBib29sIGd1Y191Y29kZV9yZXNwb25zZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAvKgogICogVHJhbnNmZXIgdGhlIGZpcm13 YXJlIGltYWdlIHRvIFJBTSBmb3IgZXhlY3V0aW9uIGJ5IHRoZSBtaWNyb2NvbnRyb2xsZXIuCiAg KgotICogR3VDIEZpcm13YXJlIGxheW91dDoKLSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKyAgLS0tLQotICogfCAgICAgICAgICBDU1MgaGVhZGVyICAgICAgICAgICB8ICAxMjhC Ci0gKiB8IGNvbnRhaW5zIG1ham9yL21pbm9yIHZlcnNpb24gIHwKLSAqICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKyAgLS0tLQotICogfCAgICAgICAgICAgICB1Q29kZSAgICAgICAg ICAgICB8Ci0gKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgIC0tLS0KLSAqIHwg ICAgICAgICBSU0Egc2lnbmF0dXJlICAgICAgICAgfCAgMjU2QgotICogKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rICAtLS0tCi0gKgogICogQXJjaGl0ZWN0dXJhbGx5LCB0aGUgRE1B IGVuZ2luZSBpcyBiaWRpcmVjdGlvbmFsLCBhbmQgY2FuIHBvdGVudGlhbGx5IGV2ZW4KICAqIHRy YW5zZmVyIGJldHdlZW4gR1RUIGxvY2F0aW9ucy4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGxlZnQg b3V0IG9mIHRoZSBBUEkKICAqIGZvciBub3cgYXMgdGhlcmUgaXMgbm8gbmVlZCBmb3IgaXQuCkBA IC0yMjUsMzMgKzIxNSwyOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZ3VjX3Vjb2RlX3Jlc3BvbnNl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKICAqIE5vdGUgdGhhdCBHdUMgbmVl ZHMgdGhlIENTUyBoZWFkZXIgcGx1cyB1S2VybmVsIGNvZGUgdG8gYmUgY29waWVkIGJ5IHRoZQog ICogRE1BIGVuZ2luZSBpbiBvbmUgb3BlcmF0aW9uLCB3aGVyZWFzIHRoZSBSU0Egc2lnbmF0dXJl IGlzIGxvYWRlZCB2aWEgTU1JTy4KICAqLwotCi0jZGVmaW5lIFVPU19DU1NfSEVBREVSX09GRlNF VAkJMAotI2RlZmluZSBVT1NfVkVSX01JTk9SX09GRlNFVAkJMHg0NAotI2RlZmluZSBVT1NfVkVS X01BSk9SX09GRlNFVAkJMHg0NgotI2RlZmluZSBVT1NfQ1NTX0hFQURFUl9TSVpFCQkweDgwCi0j ZGVmaW5lIFVPU19SU0FfU0lHX1NJWkUJCTB4MTAwCi0KIHN0YXRpYyBpbnQgZ3VjX3Vjb2RlX3hm ZXJfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50 ZWxfZ3VjX2Z3ICpndWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7CiAJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKmZ3X29iaiA9IGd1Y19mdy0+Z3VjX2Z3X29iajsKIAl1bnNpZ25lZCBs b25nIG9mZnNldDsKIAlzdHJ1Y3Qgc2dfdGFibGUgKnNnID0gZndfb2JqLT5wYWdlczsKLQl1MzIg c3RhdHVzLCB1Y29kZV9zaXplLCByc2FbVU9TX1JTQV9TSUdfU0laRSAvIHNpemVvZih1MzIpXTsK Kwl1MzIgc3RhdHVzLCByc2FbVU9TX1JTQV9TQ1JBVENIX01BWF9DT1VOVF07CiAJaW50IGksIHJl dCA9IDA7CiAKLQkvKiB1Q29kZSBzaXplLCBhbHNvIGlzIHdoZXJlIFJTQSBzaWduYXR1cmUgc3Rh cnRzICovCi0Jb2Zmc2V0ID0gdWNvZGVfc2l6ZSA9IGd1Y19mdy0+Z3VjX2Z3X3NpemUgLSBVT1Nf UlNBX1NJR19TSVpFOwotCUk5MTVfV1JJVEUoRE1BX0NPUFlfU0laRSwgdWNvZGVfc2l6ZSk7CisJ Lyogd2hlcmUgUlNBIHNpZ25hdHVyZSBzdGFydHMgKi8KKwlvZmZzZXQgPSBndWNfZnctPnJzYV9v ZmZzZXQ7CiAKIAkvKiBDb3B5IFJTQSBzaWduYXR1cmUgZnJvbSB0aGUgZncgaW1hZ2UgdG8gSFcg Zm9yIHZlcmlmaWNhdGlvbiAqLwotCXNnX3Bjb3B5X3RvX2J1ZmZlcihzZy0+c2dsLCBzZy0+bmVu dHMsIHJzYSwgVU9TX1JTQV9TSUdfU0laRSwgb2Zmc2V0KTsKLQlmb3IgKGkgPSAwOyBpIDwgVU9T X1JTQV9TSUdfU0laRSAvIHNpemVvZih1MzIpOyBpKyspCisJc2dfcGNvcHlfdG9fYnVmZmVyKHNn LT5zZ2wsIHNnLT5uZW50cywgcnNhLCBzaXplb2YocnNhKSwgb2Zmc2V0KTsKKwlmb3IgKGkgPSAw OyBpIDwgVU9TX1JTQV9TQ1JBVENIX01BWF9DT1VOVDsgaSsrKQogCQlJOTE1X1dSSVRFKFVPU19S U0FfU0NSQVRDSChpKSwgcnNhW2ldKTsKIAorCS8qIFRoZSBoZWFkZXIgcGx1cyB1Q29kZSB3aWxs IGJlIGNvcGllZCB0byBXT1BDTSB2aWEgRE1BLCBleGNsdWRpbmcgYW55CisJICogb3RoZXIgY29t cG9uZW50cyAqLworCUk5MTVfV1JJVEUoRE1BX0NPUFlfU0laRSwgZ3VjX2Z3LT5oZWFkZXJfc2l6 ZSArIGd1Y19mdy0+dWNvZGVfc2l6ZSk7CisKIAkvKiBTZXQgdGhlIHNvdXJjZSBhZGRyZXNzIGZv ciB0aGUgbmV3IGJsb2IgKi8KLQlvZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZndf b2JqKTsKKwlvZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZndfb2JqKSArIGd1Y19m dy0+aGVhZGVyX29mZnNldDsKIAlJOTE1X1dSSVRFKERNQV9BRERSXzBfTE9XLCBsb3dlcl8zMl9i aXRzKG9mZnNldCkpOwogCUk5MTVfV1JJVEUoRE1BX0FERFJfMF9ISUdILCB1cHBlcl8zMl9iaXRz KG9mZnNldCkgJiAweEZGRkYpOwogCkBAIC00NTcsMTAgKzQ0Myw4IEBAIHN0YXRpYyB2b2lkIGd1 Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpn dWNfZncpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAljb25zdCBzdHJ1 Y3QgZmlybXdhcmUgKmZ3OwotCWNvbnN0IHU4ICpjc3NfaGVhZGVyOwotCWNvbnN0IHNpemVfdCBt aW5zaXplID0gVU9TX0NTU19IRUFERVJfU0laRSArIFVPU19SU0FfU0lHX1NJWkU7Ci0JY29uc3Qg c2l6ZV90IG1heHNpemUgPSBHVUNfV09QQ01fU0laRV9WQUxVRSArIFVPU19SU0FfU0lHX1NJWkUK LQkJCS0gMHg4MDAwOyAvKiAzMmsgcmVzZXJ2ZWQgKDhLIHN0YWNrICsgMjRrIGNvbnRleHQpICov CisJc3RydWN0IGd1Y19jc3NfaGVhZGVyICpjc3M7CisJc2l6ZV90IHNpemU7CiAJaW50IGVycjsK IAogCURSTV9ERUJVR19EUklWRVIoImJlZm9yZSByZXF1ZXN0aW5nIGZpcm13YXJlOiBHdUMgZncg ZmV0Y2ggc3RhdHVzICVzXG4iLApAQCAtNDc0LDEyICs0NTgsNTIgQEAgc3RhdGljIHZvaWQgZ3Vj X2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1 Y19mdykKIAogCURSTV9ERUJVR19EUklWRVIoImZldGNoIEd1QyBmdyBmcm9tICVzIHN1Y2NlZWRl ZCwgZncgJXBcbiIsCiAJCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGZ3KTsKLQlEUk1fREVCVUdfRFJJ VkVSKCJmaXJtd2FyZSBmaWxlIHNpemUgJXp1IChtaW5pbXVtICV6dSwgbWF4aW11bSAlenUpXG4i LAotCQlmdy0+c2l6ZSwgbWluc2l6ZSwgbWF4c2l6ZSk7CiAKLQkvKiBDaGVjayB0aGUgc2l6ZSBv ZiB0aGUgYmxvYiBiZWZvZSBleGFtaW5pbmcgYnVmZmVyIGNvbnRlbnRzICovCi0JaWYgKGZ3LT5z aXplIDwgbWluc2l6ZSB8fCBmdy0+c2l6ZSA+IG1heHNpemUpCisJLyogQ2hlY2sgdGhlIHNpemUg b2YgdGhlIGJsb2IgYmVmb3JlIGV4YW1pbmluZyBidWZmZXIgY29udGVudHMgKi8KKwlpZiAoZnct PnNpemUgPCBzaXplb2Yoc3RydWN0IGd1Y19jc3NfaGVhZGVyKSkgeworCQlEUk1fRVJST1IoIkZp cm13YXJlIGhlYWRlciBpcyBtaXNzaW5nXG4iKTsKIAkJZ290byBmYWlsOworCX0KKworCWNzcyA9 IChzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgKilmdy0+ZGF0YTsKKworCS8qIEZpcm13YXJlIGJpdHMg YWx3YXlzIHN0YXJ0IGZyb20gaGVhZGVyICovCisJZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ID0gMDsK KwlndWNfZnctPmhlYWRlcl9zaXplID0gKGNzcy0+aGVhZGVyX3NpemVfZHcgLSBjc3MtPm1vZHVs dXNfc2l6ZV9kdyAtCisJCWNzcy0+a2V5X3NpemVfZHcgLSBjc3MtPmV4cG9uZW50X3NpemVfZHcp ICogc2l6ZW9mKHUzMik7CisKKwlpZiAoZ3VjX2Z3LT5oZWFkZXJfc2l6ZSAhPSBzaXplb2Yoc3Ry dWN0IGd1Y19jc3NfaGVhZGVyKSkgeworCQlEUk1fRVJST1IoIkNTUyBoZWFkZXIgZGVmaW5pdGlv biBtaXNtYXRjaFxuIik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwkvKiB0aGVuLCB1Q29kZSAqLwor CWd1Y19mdy0+dWNvZGVfb2Zmc2V0ID0gZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0ICsgZ3VjX2Z3LT5o ZWFkZXJfc2l6ZTsKKwlndWNfZnctPnVjb2RlX3NpemUgPSAoY3NzLT5zaXplX2R3IC0gY3NzLT5o ZWFkZXJfc2l6ZV9kdykgKiBzaXplb2YodTMyKTsKKworCS8qIG5vdyBSU0EgKi8KKwlpZiAoY3Nz LT5rZXlfc2l6ZV9kdyAhPSBVT1NfUlNBX1NDUkFUQ0hfTUFYX0NPVU5UKSB7CisJCURSTV9FUlJP UigiUlNBIGtleSBzaXplIGlzIGJhZFxuIik7CisJCWdvdG8gZmFpbDsKKwl9CisJZ3VjX2Z3LT5y c2Ffb2Zmc2V0ID0gZ3VjX2Z3LT51Y29kZV9vZmZzZXQgKyBndWNfZnctPnVjb2RlX3NpemU7CisJ Z3VjX2Z3LT5yc2Ffc2l6ZSA9IGNzcy0+a2V5X3NpemVfZHcgKiBzaXplb2YodTMyKTsKKworCS8q IEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVDb2RlIGFuZCBSU0EuIFNpemUgb2Yg YWxsIHRocmVlLiAqLworCXNpemUgPSBndWNfZnctPmhlYWRlcl9zaXplICsgZ3VjX2Z3LT51Y29k ZV9zaXplICsgZ3VjX2Z3LT5yc2Ffc2l6ZTsKKwlpZiAoZnctPnNpemUgPCBzaXplKSB7CisJCURS TV9FUlJPUigiTWlzc2luZyBmaXJtd2FyZSBjb21wb25lbnRzXG4iKTsKKwkJZ290byBmYWlsOwor CX0KKworCS8qIEhlYWRlciBhbmQgdUNvZGUgd2lsbCBiZSBsb2FkZWQgdG8gV09QQ00uIFNpemUg b2YgdGhlIHR3by4gKi8KKwlzaXplID0gZ3VjX2Z3LT5oZWFkZXJfc2l6ZSArIGd1Y19mdy0+dWNv ZGVfc2l6ZTsKKworCS8qIFRvcCAzMmsgb2YgV09QQ00gaXMgcmVzZXJ2ZWQgKDhLIHN0YWNrICsg MjRrIFJDNiBjb250ZXh0KS4gKi8KKwlpZiAoc2l6ZSA+IEdVQ19XT1BDTV9TSVpFX1ZBTFVFIC0g MHg4MDAwKSB7CisJCURSTV9FUlJPUigiRmlybXdhcmUgaXMgdG9vIGxhcmdlIHRvIGZpdCBpbiBX T1BDTVxuIik7CisJCWdvdG8gZmFpbDsKKwl9CiAKIAkvKgogCSAqIFRoZSBHdUMgZmlybXdhcmUg aW1hZ2UgaGFzIHRoZSB2ZXJzaW9uIG51bWJlciBlbWJlZGRlZCBhdCBhIHdlbGwta25vd24KQEAg LTQ4Nyw5ICs1MTEsOCBAQCBzdGF0aWMgdm9pZCBndWNfZndfZmV0Y2goc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3KQogCSAqIFRXTyBieXRlcyBlYWNo IChpLmUuIHUxNiksIGFsdGhvdWdoIGFsbCBwb2ludGVycyBhbmQgb2Zmc2V0cyBhcmUgZGVmaW5l ZAogCSAqIGluIHRlcm1zIG9mIGJ5dGVzICh1OCkuCiAJICovCi0JY3NzX2hlYWRlciA9IGZ3LT5k YXRhICsgVU9TX0NTU19IRUFERVJfT0ZGU0VUOwotCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5k ID0gKih1MTYgKikoY3NzX2hlYWRlciArIFVPU19WRVJfTUFKT1JfT0ZGU0VUKTsKLQlndWNfZnct Pmd1Y19md19taW5vcl9mb3VuZCA9ICoodTE2ICopKGNzc19oZWFkZXIgKyBVT1NfVkVSX01JTk9S X09GRlNFVCk7CisJZ3VjX2Z3LT5ndWNfZndfbWFqb3JfZm91bmQgPSBjc3MtPmd1Y19zd192ZXJz aW9uID4+IDE2OworCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kID0gY3NzLT5ndWNfc3dfdmVy c2lvbiAmIDB4RkZGRjsKIAogCWlmIChndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCAhPSBndWNf ZnctPmd1Y19md19tYWpvcl93YW50ZWQgfHwKIAkgICAgZ3VjX2Z3LT5ndWNfZndfbWlub3JfZm91 bmQgPCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpIHsKLS0gCjEuOS4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=