From mboxrd@z Thu Jan 1 00:00:00 1970 From: yu.dai@intel.com Subject: [PATCH] drm/i915/guc: Add GuC css header parser Date: Fri, 25 Sep 2015 11:45:49 -0700 Message-ID: <1443206749-7900-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 F0D096E549 for ; Fri, 25 Sep 2015 11:47:22 -0700 (PDT) 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 dCB0aGUgbG9hZGluZyB0b28uCgp2MzogMSkgTW92ZSBET0MgdG8gaW50ZWxfZ3VjX2Z3aWYuaCBy aWdodCBiZWZvcmUgY3NzX2hlYWRlcgpkZWZpbml0aW9uLiBBZGQgbW9yZSBjb21tZW50cy4KICAg IDIpIENoYW5nZSAnc2l6ZScgdG8gJ2xlbicgb3IgJ2xlbmd0aCcgdG8gYXZvaWQgY29uZnVzaW9u LgogICAgMykgQWRkIFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQgYWNjb3JkaW5nIHRvIEJTcGVj LiBBbmQKZHJpdmVyIHZhbGlkYXRlIHNpemUgb2YgUlNBIGtleSBub3cuCiAgICA0KSBBZGQgZncg Y29tcG9uZW50IHNpemUvb2Zmc2V0IGluZm8gdG8gaW50ZWxfZ3VjX2Z3LgoKdjI6IEFkZCBpbmRl bnQgaW50byBET0MgdG8gbWFrZSBmaXhlZC13aWR0aCBmb3JtYXQgcmF0aGVyIHRoYW4KY2hhbmdl IHRoZSB0bXBsLgoKdjE6IDEpIGd1Y19jc3NfaGVhZGVyIGlzIGRlZmluZWQgYXMgX19wYWNrZWQg bm93CiAgICAyKSBBZGQgYW5kIGNvcnJlY3QgR3VDIHJlbGF0ZWQgdG9waWNzIGluIGtlcm5lbC9E b2MKClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgotLS0KIERvY3Vt ZW50YXRpb24vRG9jQm9vay9kcm0udG1wbCAgICAgICAgICB8ICAgOSArKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICB8ICAxMCArKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3JlZy5oICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWMuaCAgICAgICAgfCAgMTYgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19md2lmLmggICB8ICA3MiArKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19sb2FkZXIuYyB8IDExMCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsIGIvRG9jdW1lbnRh dGlvbi9Eb2NCb29rL2RybS50bXBsCmluZGV4IDY2YmM2NDYuLjRkOGRmZmIgMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAorKysgYi9Eb2N1bWVudGF0aW9uL0RvY0Jv b2svZHJtLnRtcGwKQEAgLTQxNTUsMTQgKzQxNTUsMTkgQEAgaW50IG51bV9pb2N0bHM7PC9zeW5v cHNpcz4KICAgICAgIDx0aXRsZT5HdUMtYmFzZWQgQ29tbWFuZCBTdWJtaXNzaW9uPC90aXRsZT4K ICAgICAgIDxzZWN0Mj4KICAgICAgICAgPHRpdGxlPkd1QzwvdGl0bGU+Ci0hUGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBHdUMtc3BlY2lmaWMgZmlybXdhcmUgbG9hZGVy CishUGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBHdUMKICFJZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCiAgICAgICA8L3NlY3QyPgogICAgICAg PHNlY3QyPgogICAgICAgICA8dGl0bGU+R3VDIENsaWVudDwvdGl0bGU+Ci0hUGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyBHdUMtYmFzZWQgY29tbWFuZCBzdWJtaXNz aXNvbgorIVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgR3VDIENs aWVudAogIUlkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKICAgICAg IDwvc2VjdDI+CisgICAgICA8c2VjdDI+CisgICAgICAgIDx0aXRsZT5HdUMgRmlybXdhcmUgTGF5 b3V0PC90aXRsZT4KKyFQZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaCBHdUMg RmlybXdhcmUgTGF5b3V0CishSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgK KyAgICAgIDwvc2VjdDI+CiAgICAgPC9zZWN0MT4KIAogICAgIDxzZWN0MT4KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggNTYxNWQzZC4uMDc1M2IyZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTIzODYsOSArMjM4NiwxNSBAQCBzdGF0aWMgaW50IGk5MTVf Z3VjX2xvYWRfc3RhdHVzX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXNl cV9wcmludGYobSwgIlx0bG9hZDogJXNcbiIsCiAJCWludGVsX2d1Y19md19zdGF0dXNfcmVwcihn dWNfZnctPmd1Y19md19sb2FkX3N0YXR1cykpOwogCXNlcV9wcmludGYobSwgIlx0dmVyc2lvbiB3 YW50ZWQ6ICVkLiVkXG4iLAotCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQsIGd1Y19mdy0+ Z3VjX2Z3X21pbm9yX3dhbnRlZCk7CisJCWd1Y19mdy0+dmVyX21ham9yX3dhbnRlZCwgZ3VjX2Z3 LT52ZXJfbWlub3Jfd2FudGVkKTsKIAlzZXFfcHJpbnRmKG0sICJcdHZlcnNpb24gZm91bmQ6ICVk LiVkXG4iLAotCQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCwgZ3VjX2Z3LT5ndWNfZndfbWlu b3JfZm91bmQpOworCQlndWNfZnctPnZlcl9tYWpvcl9mb3VuZCwgZ3VjX2Z3LT52ZXJfbWlub3Jf Zm91bmQpOworCXNlcV9wcmludGYobSwgIlx0aGVhZGVyOiBvZmZzZXQgaXMgJWQ7IHNpemUgPSAl ZFxuIiwKKwkJZ3VjX2Z3LT5oZWFkZXJfb2Zmc2V0LCBndWNfZnctPmhlYWRlcl9zaXplKTsKKwlz ZXFfcHJpbnRmKG0sICJcdHVDb2RlOiBvZmZzZXQgaXMgJWQ7IHNpemUgPSAlZFxuIiwKKwkJZ3Vj X2Z3LT51Y29kZV9vZmZzZXQsIGd1Y19mdy0+dWNvZGVfc2l6ZSk7CisJc2VxX3ByaW50ZihtLCAi XHRSU0E6IG9mZnNldCBpcyAlZDsgc2l6ZSA9ICVkXG4iLAorCQlndWNfZnctPnJzYV9vZmZzZXQs IGd1Y19mdy0+cnNhX3NpemUpOwogCiAJdG1wID0gSTkxNV9SRUFEKEdVQ19TVEFUVVMpOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCmluZGV4IGIzNTU2NjEuLjU3ODczOWQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCkBAIC00Miw2ICs0Miw3IEBACiAjZGVmaW5lIFNP RlRfU0NSQVRDSChuKQkJCSgweGMxODAgKyAoKG4pICogNCkpCiAKICNkZWZpbmUgVU9TX1JTQV9T Q1JBVENIXzAJCTB4YzIwMAorI2RlZmluZSAgIFVPU19SU0FfU0NSQVRDSF9NQVhfQ09VTlQJICA2 NAogI2RlZmluZSBETUFfQUREUl8wX0xPVwkJCTB4YzMwMAogI2RlZmluZSBETUFfQUREUl8wX0hJ R0gJCQkweGMzMDQKICNkZWZpbmUgRE1BX0FERFJfMV9MT1cJCQkweGMzMDgKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjLmgKaW5kZXggNGVjMmQyNy4uNTVjOWJmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjLmgKQEAgLTcyLDE1ICs3MiwyMSBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3IHsKIAllbnVtIGlu dGVsX2d1Y19md19zdGF0dXMJZ3VjX2Z3X2ZldGNoX3N0YXR1czsKIAllbnVtIGludGVsX2d1Y19m d19zdGF0dXMJZ3VjX2Z3X2xvYWRfc3RhdHVzOwogCi0JdWludDE2X3QJCQlndWNfZndfbWFqb3Jf d2FudGVkOwotCXVpbnQxNl90CQkJZ3VjX2Z3X21pbm9yX3dhbnRlZDsKLQl1aW50MTZfdAkJCWd1 Y19md19tYWpvcl9mb3VuZDsKLQl1aW50MTZfdAkJCWd1Y19md19taW5vcl9mb3VuZDsKKwl1aW50 MzJfdCBoZWFkZXJfc2l6ZTsKKwl1aW50MzJfdCBoZWFkZXJfb2Zmc2V0OworCXVpbnQzMl90IHJz YV9zaXplOworCXVpbnQzMl90IHJzYV9vZmZzZXQ7CisJdWludDMyX3QgdWNvZGVfc2l6ZTsKKwl1 aW50MzJfdCB1Y29kZV9vZmZzZXQ7CisKKwl1aW50MTZfdCB2ZXJfbWFqb3Jfd2FudGVkOworCXVp bnQxNl90IHZlcl9taW5vcl93YW50ZWQ7CisJdWludDE2X3QgdmVyX21ham9yX2ZvdW5kOworCXVp bnQxNl90IHZlcl9taW5vcl9mb3VuZDsKIH07CiAKIHN0cnVjdCBpbnRlbF9ndWMgewogCXN0cnVj dCBpbnRlbF9ndWNfZncgZ3VjX2Z3OwotCiAJdWludDMyX3QgbG9nX2ZsYWdzOwogCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpsb2dfb2JqOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2Z3aWYuaAppbmRleCBlMWY0N2JhLi5jZDk0MDc1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2d1Y19md2lmLmgKQEAgLTEyMiw2ICsxMjIsNzggQEAKIAogI2RlZmluZSBHVUNfQ1RMX01BWF9E V09SRFMJCShHVUNfQ1RMX1JTUlZEICsgMSkKIAorLyoqCisgKiBET0M6IEd1QyBGaXJtd2FyZSBM YXlvdXQKKyAqCisgKiBUaGUgR3VDIGZpcm13YXJlIGxheW91dCBsb29rcyBsaWtlIHRoaXM6Cisg KgorICogICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgIHwgICAg ICAgIGd1Y19jc3NfaGVhZGVyICAgICAgICAgfAorICogICAgIHwgY29udGFpbnMgbWFqb3IvbWlu b3IgdmVyc2lvbiAgfAorICogICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwor ICogICAgIHwgICAgICAgICAgICAgdUNvZGUgICAgICAgICAgICAgfAorICogICAgICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgIHwgICAgICAgICBSU0Egc2lnbmF0dXJl ICAgICAgICAgfAorICogICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICog ICAgIHwgICAgICAgICAgbW9kdWx1cyBrZXkgICAgICAgICAgfAorICogICAgICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICogICAgIHwgICAgICAgICAgZXhwb25lbnQgdmFsICAg ICAgICAgfAorICogICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICoKKyAq IFRoZSBmaXJtd2FyZSBtYXkgb3IgbWF5IG5vdCBoYXZlIG1vZHVsdXMga2V5IGFuZCBleHBvbmVu dCBkYXRhLiBUaGUgaGVhZGVyLAorICogdUNvZGUgYW5kIFJTQSBzaWduYXR1cmUgYXJlIG11c3Qt aGF2ZSBjb21wb25lbnRzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGRyaXZlci4KKyAqIExlbmd0aCBv ZiBlYWNoIGNvbXBvbmVudHMsIHdoaWNoIGlzIGFsbCBpbiBkd29yZHMsIGNhbiBiZSBmb3VuZCBp biBoZWFkZXIuCisgKiBJbiB0aGUgY2FzZSB0aGF0IG1vZHVsdXMgYW5kIGV4cG9uZW50IGFyZSBu b3QgcHJlc2VudCBpbiBmdywgYS5rLmEgdHJ1bmNhdGVkCisgKiBpbWFnZSwgdGhlIGxlbmd0aCB2 YWx1ZSBzdGlsbCBhcHBlYXJzIGluIGhlYWRlci4KKyAqCisgKiBEcml2ZXIgd2lsbCBkbyBzb21l IGJhc2ljIGZ3IHNpemUgdmFsaWRhdGlvbiBiYXNlZCBvbiB0aGUgZm9sbG93aW5nIHJ1bGVzOgor ICoKKyAqIDEuIEhlYWRlciwgdUNvZGUgYW5kIFJTQSBhcmUgbXVzdC1oYXZlIGNvbXBvbmVudHMu CisgKiAyLiBBbGwgZmlybXdhcmUgY29tcG9uZW50cywgaWYgdGhleSBwcmVzZW50LCBhcmUgaW4g dGhlIHNlcXVlbmNlIGlsbHVzdHJhdGVkCisgKiBpbiB0aGUgbGF5b3V0IHRhYmxlIGFib3ZlLgor ICogMy4gTGVuZ3RoIGluZm8gb2YgZWFjaCBjb21wb25lbnQgY2FuIGJlIGZvdW5kIGluIGhlYWRl ciwgaW4gZHdvcmRzLgorICogNC4gTW9kdWx1cyBhbmQgZXhwb25lbnQga2V5IGFyZSBub3QgcmVx dWlyZWQgYnkgZHJpdmVyLiBUaGV5IG1heSBub3QgYXBwZWFyCisgKiBpbiBmdy4gU28gZHJpdmVy IHdpbGwgbG9hZCBhIHRydW5jYXRlZCBmaXJtd2FyZSBpbiB0aGlzIGNhc2UuCisqLworCitzdHJ1 Y3QgZ3VjX2Nzc19oZWFkZXIgeworCXVpbnQzMl90IG1vZHVsZV90eXBlOworCSAvKiBoZWFkZXJf bGVuIGluY2x1ZGVzIGFsbCBub24tdUNvZGUgYml0cywgd2hpY2ggaXM6CisJICAqIDwgY3NzX2hl YWRlciArIGtleV9sZW4gKyBtb2R1bHVzX2xlbiArIGV4cG9uZW50X2xlbiA+ICovCisJdWludDMy X3QgaGVhZGVyX2xlbjsKKwl1aW50MzJfdCBoZWFkZXJfdmVyc2lvbjsKKwl1aW50MzJfdCBtb2R1 bGVfaWQ7CisJdWludDMyX3QgbW9kdWxlX3ZlbmRvcjsKKwl1bmlvbiB7CisJCXN0cnVjdCB7CisJ CQl1aW50OF90IGRheTsKKwkJCXVpbnQ4X3QgbW9udGg7CisJCQl1aW50MTZfdCB5ZWFyOworCQl9 OworCQl1aW50MzJfdCBkYXRlOworCX07CisJdWludDMyX3QgbGVuZ3RoOyAvKiB1Q29kZSBsZW5n dGggcGx1cyBoZWFkZXJfbGVuICovCisJdWludDMyX3Qga2V5X2xlbjsKKwl1aW50MzJfdCBtb2R1 bHVzX2xlbjsKKwl1aW50MzJfdCBleHBvbmVudF9sZW47CisJdW5pb24geworCQlzdHJ1Y3Qgewor CQkJdWludDhfdCBob3VyOworCQkJdWludDhfdCBtaW47CisJCQl1aW50MTZfdCBzZWM7CisJCX07 CisJCXVpbnQzMl90IHRpbWU7CisJfTsKKworCWNoYXIgdXNlcm5hbWVbOF07CisJY2hhciBidWls ZG51bWJlclsxMl07CisJdWludDMyX3QgZGV2aWNlX2lkOworCXVpbnQzMl90IGd1Y19zd192ZXJz aW9uOworCXVpbnQzMl90IHByb2RfcHJlcHJvZF9mdzsKKwl1aW50MzJfdCByZXNlcnZlZFsxMl07 CisJdWludDMyX3QgaGVhZGVyX2luZm87Cit9IF9fcGFja2VkOworCiBzdHJ1Y3QgZ3VjX2Rvb3Ji ZWxsX2luZm8gewogCXUzMiBkYl9zdGF0dXM7CiAJdTMyIGNvb2tpZTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19sb2FkZXIuYwppbmRleCA0MDI0MWYzLi5lMjgxM2Q0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCkBAIC0yMTgsMTYgKzIxOCw2IEBAIHN0YXRp YyBpbmxpbmUgYm9vbCBndWNfdWNvZGVfcmVzcG9uc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogLyoKICAqIFRyYW5zZmVyIHRoZSBmaXJtd2FyZSBpbWFnZSB0byBSQU0gZm9y IGV4ZWN1dGlvbiBieSB0aGUgbWljcm9jb250cm9sbGVyLgogICoKLSAqIEd1QyBGaXJtd2FyZSBs YXlvdXQ6Ci0gKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgIC0tLS0KLSAqIHwg ICAgICAgICAgQ1NTIGhlYWRlciAgICAgICAgICAgfCAgMTI4QgotICogfCBjb250YWlucyBtYWpv ci9taW5vciB2ZXJzaW9uICB8Ci0gKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsg IC0tLS0KLSAqIHwgICAgICAgICAgICAgdUNvZGUgICAgICAgICAgICAgfAotICogKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAtLS0tCi0gKiB8ICAgICAgICAgUlNBIHNpZ25hdHVy ZSAgICAgICAgIHwgIDI1NkIKLSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAg LS0tLQotICoKICAqIEFyY2hpdGVjdHVyYWxseSwgdGhlIERNQSBlbmdpbmUgaXMgYmlkaXJlY3Rp b25hbCwgYW5kIGNhbiBwb3RlbnRpYWxseSBldmVuCiAgKiB0cmFuc2ZlciBiZXR3ZWVuIEdUVCBs b2NhdGlvbnMuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBsZWZ0IG91dCBvZiB0aGUgQVBJCiAgKiBm b3Igbm93IGFzIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGl0LgpAQCAtMjM1LDMzICsyMjUsMjkgQEAg c3RhdGljIGlubGluZSBib29sIGd1Y191Y29kZV9yZXNwb25zZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAgKiBOb3RlIHRoYXQgR3VDIG5lZWRzIHRoZSBDU1MgaGVhZGVyIHBs dXMgdUtlcm5lbCBjb2RlIHRvIGJlIGNvcGllZCBieSB0aGUKICAqIERNQSBlbmdpbmUgaW4gb25l IG9wZXJhdGlvbiwgd2hlcmVhcyB0aGUgUlNBIHNpZ25hdHVyZSBpcyBsb2FkZWQgdmlhIE1NSU8u CiAgKi8KLQotI2RlZmluZSBVT1NfQ1NTX0hFQURFUl9PRkZTRVQJCTAKLSNkZWZpbmUgVU9TX1ZF Ul9NSU5PUl9PRkZTRVQJCTB4NDQKLSNkZWZpbmUgVU9TX1ZFUl9NQUpPUl9PRkZTRVQJCTB4NDYK LSNkZWZpbmUgVU9TX0NTU19IRUFERVJfU0laRQkJMHg4MAotI2RlZmluZSBVT1NfUlNBX1NJR19T SVpFCQkweDEwMAotCiBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJc3RydWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0g JmRldl9wcml2LT5ndWMuZ3VjX2Z3OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpmd19v YmogPSBndWNfZnctPmd1Y19md19vYmo7CiAJdW5zaWduZWQgbG9uZyBvZmZzZXQ7CiAJc3RydWN0 IHNnX3RhYmxlICpzZyA9IGZ3X29iai0+cGFnZXM7Ci0JdTMyIHN0YXR1cywgdWNvZGVfc2l6ZSwg cnNhW1VPU19SU0FfU0lHX1NJWkUgLyBzaXplb2YodTMyKV07CisJdTMyIHN0YXR1cywgcnNhW1VP U19SU0FfU0NSQVRDSF9NQVhfQ09VTlRdOwogCWludCBpLCByZXQgPSAwOwogCi0JLyogdUNvZGUg c2l6ZSwgYWxzbyBpcyB3aGVyZSBSU0Egc2lnbmF0dXJlIHN0YXJ0cyAqLwotCW9mZnNldCA9IHVj b2RlX3NpemUgPSBndWNfZnctPmd1Y19md19zaXplIC0gVU9TX1JTQV9TSUdfU0laRTsKLQlJOTE1 X1dSSVRFKERNQV9DT1BZX1NJWkUsIHVjb2RlX3NpemUpOworCS8qIHdoZXJlIFJTQSBzaWduYXR1 cmUgc3RhcnRzICovCisJb2Zmc2V0ID0gZ3VjX2Z3LT5yc2Ffb2Zmc2V0OwogCiAJLyogQ29weSBS U0Egc2lnbmF0dXJlIGZyb20gdGhlIGZ3IGltYWdlIHRvIEhXIGZvciB2ZXJpZmljYXRpb24gKi8K LQlzZ19wY29weV90b19idWZmZXIoc2ctPnNnbCwgc2ctPm5lbnRzLCByc2EsIFVPU19SU0FfU0lH X1NJWkUsIG9mZnNldCk7Ci0JZm9yIChpID0gMDsgaSA8IFVPU19SU0FfU0lHX1NJWkUgLyBzaXpl b2YodTMyKTsgaSsrKQorCXNnX3Bjb3B5X3RvX2J1ZmZlcihzZy0+c2dsLCBzZy0+bmVudHMsIHJz YSwgc2l6ZW9mKHJzYSksIG9mZnNldCk7CisJZm9yIChpID0gMDsgaSA8IFVPU19SU0FfU0NSQVRD SF9NQVhfQ09VTlQ7IGkrKykKIAkJSTkxNV9XUklURShVT1NfUlNBX1NDUkFUQ0hfMCArIGkgKiBz aXplb2YodTMyKSwgcnNhW2ldKTsKIAorCS8qIFRoZSBoZWFkZXIgcGx1cyB1Q29kZSB3aWxsIGJl IGNvcGllZCB0byBXT1BDTSB2aWEgRE1BLCBleGNsdWRpbmcgYW55CisJICogb3RoZXIgY29tcG9u ZW50cyAqLworCUk5MTVfV1JJVEUoRE1BX0NPUFlfU0laRSwgZ3VjX2Z3LT5oZWFkZXJfc2l6ZSAr IGd1Y19mdy0+dWNvZGVfc2l6ZSk7CisKIAkvKiBTZXQgdGhlIHNvdXJjZSBhZGRyZXNzIGZvciB0 aGUgbmV3IGJsb2IgKi8KLQlvZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZndfb2Jq KTsKKwlvZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZndfb2JqKSArIGd1Y19mdy0+ aGVhZGVyX29mZnNldDsKIAlJOTE1X1dSSVRFKERNQV9BRERSXzBfTE9XLCBsb3dlcl8zMl9iaXRz KG9mZnNldCkpOwogCUk5MTVfV1JJVEUoRE1BX0FERFJfMF9ISUdILCB1cHBlcl8zMl9iaXRzKG9m ZnNldCkgJiAweEZGRkYpOwogCkBAIC00NjUsMTAgKzQ1MSw4IEBAIHN0YXRpYyB2b2lkIGd1Y19m d19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpndWNf ZncpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAljb25zdCBzdHJ1Y3Qg ZmlybXdhcmUgKmZ3OwotCWNvbnN0IHU4ICpjc3NfaGVhZGVyOwotCWNvbnN0IHNpemVfdCBtaW5z aXplID0gVU9TX0NTU19IRUFERVJfU0laRSArIFVPU19SU0FfU0lHX1NJWkU7Ci0JY29uc3Qgc2l6 ZV90IG1heHNpemUgPSBHVUNfV09QQ01fU0laRV9WQUxVRSArIFVPU19SU0FfU0lHX1NJWkUKLQkJ CS0gMHg4MDAwOyAvKiAzMmsgcmVzZXJ2ZWQgKDhLIHN0YWNrICsgMjRrIGNvbnRleHQpICovCisJ c3RydWN0IGd1Y19jc3NfaGVhZGVyICpjc3NfaGVhZGVyOworCXNpemVfdCBzaXplOwogCWludCBl cnI7CiAKIAlEUk1fREVCVUdfRFJJVkVSKCJiZWZvcmUgcmVxdWVzdGluZyBmaXJtd2FyZTogR3VD IGZ3IGZldGNoIHN0YXR1cyAlc1xuIiwKQEAgLTQ4MiwxMiArNDY2LDUzIEBAIHN0YXRpYyB2b2lk IGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3 ICpndWNfZncpCiAKIAlEUk1fREVCVUdfRFJJVkVSKCJmZXRjaCBHdUMgZncgZnJvbSAlcyBzdWNj ZWVkZWQsIGZ3ICVwXG4iLAogCQlndWNfZnctPmd1Y19md19wYXRoLCBmdyk7Ci0JRFJNX0RFQlVH X0RSSVZFUigiZmlybXdhcmUgZmlsZSBzaXplICV6dSAobWluaW11bSAlenUsIG1heGltdW0gJXp1 KVxuIiwKLQkJZnctPnNpemUsIG1pbnNpemUsIG1heHNpemUpOwogCi0JLyogQ2hlY2sgdGhlIHNp emUgb2YgdGhlIGJsb2IgYmVmb2UgZXhhbWluaW5nIGJ1ZmZlciBjb250ZW50cyAqLwotCWlmIChm dy0+c2l6ZSA8IG1pbnNpemUgfHwgZnctPnNpemUgPiBtYXhzaXplKQorCS8qIENoZWNrIHRoZSBz aXplIG9mIHRoZSBibG9iIGJlZm9yZSBleGFtaW5pbmcgYnVmZmVyIGNvbnRlbnRzICovCisJaWYg KGZ3LT5zaXplIDwgc2l6ZW9mKHN0cnVjdCBndWNfY3NzX2hlYWRlcikpIHsKKwkJRFJNX0VSUk9S KCJGaXJtd2FyZSBoZWFkZXIgaXMgbWlzc2luZ1xuIik7CiAJCWdvdG8gZmFpbDsKKwl9CisKKwlj c3NfaGVhZGVyID0gKHN0cnVjdCBndWNfY3NzX2hlYWRlciAqKWZ3LT5kYXRhOworCisJLyogRmly bXdhcmUgYml0cyBhbHdheXMgc3RhcnQgZnJvbSBoZWFkZXIgKi8KKwlndWNfZnctPmhlYWRlcl9v ZmZzZXQgPSAwOworCWd1Y19mdy0+aGVhZGVyX3NpemUgPSAoY3NzX2hlYWRlci0+aGVhZGVyX2xl biAtIGNzc19oZWFkZXItPm1vZHVsdXNfbGVuCisJCS0gY3NzX2hlYWRlci0+a2V5X2xlbiAtIGNz c19oZWFkZXItPmV4cG9uZW50X2xlbikgKiBzaXplb2YodTMyKTsKKworCWlmIChndWNfZnctPmhl YWRlcl9zaXplICE9IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIpKSB7CisJCURSTV9FUlJP UigiQ1NTIGhlYWRlciBkZWZpbml0aW9uIG1pc21hdGNoXG4iKTsKKwkJZ290byBmYWlsOworCX0K KworCS8qIHRoZW4sIHVDb2RlICovCisJZ3VjX2Z3LT51Y29kZV9vZmZzZXQgPSBndWNfZnctPmhl YWRlcl9vZmZzZXQgKyBndWNfZnctPmhlYWRlcl9zaXplOworCWd1Y19mdy0+dWNvZGVfc2l6ZSA9 CisJCShjc3NfaGVhZGVyLT5sZW5ndGggLSBjc3NfaGVhZGVyLT5oZWFkZXJfbGVuKSAqIHNpemVv Zih1MzIpOworCisJLyogbm93IFJTQSAqLworCWlmIChjc3NfaGVhZGVyLT5rZXlfbGVuICE9IFVP U19SU0FfU0NSQVRDSF9NQVhfQ09VTlQpIHsKKwkJRFJNX0VSUk9SKCJSU0Ega2V5IHNpemUgaXMg YmFkXG4iKTsKKwkJZ290byBmYWlsOworCX0KKwlndWNfZnctPnJzYV9vZmZzZXQgPSBndWNfZnct PnVjb2RlX29mZnNldCArIGd1Y19mdy0+dWNvZGVfc2l6ZTsKKwlndWNfZnctPnJzYV9zaXplID0g Y3NzX2hlYWRlci0+a2V5X2xlbiAqIHNpemVvZih1MzIpOworCisJLyogQXQgbGVhc3QsIGl0IHNo b3VsZCBoYXZlIGhlYWRlciwgdUNvZGUgYW5kIFJTQS4gU2l6ZSBvZiBhbGwgdGhyZWUuICovCisJ c2l6ZSA9IGd1Y19mdy0+aGVhZGVyX3NpemUgKyBndWNfZnctPnVjb2RlX3NpemUgKyBndWNfZnct PnJzYV9zaXplOworCWlmIChmdy0+c2l6ZSA8IHNpemUpIHsKKwkJRFJNX0VSUk9SKCJNaXNzaW5n IGZpcm13YXJlIGNvbXBvbmVudHNcbiIpOworCQlnb3RvIGZhaWw7CisJfQorCisJLyogSGVhZGVy IGFuZCB1Q29kZSB3aWxsIGJlIGxvYWRlZCB0byBXT1BDTS4gU2l6ZSBvZiB0aGUgdHdvLiAqLwor CXNpemUgPSBndWNfZnctPmhlYWRlcl9zaXplICsgZ3VjX2Z3LT51Y29kZV9zaXplOworCisJLyog VG9wIDMyayBvZiBXT1BDTSBpcyByZXNlcnZlZCAoOEsgc3RhY2sgKyAyNGsgUkM2IGNvbnRleHQp LiAqLworCWlmIChzaXplID4gR1VDX1dPUENNX1NJWkVfVkFMVUUgLSAweDgwMDApIHsKKwkJRFJN X0VSUk9SKCJGaXJtd2FyZSBpcyB0b28gbGFyZ2UgdG8gZml0IGluIFdPUENNXG4iKTsKKwkJZ290 byBmYWlsOworCX0KIAogCS8qCiAJICogVGhlIEd1QyBmaXJtd2FyZSBpbWFnZSBoYXMgdGhlIHZl cnNpb24gbnVtYmVyIGVtYmVkZGVkIGF0IGEgd2VsbC1rbm93bgpAQCAtNDk1LDIyICs1MjAsMjEg QEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBpbnRlbF9ndWNfZncgKmd1Y19mdykKIAkgKiBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBh bHRob3VnaCBhbGwgcG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRlZmluZWQKIAkgKiBpbiB0ZXJt cyBvZiBieXRlcyAodTgpLgogCSAqLwotCWNzc19oZWFkZXIgPSBmdy0+ZGF0YSArIFVPU19DU1Nf SEVBREVSX09GRlNFVDsKLQlndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCA9ICoodTE2ICopKGNz c19oZWFkZXIgKyBVT1NfVkVSX01BSk9SX09GRlNFVCk7Ci0JZ3VjX2Z3LT5ndWNfZndfbWlub3Jf Zm91bmQgPSAqKHUxNiAqKShjc3NfaGVhZGVyICsgVU9TX1ZFUl9NSU5PUl9PRkZTRVQpOworCWd1 Y19mdy0+dmVyX21ham9yX2ZvdW5kID0gY3NzX2hlYWRlci0+Z3VjX3N3X3ZlcnNpb24gPj4gMTY7 CisJZ3VjX2Z3LT52ZXJfbWlub3JfZm91bmQgPSBjc3NfaGVhZGVyLT5ndWNfc3dfdmVyc2lvbiAm IDB4RkZGRjsKIAotCWlmIChndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCAhPSBndWNfZnctPmd1 Y19md19tYWpvcl93YW50ZWQgfHwKLQkgICAgZ3VjX2Z3LT5ndWNfZndfbWlub3JfZm91bmQgPCBn dWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpIHsKKwlpZiAoZ3VjX2Z3LT52ZXJfbWFqb3JfZm91 bmQgIT0gZ3VjX2Z3LT52ZXJfbWFqb3Jfd2FudGVkIHx8CisJICAgIGd1Y19mdy0+dmVyX21pbm9y X2ZvdW5kIDwgZ3VjX2Z3LT52ZXJfbWlub3Jfd2FudGVkKSB7CiAJCURSTV9FUlJPUigiR3VDIGZp cm13YXJlIHZlcnNpb24gJWQuJWQsIHJlcXVpcmVkICVkLiVkXG4iLAotCQkJZ3VjX2Z3LT5ndWNf ZndfbWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kLAotCQkJZ3VjX2Z3LT5n dWNfZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOworCQkJZ3Vj X2Z3LT52ZXJfbWFqb3JfZm91bmQsIGd1Y19mdy0+dmVyX21pbm9yX2ZvdW5kLAorCQkJZ3VjX2Z3 LT52ZXJfbWFqb3Jfd2FudGVkLCBndWNfZnctPnZlcl9taW5vcl93YW50ZWQpOwogCQllcnIgPSAt RU5PRVhFQzsKIAkJZ290byBmYWlsOwogCX0KIAogCURSTV9ERUJVR19EUklWRVIoImZpcm13YXJl IHZlcnNpb24gJWQuJWQgT0sgKG1pbmltdW0gJWQuJWQpXG4iLAotCQkJZ3VjX2Z3LT5ndWNfZndf bWFqb3JfZm91bmQsIGd1Y19mdy0+Z3VjX2Z3X21pbm9yX2ZvdW5kLAotCQkJZ3VjX2Z3LT5ndWNf ZndfbWFqb3Jfd2FudGVkLCBndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQpOworCQkJZ3VjX2Z3 LT52ZXJfbWFqb3JfZm91bmQsIGd1Y19mdy0+dmVyX21pbm9yX2ZvdW5kLAorCQkJZ3VjX2Z3LT52 ZXJfbWFqb3Jfd2FudGVkLCBndWNfZnctPnZlcl9taW5vcl93YW50ZWQpOwogCiAJb2JqID0gaTkx NV9nZW1fb2JqZWN0X2NyZWF0ZV9mcm9tX2RhdGEoZGV2LCBmdy0+ZGF0YSwgZnctPnNpemUpOwog CWlmIChJU19FUlJfT1JfTlVMTChvYmopKSB7CkBAIC01NjcsOCArNTkxLDggQEAgdm9pZCBpbnRl bF9ndWNfdWNvZGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlmd19wYXRoID0gTlVM TDsKIAl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkgewogCQlmd19wYXRoID0gSTkxNV9TS0xf R1VDX1VDT0RFOwotCQlndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgPSA0OwotCQlndWNfZnct Pmd1Y19md19taW5vcl93YW50ZWQgPSAzOworCQlndWNfZnctPnZlcl9tYWpvcl93YW50ZWQgPSA0 OworCQlndWNfZnctPnZlcl9taW5vcl93YW50ZWQgPSAzOwogCX0gZWxzZSB7CiAJCWk5MTUuZW5h YmxlX2d1Y19zdWJtaXNzaW9uID0gZmFsc2U7CiAJCWZ3X3BhdGggPSAiIjsJLyogdW5rbm93biBk ZXZpY2UgKi8KLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=