From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Siluvery, Arun" Subject: Re: [PATCH v6 1/6] drm/i915/gen8: Add infrastructure to initialize WA batch buffers Date: Mon, 22 Jun 2015 16:43:59 +0100 Message-ID: <55882D3F.1050805@linux.intel.com> References: <1434735435-14728-1-git-send-email-arun.siluvery@linux.intel.com> <1434737221-3842-1-git-send-email-arun.siluvery@linux.intel.com> <20150622154103.GY25769@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 9012B6E806 for ; Mon, 22 Jun 2015 08:44:01 -0700 (PDT) In-Reply-To: <20150622154103.GY25769@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMjIvMDYvMjAxNSAxNjo0MSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBGcmksIEp1biAx OSwgMjAxNSBhdCAwNzowNzowMVBNICswMTAwLCBBcnVuIFNpbHV2ZXJ5IHdyb3RlOgo+PiBTb21l IG9mIHRoZSBXQSBhcmUgdG8gYmUgYXBwbGllZCBkdXJpbmcgY29udGV4dCBzYXZlIGJ1dCBiZWZv cmUgcmVzdG9yZSBhbmQKPj4gc29tZSBhdCB0aGUgZW5kIG9mIGNvbnRleHQgc2F2ZS9yZXN0b3Jl IGJ1dCBiZWZvcmUgZXhlY3V0aW5nIHRoZSBpbnN0cnVjdGlvbnMKPj4gaW4gdGhlIHJpbmcsIFdB IGJhdGNoIGJ1ZmZlcnMgYXJlIGNyZWF0ZWQgZm9yIHRoaXMgcHVycG9zZSBhbmQgdGhlc2UgV0Eg Y2Fubm90Cj4+IGJlIGFwcGxpZWQgdXNpbmcgbm9ybWFsIG1lYW5zLiBFYWNoIGNvbnRleHQgaGFz IHR3byByZWdpc3RlcnMgdG8gbG9hZCB0aGUKPj4gb2Zmc2V0cyBvZiB0aGVzZSBiYXRjaCBidWZm ZXJzLiBJZiB0aGV5IGFyZSBub24temVybywgSFcgdW5kZXJzdGFuZHMgdGhhdCBpdAo+PiBuZWVk IHRvIGV4ZWN1dGUgdGhlc2UgYmF0Y2hlcy4KPj4KPj4gdjE6IEluIHRoaXMgdmVyc2lvbiB0d28g c2VwYXJhdGUgcmluZ19idWZmZXIgb2JqZWN0cyB3ZXJlIHVzZWQgdG8gbG9hZCBXQQo+PiBpbnN0 cnVjdGlvbnMgZm9yIGluZGlyZWN0IGFuZCBwZXIgY29udGV4dCBiYXRjaCBidWZmZXJzIGFuZCB0 aGV5IHdlcmUgcGFydAo+PiBvZiBldmVyeSBjb250ZXh0Lgo+Pgo+PiB2MjogQ2hyaXMgc3VnZ2Vz dGVkIHRvIGluY2x1ZGUgYWRkaXRpb25hbCBwYWdlIGluIGNvbnRleHQgYW5kIHVzZSBpdCB0byBs b2FkCj4+IHRoZXNlIFdBIGluc3RlYWQgb2YgY3JlYXRpbmcgc2VwYXJhdGUgb2JqZWN0cy4gVGhp cyB3aWxsIHNpbXBsaWZ5IGxvdCBvZiB0aGluZ3MKPj4gYXMgd2UgbmVlZCBub3QgZXhwbGljaXR5 IHBpbi91bnBpbiB0aGVtLiBUaG9tYXMgRGFuaWVsIGZ1cnRoZXIgcG9pbnRlZCB0aGF0IEd1Qwo+ PiBpcyBwbGFubmluZyB0byB1c2UgYSBzaW1pbGFyIHNldHVwIHRvIHNoYXJlIGRhdGEgYmV0d2Vl biBHdUMgYW5kIGRyaXZlciBhbmQKPj4gV0EgYmF0Y2ggYnVmZmVycyBjYW4gcHJvYmFibHkgc2hh cmUgdGhhdCBwYWdlLiBIb3dldmVyIGFmdGVyIGRpc2N1c3Npb25zIHdpdGgKPj4gRGF2ZSB3aG8g aXMgaW1wbGVtZW50aW5nIEd1QyBjaGFuZ2VzLCBoZSBzdWdnZXN0ZWQgdG8gdXNlIGFuIGluZGVw ZW5kZW50IHBhZ2UKPj4gZm9yIHRoZSByZWFzb25zIC0gR3VDIGFyZWEgbWlnaHQgZ3JvdyBhbmQg dGhlc2UgV0EgYXJlIGluaXRpYWxpemVkIG9ubHkgb25jZSBhbmQKPj4gYXJlIG5vdCBjaGFuZ2Vk IGFmdGVyd2FyZHMgc28gd2UgY2FuIHNoYXJlIHRoZW0gc2hhcmUgYWNyb3NzIGFsbCBjb250ZXh0 cy4KPj4KPj4gVGhlIHBhZ2UgaXMgdXBkYXRlZCB3aXRoIFdBIGR1cmluZyByZW5kZXIgcmluZyBp bml0LiBUaGlzIGhhcyBhbiBhZHZhbnRhZ2Ugb2YKPj4gbm90IGFkZGluZyBtb3JlIHNwZWNpYWwg Y2FzZXMgdG8gZGVmYXVsdF9jb250ZXh0Lgo+Pgo+PiBXZSBkb24ndCBrbm93IHVwZnJvbnQgdGhl IG51bWJlciBvZiBXQSB3ZSB3aWxsIGFwcGx5aW5nIHVzaW5nIHRoZXNlIGJhdGNoIGJ1ZmZlcnMu Cj4+IEZvciB0aGlzIHJlYXNvbiB0aGUgc2l6ZSB3YXMgZml4ZWQgZWFybGllciBidXQgaXQgaXMg bm90IGEgZ29vZCBpZGVhLiBUbyBmaXggdGhpcywKPj4gdGhlIGZ1bmN0aW9ucyB0aGF0IGxvYWQg aW5zdHJ1Y3Rpb25zIGFyZSBtb2RpZmllZCB0byByZXBvcnQgdGhlIG5vIG9mIGNvbW1hbmRzCj4+ IGluc2VydGVkIGFuZCB0aGUgc2l6ZSBpcyBub3cgY2FsY3VsYXRlZCBhZnRlciB0aGUgYmF0Y2gg aXMgdXBkYXRlZC4gQSBtYWNybyBpcwo+PiBpbnRyb2R1Y2VkIHRvIGFkZCBjb21tYW5kcyB0byB0 aGVzZSBiYXRjaCBidWZmZXJzIHdoaWNoIGFsc28gY2hlY2tzIGZvciBvdmVyZmxvdwo+PiBhbmQg cmV0dXJucyBlcnJvci4KPj4gV2UgaGF2ZSBhIGZ1bGwgcGFnZSBkZWRpY2F0ZWQgZm9yIHRoZXNl IFdBIHNvIHRoYXQgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yCj4+IGdvb2QgbnVtYmVyIG9mIFdB LCBhbnl0aGluZyBtb3JlIG1lYW5zIHdlIGhhdmUgbWFqb3IgaXNzdWVzLgo+PiBUaGUgbGlzdCBm b3IgR2VuOCBpcyBzbWFsbCwgc2FtZSBmb3IgR2VuOSBhbHNvLCBtYXliZSBmZXcgbW9yZSBnZXRz IGFkZGVkCj4+IGdvaW5nIGZvcndhcmQgYnV0IG5vdCBjbG9zZSB0byBmaWxsaW5nIGVudGlyZSBw YWdlLiBDaHJpcyBzdWdnZXN0ZWQgYSB0d28tcGFzcwo+PiBhcHByb2FjaCBidXQgd2UgYWdyZWVk IHRvIGdvIHdpdGggc2luZ2xlIHBhZ2Ugc2V0dXAgYXMgaXQgaXMgYSBvbmUtb2ZmIHJvdXRpbmUK Pj4gYW5kIHNpbXBsZXIgY29kZSB3aW5zLgo+Pgo+PiBPbmUgYWRkaXRpb25hbCBvcHRpb24gaXMg b2Zmc2V0IGZpZWxkIHdoaWNoIGlzIGhlbHBmdWwgaWYgd2Ugd291bGQgbGlrZSB0bwo+PiBoYXZl IG11bHRpcGxlIGJhdGNoZXMgYXQgZGlmZmVyZW50IG9mZnNldHMgd2l0aGluIHRoZSBwYWdlIGFu ZCBzZWxlY3QgdGhlbQo+PiBiYXNlZCBvbiBzb21lIGNyaXRlcmlhLiBUaGlzIGlzIG5vdCBhIHJl cXVpcmVtZW50IGF0IHRoaXMgcG9pbnQgYnV0IGNvdWxkCj4+IGhlbHAgaW4gZnV0dXJlIChEYXZl KS4KPj4KPj4gQ2hyaXMgcHJvdmlkZWQgc29tZSBoZWxwZnVsIG1hY3JvcyBhbmQgc3VnZ2VzdGlv bnMgd2hpY2ggZnVydGhlciBzaW1wbGlmaWVkCj4+IHRoZSBjb2RlLCB0aGV5IHdpbGwgYWxzbyBo ZWxwIGluIHJlZHVjaW5nIGNvZGUgZHVwbGljYXRpb24gd2hlbiBXQSBmb3IKPj4gb3RoZXIgR2Vu IGFyZSBhZGRlZC4gQWRkIGRldGFpbGVkIGNvbW1lbnRzIGV4cGxhaW5pbmcgcmVzdHJpY3Rpb25z Lgo+PiBVc2UgZG8ge30gd2hpbGUoMCkgZm9yIHdhX2N0eF9lbWl0KCkgbWFjcm8uCj4+Cj4+IChN YW55IHRoYW5rcyB0byBDaHJpcywgRGF2ZSBhbmQgVGhvbWFzIGZvciB0aGVpciByZXZpZXdzIGFu ZCBpbnB1dHMpCj4+Cj4+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KPj4gQ2M6IERhdmUgR29yZG9uIDxkYXZpZC5zLmdvcmRvbkBpbnRlbC5jb20+Cj4+IFNpZ25l ZC1vZmYtYnk6IFJhZmFlbCBCYXJiYWxobyA8cmFmYWVsLmJhcmJhbGhvQGludGVsLmNvbT4KPj4g U2lnbmVkLW9mZi1ieTogQXJ1biBTaWx1dmVyeSA8YXJ1bi5zaWx1dmVyeUBsaW51eC5pbnRlbC5j b20+Cj4+IFJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4KPgo+IFdoeSBkaWQgeW91IHJlc2VuZCB0aGlzIG9uZSAtIEkgZG9uJ3Qgc3BvdCBhbnkgdXBk YXRlcyBpbiB0aGUgY29tbWl0Cj4gbWVzc2FnZT8gQWxzbyB3aGVuIHJlc2VuZGluZyBwbGVhc2Ug aW4tcmVwbHkgdG8gdGhlIGNvcnJlc3BvbmRpbmcgcHJldmlvdXMKPiB2ZXJzaW9uIG9mIHRoYXQg cGF0Y2gsIG5vdCB0aGUgY292ZXIgbGV0dGVyIG9mIHRoZSBzZXJpZXMuCgpIaSBEYW5pZWwsCgpU aGlzIGlzIHRoZSB1cGRhdGVkIHBhdGNoIHdpdGggZG8ge30gd2hpbGUgKDApLgpJIHBpY2tlZCBh IGRpZmZlcmVudCBtZXNzYWdlLWlkIG9mIGNvdmVyIGxldHRlciBieSBtaXN0YWtlIHdoaWNoIGlz IHdoeSAKaXQgaXMgcmVwbGllZCB0byBjb3ZlciBsZXR0ZXIgaW5zdGVhZCBvZiB0aGUgY29ycmVz cG9uZGluZyBwYXRjaC4KCnJlZ2FyZHMKQXJ1bgoKPiAtRGFuaWVsCj4KPj4gLS0tCj4+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgMjIzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIHwgIDIxICsrKwo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMjQwIGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+IGluZGV4IDA0 MTNiOGYuLjA1ODUyOTggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+IEBAIC0y MTEsNiArMjExLDcgQEAgZW51bSB7Cj4+ICAgCUZBVUxUX0FORF9DT05USU5VRSAvKiBVbnN1cHBv cnRlZCAqLwo+PiAgIH07Cj4+ICAgI2RlZmluZSBHRU44X0NUWF9JRF9TSElGVCAzMgo+PiArI2Rl ZmluZSBDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVRfREVGQVVMVCAgMHgxNwo+Pgo+PiAgIHN0 YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPj4gICAJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+PiBAQCAtMTA3Nyw2ICsxMDc4 LDE5MSBAQCBzdGF0aWMgaW50IGludGVsX2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4+ICAgCXJldHVybiAwOwo+PiAgIH0KPj4KPj4g KyNkZWZpbmUgd2FfY3R4X2VtaXQoYmF0Y2gsIGNtZCkJCQkJCQlcCj4+ICsJZG8gewkJCQkJCQkJ XAo+PiArCQlpZiAoV0FSTl9PTihpbmRleCA+PSAoUEFHRV9TSVpFIC8gc2l6ZW9mKHVpbnQzMl90 KSkpKSB7CVwKPj4gKwkJCXJldHVybiAtRU5PU1BDOwkJCQkJXAo+PiArCQl9CQkJCQkJCVwKPj4g KwkJYmF0Y2hbaW5kZXgrK10gPSAoY21kKTsJCQkJCVwKPj4gKwl9IHdoaWxlICgwKQo+PiArCj4+ ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90IHdhX2N0eF9zdGFydChzdHJ1Y3QgaTkxNV93YV9jdHhf YmIgKndhX2N0eCwKPj4gKwkJCQkgICAgdWludDMyX3Qgb2Zmc2V0LAo+PiArCQkJCSAgICB1aW50 MzJfdCBzdGFydF9hbGlnbm1lbnQpCj4+ICt7Cj4+ICsJcmV0dXJuIHdhX2N0eC0+b2Zmc2V0ID0g QUxJR04ob2Zmc2V0LCBzdGFydF9hbGlnbm1lbnQpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW5s aW5lIGludCB3YV9jdHhfZW5kKHN0cnVjdCBpOTE1X3dhX2N0eF9iYiAqd2FfY3R4LAo+PiArCQkJ ICAgICB1aW50MzJfdCBvZmZzZXQsCj4+ICsJCQkgICAgIHVpbnQzMl90IHNpemVfYWxpZ25tZW50 KQo+PiArewo+PiArCXdhX2N0eC0+c2l6ZSA9IG9mZnNldCAtIHdhX2N0eC0+b2Zmc2V0Owo+PiAr Cj4+ICsJV0FSTih3YV9jdHgtPnNpemUgJSBzaXplX2FsaWdubWVudCwKPj4gKwkgICAgICJ3YV9j dHhfYmIgZmFpbGVkIHNhbml0eSBjaGVja3M6IHNpemUgJWQgaXMgbm90IGFsaWduZWQgdG8gJWRc biIsCj4+ICsJICAgICB3YV9jdHgtPnNpemUsIHNpemVfYWxpZ25tZW50KTsKPj4gKwlyZXR1cm4g MDsKPj4gK30KPj4gKwo+PiArLyoqCj4+ICsgKiBnZW44X2luaXRfaW5kaXJlY3RjdHhfYmIoKSAt IGluaXRpYWxpemUgaW5kaXJlY3QgY3R4IGJhdGNoIHdpdGggV0EKPj4gKyAqCj4+ICsgKiBAcmlu Zzogb25seSBhcHBsaWNhYmxlIGZvciBSQ1MKPj4gKyAqIEB3YV9jdHg6IHN0cnVjdHVyZSByZXBy ZXNlbnRpbmcgd2FfY3R4Cj4+ICsgKiAgb2Zmc2V0OiBzcGVjaWZpZXMgc3RhcnQgb2YgdGhlIGJh dGNoLCBzaG91bGQgYmUgY2FjaGUtYWxpZ25lZC4gVGhpcyBpcyB1cGRhdGVkCj4+ICsgKiAgICB3 aXRoIHRoZSBvZmZzZXQgdmFsdWUgcmVjZWl2ZWQgYXMgaW5wdXQuCj4+ICsgKiAgc2l6ZTogc2l6 ZSBvZiB0aGUgYmF0Y2ggaW4gRFdPUkRTIGJ1dCBIVyBleHBlY3RzIGluIHRlcm1zIG9mIGNhY2hl bGluZXMKPj4gKyAqIEBiYXRjaDogcGFnZSBpbiB3aGljaCBXQSBhcmUgbG9hZGVkCj4+ICsgKiBA b2Zmc2V0OiBUaGlzIGZpZWxkIHNwZWNpZmllcyB0aGUgc3RhcnQgb2YgdGhlIGJhdGNoLCBpdCBz aG91bGQgYmUKPj4gKyAqICBjYWNoZS1hbGlnbmVkIG90aGVyd2lzZSBpdCBpcyBhZGp1c3RlZCBh Y2NvcmRpbmdseS4KPj4gKyAqICBUeXBpY2FsbHkgd2Ugb25seSBoYXZlIG9uZSBpbmRpcmVjdF9j dHggYW5kIHBlcl9jdHggYmF0Y2ggYnVmZmVyIHdoaWNoIGFyZQo+PiArICogIGluaXRpYWxpemVk IGF0IHRoZSBiZWdpbm5pbmcgYW5kIHNoYXJlZCBhY3Jvc3MgYWxsIGNvbnRleHRzIGJ1dCB0aGlz IGZpZWxkCj4+ICsgKiAgaGVscHMgdXMgdG8gaGF2ZSBtdWx0aXBsZSBiYXRjaGVzIGF0IGRpZmZl cmVudCBvZmZzZXRzIGFuZCBzZWxlY3QgdGhlbSBiYXNlZAo+PiArICogIG9uIGEgY3JpdGVyaWEu IEF0IHRoZSBtb21lbnQgdGhpcyBiYXRjaCBhbHdheXMgc3RhcnQgYXQgdGhlIGJlZ2lubmluZyBv ZiB0aGUgcGFnZQo+PiArICogIGFuZCBhdCB0aGlzIHBvaW50IHdlIGRvbid0IGhhdmUgbXVsdGlw bGUgd2FfY3R4IGJhdGNoIGJ1ZmZlcnMuCj4+ICsgKgo+PiArICogIFRoZSBudW1iZXIgb2YgV0Eg YXBwbGllZCBhcmUgbm90IGtub3duIGF0IHRoZSBiZWdpbm5pbmc7IHdlIHVzZSB0aGlzIGZpZWxk Cj4+ICsgKiAgdG8gcmV0dXJuIHRoZSBubyBvZiBEV09SRFMgd3JpdHRlbi4KPj4gKwo+PiArICog IEl0IGlzIHRvIGJlIG5vdGVkIHRoYXQgdGhpcyBiYXRjaCBkb2VzIG5vdCBjb250YWluIE1JX0JB VENIX0JVRkZFUl9FTkQKPj4gKyAqICBzbyBpdCBhZGRzIE5PT1BzIGFzIHBhZGRpbmcgdG8gbWFr ZSBpdCBjYWNoZWxpbmUgYWxpZ25lZC4KPj4gKyAqICBNSV9CQVRDSF9CVUZGRVJfRU5EIHdpbGwg YmUgYWRkZWQgdG8gcGVyY3R4IGJhdGNoIGFuZCBib3RoIG9mIHRoZW0gdG9nZXRoZXIKPj4gKyAq ICBtYWtlcyBhIGNvbXBsZXRlIGJhdGNoIGJ1ZmZlci4KPj4gKyAqCj4+ICsgKiBSZXR1cm46IG5v bi16ZXJvIGlmIHdlIGV4Y2VlZCB0aGUgUEFHRV9TSVpFIGxpbWl0Lgo+PiArICovCj4+ICsKPj4g K3N0YXRpYyBpbnQgZ2VuOF9pbml0X2luZGlyZWN0Y3R4X2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCj4+ICsJCQkJICAgIHN0cnVjdCBpOTE1X3dhX2N0eF9iYiAqd2FfY3R4LAo+PiAr CQkJCSAgICB1aW50MzJfdCAqY29uc3QgYmF0Y2gsCj4+ICsJCQkJICAgIHVpbnQzMl90ICpvZmZz ZXQpCj4+ICt7Cj4+ICsJdWludDMyX3QgaW5kZXggPSB3YV9jdHhfc3RhcnQod2FfY3R4LCAqb2Zm c2V0LCBDQUNIRUxJTkVfRFdPUkRTKTsKPj4gKwo+PiArCS8qIEZJWE1FOiBSZXBsYWNlIG1lIHdp dGggV0EgKi8KPj4gKwl3YV9jdHhfZW1pdChiYXRjaCwgTUlfTk9PUCk7Cj4+ICsKPj4gKwkvKiBQ YWQgdG8gZW5kIG9mIGNhY2hlbGluZSAqLwo+PiArCXdoaWxlIChpbmRleCAlIENBQ0hFTElORV9E V09SRFMpCj4+ICsJCXdhX2N0eF9lbWl0KGJhdGNoLCBNSV9OT09QKTsKPj4gKwo+PiArCS8qCj4+ ICsJICogTUlfQkFUQ0hfQlVGRkVSX0VORCBpcyBub3QgcmVxdWlyZWQgaW4gSW5kaXJlY3QgY3R4 IEJCIGJlY2F1c2UKPj4gKwkgKiBleGVjdXRpb24gZGVwZW5kcyBvbiB0aGUgbGVuZ3RoIHNwZWNp ZmllZCBpbiB0ZXJtcyBvZiBjYWNoZSBsaW5lcwo+PiArCSAqIGluIHRoZSByZWdpc3RlciBDVFhf UkNTX0lORElSRUNUX0NUWAo+PiArCSAqLwo+PiArCj4+ICsJcmV0dXJuIHdhX2N0eF9lbmQod2Ff Y3R4LCAqb2Zmc2V0ID0gaW5kZXgsIENBQ0hFTElORV9EV09SRFMpOwo+PiArfQo+PiArCj4+ICsv KioKPj4gKyAqIGdlbjhfaW5pdF9wZXJjdHhfYmIoKSAtIGluaXRpYWxpemUgcGVyIGN0eCBiYXRj aCB3aXRoIFdBCj4+ICsgKgo+PiArICogQHJpbmc6IG9ubHkgYXBwbGljYWJsZSBmb3IgUkNTCj4+ ICsgKiBAd2FfY3R4OiBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIHdhX2N0eAo+PiArICogIG9mZnNl dDogc3BlY2lmaWVzIHN0YXJ0IG9mIHRoZSBiYXRjaCwgc2hvdWxkIGJlIGNhY2hlLWFsaWduZWQu Cj4+ICsgKiAgc2l6ZTogc2l6ZSBvZiB0aGUgYmF0Y2ggaW4gRFdPUkRTIGJ1dCBIVyBleHBlY3Rz IGluIHRlcm1zIG9mIGNhY2hlbGluZXMKPj4gKyAqIEBvZmZzZXQ6IFRoaXMgZmllbGQgc3BlY2lm aWVzIHRoZSBzdGFydCBvZiB0aGlzIGJhdGNoLgo+PiArICogICBUaGlzIGJhdGNoIGlzIHN0YXJ0 ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5kaXJlY3RfY3R4IGJhdGNoLiBTaW5jZSB3ZSBlbnN1cmUK Pj4gKyAqICAgdGhhdCBpbmRpcmVjdF9jdHggZW5kcyBvbiBhIGNhY2hlbGluZSB0aGlzIGJhdGNo IGlzIGFsaWduZWQgYXV0b21hdGljYWxseS4KPj4gKyAqCj4+ICsgKiAgIFRoZSBudW1iZXIgb2Yg RFdPUkRTIHdyaXR0ZW4gYXJlIHJldHVybmVkIHVzaW5nIHRoaXMgZmllbGQuCj4+ICsgKgo+PiAr ICogIFRoaXMgYmF0Y2ggaXMgdGVybWluYXRlZCB3aXRoIE1JX0JBVENIX0JVRkZFUl9FTkQgYW5k IHNvIHdlIG5lZWQgbm90IGFkZCBwYWRkaW5nCj4+ICsgKiAgdG8gYWxpZ24gaXQgd2l0aCBjYWNo ZWxpbmUgYXMgcGFkZGluZyBhZnRlciBNSV9CQVRDSF9CVUZGRVJfRU5EIGlzIHJlZHVuZGFudC4K Pj4gKyAqLwo+PiArc3RhdGljIGludCBnZW44X2luaXRfcGVyY3R4X2JiKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsCj4+ICsJCQkgICAgICAgc3RydWN0IGk5MTVfd2FfY3R4X2JiICp3YV9j dHgsCj4+ICsJCQkgICAgICAgdWludDMyX3QgKmNvbnN0IGJhdGNoLAo+PiArCQkJICAgICAgIHVp bnQzMl90ICpvZmZzZXQpCj4+ICt7Cj4+ICsJdWludDMyX3QgaW5kZXggPSB3YV9jdHhfc3RhcnQo d2FfY3R4LCAqb2Zmc2V0LCBDQUNIRUxJTkVfRFdPUkRTKTsKPj4gKwo+PiArCXdhX2N0eF9lbWl0 KGJhdGNoLCBNSV9CQVRDSF9CVUZGRVJfRU5EKTsKPj4gKwo+PiArCXJldHVybiB3YV9jdHhfZW5k KHdhX2N0eCwgKm9mZnNldCA9IGluZGV4LCAxKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBs cmNfc2V0dXBfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2l6 ZSkKPj4gK3sKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJcmluZy0+d2FfY3R4Lm9iaiA9IGk5MTVf Z2VtX2FsbG9jX29iamVjdChyaW5nLT5kZXYsIFBBR0VfQUxJR04oc2l6ZSkpOwo+PiArCWlmICgh cmluZy0+d2FfY3R4Lm9iaikgewo+PiArCQlEUk1fREVCVUdfRFJJVkVSKCJhbGxvYyBMUkMgV0Eg Y3R4IGJhY2tpbmcgb2JqIGZhaWxlZC5cbiIpOwo+PiArCQlyZXR1cm4gLUVOT01FTTsKPj4gKwl9 Cj4+ICsKPj4gKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ocmluZy0+d2FfY3R4Lm9iaiwg UEFHRV9TSVpFLCAwKTsKPj4gKwlpZiAocmV0KSB7Cj4+ICsJCURSTV9ERUJVR19EUklWRVIoInBp biBMUkMgV0EgY3R4IGJhY2tpbmcgb2JqIGZhaWxlZDogJWRcbiIsCj4+ICsJCQkJIHJldCk7Cj4+ ICsJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZyaW5nLT53YV9jdHgub2JqLT5iYXNlKTsK Pj4gKwkJcmV0dXJuIHJldDsKPj4gKwl9Cj4+ICsKPj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+ PiArc3RhdGljIHZvaWQgbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nKQo+PiArewo+PiArCWlmIChyaW5nLT53YV9jdHgub2JqKSB7Cj4+ICsJCWk5MTVf Z2VtX29iamVjdF9nZ3R0X3VucGluKHJpbmctPndhX2N0eC5vYmopOwo+PiArCQlkcm1fZ2VtX29i amVjdF91bnJlZmVyZW5jZSgmcmluZy0+d2FfY3R4Lm9iai0+YmFzZSk7Cj4+ICsJCXJpbmctPndh X2N0eC5vYmogPSBOVUxMOwo+PiArCX0KPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBpbnRlbF9p bml0X3dvcmthcm91bmRfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPj4gK3sKPj4g KwlpbnQgcmV0Owo+PiArCXVpbnQzMl90ICpiYXRjaDsKPj4gKwl1aW50MzJfdCBvZmZzZXQ7Cj4+ ICsJc3RydWN0IHBhZ2UgKnBhZ2U7Cj4+ICsJc3RydWN0IGk5MTVfY3R4X3dvcmthcm91bmRzICp3 YV9jdHggPSAmcmluZy0+d2FfY3R4Owo+PiArCj4+ICsJV0FSTl9PTihyaW5nLT5pZCAhPSBSQ1Mp Owo+PiArCj4+ICsJcmV0ID0gbHJjX3NldHVwX3dhX2N0eF9vYmoocmluZywgUEFHRV9TSVpFKTsK Pj4gKwlpZiAocmV0KSB7Cj4+ICsJCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBzZXR1cCBj b250ZXh0IFdBIHBhZ2U6ICVkXG4iLCByZXQpOwo+PiArCQlyZXR1cm4gcmV0Owo+PiArCX0KPj4g Kwo+PiArCXBhZ2UgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2Uod2FfY3R4LT5vYmosIDApOwo+ PiArCWJhdGNoID0ga21hcF9hdG9taWMocGFnZSk7Cj4+ICsJb2Zmc2V0ID0gMDsKPj4gKwo+PiAr CWlmIChJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA9PSA4KSB7Cj4+ICsJCXJldCA9IGdlbjhf aW5pdF9pbmRpcmVjdGN0eF9iYihyaW5nLAo+PiArCQkJCQkgICAgICAgJndhX2N0eC0+aW5kaXJl Y3RfY3R4LAo+PiArCQkJCQkgICAgICAgYmF0Y2gsCj4+ICsJCQkJCSAgICAgICAmb2Zmc2V0KTsK Pj4gKwkJaWYgKHJldCkKPj4gKwkJCWdvdG8gb3V0Owo+PiArCj4+ICsJCXJldCA9IGdlbjhfaW5p dF9wZXJjdHhfYmIocmluZywKPj4gKwkJCQkJICAmd2FfY3R4LT5wZXJfY3R4LAo+PiArCQkJCQkg IGJhdGNoLAo+PiArCQkJCQkgICZvZmZzZXQpOwo+PiArCQlpZiAocmV0KQo+PiArCQkJZ290byBv dXQ7Cj4+ICsJfSBlbHNlIHsKPj4gKwkJV0FSTihJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA+ PSA4LAo+PiArCQkgICAgICJXQSBiYXRjaCBidWZmZXIgaXMgbm90IGluaXRpYWxpemVkIGZvciBH ZW4lZFxuIiwKPj4gKwkJICAgICBJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbik7Cj4+ICsJCWxy Y19kZXN0cm95X3dhX2N0eF9vYmoocmluZyk7Cj4+ICsJfQo+PiArCj4+ICtvdXQ6Cj4+ICsJa3Vu bWFwX2F0b21pYyhiYXRjaCk7Cj4+ICsJaWYgKHJldCkKPj4gKwkJbHJjX2Rlc3Ryb3lfd2FfY3R4 X29iaihyaW5nKTsKPj4gKwo+PiArCXJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMg aW50IGdlbjhfaW5pdF9jb21tb25fcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ PiAgIHsKPj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKPj4gQEAgLTE0 MTEsNiArMTU5Nyw4IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZykKPj4gICAJCWt1bm1hcChzZ19wYWdlKHJpbmctPnN0YXR1c19w YWdlLm9iai0+cGFnZXMtPnNnbCkpOwo+PiAgIAkJcmluZy0+c3RhdHVzX3BhZ2Uub2JqID0gTlVM TDsKPj4gICAJfQo+PiArCj4+ICsJbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihyaW5nKTsKPj4gICB9 Cj4+Cj4+ICAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+PiBAQCAtMTQ3NCw3ICsxNjYyLDIy IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCj4+ICAgCWlmIChyZXQpCj4+ICAgCQlyZXR1cm4gcmV0Owo+Pgo+PiAtCXJldHVybiBp bnRlbF9pbml0X3BpcGVfY29udHJvbChyaW5nKTsKPj4gKwlyZXQgPSBpbnRlbF9pbml0X3dvcmth cm91bmRfYmIocmluZyk7Cj4+ICsJaWYgKHJldCkgewo+PiArCQkvKgo+PiArCQkgKiBXZSBjb250 aW51ZSBldmVuIGlmIHdlIGZhaWwgdG8gaW5pdGlhbGl6ZSBXQSBiYXRjaAo+PiArCQkgKiBiZWNh dXNlIHdlIG9ubHkgZXhwZWN0IHJhcmUgZ2xpdGNoZXMgYnV0IG5vdGhpbmcKPj4gKwkJICogY3Jp dGljYWwgdG8gcHJldmVudCB1cyBmcm9tIHVzaW5nIEdQVQo+PiArCQkgKi8KPj4gKwkJRFJNX0VS Uk9SKCJXQSBiYXRjaCBidWZmZXIgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlZFxuIiwKPj4gKwkJ CSAgcmV0KTsKPj4gKwl9Cj4+ICsKPj4gKwlyZXQgPSBpbnRlbF9pbml0X3BpcGVfY29udHJvbChy aW5nKTsKPj4gKwlpZiAocmV0KQo+PiArCQlscmNfZGVzdHJveV93YV9jdHhfb2JqKHJpbmcpOwo+ PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGludCBsb2dpY2FsX2Jz ZF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gQEAgLTE3NTQsMTUgKzE5NTcs MjcgQEAgcG9wdWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X28KPj4gICAJcmVnX3N0YXRlW0NUWF9TRUNPTkRf QkJfU1RBVEVdID0gcmluZy0+bW1pb19iYXNlICsgMHgxMTg7Cj4+ICAgCXJlZ19zdGF0ZVtDVFhf U0VDT05EX0JCX1NUQVRFKzFdID0gMDsKPj4gICAJaWYgKHJpbmctPmlkID09IFJDUykgewo+PiAt CQkvKiBUT0RPOiBhY2NvcmRpbmcgdG8gQlNwZWMsIHRoZSByZWdpc3RlciBzdGF0ZSBjb250ZXh0 Cj4+IC0JCSAqIGZvciBDSFYgZG9lcyBub3QgaGF2ZSB0aGVzZS4gT1RPSCwgdGhlc2UgcmVnaXN0 ZXJzIGRvCj4+IC0JCSAqIGV4aXN0IGluIENIVi4gSSdtIHdhaXRpbmcgZm9yIGEgY2xhcmlmaWNh dGlvbiAqLwo+PiAgIAkJcmVnX3N0YXRlW0NUWF9CQl9QRVJfQ1RYX1BUUl0gPSByaW5nLT5tbWlv X2Jhc2UgKyAweDFjMDsKPj4gICAJCXJlZ19zdGF0ZVtDVFhfQkJfUEVSX0NUWF9QVFIrMV0gPSAw Owo+PiAgIAkJcmVnX3N0YXRlW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYXSA9IHJpbmctPm1taW9fYmFz ZSArIDB4MWM0Owo+PiAgIAkJcmVnX3N0YXRlW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYKzFdID0gMDsK Pj4gICAJCXJlZ19zdGF0ZVtDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVRdID0gcmluZy0+bW1p b19iYXNlICsgMHgxYzg7Cj4+ICAgCQlyZWdfc3RhdGVbQ1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZG U0VUKzFdID0gMDsKPj4gKwkJaWYgKHJpbmctPndhX2N0eC5vYmopIHsKPj4gKwkJCXN0cnVjdCBp OTE1X2N0eF93b3JrYXJvdW5kcyAqd2FfY3R4ID0gJnJpbmctPndhX2N0eDsKPj4gKwkJCXVpbnQz Ml90IGdndHRfb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHdhX2N0eC0+b2JqKTsK Pj4gKwo+PiArCQkJcmVnX3N0YXRlW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYKzFdID0KPj4gKwkJCQko Z2d0dF9vZmZzZXQgKyB3YV9jdHgtPmluZGlyZWN0X2N0eC5vZmZzZXQgKiBzaXplb2YodWludDMy X3QpKSB8Cj4+ICsJCQkJKHdhX2N0eC0+aW5kaXJlY3RfY3R4LnNpemUgLyBDQUNIRUxJTkVfRFdP UkRTKTsKPj4gKwo+PiArCQkJcmVnX3N0YXRlW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYX09GRlNFVCsx XSA9Cj4+ICsJCQkJQ1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VUX0RFRkFVTFQgPDwgNjsKPj4g Kwo+PiArCQkJcmVnX3N0YXRlW0NUWF9CQl9QRVJfQ1RYX1BUUisxXSA9Cj4+ICsJCQkJKGdndHRf b2Zmc2V0ICsgd2FfY3R4LT5wZXJfY3R4Lm9mZnNldCAqIHNpemVvZih1aW50MzJfdCkpIHwKPj4g KwkJCQkweDAxOwo+PiArCQl9Cj4+ICAgCX0KPj4gICAJcmVnX3N0YXRlW0NUWF9MUklfSEVBREVS XzFdID0gTUlfTE9BRF9SRUdJU1RFUl9JTU0oOSk7Cj4+ICAgCXJlZ19zdGF0ZVtDVFhfTFJJX0hF QURFUl8xXSB8PSBNSV9MUklfRk9SQ0VfUE9TVEVEOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCj4+IGluZGV4IDM5ZjZkZmMuLjA2NDY3YzYgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4gQEAgLTEyLDYgKzEyLDcgQEAKPj4g ICAgKiB3b3JrYXJvdW5kcyEKPj4gICAgKi8KPj4gICAjZGVmaW5lIENBQ0hFTElORV9CWVRFUyA2 NAo+PiArI2RlZmluZSBDQUNIRUxJTkVfRFdPUkRTIChDQUNIRUxJTkVfQllURVMgLyBzaXplb2Yo dWludDMyX3QpKQo+Pgo+PiAgIC8qCj4+ICAgICogR2VuMiBCU3BlYyAiMS4gUHJvZ3JhbW1pbmcg RW52aXJvbm1lbnQiIC8gMS40LjQuNiAiUmluZyBCdWZmZXIgVXNlIgo+PiBAQCAtMTE5LDYgKzEy MCwyNSBAQCBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciB7Cj4+Cj4+ICAgc3RydWN0CWludGVsX2Nv bnRleHQ7Cj4+Cj4+ICsvKgo+PiArICogd2UgdXNlIGEgc2luZ2xlIHBhZ2UgdG8gbG9hZCBjdHgg d29ya2Fyb3VuZHMgc28gYWxsIG9mIHRoZXNlCj4+ICsgKiB2YWx1ZXMgYXJlIHJlZmVycmVkIGlu IHRlcm1zIG9mIGR3b3Jkcwo+PiArICoKPj4gKyAqIHN0cnVjdCBpOTE1X3dhX2N0eF9iYjoKPj4g KyAqICBvZmZzZXQ6IHNwZWNpZmllcyBiYXRjaCBzdGFydGluZyBwb3NpdGlvbiwgYWxzbyBoZWxw ZnVsIGluIGNhc2UKPj4gKyAqICAgIGlmIHdlIHdhbnQgdG8gaGF2ZSBtdWx0aXBsZSBiYXRjaGVz IGF0IGRpZmZlcmVudCBvZmZzZXRzIGJhc2VkIG9uCj4+ICsgKiAgICBzb21lIGNyaXRlcmlhLiBJ dCBpcyBub3QgYSByZXF1aXJlbWVudCBhdCB0aGUgbW9tZW50IGJ1dCBwcm92aWRlcwo+PiArICog ICAgYW4gb3B0aW9uIGZvciBmdXR1cmUgdXNlLgo+PiArICogIHNpemU6IHNpemUgb2YgdGhlIGJh dGNoIGluIERXT1JEUwo+PiArICovCj4+ICtzdHJ1Y3QgIGk5MTVfY3R4X3dvcmthcm91bmRzIHsK Pj4gKwlzdHJ1Y3QgaTkxNV93YV9jdHhfYmIgewo+PiArCQl1MzIgb2Zmc2V0Owo+PiArCQl1MzIg c2l6ZTsKPj4gKwl9IGluZGlyZWN0X2N0eCwgcGVyX2N0eDsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqOwo+PiArfTsKPj4gKwo+PiAgIHN0cnVjdCAgaW50ZWxfZW5naW5lX2Nz IHsKPj4gICAJY29uc3QgY2hhcgkqbmFtZTsKPj4gICAJZW51bSBpbnRlbF9yaW5nX2lkIHsKPj4g QEAgLTE0Miw2ICsxNjIsNyBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7Cj4+ICAgCXN0cnVj dCBpOTE1X2dlbV9iYXRjaF9wb29sIGJhdGNoX3Bvb2w7Cj4+Cj4+ICAgCXN0cnVjdCBpbnRlbF9o d19zdGF0dXNfcGFnZSBzdGF0dXNfcGFnZTsKPj4gKwlzdHJ1Y3QgaTkxNV9jdHhfd29ya2Fyb3Vu ZHMgd2FfY3R4Owo+Pgo+PiAgIAl1bnNpZ25lZCBpcnFfcmVmY291bnQ7IC8qIHByb3RlY3RlZCBi eSBkZXZfcHJpdi0+aXJxX2xvY2sgKi8KPj4gICAJdTMyCQlpcnFfZW5hYmxlX21hc2s7CS8qIGJp dG1hc2sgdG8gZW5hYmxlIHJpbmcgaW50ZXJydXB0ICovCj4+IC0tCj4+IDIuMy4wCj4+Cj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdm eCBtYWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==