From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v6 1/6] drm/i915/gen8: Add infrastructure to initialize WA batch buffers Date: Mon, 22 Jun 2015 17:41:03 +0200 Message-ID: <20150622154103.GY25769@phenom.ffwll.local> References: <1434735435-14728-1-git-send-email-arun.siluvery@linux.intel.com> <1434737221-3842-1-git-send-email-arun.siluvery@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) by gabe.freedesktop.org (Postfix) with ESMTP id 08C8C6E7EB for ; Mon, 22 Jun 2015 08:38:16 -0700 (PDT) Received: by wiwl6 with SMTP id l6so41042933wiw.0 for ; Mon, 22 Jun 2015 08:38:15 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1434737221-3842-1-git-send-email-arun.siluvery@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Arun Siluvery Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMTksIDIwMTUgYXQgMDc6MDc6MDFQTSArMDEwMCwgQXJ1biBTaWx1dmVyeSB3 cm90ZToKPiBTb21lIG9mIHRoZSBXQSBhcmUgdG8gYmUgYXBwbGllZCBkdXJpbmcgY29udGV4dCBz YXZlIGJ1dCBiZWZvcmUgcmVzdG9yZSBhbmQKPiBzb21lIGF0IHRoZSBlbmQgb2YgY29udGV4dCBz YXZlL3Jlc3RvcmUgYnV0IGJlZm9yZSBleGVjdXRpbmcgdGhlIGluc3RydWN0aW9ucwo+IGluIHRo ZSByaW5nLCBXQSBiYXRjaCBidWZmZXJzIGFyZSBjcmVhdGVkIGZvciB0aGlzIHB1cnBvc2UgYW5k IHRoZXNlIFdBIGNhbm5vdAo+IGJlIGFwcGxpZWQgdXNpbmcgbm9ybWFsIG1lYW5zLiBFYWNoIGNv bnRleHQgaGFzIHR3byByZWdpc3RlcnMgdG8gbG9hZCB0aGUKPiBvZmZzZXRzIG9mIHRoZXNlIGJh dGNoIGJ1ZmZlcnMuIElmIHRoZXkgYXJlIG5vbi16ZXJvLCBIVyB1bmRlcnN0YW5kcyB0aGF0IGl0 Cj4gbmVlZCB0byBleGVjdXRlIHRoZXNlIGJhdGNoZXMuCj4gCj4gdjE6IEluIHRoaXMgdmVyc2lv biB0d28gc2VwYXJhdGUgcmluZ19idWZmZXIgb2JqZWN0cyB3ZXJlIHVzZWQgdG8gbG9hZCBXQQo+ IGluc3RydWN0aW9ucyBmb3IgaW5kaXJlY3QgYW5kIHBlciBjb250ZXh0IGJhdGNoIGJ1ZmZlcnMg YW5kIHRoZXkgd2VyZSBwYXJ0Cj4gb2YgZXZlcnkgY29udGV4dC4KPiAKPiB2MjogQ2hyaXMgc3Vn Z2VzdGVkIHRvIGluY2x1ZGUgYWRkaXRpb25hbCBwYWdlIGluIGNvbnRleHQgYW5kIHVzZSBpdCB0 byBsb2FkCj4gdGhlc2UgV0EgaW5zdGVhZCBvZiBjcmVhdGluZyBzZXBhcmF0ZSBvYmplY3RzLiBU aGlzIHdpbGwgc2ltcGxpZnkgbG90IG9mIHRoaW5ncwo+IGFzIHdlIG5lZWQgbm90IGV4cGxpY2l0 eSBwaW4vdW5waW4gdGhlbS4gVGhvbWFzIERhbmllbCBmdXJ0aGVyIHBvaW50ZWQgdGhhdCBHdUMK PiBpcyBwbGFubmluZyB0byB1c2UgYSBzaW1pbGFyIHNldHVwIHRvIHNoYXJlIGRhdGEgYmV0d2Vl biBHdUMgYW5kIGRyaXZlciBhbmQKPiBXQSBiYXRjaCBidWZmZXJzIGNhbiBwcm9iYWJseSBzaGFy ZSB0aGF0IHBhZ2UuIEhvd2V2ZXIgYWZ0ZXIgZGlzY3Vzc2lvbnMgd2l0aAo+IERhdmUgd2hvIGlz IGltcGxlbWVudGluZyBHdUMgY2hhbmdlcywgaGUgc3VnZ2VzdGVkIHRvIHVzZSBhbiBpbmRlcGVu ZGVudCBwYWdlCj4gZm9yIHRoZSByZWFzb25zIC0gR3VDIGFyZWEgbWlnaHQgZ3JvdyBhbmQgdGhl c2UgV0EgYXJlIGluaXRpYWxpemVkIG9ubHkgb25jZSBhbmQKPiBhcmUgbm90IGNoYW5nZWQgYWZ0 ZXJ3YXJkcyBzbyB3ZSBjYW4gc2hhcmUgdGhlbSBzaGFyZSBhY3Jvc3MgYWxsIGNvbnRleHRzLgo+ IAo+IFRoZSBwYWdlIGlzIHVwZGF0ZWQgd2l0aCBXQSBkdXJpbmcgcmVuZGVyIHJpbmcgaW5pdC4g VGhpcyBoYXMgYW4gYWR2YW50YWdlIG9mCj4gbm90IGFkZGluZyBtb3JlIHNwZWNpYWwgY2FzZXMg dG8gZGVmYXVsdF9jb250ZXh0Lgo+IAo+IFdlIGRvbid0IGtub3cgdXBmcm9udCB0aGUgbnVtYmVy IG9mIFdBIHdlIHdpbGwgYXBwbHlpbmcgdXNpbmcgdGhlc2UgYmF0Y2ggYnVmZmVycy4KPiBGb3Ig dGhpcyByZWFzb24gdGhlIHNpemUgd2FzIGZpeGVkIGVhcmxpZXIgYnV0IGl0IGlzIG5vdCBhIGdv b2QgaWRlYS4gVG8gZml4IHRoaXMsCj4gdGhlIGZ1bmN0aW9ucyB0aGF0IGxvYWQgaW5zdHJ1Y3Rp b25zIGFyZSBtb2RpZmllZCB0byByZXBvcnQgdGhlIG5vIG9mIGNvbW1hbmRzCj4gaW5zZXJ0ZWQg YW5kIHRoZSBzaXplIGlzIG5vdyBjYWxjdWxhdGVkIGFmdGVyIHRoZSBiYXRjaCBpcyB1cGRhdGVk LiBBIG1hY3JvIGlzCj4gaW50cm9kdWNlZCB0byBhZGQgY29tbWFuZHMgdG8gdGhlc2UgYmF0Y2gg YnVmZmVycyB3aGljaCBhbHNvIGNoZWNrcyBmb3Igb3ZlcmZsb3cKPiBhbmQgcmV0dXJucyBlcnJv ci4KPiBXZSBoYXZlIGEgZnVsbCBwYWdlIGRlZGljYXRlZCBmb3IgdGhlc2UgV0Egc28gdGhhdCBz aG91bGQgYmUgc3VmZmljaWVudCBmb3IKPiBnb29kIG51bWJlciBvZiBXQSwgYW55dGhpbmcgbW9y ZSBtZWFucyB3ZSBoYXZlIG1ham9yIGlzc3Vlcy4KPiBUaGUgbGlzdCBmb3IgR2VuOCBpcyBzbWFs bCwgc2FtZSBmb3IgR2VuOSBhbHNvLCBtYXliZSBmZXcgbW9yZSBnZXRzIGFkZGVkCj4gZ29pbmcg Zm9yd2FyZCBidXQgbm90IGNsb3NlIHRvIGZpbGxpbmcgZW50aXJlIHBhZ2UuIENocmlzIHN1Z2dl c3RlZCBhIHR3by1wYXNzCj4gYXBwcm9hY2ggYnV0IHdlIGFncmVlZCB0byBnbyB3aXRoIHNpbmds ZSBwYWdlIHNldHVwIGFzIGl0IGlzIGEgb25lLW9mZiByb3V0aW5lCj4gYW5kIHNpbXBsZXIgY29k ZSB3aW5zLgo+IAo+IE9uZSBhZGRpdGlvbmFsIG9wdGlvbiBpcyBvZmZzZXQgZmllbGQgd2hpY2gg aXMgaGVscGZ1bCBpZiB3ZSB3b3VsZCBsaWtlIHRvCj4gaGF2ZSBtdWx0aXBsZSBiYXRjaGVzIGF0 IGRpZmZlcmVudCBvZmZzZXRzIHdpdGhpbiB0aGUgcGFnZSBhbmQgc2VsZWN0IHRoZW0KPiBiYXNl ZCBvbiBzb21lIGNyaXRlcmlhLiBUaGlzIGlzIG5vdCBhIHJlcXVpcmVtZW50IGF0IHRoaXMgcG9p bnQgYnV0IGNvdWxkCj4gaGVscCBpbiBmdXR1cmUgKERhdmUpLgo+IAo+IENocmlzIHByb3ZpZGVk IHNvbWUgaGVscGZ1bCBtYWNyb3MgYW5kIHN1Z2dlc3Rpb25zIHdoaWNoIGZ1cnRoZXIgc2ltcGxp ZmllZAo+IHRoZSBjb2RlLCB0aGV5IHdpbGwgYWxzbyBoZWxwIGluIHJlZHVjaW5nIGNvZGUgZHVw bGljYXRpb24gd2hlbiBXQSBmb3IKPiBvdGhlciBHZW4gYXJlIGFkZGVkLiBBZGQgZGV0YWlsZWQg Y29tbWVudHMgZXhwbGFpbmluZyByZXN0cmljdGlvbnMuCj4gVXNlIGRvIHt9IHdoaWxlKDApIGZv ciB3YV9jdHhfZW1pdCgpIG1hY3JvLgo+IAo+IChNYW55IHRoYW5rcyB0byBDaHJpcywgRGF2ZSBh bmQgVGhvbWFzIGZvciB0aGVpciByZXZpZXdzIGFuZCBpbnB1dHMpCj4gCj4gQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBEYXZlIEdvcmRvbiA8ZGF2aWQu cy5nb3Jkb25AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFJhZmFlbCBCYXJiYWxobyA8cmFm YWVsLmJhcmJhbGhvQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBBcnVuIFNpbHV2ZXJ5IDxh cnVuLnNpbHV2ZXJ5QGxpbnV4LmludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpXaHkgZGlkIHlvdSByZXNlbmQgdGhpcyBvbmUg LSBJIGRvbid0IHNwb3QgYW55IHVwZGF0ZXMgaW4gdGhlIGNvbW1pdAptZXNzYWdlPyBBbHNvIHdo ZW4gcmVzZW5kaW5nIHBsZWFzZSBpbi1yZXBseSB0byB0aGUgY29ycmVzcG9uZGluZyBwcmV2aW91 cwp2ZXJzaW9uIG9mIHRoYXQgcGF0Y2gsIG5vdCB0aGUgY292ZXIgbGV0dGVyIG9mIHRoZSBzZXJp ZXMuCi1EYW5pZWwKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAg ICAgICB8IDIyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgMjEgKysrCj4gIDIgZmlsZXMgY2hhbmdl ZCwgMjQwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiBpbmRleCAwNDEzYjhmLi4wNTg1Mjk4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMKPiBAQCAtMjExLDYgKzIxMSw3IEBAIGVudW0gewo+ICAJRkFVTFRfQU5EX0NPTlRJ TlVFIC8qIFVuc3VwcG9ydGVkICovCj4gIH07Cj4gICNkZWZpbmUgR0VOOF9DVFhfSURfU0hJRlQg MzIKPiArI2RlZmluZSBDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVRfREVGQVVMVCAgMHgxNwo+ ICAKPiAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLAo+ICAJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+IEBAIC0xMDc3LDYg KzEwNzgsMTkxIEBAIHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2Vt aXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ ICsjZGVmaW5lIHdhX2N0eF9lbWl0KGJhdGNoLCBjbWQpCQkJCQkJXAo+ICsJZG8gewkJCQkJCQkJ XAo+ICsJCWlmIChXQVJOX09OKGluZGV4ID49IChQQUdFX1NJWkUgLyBzaXplb2YodWludDMyX3Qp KSkpIHsJXAo+ICsJCQlyZXR1cm4gLUVOT1NQQzsJCQkJCVwKPiArCQl9CQkJCQkJCVwKPiArCQli YXRjaFtpbmRleCsrXSA9IChjbWQpOwkJCQkJXAo+ICsJfSB3aGlsZSAoMCkKPiArCj4gK3N0YXRp YyBpbmxpbmUgdWludDMyX3Qgd2FfY3R4X3N0YXJ0KHN0cnVjdCBpOTE1X3dhX2N0eF9iYiAqd2Ff Y3R4LAo+ICsJCQkJICAgIHVpbnQzMl90IG9mZnNldCwKPiArCQkJCSAgICB1aW50MzJfdCBzdGFy dF9hbGlnbm1lbnQpCj4gK3sKPiArCXJldHVybiB3YV9jdHgtPm9mZnNldCA9IEFMSUdOKG9mZnNl dCwgc3RhcnRfYWxpZ25tZW50KTsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBpbnQgd2FfY3R4 X2VuZChzdHJ1Y3QgaTkxNV93YV9jdHhfYmIgKndhX2N0eCwKPiArCQkJICAgICB1aW50MzJfdCBv ZmZzZXQsCj4gKwkJCSAgICAgdWludDMyX3Qgc2l6ZV9hbGlnbm1lbnQpCj4gK3sKPiArCXdhX2N0 eC0+c2l6ZSA9IG9mZnNldCAtIHdhX2N0eC0+b2Zmc2V0Owo+ICsKPiArCVdBUk4od2FfY3R4LT5z aXplICUgc2l6ZV9hbGlnbm1lbnQsCj4gKwkgICAgICJ3YV9jdHhfYmIgZmFpbGVkIHNhbml0eSBj aGVja3M6IHNpemUgJWQgaXMgbm90IGFsaWduZWQgdG8gJWRcbiIsCj4gKwkgICAgIHdhX2N0eC0+ c2l6ZSwgc2l6ZV9hbGlnbm1lbnQpOwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gKy8qKgo+ICsg KiBnZW44X2luaXRfaW5kaXJlY3RjdHhfYmIoKSAtIGluaXRpYWxpemUgaW5kaXJlY3QgY3R4IGJh dGNoIHdpdGggV0EKPiArICoKPiArICogQHJpbmc6IG9ubHkgYXBwbGljYWJsZSBmb3IgUkNTCj4g KyAqIEB3YV9jdHg6IHN0cnVjdHVyZSByZXByZXNlbnRpbmcgd2FfY3R4Cj4gKyAqICBvZmZzZXQ6 IHNwZWNpZmllcyBzdGFydCBvZiB0aGUgYmF0Y2gsIHNob3VsZCBiZSBjYWNoZS1hbGlnbmVkLiBU aGlzIGlzIHVwZGF0ZWQKPiArICogICAgd2l0aCB0aGUgb2Zmc2V0IHZhbHVlIHJlY2VpdmVkIGFz IGlucHV0Lgo+ICsgKiAgc2l6ZTogc2l6ZSBvZiB0aGUgYmF0Y2ggaW4gRFdPUkRTIGJ1dCBIVyBl eHBlY3RzIGluIHRlcm1zIG9mIGNhY2hlbGluZXMKPiArICogQGJhdGNoOiBwYWdlIGluIHdoaWNo IFdBIGFyZSBsb2FkZWQKPiArICogQG9mZnNldDogVGhpcyBmaWVsZCBzcGVjaWZpZXMgdGhlIHN0 YXJ0IG9mIHRoZSBiYXRjaCwgaXQgc2hvdWxkIGJlCj4gKyAqICBjYWNoZS1hbGlnbmVkIG90aGVy d2lzZSBpdCBpcyBhZGp1c3RlZCBhY2NvcmRpbmdseS4KPiArICogIFR5cGljYWxseSB3ZSBvbmx5 IGhhdmUgb25lIGluZGlyZWN0X2N0eCBhbmQgcGVyX2N0eCBiYXRjaCBidWZmZXIgd2hpY2ggYXJl Cj4gKyAqICBpbml0aWFsaXplZCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBzaGFyZWQgYWNyb3NzIGFs bCBjb250ZXh0cyBidXQgdGhpcyBmaWVsZAo+ICsgKiAgaGVscHMgdXMgdG8gaGF2ZSBtdWx0aXBs ZSBiYXRjaGVzIGF0IGRpZmZlcmVudCBvZmZzZXRzIGFuZCBzZWxlY3QgdGhlbSBiYXNlZAo+ICsg KiAgb24gYSBjcml0ZXJpYS4gQXQgdGhlIG1vbWVudCB0aGlzIGJhdGNoIGFsd2F5cyBzdGFydCBh dCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBwYWdlCj4gKyAqICBhbmQgYXQgdGhpcyBwb2ludCB3ZSBk b24ndCBoYXZlIG11bHRpcGxlIHdhX2N0eCBiYXRjaCBidWZmZXJzLgo+ICsgKgo+ICsgKiAgVGhl IG51bWJlciBvZiBXQSBhcHBsaWVkIGFyZSBub3Qga25vd24gYXQgdGhlIGJlZ2lubmluZzsgd2Ug dXNlIHRoaXMgZmllbGQKPiArICogIHRvIHJldHVybiB0aGUgbm8gb2YgRFdPUkRTIHdyaXR0ZW4u Cj4gKwo+ICsgKiAgSXQgaXMgdG8gYmUgbm90ZWQgdGhhdCB0aGlzIGJhdGNoIGRvZXMgbm90IGNv bnRhaW4gTUlfQkFUQ0hfQlVGRkVSX0VORAo+ICsgKiAgc28gaXQgYWRkcyBOT09QcyBhcyBwYWRk aW5nIHRvIG1ha2UgaXQgY2FjaGVsaW5lIGFsaWduZWQuCj4gKyAqICBNSV9CQVRDSF9CVUZGRVJf RU5EIHdpbGwgYmUgYWRkZWQgdG8gcGVyY3R4IGJhdGNoIGFuZCBib3RoIG9mIHRoZW0gdG9nZXRo ZXIKPiArICogIG1ha2VzIGEgY29tcGxldGUgYmF0Y2ggYnVmZmVyLgo+ICsgKgo+ICsgKiBSZXR1 cm46IG5vbi16ZXJvIGlmIHdlIGV4Y2VlZCB0aGUgUEFHRV9TSVpFIGxpbWl0Lgo+ICsgKi8KPiAr Cj4gK3N0YXRpYyBpbnQgZ2VuOF9pbml0X2luZGlyZWN0Y3R4X2JiKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsCj4gKwkJCQkgICAgc3RydWN0IGk5MTVfd2FfY3R4X2JiICp3YV9jdHgsCj4g KwkJCQkgICAgdWludDMyX3QgKmNvbnN0IGJhdGNoLAo+ICsJCQkJICAgIHVpbnQzMl90ICpvZmZz ZXQpCj4gK3sKPiArCXVpbnQzMl90IGluZGV4ID0gd2FfY3R4X3N0YXJ0KHdhX2N0eCwgKm9mZnNl dCwgQ0FDSEVMSU5FX0RXT1JEUyk7Cj4gKwo+ICsJLyogRklYTUU6IFJlcGxhY2UgbWUgd2l0aCBX QSAqLwo+ICsJd2FfY3R4X2VtaXQoYmF0Y2gsIE1JX05PT1ApOwo+ICsKPiArCS8qIFBhZCB0byBl bmQgb2YgY2FjaGVsaW5lICovCj4gKwl3aGlsZSAoaW5kZXggJSBDQUNIRUxJTkVfRFdPUkRTKQo+ ICsJCXdhX2N0eF9lbWl0KGJhdGNoLCBNSV9OT09QKTsKPiArCj4gKwkvKgo+ICsJICogTUlfQkFU Q0hfQlVGRkVSX0VORCBpcyBub3QgcmVxdWlyZWQgaW4gSW5kaXJlY3QgY3R4IEJCIGJlY2F1c2UK PiArCSAqIGV4ZWN1dGlvbiBkZXBlbmRzIG9uIHRoZSBsZW5ndGggc3BlY2lmaWVkIGluIHRlcm1z IG9mIGNhY2hlIGxpbmVzCj4gKwkgKiBpbiB0aGUgcmVnaXN0ZXIgQ1RYX1JDU19JTkRJUkVDVF9D VFgKPiArCSAqLwo+ICsKPiArCXJldHVybiB3YV9jdHhfZW5kKHdhX2N0eCwgKm9mZnNldCA9IGlu ZGV4LCBDQUNIRUxJTkVfRFdPUkRTKTsKPiArfQo+ICsKPiArLyoqCj4gKyAqIGdlbjhfaW5pdF9w ZXJjdHhfYmIoKSAtIGluaXRpYWxpemUgcGVyIGN0eCBiYXRjaCB3aXRoIFdBCj4gKyAqCj4gKyAq IEByaW5nOiBvbmx5IGFwcGxpY2FibGUgZm9yIFJDUwo+ICsgKiBAd2FfY3R4OiBzdHJ1Y3R1cmUg cmVwcmVzZW50aW5nIHdhX2N0eAo+ICsgKiAgb2Zmc2V0OiBzcGVjaWZpZXMgc3RhcnQgb2YgdGhl IGJhdGNoLCBzaG91bGQgYmUgY2FjaGUtYWxpZ25lZC4KPiArICogIHNpemU6IHNpemUgb2YgdGhl IGJhdGNoIGluIERXT1JEUyBidXQgSFcgZXhwZWN0cyBpbiB0ZXJtcyBvZiBjYWNoZWxpbmVzCj4g KyAqIEBvZmZzZXQ6IFRoaXMgZmllbGQgc3BlY2lmaWVzIHRoZSBzdGFydCBvZiB0aGlzIGJhdGNo Lgo+ICsgKiAgIFRoaXMgYmF0Y2ggaXMgc3RhcnRlZCBpbW1lZGlhdGVseSBhZnRlciBpbmRpcmVj dF9jdHggYmF0Y2guIFNpbmNlIHdlIGVuc3VyZQo+ICsgKiAgIHRoYXQgaW5kaXJlY3RfY3R4IGVu ZHMgb24gYSBjYWNoZWxpbmUgdGhpcyBiYXRjaCBpcyBhbGlnbmVkIGF1dG9tYXRpY2FsbHkuCj4g KyAqCj4gKyAqICAgVGhlIG51bWJlciBvZiBEV09SRFMgd3JpdHRlbiBhcmUgcmV0dXJuZWQgdXNp bmcgdGhpcyBmaWVsZC4KPiArICoKPiArICogIFRoaXMgYmF0Y2ggaXMgdGVybWluYXRlZCB3aXRo IE1JX0JBVENIX0JVRkZFUl9FTkQgYW5kIHNvIHdlIG5lZWQgbm90IGFkZCBwYWRkaW5nCj4gKyAq ICB0byBhbGlnbiBpdCB3aXRoIGNhY2hlbGluZSBhcyBwYWRkaW5nIGFmdGVyIE1JX0JBVENIX0JV RkZFUl9FTkQgaXMgcmVkdW5kYW50Lgo+ICsgKi8KPiArc3RhdGljIGludCBnZW44X2luaXRfcGVy Y3R4X2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gKwkJCSAgICAgICBzdHJ1Y3Qg aTkxNV93YV9jdHhfYmIgKndhX2N0eCwKPiArCQkJICAgICAgIHVpbnQzMl90ICpjb25zdCBiYXRj aCwKPiArCQkJICAgICAgIHVpbnQzMl90ICpvZmZzZXQpCj4gK3sKPiArCXVpbnQzMl90IGluZGV4 ID0gd2FfY3R4X3N0YXJ0KHdhX2N0eCwgKm9mZnNldCwgQ0FDSEVMSU5FX0RXT1JEUyk7Cj4gKwo+ ICsJd2FfY3R4X2VtaXQoYmF0Y2gsIE1JX0JBVENIX0JVRkZFUl9FTkQpOwo+ICsKPiArCXJldHVy biB3YV9jdHhfZW5kKHdhX2N0eCwgKm9mZnNldCA9IGluZGV4LCAxKTsKPiArfQo+ICsKPiArc3Rh dGljIGludCBscmNfc2V0dXBfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LCB1MzIgc2l6ZSkKPiArewo+ICsJaW50IHJldDsKPiArCj4gKwlyaW5nLT53YV9jdHgub2JqID0g aTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHJpbmctPmRldiwgUEFHRV9BTElHTihzaXplKSk7Cj4gKwlp ZiAoIXJpbmctPndhX2N0eC5vYmopIHsKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJhbGxvYyBMUkMg V0EgY3R4IGJhY2tpbmcgb2JqIGZhaWxlZC5cbiIpOwo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJ fQo+ICsKPiArCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihyaW5nLT53YV9jdHgub2JqLCBQ QUdFX1NJWkUsIDApOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9ERUJVR19EUklWRVIoInBpbiBM UkMgV0EgY3R4IGJhY2tpbmcgb2JqIGZhaWxlZDogJWRcbiIsCj4gKwkJCQkgcmV0KTsKPiArCQlk cm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmcmluZy0+d2FfY3R4Lm9iai0+YmFzZSk7Cj4gKwkJ cmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ ICt7Cj4gKwlpZiAocmluZy0+d2FfY3R4Lm9iaikgewo+ICsJCWk5MTVfZ2VtX29iamVjdF9nZ3R0 X3VucGluKHJpbmctPndhX2N0eC5vYmopOwo+ICsJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNl KCZyaW5nLT53YV9jdHgub2JqLT5iYXNlKTsKPiArCQlyaW5nLT53YV9jdHgub2JqID0gTlVMTDsK PiArCX0KPiArfQo+ICsKPiArc3RhdGljIGludCBpbnRlbF9pbml0X3dvcmthcm91bmRfYmIoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiArewo+ICsJaW50IHJldDsKPiArCXVpbnQzMl90 ICpiYXRjaDsKPiArCXVpbnQzMl90IG9mZnNldDsKPiArCXN0cnVjdCBwYWdlICpwYWdlOwo+ICsJ c3RydWN0IGk5MTVfY3R4X3dvcmthcm91bmRzICp3YV9jdHggPSAmcmluZy0+d2FfY3R4Owo+ICsK PiArCVdBUk5fT04ocmluZy0+aWQgIT0gUkNTKTsKPiArCj4gKwlyZXQgPSBscmNfc2V0dXBfd2Ff Y3R4X29iaihyaW5nLCBQQUdFX1NJWkUpOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9ERUJVR19E UklWRVIoIkZhaWxlZCB0byBzZXR1cCBjb250ZXh0IFdBIHBhZ2U6ICVkXG4iLCByZXQpOwo+ICsJ CXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ICsJcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFn ZSh3YV9jdHgtPm9iaiwgMCk7Cj4gKwliYXRjaCA9IGttYXBfYXRvbWljKHBhZ2UpOwo+ICsJb2Zm c2V0ID0gMDsKPiArCj4gKwlpZiAoSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4gPT0gOCkgewo+ ICsJCXJldCA9IGdlbjhfaW5pdF9pbmRpcmVjdGN0eF9iYihyaW5nLAo+ICsJCQkJCSAgICAgICAm d2FfY3R4LT5pbmRpcmVjdF9jdHgsCj4gKwkJCQkJICAgICAgIGJhdGNoLAo+ICsJCQkJCSAgICAg ICAmb2Zmc2V0KTsKPiArCQlpZiAocmV0KQo+ICsJCQlnb3RvIG91dDsKPiArCj4gKwkJcmV0ID0g Z2VuOF9pbml0X3BlcmN0eF9iYihyaW5nLAo+ICsJCQkJCSAgJndhX2N0eC0+cGVyX2N0eCwKPiAr CQkJCQkgIGJhdGNoLAo+ICsJCQkJCSAgJm9mZnNldCk7Cj4gKwkJaWYgKHJldCkKPiArCQkJZ290 byBvdXQ7Cj4gKwl9IGVsc2Ugewo+ICsJCVdBUk4oSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4g Pj0gOCwKPiArCQkgICAgICJXQSBiYXRjaCBidWZmZXIgaXMgbm90IGluaXRpYWxpemVkIGZvciBH ZW4lZFxuIiwKPiArCQkgICAgIElOVEVMX0lORk8ocmluZy0+ZGV2KS0+Z2VuKTsKPiArCQlscmNf ZGVzdHJveV93YV9jdHhfb2JqKHJpbmcpOwo+ICsJfQo+ICsKPiArb3V0Ogo+ICsJa3VubWFwX2F0 b21pYyhiYXRjaCk7Cj4gKwlpZiAocmV0KQo+ICsJCWxyY19kZXN0cm95X3dhX2N0eF9vYmoocmlu Zyk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAgc3RhdGljIGludCBnZW44X2luaXRf Y29tbW9uX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgewo+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKPiBAQCAtMTQxMSw2ICsxNTk3LDggQEAgdm9p ZCBpbnRlbF9sb2dpY2FsX3JpbmdfY2xlYW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KQo+ICAJCWt1bm1hcChzZ19wYWdlKHJpbmctPnN0YXR1c19wYWdlLm9iai0+cGFnZXMtPnNnbCkp Owo+ICAJCXJpbmctPnN0YXR1c19wYWdlLm9iaiA9IE5VTEw7Cj4gIAl9Cj4gKwo+ICsJbHJjX2Rl c3Ryb3lfd2FfY3R4X29iaihyaW5nKTsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBsb2dpY2FsX3Jp bmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQo+IEBAIC0xNDc0LDcgKzE2NjIsMjIgQEAgc3RhdGljIGludCBsb2dpY2FsX3JlbmRlcl9y aW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJu IHJldDsKPiAgCj4gLQlyZXR1cm4gaW50ZWxfaW5pdF9waXBlX2NvbnRyb2wocmluZyk7Cj4gKwly ZXQgPSBpbnRlbF9pbml0X3dvcmthcm91bmRfYmIocmluZyk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJ LyoKPiArCQkgKiBXZSBjb250aW51ZSBldmVuIGlmIHdlIGZhaWwgdG8gaW5pdGlhbGl6ZSBXQSBi YXRjaAo+ICsJCSAqIGJlY2F1c2Ugd2Ugb25seSBleHBlY3QgcmFyZSBnbGl0Y2hlcyBidXQgbm90 aGluZwo+ICsJCSAqIGNyaXRpY2FsIHRvIHByZXZlbnQgdXMgZnJvbSB1c2luZyBHUFUKPiArCQkg Ki8KPiArCQlEUk1fRVJST1IoIldBIGJhdGNoIGJ1ZmZlciBpbml0aWFsaXphdGlvbiBmYWlsZWQ6 ICVkXG4iLAo+ICsJCQkgIHJldCk7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0gaW50ZWxfaW5pdF9waXBl X2NvbnRyb2wocmluZyk7Cj4gKwlpZiAocmV0KQo+ICsJCWxyY19kZXN0cm95X3dhX2N0eF9vYmoo cmluZyk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAgfQo+ICAKPiAgc3RhdGljIGludCBsb2dpY2Fs X2JzZF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBAQCAtMTc1NCwxNSArMTk1 NywyNyBAQCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfbwo+ICAJcmVnX3N0YXRlW0NUWF9TRUNPTkRf QkJfU1RBVEVdID0gcmluZy0+bW1pb19iYXNlICsgMHgxMTg7Cj4gIAlyZWdfc3RhdGVbQ1RYX1NF Q09ORF9CQl9TVEFURSsxXSA9IDA7Cj4gIAlpZiAocmluZy0+aWQgPT0gUkNTKSB7Cj4gLQkJLyog VE9ETzogYWNjb3JkaW5nIHRvIEJTcGVjLCB0aGUgcmVnaXN0ZXIgc3RhdGUgY29udGV4dAo+IC0J CSAqIGZvciBDSFYgZG9lcyBub3QgaGF2ZSB0aGVzZS4gT1RPSCwgdGhlc2UgcmVnaXN0ZXJzIGRv Cj4gLQkJICogZXhpc3QgaW4gQ0hWLiBJJ20gd2FpdGluZyBmb3IgYSBjbGFyaWZpY2F0aW9uICov Cj4gIAkJcmVnX3N0YXRlW0NUWF9CQl9QRVJfQ1RYX1BUUl0gPSByaW5nLT5tbWlvX2Jhc2UgKyAw eDFjMDsKPiAgCQlyZWdfc3RhdGVbQ1RYX0JCX1BFUl9DVFhfUFRSKzFdID0gMDsKPiAgCQlyZWdf c3RhdGVbQ1RYX1JDU19JTkRJUkVDVF9DVFhdID0gcmluZy0+bW1pb19iYXNlICsgMHgxYzQ7Cj4g IAkJcmVnX3N0YXRlW0NUWF9SQ1NfSU5ESVJFQ1RfQ1RYKzFdID0gMDsKPiAgCQlyZWdfc3RhdGVb Q1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VUXSA9IHJpbmctPm1taW9fYmFzZSArIDB4MWM4Owo+ ICAJCXJlZ19zdGF0ZVtDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVQrMV0gPSAwOwo+ICsJCWlm IChyaW5nLT53YV9jdHgub2JqKSB7Cj4gKwkJCXN0cnVjdCBpOTE1X2N0eF93b3JrYXJvdW5kcyAq d2FfY3R4ID0gJnJpbmctPndhX2N0eDsKPiArCQkJdWludDMyX3QgZ2d0dF9vZmZzZXQgPSBpOTE1 X2dlbV9vYmpfZ2d0dF9vZmZzZXQod2FfY3R4LT5vYmopOwo+ICsKPiArCQkJcmVnX3N0YXRlW0NU WF9SQ1NfSU5ESVJFQ1RfQ1RYKzFdID0KPiArCQkJCShnZ3R0X29mZnNldCArIHdhX2N0eC0+aW5k aXJlY3RfY3R4Lm9mZnNldCAqIHNpemVvZih1aW50MzJfdCkpIHwKPiArCQkJCSh3YV9jdHgtPmlu ZGlyZWN0X2N0eC5zaXplIC8gQ0FDSEVMSU5FX0RXT1JEUyk7Cj4gKwo+ICsJCQlyZWdfc3RhdGVb Q1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VUKzFdID0KPiArCQkJCUNUWF9SQ1NfSU5ESVJFQ1Rf Q1RYX09GRlNFVF9ERUZBVUxUIDw8IDY7Cj4gKwo+ICsJCQlyZWdfc3RhdGVbQ1RYX0JCX1BFUl9D VFhfUFRSKzFdID0KPiArCQkJCShnZ3R0X29mZnNldCArIHdhX2N0eC0+cGVyX2N0eC5vZmZzZXQg KiBzaXplb2YodWludDMyX3QpKSB8Cj4gKwkJCQkweDAxOwo+ICsJCX0KPiAgCX0KPiAgCXJlZ19z dGF0ZVtDVFhfTFJJX0hFQURFUl8xXSA9IE1JX0xPQURfUkVHSVNURVJfSU1NKDkpOwo+ICAJcmVn X3N0YXRlW0NUWF9MUklfSEVBREVSXzFdIHw9IE1JX0xSSV9GT1JDRV9QT1NURUQ7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGluZGV4IDM5ZjZkZmMuLjA2NDY3YzYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gQEAgLTEyLDYg KzEyLDcgQEAKPiAgICogd29ya2Fyb3VuZHMhCj4gICAqLwo+ICAjZGVmaW5lIENBQ0hFTElORV9C WVRFUyA2NAo+ICsjZGVmaW5lIENBQ0hFTElORV9EV09SRFMgKENBQ0hFTElORV9CWVRFUyAvIHNp emVvZih1aW50MzJfdCkpCj4gIAo+ICAvKgo+ICAgKiBHZW4yIEJTcGVjICIxLiBQcm9ncmFtbWlu ZyBFbnZpcm9ubWVudCIgLyAxLjQuNC42ICJSaW5nIEJ1ZmZlciBVc2UiCj4gQEAgLTExOSw2ICsx MjAsMjUgQEAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgewo+ICAKPiAgc3RydWN0CWludGVsX2Nv bnRleHQ7Cj4gIAo+ICsvKgo+ICsgKiB3ZSB1c2UgYSBzaW5nbGUgcGFnZSB0byBsb2FkIGN0eCB3 b3JrYXJvdW5kcyBzbyBhbGwgb2YgdGhlc2UKPiArICogdmFsdWVzIGFyZSByZWZlcnJlZCBpbiB0 ZXJtcyBvZiBkd29yZHMKPiArICoKPiArICogc3RydWN0IGk5MTVfd2FfY3R4X2JiOgo+ICsgKiAg b2Zmc2V0OiBzcGVjaWZpZXMgYmF0Y2ggc3RhcnRpbmcgcG9zaXRpb24sIGFsc28gaGVscGZ1bCBp biBjYXNlCj4gKyAqICAgIGlmIHdlIHdhbnQgdG8gaGF2ZSBtdWx0aXBsZSBiYXRjaGVzIGF0IGRp ZmZlcmVudCBvZmZzZXRzIGJhc2VkIG9uCj4gKyAqICAgIHNvbWUgY3JpdGVyaWEuIEl0IGlzIG5v dCBhIHJlcXVpcmVtZW50IGF0IHRoZSBtb21lbnQgYnV0IHByb3ZpZGVzCj4gKyAqICAgIGFuIG9w dGlvbiBmb3IgZnV0dXJlIHVzZS4KPiArICogIHNpemU6IHNpemUgb2YgdGhlIGJhdGNoIGluIERX T1JEUwo+ICsgKi8KPiArc3RydWN0ICBpOTE1X2N0eF93b3JrYXJvdW5kcyB7Cj4gKwlzdHJ1Y3Qg aTkxNV93YV9jdHhfYmIgewo+ICsJCXUzMiBvZmZzZXQ7Cj4gKwkJdTMyIHNpemU7Cj4gKwl9IGlu ZGlyZWN0X2N0eCwgcGVyX2N0eDsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7 Cj4gK307Cj4gKwo+ICBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7Cj4gIAljb25zdCBjaGFyCSpu YW1lOwo+ICAJZW51bSBpbnRlbF9yaW5nX2lkIHsKPiBAQCAtMTQyLDYgKzE2Miw3IEBAIHN0cnVj dCAgaW50ZWxfZW5naW5lX2NzIHsKPiAgCXN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sIGJhdGNo X3Bvb2w7Cj4gIAo+ICAJc3RydWN0IGludGVsX2h3X3N0YXR1c19wYWdlIHN0YXR1c19wYWdlOwo+ ICsJc3RydWN0IGk5MTVfY3R4X3dvcmthcm91bmRzIHdhX2N0eDsKPiAgCj4gIAl1bnNpZ25lZCBp cnFfcmVmY291bnQ7IC8qIHByb3RlY3RlZCBieSBkZXZfcHJpdi0+aXJxX2xvY2sgKi8KPiAgCXUz MgkJaXJxX2VuYWJsZV9tYXNrOwkvKiBiaXRtYXNrIHRvIGVuYWJsZSByaW5nIGludGVycnVwdCAq Lwo+IC0tIAo+IDIuMy4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=