From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/6] drm/i915/guc: Add GuC css header parser Date: Mon, 14 Sep 2015 11:28:45 +0200 Message-ID: <20150914092845.GW3383@phenom.ffwll.local> References: <1441929372-26140-1-git-send-email-yu.dai@intel.com> <1441929372-26140-3-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 mail-wi0-f170.google.com (mail-wi0-f170.google.com [209.85.212.170]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2BB896E810 for ; Mon, 14 Sep 2015 02:26:02 -0700 (PDT) Received: by wicgb1 with SMTP id gb1so132836343wic.1 for ; Mon, 14 Sep 2015 02:26:00 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1441929372-26140-3-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: yu.dai@intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMTAsIDIwMTUgYXQgMDQ6NTY6MDhQTSAtMDcwMCwgeXUuZGFpQGludGVsLmNv bSB3cm90ZToKPiBGcm9tOiBBbGV4IERhaSA8eXUuZGFpQGludGVsLmNvbT4KPiAKPiBCeSB1c2lu ZyBpbmZvcm1hdGlvbiBmcm9tIEd1QyBjc3MgaGVhZGVyLCB3ZSBjYW4gZWxpbWluYXRlIHNvbWUK PiBoYXJkIGNvZGUgdy5yLnQgc2l6ZSBvZiBzb21lIGNvbXBvbmVudHMgb2YgZmlybXdhcmUuCj4g Cj4gdjE6IDEpIGd1Y19jc3NfaGVhZGVyIGlzIGRlZmluZWQgYXMgX19wYWNrZWQgbm93Cj4gICAg IDIpIEFkZCBhbmQgY29ycmVjdCBHdUMgcmVsYXRlZCB0b3BpY3MgaW4ga2VybmVsL0RvYwo+IAo+ IFNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgo+IC0tLQo+ICBEb2N1 bWVudGF0aW9uL0RvY0Jvb2svZHJtLnRtcGwgICAgICAgICAgfCAgMjQgKysrKysrKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmggICAgICAgIHwgICAyICstCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmggICB8ICAzNiArKysrKysrKysrKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgfCAxMDUgKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwg MzcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9k cm0udG1wbCBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9kcm0udG1wbAo+IGluZGV4IDY2YmM2NDYu LmY0MzBkYTYgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCj4g KysrIGIvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2RybS50bXBsCj4gQEAgLTQxNTUsMTQgKzQxNTUs MzQgQEAgaW50IG51bV9pb2N0bHM7PC9zeW5vcHNpcz4KPiAgICAgICAgPHRpdGxlPkd1Qy1iYXNl ZCBDb21tYW5kIFN1Ym1pc3Npb248L3RpdGxlPgo+ICAgICAgICA8c2VjdDI+Cj4gICAgICAgICAg PHRpdGxlPkd1QzwvdGl0bGU+Cj4gLSFQZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xv YWRlci5jIEd1Qy1zcGVjaWZpYyBmaXJtd2FyZSBsb2FkZXIKPiArIVBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgR3VDCj4gICFJZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvYWRlci5jCj4gICAgICAgIDwvc2VjdDI+Cj4gICAgICAgIDxzZWN0Mj4KPiAgICAg ICAgICA8dGl0bGU+R3VDIENsaWVudDwvdGl0bGU+Cj4gLSFQZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ndWNfc3VibWlzc2lvbi5jIEd1Qy1iYXNlZCBjb21tYW5kIHN1Ym1pc3Npc29uCj4gKyFQ ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIEd1QyBDbGllbnQKPiAg IUlkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKPiAgICAgICAgPC9z ZWN0Mj4KPiArICAgICAgPHNlY3QyPgo+ICsgICAgICAgIDx0aXRsZT5HdUMgRmlybXdhcmUgTGF5 b3V0PC90aXRsZT4KPiArICAgICAgICA8cGFyYT5UaGUgR3VDIGZpcm13YXJlIGxheW91dCBsb29r cyBsaWtlIHRoaXM6PC9wYXJhPgo+ICs8cHJvZ3JhbWxpc3Rpbmc+PCFbQ0RBVEFbCj4gKyArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiArIHwgICAgICAgIGd1Y19jc3NfaGVhZGVy ICAgICAgICAgfAo+ICsgfCBjb250YWlucyBtYWpvci9taW5vciB2ZXJzaW9uICB8Cj4gKyArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiArIHwgICAgICAgICAgICAgdUNvZGUgICAg ICAgICAgICAgfAo+ICsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyB8ICAg ICAgICAgUlNBIHNpZ25hdHVyZSAgICAgICAgIHwKPiArICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKwo+ICsgfCAgICAgICAgICBtb2R1bHVzIGtleSAgICAgICAgICB8Cj4gKyArLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiArIHwgICAgICAgICAgZXhwb25lbnQgdmFs ICAgICAgICAgfAo+ICsgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gK11dPjwv cHJvZ3JhbWxpc3Rpbmc+CgpOb3BlLCB0aGlzIGNhbiBiZSBkb25lIGFzIERPQzogc2VjdGlvbnMg ZGlyZWN0bHkgd2l0aCBsYXRlc3QgLW5pZ2h0bHkuCkRPQzogc2VjdGlvbnMgbm93IHN1cHBvcnQg bWFya2Rvd24sIHNvIHlvdSBvbmx5IGhhdmUgZG8gaW5kZW50IGl0IGVpdGhlciA0CnNwYWNlcyAo Zm9yIGZpeGVkLXdpdGggbGF5b3V0KSBvciBkcm9wIHRoZSBsaW5lcyBpbiBiZXR3ZWVuIGZvciB0 YWJsZQpsYXlvdXQgKGlpcmMsIHlvdSBtaWdodCB3YW50IHRvIGNoZWNrIHRoYXQpLgoKTmVlZHMg IHBhbmRvYyBpbnN0YWxsZWQgdGhvdWdoLCBvdGhlcndpc2UgeW91IGNhbid0IHNlZSB0aGUgbmV3 IHByZXR0eS4KQnV0IGlmIHlvdSBoYXZlIHBhbmRvYyBqdXN0IHJ1bgoKJCBtYWtlIGh0bWxkb2Nz CgphbmQgZG91YmxlLWNoZWNrIHRoYXQgaXQgYWxsIGxvb2tzIGdvb2QuCgpUaGFua3MsIERhbmll bAoKPiArIVBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgR3VDIEZpcm13 YXJlIExheW91dAo+ICshSWRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+ ICsgICAgICA8L3NlY3QyPgo+ICAgICAgPC9zZWN0MT4KPiAgCj4gICAgICA8c2VjdDE+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiBpbmRleCA0ZWMyZDI3Li5lMTM4OWZjIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Yy5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPiBAQCAtNzEsNiArNzEsNyBAQCBzdHJ1Y3QgaW50ZWxfZ3Vj X2Z3IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoJZ3VjX2Z3X29iajsKPiAgCWVu dW0gaW50ZWxfZ3VjX2Z3X3N0YXR1cwlndWNfZndfZmV0Y2hfc3RhdHVzOwo+ICAJZW51bSBpbnRl bF9ndWNfZndfc3RhdHVzCWd1Y19md19sb2FkX3N0YXR1czsKPiArCXN0cnVjdCBndWNfY3NzX2hl YWRlcgkJZ3VjX2Z3X2hlYWRlcjsKPiAgCj4gIAl1aW50MTZfdAkJCWd1Y19md19tYWpvcl93YW50 ZWQ7Cj4gIAl1aW50MTZfdAkJCWd1Y19md19taW5vcl93YW50ZWQ7Cj4gQEAgLTgwLDcgKzgxLDYg QEAgc3RydWN0IGludGVsX2d1Y19mdyB7Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfZ3VjIHsKPiAgCXN0 cnVjdCBpbnRlbF9ndWNfZncgZ3VjX2Z3Owo+IC0KPiAgCXVpbnQzMl90IGxvZ19mbGFnczsKPiAg CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpsb2dfb2JqOwo+ICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2Z3aWYuaCBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2d1Y19md2lmLmgKPiBpbmRleCBlMWY0N2JhLi4wMDZkYzBkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19md2lmLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfZndpZi5oCj4gQEAgLTEyMiw2ICsxMjIsNDIgQEAKPiAg Cj4gICNkZWZpbmUgR1VDX0NUTF9NQVhfRFdPUkRTCQkoR1VDX0NUTF9SU1JWRCArIDEpCj4gIAo+ ICtzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIgewo+ICsJdWludDMyX3QgbW9kdWxlX3R5cGU7Cj4gKwl1 aW50MzJfdCBoZWFkZXJfbGVuOyAvKiBoZWFkZXIgbGVuZ3RoIHBsdXMgc2l6ZSBvZiBhbGwgb3Ro ZXIga2V5cyAqLwo+ICsJdWludDMyX3QgaGVhZGVyX3ZlcnNpb247Cj4gKwl1aW50MzJfdCBtb2R1 bGVfaWQ7Cj4gKwl1aW50MzJfdCBtb2R1bGVfdmVuZG9yOwo+ICsJdW5pb24gewo+ICsJCXN0cnVj dCB7Cj4gKwkJCXVpbnQ4X3QgZGF5Owo+ICsJCQl1aW50OF90IG1vbnRoOwo+ICsJCQl1aW50MTZf dCB5ZWFyOwo+ICsJCX07Cj4gKwkJdWludDMyX3QgZGF0ZTsKPiArCX07Cj4gKwl1aW50MzJfdCBz aXplOyAvKiB1Q29kZSBzaXplIHBsdXMgaGVhZGVyX2xlbiAqLwo+ICsJdWludDMyX3Qga2V5X3Np emU7Cj4gKwl1aW50MzJfdCBtb2R1bHVzX3NpemU7Cj4gKwl1aW50MzJfdCBleHBvbmVudF9zaXpl Owo+ICsJdW5pb24gewo+ICsJCXN0cnVjdCB7Cj4gKwkJCXVpbnQ4X3QgaG91cjsKPiArCQkJdWlu dDhfdCBtaW47Cj4gKwkJCXVpbnQxNl90IHNlYzsKPiArCQl9Owo+ICsJCXVpbnQzMl90IHRpbWU7 Cj4gKwl9Owo+ICsKPiArCWNoYXIgdXNlcm5hbWVbOF07Cj4gKwljaGFyIGJ1aWxkbnVtYmVyWzEy XTsKPiArCXVpbnQzMl90IGRldmljZV9pZDsKPiArCXVpbnQzMl90IGd1Y19zd192ZXJzaW9uOwo+ ICsJdWludDMyX3QgcHJvZF9wcmVwcm9kX2Z3Owo+ICsJdWludDMyX3QgcmVzZXJ2ZWRbMTJdOwo+ ICsJdWludDMyX3QgaGVhZGVyX2luZm87Cj4gK30gX19wYWNrZWQ7Cj4gKwo+ICBzdHJ1Y3QgZ3Vj X2Rvb3JiZWxsX2luZm8gewo+ICAJdTMyIGRiX3N0YXR1czsKPiAgCXUzMiBjb29raWU7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+IGluZGV4IDU4MjM2MTUuLjBjM2M0 YzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gQEAgLTIx NSwxOCArMjE1LDI3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBndWNfdWNvZGVfcmVzcG9uc2Uoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCSgodmFsICYgR1NfTUlBX0NPUkVf U1RBVEUpICYmIHVrX3ZhbCA9PSBHU19VS0VSTkVMX0xBUElDX0RPTkUpKTsKPiAgfQo+ICAKPiAt LyoKPiAtICogVHJhbnNmZXIgdGhlIGZpcm13YXJlIGltYWdlIHRvIFJBTSBmb3IgZXhlY3V0aW9u IGJ5IHRoZSBtaWNyb2NvbnRyb2xsZXIuCj4gKy8qKgo+ICsgKiBET0M6IEd1QyBGaXJtd2FyZSBM YXlvdXQKPiAgICoKPiAtICogR3VDIEZpcm13YXJlIGxheW91dDoKPiAtICogKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rICAtLS0tCj4gLSAqIHwgICAgICAgICAgQ1NTIGhlYWRlciAg ICAgICAgICAgfCAgMTI4Qgo+IC0gKiB8IGNvbnRhaW5zIG1ham9yL21pbm9yIHZlcnNpb24gIHwK PiAtICogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rICAtLS0tCj4gLSAqIHwgICAg ICAgICAgICAgdUNvZGUgICAgICAgICAgICAgfAo+IC0gKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSsgIC0tLS0KPiAtICogfCAgICAgICAgIFJTQSBzaWduYXR1cmUgICAgICAgICB8 ICAyNTZCCj4gLSAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAgLS0tLQo+ICsg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyB8ICAgICAgICBndWNfY3NzX2hl YWRlciAgICAgICAgIHwKPiArIHwgY29udGFpbnMgbWFqb3IvbWlub3IgdmVyc2lvbiAgfAo+ICsg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyB8ICAgICAgICAgICAgIHVDb2Rl ICAgICAgICAgICAgIHwKPiArICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ICsg fCAgICAgICAgIFJTQSBzaWduYXR1cmUgICAgICAgICB8Cj4gKyArLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsKPiArIHwgICAgICAgICAgbW9kdWx1cyBrZXkgICAgICAgICAgfAo+ICsg Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyB8ICAgICAgICAgIGV4cG9uZW50 IHZhbCAgICAgICAgIHwKPiArICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ICsg Kgo+ICsgKiBUaGUgZmlybXdhcmUgbWF5IG9yIG1heSBub3QgaGF2ZSBtb2R1bHVzIGtleSBhbmQg ZXhwb25lbnQgZGF0YS4gVGhlIGhlYWRlciwKPiArICogdUNvZGUgYW5kIFJTQSBzaWduYXR1cmUg YXJlIG11c3QtaGF2ZSBjb21wb25lbnRzIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IGRyaXZlci4KPiAr ICogU2l6ZSBvZiBlYWNoIGNvbXBvbmVudHMgKGluIGR3b3JkcykgY2FuIGJlIGZvdW5kIGluIGhl YWRlci4gSW4gdGhlIGNhc2UgdGhhdAo+ICsgKiBtb2R1bHVzIGFuZCBleHBvbmVudCBhcmUgbm90 IHByZXNlbnQgaW4gZncsIHRoZSBzaXplIHZhbHVlIHN0aWxsIGFwcGVhcnMgaW4KPiArICogaGVh ZGVyLgo+ICAgKgo+ICAgKiBBcmNoaXRlY3R1cmFsbHksIHRoZSBETUEgZW5naW5lIGlzIGJpZGly ZWN0aW9uYWwsIGFuZCBjYW4gcG90ZW50aWFsbHkgZXZlbgo+ICAgKiB0cmFuc2ZlciBiZXR3ZWVu IEdUVCBsb2NhdGlvbnMuIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBsZWZ0IG91dCBvZiB0aGUgQVBJ Cj4gQEAgLTIzNiwzMCArMjQ1LDQyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBndWNfdWNvZGVfcmVz cG9uc2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgKiBETUEgZW5naW5l IGluIG9uZSBvcGVyYXRpb24sIHdoZXJlYXMgdGhlIFJTQSBzaWduYXR1cmUgaXMgbG9hZGVkIHZp YSBNTUlPLgo+ICAgKi8KPiAgCj4gLSNkZWZpbmUgVU9TX0NTU19IRUFERVJfT0ZGU0VUCQkwCj4g LSNkZWZpbmUgVU9TX1ZFUl9NSU5PUl9PRkZTRVQJCTB4NDQKPiAtI2RlZmluZSBVT1NfVkVSX01B Sk9SX09GRlNFVAkJMHg0Ngo+IC0jZGVmaW5lIFVPU19DU1NfSEVBREVSX1NJWkUJCTB4ODAKPiAt I2RlZmluZSBVT1NfUlNBX1NJR19TSVpFCQkweDEwMAo+IC0KPiArLyoKPiArICogVHJhbnNmZXIg dGhlIGZpcm13YXJlIGltYWdlIHRvIFJBTSBmb3IgZXhlY3V0aW9uIGJ5IHRoZSBtaWNyb2NvbnRy b2xsZXIuCj4gKyAqLwo+ICBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyX2RtYShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9ndWNfZncgKmd1 Y19mdyA9ICZkZXZfcHJpdi0+Z3VjLmd1Y19mdzsKPiArCXN0cnVjdCBndWNfY3NzX2hlYWRlciAq aGVhZGVyID0gJmd1Y19mdy0+Z3VjX2Z3X2hlYWRlcjsKPiAgCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpmd19vYmogPSBndWNfZnctPmd1Y19md19vYmo7Cj4gIAl1bnNpZ25lZCBsb25nIG9m ZnNldDsKPiAgCXN0cnVjdCBzZ190YWJsZSAqc2cgPSBmd19vYmotPnBhZ2VzOwo+IC0JdTMyIHN0 YXR1cywgdWNvZGVfc2l6ZSwgcnNhW1VPU19SU0FfU0lHX1NJWkUgLyBzaXplb2YodTMyKV07Cj4g Kwl1MzIgc3RhdHVzLCBoZWFkZXJfc2l6ZSwgcnNhX3NpemUsIHVjb2RlX3NpemUsICpyc2E7Cj4g IAlpbnQgaSwgcmV0ID0gMDsKPiAgCj4gLQkvKiB1Q29kZSBzaXplLCBhbHNvIGlzIHdoZXJlIFJT QSBzaWduYXR1cmUgc3RhcnRzICovCj4gLQlvZmZzZXQgPSB1Y29kZV9zaXplID0gZ3VjX2Z3LT5n dWNfZndfc2l6ZSAtIFVPU19SU0FfU0lHX1NJWkU7Cj4gLQlJOTE1X1dSSVRFKERNQV9DT1BZX1NJ WkUsIHVjb2RlX3NpemUpOwo+ICsJLyogVGhlIGhlYWRlciBwbHVzIHVDb2RlIHdpbGwgYmUgY29w aWVkIHRvIFdPUENNIHZpYSBETUEsIGV4Y2x1ZGluZyBhbnkKPiArCSAqIG90aGVyIGNvbXBvbmVu dHMgKi8KPiArCWhlYWRlcl9zaXplID0gKGhlYWRlci0+aGVhZGVyX2xlbiAtIGhlYWRlci0+a2V5 X3NpemUgLQo+ICsJCWhlYWRlci0+bW9kdWx1c19zaXplIC0gaGVhZGVyLT5leHBvbmVudF9zaXpl KSAqIHNpemVvZih1MzIpOwo+ICsJdWNvZGVfc2l6ZSA9IChoZWFkZXItPnNpemUgLSBoZWFkZXIt PmhlYWRlcl9sZW4pICogc2l6ZW9mKHUzMik7Cj4gKwo+ICsJSTkxNV9XUklURShETUFfQ09QWV9T SVpFLCBoZWFkZXJfc2l6ZSArIHVjb2RlX3NpemUpOwo+ICsKPiArCS8qIHdoZXJlIFJTQSBzaWdu YXR1cmUgc3RhcnRzICovCj4gKwlvZmZzZXQgPSBoZWFkZXJfc2l6ZSArIHVjb2RlX3NpemU7Cj4g Kwo+ICsJcnNhX3NpemUgPSBoZWFkZXItPmtleV9zaXplICogc2l6ZW9mKHUzMik7Cj4gKwlyc2Eg PSBrbWFsbG9jKHJzYV9zaXplLCBHRlBfS0VSTkVMKTsKPiArCWlmICghcnNhKQo+ICsJCXJldHVy biAtRU5PTUVNOwo+ICAKPiAgCS8qIENvcHkgUlNBIHNpZ25hdHVyZSBmcm9tIHRoZSBmdyBpbWFn ZSB0byBIVyBmb3IgdmVyaWZpY2F0aW9uICovCj4gLQlzZ19wY29weV90b19idWZmZXIoc2ctPnNn bCwgc2ctPm5lbnRzLCByc2EsIFVPU19SU0FfU0lHX1NJWkUsIG9mZnNldCk7Cj4gLQlmb3IgKGkg PSAwOyBpIDwgVU9TX1JTQV9TSUdfU0laRSAvIHNpemVvZih1MzIpOyBpKyspCj4gKwlzZ19wY29w eV90b19idWZmZXIoc2ctPnNnbCwgc2ctPm5lbnRzLCByc2EsIHJzYV9zaXplLCBvZmZzZXQpOwo+ ICsJZm9yIChpID0gMDsgaSA8IHJzYV9zaXplIC8gc2l6ZW9mKHUzMik7IGkrKykKPiAgCQlJOTE1 X1dSSVRFKFVPU19SU0FfU0NSQVRDSF8wICsgaSAqIHNpemVvZih1MzIpLCByc2FbaV0pOwo+ICAK PiArCWtmcmVlKHJzYSk7Cj4gKwo+ICAJLyogU2V0IHRoZSBzb3VyY2UgYWRkcmVzcyBmb3IgdGhl IG5ldyBibG9iICovCj4gIAlvZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQoZndfb2Jq KTsKPiAgCUk5MTVfV1JJVEUoRE1BX0FERFJfMF9MT1csIGxvd2VyXzMyX2JpdHMob2Zmc2V0KSk7 Cj4gQEAgLTQ1OCwxMCArNDc5LDggQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKPiAgewo+ICAJc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAgCWNvbnN0IHN0cnVjdCBmaXJtd2FyZSAq Znc7Cj4gLQljb25zdCB1OCAqY3NzX2hlYWRlcjsKPiAtCWNvbnN0IHNpemVfdCBtaW5zaXplID0g VU9TX0NTU19IRUFERVJfU0laRSArIFVPU19SU0FfU0lHX1NJWkU7Cj4gLQljb25zdCBzaXplX3Qg bWF4c2l6ZSA9IEdVQ19XT1BDTV9TSVpFX1ZBTFVFICsgVU9TX1JTQV9TSUdfU0laRQo+IC0JCQkt IDB4ODAwMDsgLyogMzJrIHJlc2VydmVkICg4SyBzdGFjayArIDI0ayBjb250ZXh0KSAqLwo+ICsJ c3RydWN0IGd1Y19jc3NfaGVhZGVyICpjc3NfaGVhZGVyID0gJmd1Y19mdy0+Z3VjX2Z3X2hlYWRl cjsKPiArCXNpemVfdCBzaXplOwo+ICAJaW50IGVycjsKPiAgCj4gIAlEUk1fREVCVUdfRFJJVkVS KCJiZWZvcmUgcmVxdWVzdGluZyBmaXJtd2FyZTogR3VDIGZ3IGZldGNoIHN0YXR1cyAlc1xuIiwK PiBAQCAtNDc1LDEyICs0OTQsMzEgQEAgc3RhdGljIHZvaWQgZ3VjX2Z3X2ZldGNoKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9ndWNfZncgKmd1Y19mdykKPiAgCj4gIAlEUk1f REVCVUdfRFJJVkVSKCJmZXRjaCBHdUMgZncgZnJvbSAlcyBzdWNjZWVkZWQsIGZ3ICVwXG4iLAo+ ICAJCWd1Y19mdy0+Z3VjX2Z3X3BhdGgsIGZ3KTsKPiAtCURSTV9ERUJVR19EUklWRVIoImZpcm13 YXJlIGZpbGUgc2l6ZSAlenUgKG1pbmltdW0gJXp1LCBtYXhpbXVtICV6dSlcbiIsCj4gLQkJZnct PnNpemUsIG1pbnNpemUsIG1heHNpemUpOwo+ICAKPiAtCS8qIENoZWNrIHRoZSBzaXplIG9mIHRo ZSBibG9iIGJlZm9lIGV4YW1pbmluZyBidWZmZXIgY29udGVudHMgKi8KPiAtCWlmIChmdy0+c2l6 ZSA8IG1pbnNpemUgfHwgZnctPnNpemUgPiBtYXhzaXplKQo+ICsJLyogQ2hlY2sgdGhlIHNpemUg b2YgdGhlIGJsb2IgYmVmb3JlIGV4YW1pbmluZyBidWZmZXIgY29udGVudHMgKi8KPiArCWlmIChm dy0+c2l6ZSA8IHNpemVvZihzdHJ1Y3QgZ3VjX2Nzc19oZWFkZXIpKSB7Cj4gKwkJRFJNX0VSUk9S KCJGaXJtd2FyZSBoZWFkZXIgaXMgbWlzc2luZ1xuIik7Cj4gKwkJZ290byBmYWlsOwo+ICsJfQo+ ICsKPiArCW1lbWNweShjc3NfaGVhZGVyLCBmdy0+ZGF0YSwgc2l6ZW9mKHN0cnVjdCBndWNfY3Nz X2hlYWRlcikpOwo+ICsKPiArCS8qIEF0IGxlYXN0LCBpdCBzaG91bGQgaGF2ZSBoZWFkZXIsIHVD b2RlIGFuZCBSU0EuIFNpemUgb2YgYWxsIHRocmVlLiAqLwo+ICsJc2l6ZSA9IChjc3NfaGVhZGVy LT5zaXplIC0gY3NzX2hlYWRlci0+bW9kdWx1c19zaXplIC0KPiArCQkJY3NzX2hlYWRlci0+ZXhw b25lbnRfc2l6ZSkgKiBzaXplb2YodTMyKTsKPiArCWlmIChmdy0+c2l6ZSA8IHNpemUpIHsKPiAr CQlEUk1fRVJST1IoIk1pc3NpbmcgZmlybXdhcmUgY29tcG9uZW50c1xuIik7Cj4gIAkJZ290byBm YWlsOwo+ICsJfQo+ICsKPiArCS8qIEhlYWRlciBhbmQgdUNvZGUgd2lsbCBiZSBsb2FkZWQgdG8g V09QQ00uIFNpemUgb2YgdGhlIHR3by4gKi8KPiArCXNpemUgLT0gY3NzX2hlYWRlci0+a2V5X3Np emUgKiBzaXplb2YodTMyKTsKPiArCj4gKwkvKiBUb3AgMzJrIG9mIFdPUENNIGlzIHJlc2VydmVk ICg4SyBzdGFjayArIDI0ayBSQzYgY29udGV4dCkuICovCj4gKwlpZiAoc2l6ZSA+IEdVQ19XT1BD TV9TSVpFX1ZBTFVFIC0gMHg4MDAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJGaXJtd2FyZSBpcyB0b28g bGFyZ2UgdG8gZml0IGluIFdPUENNXG4iKTsKPiArCQlnb3RvIGZhaWw7Cj4gKwl9Cj4gIAo+ICAJ LyoKPiAgCSAqIFRoZSBHdUMgZmlybXdhcmUgaW1hZ2UgaGFzIHRoZSB2ZXJzaW9uIG51bWJlciBl bWJlZGRlZCBhdCBhIHdlbGwta25vd24KPiBAQCAtNDg4LDkgKzUyNiw4IEBAIHN0YXRpYyB2b2lk IGd1Y19md19mZXRjaChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZ3VjX2Z3 ICpndWNfZncpCj4gIAkgKiBUV08gYnl0ZXMgZWFjaCAoaS5lLiB1MTYpLCBhbHRob3VnaCBhbGwg cG9pbnRlcnMgYW5kIG9mZnNldHMgYXJlIGRlZmluZWQKPiAgCSAqIGluIHRlcm1zIG9mIGJ5dGVz ICh1OCkuCj4gIAkgKi8KPiAtCWNzc19oZWFkZXIgPSBmdy0+ZGF0YSArIFVPU19DU1NfSEVBREVS X09GRlNFVDsKPiAtCWd1Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0gKih1MTYgKikoY3NzX2hl YWRlciArIFVPU19WRVJfTUFKT1JfT0ZGU0VUKTsKPiAtCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX2Zv dW5kID0gKih1MTYgKikoY3NzX2hlYWRlciArIFVPU19WRVJfTUlOT1JfT0ZGU0VUKTsKPiArCWd1 Y19mdy0+Z3VjX2Z3X21ham9yX2ZvdW5kID0gY3NzX2hlYWRlci0+Z3VjX3N3X3ZlcnNpb24gPj4g MTY7Cj4gKwlndWNfZnctPmd1Y19md19taW5vcl9mb3VuZCA9IGNzc19oZWFkZXItPmd1Y19zd192 ZXJzaW9uICYgMHhGRkZGOwo+ICAKPiAgCWlmIChndWNfZnctPmd1Y19md19tYWpvcl9mb3VuZCAh PSBndWNfZnctPmd1Y19md19tYWpvcl93YW50ZWQgfHwKPiAgCSAgICBndWNfZnctPmd1Y19md19t aW5vcl9mb3VuZCA8IGd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRlZCkgewo+IC0tIAo+IDEuOS4x Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=