From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akash Goel Subject: Re: [PATCH v4 2/4] drm/i915: New drm crtc property for varying the Pipe Src size Date: Sun, 01 Jun 2014 12:19:24 +0530 Message-ID: <1401605364.3595.6.camel@akashgoe-desktop> References: <1395805781-21617-1-git-send-email-akash.goel@intel.com> <1397990658-24812-1-git-send-email-akash.goel@intel.com> <20140429140659.GF18465@intel.com> <1399198911.22943.48.camel@akashgoe-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 AFE046E23B for ; Sat, 31 May 2014 23:46:13 -0700 (PDT) In-Reply-To: <1399198911.22943.48.camel@akashgoe-desktop> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGkgVmlsbGUsCgpQbGVhc2UgY291bGQgeW91IHJlc3BvbmQgdG8gbXkgbGFzdCBtYWlsLgpUaGlz IHdpbGwgZW5hYmxlIG1lIHRvIG1ha2UgZnVydGhlciBwcm9ncmVzcyBvbiB0aGlzIHBhdGNoLgoK QmVzIFJlZ2FyZHMKQWthc2gKCk9uIFN1biwgMjAxNC0wNS0wNCBhdCAxNTo1MSArMDUzMCwgQWth c2ggR29lbCB3cm90ZToKPiBPbiBUdWUsIDIwMTQtMDQtMjkgYXQgMTc6MDYgKzAzMDAsIFZpbGxl IFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIFN1biwgQXByIDIwLCAyMDE0IGF0IDA0OjE0OjE4UE0g KzA1MzAsIGFrYXNoLmdvZWxAaW50ZWwuY29tIHdyb3RlOgo+ID4gPiBGcm9tOiBBa2FzaCBHb2Vs IDxha2FzaC5nb2VsQGludGVsLmNvbT4KPiA+ID4gCj4gPiA+IFRoaXMgcGF0Y2ggYWRkcyBhIG5l dyBkcm0gY3J0YyBwcm9wZXJ0eSBmb3IgdmFyeWluZyB0aGUgUGlwZSBTcmMgc2l6ZQo+ID4gPiBv ciB0aGUgUGFuZWwgZml0dGVyIGlucHV0IHNpemUuIFBpcGUgU3JjIGNvbnRyb2xzIHRoZSBzaXpl IHRoYXQgaXMKPiA+ID4gc2NhbGVkIGZyb20uCj4gPiA+IFRoaXMgd2lsbCBhbGxvdyB0byBkeW5h bWljYWxseSBmbGlwICh3aXRob3V0IG1vZGVzZXQpIHRoZSBmcmFtZSBidWZmZXJzCj4gPiA+IG9m IGRpZmZlcmVudCByZXNvbHV0aW9ucwo+ID4gPiAKPiA+ID4gdjI6IEFkZGVkIGEgY2hlY2sgdG8g ZmFpbCB0aGUgc2V0IHByb3BlcnR5IGNhbGwgaWYgUGFuZWwgZml0dGVyIGlzCj4gPiA+IGRpc2Fi bGVkICYgbmV3IFBJUEVTUkMgcHJvZ3JhbW1pbmcgZG8gbm90IG1hdGNoIHdpdGggUElQRSB0aW1p bmdzLgo+ID4gPiBSZW1vdmVkIHRoZSBwaXRjaCBtaXNtYXRjaCBjaGVjayBvbiBmcmFtZSBidWZm ZXIsIHdoZW4gYmVpbmcgZmxpcHBlZC4KPiA+ID4gVGhpcyBpcyBjdXJyZW50bHkgZG9uZSBvbmx5 IGZvciBWTFYvSFNXLgo+ID4gPiAKPiA+ID4gdjM6IE1vZGlmaWVkIHRoZSBjaGVjaywgYWRkZWQg aW4gdjIsIHRvIGNvbnNpZGVyIHRoZSBwbGF0Zm9ybXMgaGF2aW5nCj4gPiA+IFNwbGl0IFBDSC4K PiA+ID4gCj4gPiA+IHY0OiBSZWZhY3RvcmVkIGJhc2VkIG9uIGxhdGVzdCBjb2RlYmFzZS4KPiA+ ID4gVXNlZCAnVUlOVF9NQVgnIG1hY3JvIGluIHBsYWNlIG9mIGNvbnN0YW50Lgo+ID4gPiAKPiA+ ID4gVGVzdGNhc2U6IGlndC9rbXNfcGFuZWxfZml0dGVyX3Rlc3QKPiA+ID4gCj4gPiA+IFNpZ25l ZC1vZmYtYnk6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICA2ICsrKwo+ID4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNzYgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiA+ID4gaW5kZXggN2Q2YWNiNC4uMTA0YTIzMiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gPiA+IEBAIC0xNDQxLDYgKzE0NDEsMTIgQEAgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgewo+ID4gPiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKmJyb2FkY2FzdF9yZ2JfcHJvcGVy dHk7Cj4gPiA+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqZm9yY2VfYXVkaW9fcHJvcGVydHk7Cj4g PiA+ICAKPiA+ID4gKwkvKgo+ID4gPiArCSAqIFByb3BlcnR5IHRvIGR5bmFtaWNhbGx5IHZhcnkg dGhlIHNpemUgb2YgdGhlCj4gPiA+ICsJICogUElQRVNSQyBvciBQYW5lbCBmaXR0ZXIgaW5wdXQg c2l6ZQo+ID4gPiArCSAqLwo+ID4gPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmlucHV0X3NpemVf cHJvcGVydHk7Cj4gPiA+ICsKPiA+ID4gIAl1aW50MzJfdCBod19jb250ZXh0X3NpemU7Cj4gPiA+ ICAJc3RydWN0IGxpc3RfaGVhZCBjb250ZXh0X2xpc3Q7Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCBmMjZiZTRlLi41NDg0YWUyIDEwMDY0 NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IEBAIC04OTAy LDggKzg5MDIsMTggQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCj4gPiA+ICAJICogTm90ZSB0aGF0IHBpdGNoIGNoYW5nZXMgY291bGQgYWxz byBhZmZlY3QgdGhlc2UgcmVnaXN0ZXIuCj4gPiA+ICAJICovCj4gPiA+ICAJaWYgKElOVEVMX0lO Rk8oZGV2KS0+Z2VuID4gMyAmJgo+ID4gPiAtCSAgICAoZmItPm9mZnNldHNbMF0gIT0gY3J0Yy0+ cHJpbWFyeS0+ZmItPm9mZnNldHNbMF0gfHwKPiA+ID4gLQkgICAgIGZiLT5waXRjaGVzWzBdICE9 IGNydGMtPnByaW1hcnktPmZiLT5waXRjaGVzWzBdKSkKPiA+ID4gKwkgICAgKGZiLT5vZmZzZXRz WzBdICE9IGNydGMtPnByaW1hcnktPmZiLT5vZmZzZXRzWzBdKSkKPiA+ID4gKwkJcmV0dXJuIC1F SU5WQUw7Cj4gPiA+ICsKPiA+ID4gKwkvKgo+ID4gPiArCSAqIEJ5cGFzc2luZyB0aGUgZmIgcGl0 Y2ggY2hlY2sgZm9yIFZMVi9IU1csIGFzIHB1cnBvcnRlZGx5IHRoZXJlCj4gPiA+ICsJICogaXMg YSBkeW5hbWljIGZsaXAgc3VwcG9ydCBpbiBWTFYvSFNXLiBUaGlzIHdpbGwgYWxsb3cgdG8KPiA+ ID4gKwkgKiBmbGlwIGZicyBvZiBkaWZmZXJlbnQgcmVzb2x1dGlvbnMgd2l0aG91dCBkb2luZyBh IG1vZGVzZXQuCj4gPiA+ICsJICogVEJELCBjb25maXJtIHRoZSBzYW1lIGZvciBvdGhlciBuZXdl ciBnZW4gcGxhdGZvcm1zIGFsc28uCj4gPiA+ICsJICovCj4gPiA+ICsJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID4gMyAmJgo+ID4gPiArCSAgICAhSVNfVkFMTEVZVklFVyhkZXYpICYmICFJU19I QVNXRUxMKGRldikgJiYKPiA+ID4gKwkgICAgKGZiLT5waXRjaGVzWzBdICE9IGNydGMtPnByaW1h cnktPmZiLT5waXRjaGVzWzBdKSkKPiA+IAo+ID4gTkFLLiBQbGVhc2UgcmVhZCB0aGUgY29tbWVu dCBhYm92ZSB0aGUgY2hlY2sgdG8gdW5kZXJzdGFuZCB3aHkgd2UgY2FuJ3QKPiA+IGp1c3QgY2hh bmdlIHRoZSBzdHJpZGUgaGVyZS4gSSBndWVzcyBvbiBIU1crIGl0IG1pZ2h0IGJlIHBvc3NpYmxl IHNpbmNlCj4gPiBpdCB1c2VzIHRoZSB4L3kgb2Zmc2V0cyBldmVuIHdpdGggbGluZWFyIEZCcyBz byBzdHJpZGUgY2hhbmdlcyBkb24ndAo+ID4gYWZmZWN0IHRoZSBvZmZzZXQuIEFsc28gc3VjaCBj aGFuZ2VzIHNvdWxkIGJlIGluIHNlcGFyYXRlIHBhdGNoZXMKPiA+IGFueXdheS4KPiA+IAo+IAo+ IEFjdHVhbGx5IGFzIHBlciB0aGUgQnNwZWMsIHByb2JhYmx5IHRoZSBwaXRjaC9zdHJpZGUgY2Fu IGJlIGNoYW5nZWQgZm9yCj4gc3luY2hyb25vdXMgZmxpcHMuIAo+IEFzIHBlciB0aGUgZGVzY3Jp cHRpb24gb2YgTUlfRElTUExBWV9GTElQIGZyb20gdGhlIEJzcGVjCj4gIjE1OjYgRGlzcGxheSBC dWZmZXIgUGl0Y2gKPiBGb3IgU3luY2hyb25vdXMgRmxpcHMgYW5kIFN0ZXJlbyAzRCBGbGlwcyBv bmx5LCB0aGlzIGZpZWxkIHNwZWNpZmllcyB0aGUKPiA2NC1ieXRlIGFsaWduZWQgcGl0Y2ggb2Yg dGhlIG5ldyBkaXNwbGF5IGJ1ZmZlci4gRm9yIEFzeW5jaHJvbm91cyBGbGlwcywKPiB0aGlzIHBh cmFtZXRlciBpcyBwcm9ncmFtbWVkIHNvIHRoYXQgYWxsIHRoZSBmbGlwcyBpbiBhIGZsaXAgY2hh aW4KPiBzaG91bGQgbWFpbnRhaW4gdGhlIHNhbWUgcGl0Y2ggYXMgcHJvZ3JhbW1lZCB3aXRoIHRo ZSBsYXN0IHN5bmNocm9ub3VzCj4gZmxpcCBvciBzdGVyZW8gM0QgZmxpcCBvciBkaXJlY3QgdGhy b3VnaCBNTUlPLgo+IFRoZSBEaXNwbGF5IEJ1ZmZlciBQaXRjaCBhbmQgVGlsZSBwYXJhbWV0ZXIg YW5kIERlY3J5cHQgUmVxdWVzdCBmaWVsZHMKPiBjYW5ub3QgYmUgY2hhbmdlZCBmb3IgYXN5bmNo cm9ub3VzIGZsaXBzIChpLmUuLCB0aGUgbmV3IGJ1ZmZlciBtdXN0IGhhdmUKPiB0aGUgc2FtZSBw aXRjaC90aWxlIGZvcm1hdCBhcyB0aGUgcHJldmlvdXMgYnVmZmVyKS4KPiBBc3luY2ggZmxpcHMg YXJlIFN1cHBvcnRlZCBvbiBYLVRpbGVkIEZyYW1lIGJ1ZmZlcnMgb25seS4iCj4gCj4gPiBJIGd1 ZXNzIG9uZSBvcHRpb24gd291bGQgYmUgdXBkYXRlIHRoZSBsaW5lYXIgb2Zmc2V0IHdpdGggTFJJ LCBidXQKPiA+IHNpbmNlIHRoZSBvZmZzZXQgcmVnaXN0ZXIgZ2V0cyBsYXRjaGVkIGluZGVwZW5k ZW50bHkgb2YgdGhlIERTUFNVUkYKPiA+IHdyaXRlIHRoZSBjaGFuZ2VzIGFyZW4ndCBndWFyYW50 ZWVkIHRvIGhhcHBlbiBhdG9taWNhbGx5LiBBbHNvIG9uCj4gPiBWTFYgTFJJIHRvIGRpc3BsYXkg cmVnaXN0ZXJzIGlzIGFwcGFyZW50bHkgYnVzdGVkLgo+ID4gCj4gPiBJZiB5b3UgZG8gZmluZCBh IHdheSB0byBtYWtlIHRoaXMgd29yayBvbiBzb21lIHBsYXRmb3JtcywgdGhlbiB3ZQo+ID4gbmVl ZCB0byBoYXZlIGEgdGVzdCBmb3IgaXQgdG8gbWFrZSBzdXJlIGl0IGRvZXMgdGhlIHJpZ2h0IHRo aW5nLgo+ID4gCj4gCj4gQWN0dWFsbHkgd2UgaGF2ZSBiZWVuIHVzaW5nIE1NSU8gYmFzZWQgZmxp cHMgb24gQllULCBpbnN0ZWFkIG9mIGNvbW1hbmQKPiBzdHJlYW1lciBiYXNlZCBmbGlwcywgc28g dGhlIERTUFNUUklERSAmIERTUFRJTEVPRkYgcmVnaXN0ZXJzIGFyZSBiZWluZwo+IHdyaXR0ZW4g YWxvbmcgd2l0aCBEU1BTVVJGIG9uIGV2ZXJ5IGZsaXAuIAo+IEFzIHBlciB0aGUgZGVzY3JpcHRp b24gb2YgRFNQU1RSSURFIHJlZ2lzdGVyIGluIEJzcGVjLCAKPiAiVGhpcyByZWdpc3RlciBpcyB1 cGRhdGVkIGVpdGhlciB0aHJvdWdoIGEgY29tbWFuZCBwYWNrZXQgcGFzc2VkIHRocm91Z2gKPiB0 aGUgY29tbWFuZCBzdHJlYW0gb3Igd3JpdGVzIHRvIHRoaXMgcmVnaXN0ZXIuIFdoZW4gaXQgaXMg ZGVzaXJlZCB0bwo+IHVwZGF0ZSBib3RoIHRoaXMgYW5kIHRoZSBzdGFydCByZWdpc3RlciwgCj4g dGhlIHN0cmlkZSByZWdpc3RlciBtdXN0IGJlIHdyaXR0ZW4gZmlyc3QgYmVjYXVzZSB0aGUgd3Jp dGUgdG8gdGhlIHN0YXJ0Cj4gcmVnaXN0ZXIgaXMgdGhlIHRyaWdnZXIgdGhhdCBjYXVzZXMgdGhl IHVwZGF0ZSBvZiBib3RoIHJlZ2lzdGVycyBvbiB0aGUKPiBuZXh0IFZCTEFOSyBldmVudCIKPiBT byBvbmNlIHdlIHN3aXRjaCB0byBNTUlPIGZsaXAsIHRoZW4gaXQgc2hhbGwgYmUgdGFrZW4gY2Fy ZS4KPiAKPiAKPiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICAKPiA+ID4gIAlpZiAoaTkx NV90ZXJtaW5hbGx5X3dlZGdlZCgmZGV2X3ByaXYtPmdwdV9lcnJvcikpCj4gPiA+IEBAIC0xMDQy MiwxMSArMTA0MzIsNzEgQEAgb3V0X2NvbmZpZzoKPiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4gPiAg fQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9jcmVhdGVfY3J0Y19wcm9wZXJ0aWVz KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiA+ICsJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gPiArCj4gPiA+ICsJaWYgKCFkZXZfcHJp di0+aW5wdXRfc2l6ZV9wcm9wZXJ0eSkKPiA+ID4gKwkJZGV2X3ByaXYtPmlucHV0X3NpemVfcHJv cGVydHkgPQo+ID4gPiArCQkJZHJtX3Byb3BlcnR5X2NyZWF0ZV9yYW5nZShkZXYsIDAsICJpbnB1 dCBzaXplIiwKPiA+ID4gKwkJCQkJCSAgMCwgVUlOVF9NQVgpOwo+ID4gCj4gPiBJIHRoaW5rIHBl b3BsZSB3b3VsZCBiZSBoYXBwaWVyIHdpdGggc2VwYXJhdGUgd2lkdGgvaGVpZ2h0IHByb3BlcnRp ZXMKPiA+IGluc3RlYWQgb2Ygc3RpY2tpbmcgYm90aCBpbnRvIG9uZSBwcm9wZXJ0eS4KPiA+IAo+ ID4gQWxzbyB0aGlzIHNvdW5kcyBsaWtlIGEgZ2VuZXJhbGx5IHVzZWZ1bCBwcm9wZXJ0eSBmb3Ig aGFyZHdhcmUgYW55IHdoaWNoCj4gPiBoYXMgc29tZSBraW5kIG9mIGZ1bGwgY3J0YyBzY2FsZXIu IFNvIG1heWJlIGl0IHNob3VsZCBiZSBpbiBkcm0gY29yZS4KPiA+IEFsc28gd2hhdCBldmVyIGhh cHBlbmRlZCB0byB0aGUgcHJvcGVydHkgZG9jdW1lbnRhdGlvbiBlZmZvcnQuIERpZCB0aGUKPiA+ IHBhdGNoIGdldCBpbiwgb3Igd2FzIGl0IHJlamVjdGVkLCBvciBpcyBpdCBpbiBsaW1ibz8KPiA+ IAo+IEZpbmUgd2lsbCBzcGxpdCB0aGlzIGludG8gMiBwcm9wZXJ0aWVzIGJ1dCB3aWxsIHRoZXJl IGJlIGFueSBsaW1pdGF0aW9uCj4gaW4gZnV0dXJlIGlmIGEgc2luZ2xlIHByb3BlcnR5IGlzIHBl cnNpc3RlZCB3aXRoIHRvIHNwZWNpZnkgYm90aCBoZWlnaHQKPiAmIHdpZHRoIGhlcmUuCj4gCj4g U2FnYXIgaGFzIHN1Ym1pdHRlZCB0aGUgcGF0Y2ggZm9yIHByb3BlcnR5IGRvY3VtZW50YXRpb24g YW5kIGhlIGdvdCB0aGUKPiBBQ0sgYWxzbyBmcm9tIHRoZSBMYXVyZW50IFBpbmNoYXJ0LCBidXQg SSB0aGluayBEYW5pZWwgaGFzIG5vdCBkb25lIHRoZQo+IHNhbWUuIFBsZWFzZSBjYW4geW91IGtp bmRseSBvbmNlIGNoZWNrIHdpdGggRGFuaWVsIGZvciB0aGlzLgo+IAo+ID4gPiArCj4gPiA+ICsJ aWYgKGRldl9wcml2LT5pbnB1dF9zaXplX3Byb3BlcnR5KQo+ID4gPiArCQlkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmaW50ZWxfY3J0Yy0+YmFzZS5iYXNlLAo+ID4gPiArCQkJCQkgICBkZXZf cHJpdi0+aW5wdXRfc2l6ZV9wcm9wZXJ0eSwKPiA+ID4gKwkJCQkJICAgMCk7Cj4gPiA+ICt9Cj4g PiA+ICsKPiA+ID4gIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ID4gPiAgCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwgdWlu dDY0X3QgdmFsKQo+ID4gPiAgewo+ID4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7Cj4gPiA+ICAJaW50IHJldCA9IC1FTk9FTlQ7Cj4gPiA+ICAKPiA+ID4g KwlpZiAocHJvcGVydHkgPT0gZGV2X3ByaXYtPmlucHV0X3NpemVfcHJvcGVydHkpIHsKPiA+ID4g KwkJaW50IG5ld193aWR0aCA9IChpbnQpKCh2YWwgPj4gMTYpICYgMHhmZmZmKTsKPiA+ID4gKwkJ aW50IG5ld19oZWlnaHQgPSAoaW50KSh2YWwgJiAweGZmZmYpOwo+ID4gPiArCQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Cj4gPiA+ICsJCQkJJmludGVsX2Ny dGMtPmNvbmZpZy5hZGp1c3RlZF9tb2RlOwo+ID4gPiArCj4gPiA+ICsJCWlmICgobmV3X3dpZHRo ID09IGludGVsX2NydGMtPmNvbmZpZy5waXBlX3NyY193KSAmJgo+ID4gPiArCQkgICAgKG5ld19o ZWlnaHQgPT0gaW50ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX2gpKQo+ID4gPiArCQkJcmV0dXJu IDA7Cj4gPiA+ICsKPiA+ID4gKwkJaWYgKCgoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAh PSBuZXdfd2lkdGgpIHx8Cj4gPiA+ICsJCSAgICAgKGFkanVzdGVkX21vZGUtPmNydGNfdmRpc3Bs YXkgIT0gbmV3X2hlaWdodCkpICYmCj4gPiA+ICsJCSAgICAoKEhBU19QQ0hfU1BMSVQoZGV2KSAm Jgo+ID4gPiArCQkJKCFpbnRlbF9jcnRjLT5jb25maWcucGNoX3BmaXQuZW5hYmxlZCkpIHx8Cj4g PiA+ICsJCSAgICAgKCFIQVNfUENIX1NQTElUKGRldikgJiYKPiA+ID4gKwkJCSghaW50ZWxfY3J0 Yy0+Y29uZmlnLmdtY2hfcGZpdC5jb250cm9sKSkpKSB7Cj4gPiA+ICsJCQlEUk1fRVJST1IoIlBJ UEVTUkMgbWlzbWF0Y2ggd2l0aCBQaXBlIHRpbWluZ3MgJiIKPiA+ID4gKwkJCQkgICJQRiBpcyBk aXNhYmxlZFxuIik7Cj4gPiA+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiA+IAo+ID4gVGhpcyByYWlz ZXMgYW4gaW50ZXJlc3RpbmcgcXVlc3Rpb24uIElmIHdlIGNhbid0IHRvZ2dsZSB0aGUgcGZpdCBv bi9vZmYKPiA+IGR5bmFtaWNhbGx5IHNob3VsZCB3ZSBoYXZlIHNvbWUgd2F5IHRvIGZvcmNlIHRo ZSBwZml0IG9uIGF0IG1vZGVzZXQKPiA+IHRpbWUgKGV2ZW4gdy8gMToxIHNjYWxpbmcpIHNvIHRo YXQgaXQncyBwb3NzaWJseSB0byBjaGFuZ2UgdGhlIHNjYWxpbmcKPiA+IGR5bmFtaWNhbGx5IHcv byBhIGZ1bGwgbW9kZXNldC4KPiA+IAo+ID4gT25lIGlkZWEgbWlnaHQgYmUgdG8gdHJlYXQgMCBh cyBhIHNwZWNpYWwgdmFsdWUgZm9yIHRoaXMgcHJvcGVydHkuIElmCj4gPiBib3RoIHdpZHRoIGFu ZCBoZWlnaHQgYXJlIDAgd2UgZG8gdGhlIG9sZCB0aGluZyBhbmQgZGlzYWJsZSBwZml0IGlmCj4g PiB0aGUgc2NhbGluZyBiYXNlZCBvbiB1c2VyIG1vZGUgdnMuIGFkanVzdGVkIG1vZGUgaXMgMTox LCBidXQgaWYgdGhpcwo+ID4gcHJvcGVydHkgaGFzIGFueXRoaW5nIGJ1dCAwLCBhbHdheXMgZW5h YmxlIHBmaXQuIFRob3VnaHRzIGFueW9uZT8KPiA+IAo+IAo+IFllcyBpbiBvcmRlciB0byBiZSBh YmxlIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSB0aGUgcmVzb2x1dGlvbiBvZiBmYidzCj4gYmVpbmcg ZmxpcHBlZCAod2l0aG91dCBhIG1vZGVzZXQpIGZpcnN0IFBhbmVsIGZpdHRlciBoYXMgdG8gYmUg ZW5hYmxlZC4KPiAKPiBTbyAwIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgd2lsbCBjb25zaWRlcmVk IGFzIGRpc2FibGVkIGFuZCBvbGQKPiBjb25kaXRpb24gb2YgZW5hYmxpbmcgUGFuZWwgZml0dGVy IHdpbGwgYmUgZm9sbG93ZWQocmVxdWVzdGVkIG1vZGUgIT0KPiBhZGp1c3RlZCBtb2RlKS4gCj4g QnV0IGlmIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvIHNvbWUgdmFsdWUsIGFuZCBpZiBQYW5lbCBm aXR0ZXIgaXMgbm90Cj4gZW5hYmxlZCBhbHJlYWR5LCBpdCBzaGFsbCBiZSBlbmFibGVkICh3aGlj aCB3aWxsIHJlcXVpcmUgYSBtb2Rlc2V0KS4KPiBDYW4gd2UgZG8gaXQgbGlrZSB0aGlzIHdoZW4g dXNlciBzZXRzIGEgbm9uIHplcm8gdmFsdWUgZm9yIHRoaXMKPiBwcm9wZXJ0eS4KPiAxLiBDaGVj ayBmaXJzdCBpZiBQYW5lbCBmaXR0ZXIgaXMgZW5hYmxlZCBvciBub3QsIGFuZCBpZiBub3QgdGhl biBlbmFibGUKPiBpdCBmb3JjZWZ1bGx5IGJ5cGFzc2luZyB0aGUgb3JpZ2luYWwgY29uZGl0aW9u Lgo+IDIuIFVwZGF0ZSB0aGUgUElQRVNSQyByZWdpc3RlciBsYXRlciBvbiwgd2l0aCB0aGUgbmV3 IHZhbHVlcywgaW4gdGhlCj4gc3Vic2VxdWVudCBQYWdlIGZsaXAgaW9jdGwgKGFuZCBub3QgaW4g dGhlIHNldCBwcm9wZXJ0eSBjYWxsIGl0c2VsZiksCj4gd2hlbiBGQiBvZiB0aGUgbmV3IHJlc29s dXRpb24gd2lsbCBiZSBwYXNzZWQuCj4gIAo+ID4gPiArCQl9Cj4gPiA+ICsKPiA+ID4gKwkJaW50 ZWxfY3J0Yy0+Y29uZmlnLnBpcGVfc3JjX3cgPSBuZXdfd2lkdGg7Cj4gPiA+ICsJCWludGVsX2Ny dGMtPmNvbmZpZy5waXBlX3NyY19oID0gbmV3X2hlaWdodDsKPiA+IAo+ID4gVGhpcyBsb29rcyBs aWtlIGl0IG5lZWRzIG1vcmUgZXJyb3IgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgc2NhbGluZwo+ ID4gcmF0aW8gc3RheXMgd2l0aGluIGFjY2VwdGFibGUgbGltaXRzLgo+ID4gCj4gPiBBbHNvIHdl IG5lZWQgdG8gcmVjaGVjayBwcmltYXJ5IHBsYW5lIEZCIHNpemUgdnMuIG5ldyBQSVBFU1JDLgo+ ID4gCj4gT24gc2V0dGluZyB0aGlzIHByb3BlcnR5LCAgRkIncyBiZWluZyBzdWJzZXF1ZW50bHkg ZmxpcHBlZCBvbiBwcmltYXJ5Cj4gcGxhbmUgc2hhbGwgY29tcGx5IHdpdGggdGhlIG5ldyBQaXBl IFNSQyB2YWx1ZXMuCj4gQW5kIGNoZWNrIGZvciB0aGlzLCBpcyBhbHJlYWR5IGRvbmUgYnkgdGhl IGRybV9jcnRjX2NoZWNrX3ZpZXdwb3J0Cj4gZnVuY3Rpb24gaW4gcGFnZSBmbGlwIGlvY3RsLgo+ IAo+ID4gQW5kIHdlIG5lZWQgdG8gcmVjbGlwIHNwcml0ZXMgYW5kIGN1cnNvcnMuCj4gCj4gPiAK PiA+IFRoaXMgaXMgc3RhcnRpbmcgdG8gYmUgcXVpdGUgYSBsb3Qgb2Ygc3R1ZmYuIFNvIGZvciB0 aGUgaW5pdGlhbAo+ID4gaW1wbGVtZW50YXRpb24gbWF5IGJlIGl0J3MgZWFzaWVyIHRvIGp1c3Qg ZG8gYSBmdWxsIG1vZGVzZXQgaGVyZS4gQW5kCj4gPiBvbmNlIHRoYXQncyBkb25lIHdlIGNhbiBm aWd1cmUgb3V0IGhvdyB0byBhdm9pZCB0aGUgbW9kZXNldC4gV2Ugc2hvdWxkCj4gPiBhbnl3YXkg YmUgbW92aW5nIHRvd2FyZHMgYSB3b3JsZCB3aGVyZSB3ZSBjb21wdXRlIHRoZSBuZXcgY29uZmln LAo+ID4gdmFsaWRhdGUgaXQsIGFuZCB0aGVuIGZpZ3VyZSBvdXQgaWYgd2UgY2FuIGdldCB0aGVy ZSB3L28gYSBmdWxsIG1vZGVzZXQuCj4gPiBTbyBtYXliZSB3ZSBuZWVkIHRvIHN0YXJ0IHdyaXRp bmcgdGhlIGNvZGUgdG8ganVzdCB0aGF0IGFuZCBub3QgbGltaXQKPiA+IG91cnNlbHZlcyB0byBp bXBsZW1lbnRpbmcgc3BlY2lhbCBjb2RlIGZvciBzcGVjaWZpYyBwcm9wZXJ0aWVzLgo+ID4gCj4g Cj4gU29ycnkgY291bGRuJ3QgZnVsbHkgY29tcHJlaGVuZCB5b3VyIGxhc3QgcG9pbnQgaGVyZS4K PiAKPiA+ID4gKwo+ID4gPiArCQlpbnRlbF9jcnRjLT5jb25maWcucmVxdWVzdGVkX21vZGUuaGRp c3BsYXkgPSBuZXdfd2lkdGg7Cj4gPiA+ICsJCWludGVsX2NydGMtPmNvbmZpZy5yZXF1ZXN0ZWRf bW9kZS52ZGlzcGxheSA9IG5ld19oZWlnaHQ7Cj4gPiA+ICsKPiA+ID4gKwkJY3J0Yy0+bW9kZS5o ZGlzcGxheSA9IG5ld193aWR0aDsKPiA+ID4gKwkJY3J0Yy0+bW9kZS52ZGlzcGxheSA9IG5ld19o ZWlnaHQ7Cj4gPiAKPiA+IEhtbS4gVGhpcyB3aWxsIGNhdXNlIHByb2JsZW1zIGlmIHdlIGhhdmUg dG8gZG8gYSBtb2Rlc2V0IHcvbyBhIG5ldyB1c2VyCj4gPiBzcGVjaWZpZWQgbW9kZSAoZWcuIGF0 b21pYyBtb2Rlc2V0IHdoZXJlIGNoYW5nZSBvbiBhbm90aGVyIHBpcGUgcmVxdWlyZXMKPiA+IHVz IHRvIHBlcmZvcm0gbW9kZXNldCBvbiB0aGlzIHBpcGUgYXMgd2VsbCkuCj4gPiAKPiA+IFNvIEkg dGhpbmsgd2UgbmVlZCB0byBsZWF2ZSB0aGUgbW9kZXMgYWxvbmUuIE9uZSB0aGluZyB0byB3b3Jy eSBhYm91dCBpcwo+ID4gb2xkIHVzZXJzcGFjZSB0aGF0IGRvZXNuJ3QgcmVhbGl6ZSB0aGF0IGNo YW5nZXMgaW4gdGhpcyBwcm9wZXJ0eSB3b3VsZAo+ID4gaGF2ZSByYW1pZmljYXRpb25zIG9uIHRo ZSBjcnRjIHZpZXdwb3J0LiBJJ20gbm90IHN1cmUgdGhlcmUncyBhbnl0aGluZwo+ID4gc2FuZSB3 ZSBjYW4gZG8gYnV0IGxldCBvbGQgdXNlcnNwYWNlIHNob290IGl0c2VsZiBpbiB0aGUgZm9vdCBp ZiBpdCBwbGF5cwo+ID4gd2l0aCB0aGlzIHByb3BlcnR5Lgo+ID4gCj4gCj4gQWdhaW4gc29ycnks IGJ1dCBjb3VsZG4ndCBnZXQgeW91ciBvbGQgdXNlciBzcGFjZSBwb2ludC4KPiBTaG91bGQgdGhl ICdoZGlzcGxheScsICd2ZGlzcGxheScgZmllbGRzIGluIG1vZGUgJiBwaXBlIGNvbmZpZwo+IHN0 cnVjdHVyZXMgYmUgYWxzbyB1cGRhdGVkIGhlcmUsIHdoZW4gdGhpcyBwcm9wZXJ0eSBpcyBzZXQg b3IgdGhleSBzaGFsbAo+IGJlIGxlZnQgdW5jaGFuZ2VkID8KPiAKPiA+IFNvIGF0IG1vZGVzZXQg dGltZSB3ZSBuZWVkIHRvIHBvcHVsYXRlIHBpcGVfc3JjX3t3LGh9IGZyb20gdGhlIHVzZXIgbW9k ZQo+ID4gZmlyc3QsIGFuZCB0aGVuIG92ZXJ3cml0ZSB0aG9zZSB3aXRoIHRoZSB2YWx1ZXMgZnJv bSB0aGlzIHByb3BlcnR5IGlmCj4gPiB0aGUgcHJvcGVydHkgdmFsdWUgIT0gMC4gQXNzdW1pbmcg d2UgZ28gd2l0aCBteSAiMCBpcyBzcGVjaWFsIiBwbGFuLgo+ID4gCj4gCj4gSWYgdGhpcyBwcm9w ZXJ0eSBpcyBvbmNlIHNldCBieSBVc2VyLCBhbmQgdGhlbiBpZiBpdCBzdWJzZXF1ZW50bHkgZG9l cyBhCj4gbW9kZXNldCwgdGhlbiB0aGUgJ2ZiJyBwYXNzZWQgd2l0aCB0aGF0IG1vZGVzZXQgY2Fs bCwgc2hhbGwgY29uZm9ybSB0bwo+IHdoaWNoIHJlc29sdXRpb24sIGkuZSB0byB0aGUgbW9kZSBw YXNzZWQgYnkgVXNlciBvciB0byB0aGUgaGVpZ2h0ICYKPiB3aWR0aCBzcGVjaWZpZWQgYnkgdGhl IGN1cnJlbnQgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSA/IE9yIFVzZXIgCj4gCj4gPiA+ICsKPiA+ ID4gKwkJLyogcGlwZXNyYyBjb250cm9scyB0aGUgc2l6ZSB0aGF0IGlzIHNjYWxlZCBmcm9tLCB3 aGljaCBzaG91bGQKPiA+ID4gKwkJKiBhbHdheXMgYmUgdGhlIHVzZXIncyByZXF1ZXN0ZWQgc2l6 ZS4KPiA+ID4gKwkJKi8KPiA+ID4gKwkJSTkxNV9XUklURShQSVBFU1JDKGludGVsX2NydGMtPnBp cGUpLAo+ID4gPiArCQkJKChpbnRlbF9jcnRjLT5jb25maWcucGlwZV9zcmNfdyAtIDEpIDw8IDE2 KSB8Cj4gPiA+ICsJCQkgKGludGVsX2NydGMtPmNvbmZpZy5waXBlX3NyY19oIC0gMSkpOwo+ID4g Cj4gPiBBbmQgZG8gd2UgbmVlZCB0byByZXByb2dyYW0gdGhlIHBmaXQgb24gZ21jaD8KPiA+IAo+ ID4gPiArCj4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiAgCXJldHVy biByZXQ7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gQEAgLTEwNTc3LDYgKzEwNjQ3LDggQEAgc3Rh dGljIHZvaWQgaW50ZWxfY3J0Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBl KQo+ID4gPiAgCWRldl9wcml2LT5waXBlX3RvX2NydGNfbWFwcGluZ1tpbnRlbF9jcnRjLT5waXBl XSA9ICZpbnRlbF9jcnRjLT5iYXNlOwo+ID4gPiAgCj4gPiA+ICAJZHJtX2NydGNfaGVscGVyX2Fk ZCgmaW50ZWxfY3J0Yy0+YmFzZSwgJmludGVsX2hlbHBlcl9mdW5jcyk7Cj4gPiA+ICsKPiA+ID4g KwlpbnRlbF9jcmVhdGVfY3J0Y19wcm9wZXJ0aWVzKCZpbnRlbF9jcnRjLT5iYXNlKTsKPiA+ID4g IH0KPiA+ID4gIAo+ID4gPiAgZW51bSBwaXBlIGludGVsX2dldF9waXBlX2Zyb21fY29ubmVjdG9y KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ID4gLS0gCj4gPiA+IDEuOS4y Cj4gPiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+IEludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gCj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK