From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Gupta, Sourab" Subject: Re: [PATCH v4] drm/i915: Replaced Blitter ring based flips with MMIO flips for VLV Date: Fri, 16 May 2014 12:34:08 +0000 Message-ID: <1400243696.9396.66.camel@sourabgu-desktop> References: <20140509171848.GA18465@intel.com> <1400134657-2417-1-git-send-email-sourab.gupta@intel.com> <20140515122746.GA27580@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id C334D6E25A for ; Fri, 16 May 2014 05:34:21 -0700 (PDT) In-Reply-To: <20140515122746.GA27580@intel.com> Content-Language: en-US Content-ID: <2C01156DFC55FD4091357A13F5CE2D88@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?utf-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "intel-gfx@lists.freedesktop.org" , "Goel, Akash" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE0LTA1LTE1IGF0IDEyOjI3ICswMDAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIFRodSwgTWF5IDE1LCAyMDE0IGF0IDExOjQ3OjM3QU0gKzA1MzAsIHNvdXJhYi5ndXB0 YUBpbnRlbC5jb20gd3JvdGU6DQo+ID4gRnJvbTogU291cmFiIEd1cHRhIDxzb3VyYWIuZ3VwdGFA aW50ZWwuY29tPg0KPiA+IA0KPiA+IFVzaW5nIE1NSU8gYmFzZWQgZmxpcHMgb24gR2VuNSsgZm9y IE1lZGlhIHBvd2VyIHdlbGwgcmVzaWRlbmN5IG9wdGltaXphdGlvbi4NCj4gPiBUaGUgYmxpdHRl ciByaW5nIGlzIGN1cnJlbnRseSBiZWluZyB1c2VkIGp1c3QgZm9yIGNvbW1hbmQgc3RyZWFtZXIg YmFzZWQNCj4gPiBmbGlwIGNhbGxzLiBGb3IgcHVyZSAzRCB3b3JrbG9hZHMsIHdpdGggTU1JTyBm bGlwcywgdGhlcmUgd2lsbCBiZSBubyB1c2UNCj4gPiBvZiBibGl0dGVyIHJpbmcgYW5kIHRoaXMg d2lsbCBlbnN1cmUgdGhlIDEwMCUgcmVzaWRlbmN5IGZvciBNZWRpYSB3ZWxsLg0KPiA+IA0KPiA+ IEluIGEgc3Vic2VxdWVudCBwYXRjaCwgd2UgY2FuIG1ha2UgdGhlIHNlbGVjdGlvbiBiZXR3ZWVu IENTIHZzIE1NSU8gZmxpcA0KPiA+IGJhc2VkIG9uIGEgbW9kdWxlIHBhcmFtZXRlciB0byBnaXZl IG1vcmUgdGVzdGluZyBjb3ZlcmFnZS4NCj4gPiANCj4gPiB2MjogVGhlIE1NSU8gZmxpcHMgbm93 IHVzZSB0aGUgaW50ZXJydXB0IGRyaXZlbiBtZWNoYW5pc20gZm9yIGlzc3VpbmcgdGhlDQo+ID4g ZmxpcHMgd2hlbiB0YXJnZXQgc2Vxbm8gaXMgcmVhY2hlZC4gKEluY29ycG9yYXRpbmcgVmlsbGUn cyBpZGVhKQ0KPiA+IA0KPiA+IHYzOiBSZWJhc2luZyBvbiBsYXRlc3QgY29kZS4gQ29kZSByZXN0 cnVjdHVyaW5nIGFmdGVyIGluY29ycG9yYXRpbmcNCj4gPiBEYW1pZW4ncyBjb21tZW50cw0KPiA+ IA0KPiA+IHY0OiBBZGRyZXNzaW5nIFZpbGxlJ3MgcmV2aWV3IGNvbW1lbnRzDQo+ID4gICAgIC1n ZW5lcmFsIGNsZWFudXANCj4gPiAgICAgLXVwZGF0aW5nIG9ubHkgYmFzZSBhZGRyIGluc3RlYWQg b2YgY2FsbGluZyB1cGRhdGVfcHJpbWFyeV9wbGFuZQ0KPiA+ICAgICAtZXh0ZW5kaW5nIHBhdGNo IGZvciBnZW41KyBwbGF0Zm9ybXMNCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBTb3VyYWIgR3Vw dGEgPHNvdXJhYi5ndXB0YUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogQWthc2ggR29l bCA8YWthc2guZ29lbEBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZG1hLmMgICAgICB8ICAgMSArDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICB8ICAgNiArKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jICAgICAgfCAgIDIgKy0NCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAg ICAgIHwgICAyICsNCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwg MTE1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgNiArKw0KPiA+ICA2IGZpbGVzIGNoYW5nZWQs IDEzMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RtYS5jDQo+ID4gaW5kZXggNDZmMWRlYy4uNjcyYzI4ZiAxMDA2NDQNCj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kbWEuYw0KPiA+IEBAIC0xNTcwLDYgKzE1NzAsNyBAQCBpbnQgaTkxNV9kcml2 ZXJfbG9hZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQ0KPiA+ ICAJc3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5iYWNrbGlnaHRfbG9jayk7DQo+ID4gIAlzcGlu X2xvY2tfaW5pdCgmZGV2X3ByaXYtPnVuY29yZS5sb2NrKTsNCj4gPiAgCXNwaW5fbG9ja19pbml0 KCZkZXZfcHJpdi0+bW0ub2JqZWN0X3N0YXRfbG9jayk7DQo+ID4gKwlzcGluX2xvY2tfaW5pdCgm ZGV2X3ByaXYtPm1taW9fZmxpcF9sb2NrKTsNCj4gPiAgCWRldl9wcml2LT5yaW5nX2luZGV4ID0g MDsNCj4gPiAgCW11dGV4X2luaXQoJmRldl9wcml2LT5kcGlvX2xvY2spOw0KPiA+ICAJbXV0ZXhf aW5pdCgmZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9sb2NrKTsNCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgNCj4gPiBpbmRleCA0MDA2ZGZlLi4zOGMwODIwIDEwMDY0NA0KPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oDQo+ID4gQEAgLTE1NDMsNiArMTU0Myw4IEBAIHN0cnVjdCBkcm1faTkx NV9wcml2YXRlIHsNCj4gPiAgCXN0cnVjdCBpOTE1X3Vtc19zdGF0ZSB1bXM7DQo+ID4gIAkvKiB0 aGUgaW5kaWNhdG9yIGZvciBkaXNwYXRjaCB2aWRlbyBjb21tYW5kcyBvbiB0d28gQlNEIHJpbmdz ICovDQo+ID4gIAlpbnQgcmluZ19pbmRleDsNCj4gPiArCS8qIHByb3RlY3RzIHRoZSBtbWlvIGZs aXAgZGF0YSAqLw0KPiA+ICsJc3BpbmxvY2tfdCBtbWlvX2ZsaXBfbG9jazsNCj4gPiAgfTsNCj4g PiAgDQo+ID4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKnRvX2k5MTUo Y29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRldikNCj4gPiBAQCAtMjIwOSw2ICsyMjExLDcgQEAg Ym9vbCBpOTE1X2dlbV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7DQo+ ID4gIHZvaWQgaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzX3Jpbmcoc3RydWN0IGludGVsX3Jpbmdf YnVmZmVyICpyaW5nKTsNCj4gPiAgaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9jaGVja193ZWRn ZShzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yLA0KPiA+ICAJCQkJICAgICAgYm9vbCBpbnRl cnJ1cHRpYmxlKTsNCj4gPiAraW50IGk5MTVfZ2VtX2NoZWNrX29scihzdHJ1Y3QgaW50ZWxfcmlu Z19idWZmZXIgKnJpbmcsIHUzMiBzZXFubyk7DQo+ID4gIHN0YXRpYyBpbmxpbmUgYm9vbCBpOTE1 X3Jlc2V0X2luX3Byb2dyZXNzKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpDQo+ID4gIHsN Cj4gPiAgCXJldHVybiB1bmxpa2VseShhdG9taWNfcmVhZCgmZXJyb3ItPnJlc2V0X2NvdW50ZXIp DQo+ID4gQEAgLTI1ODAsNiArMjU4Myw5IEBAIGludCBpOTE1X3JlZ19yZWFkX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+ID4gIGludCBpOTE1X2dldF9yZXNldF9z dGF0c19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPiA+ICAJCQkg ICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlKTsNCj4gPiAgDQo+ID4gK3ZvaWQgaW50ZWxfbm90 aWZ5X21taW9fZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KPiA+ICsJCQlzdHJ1Y3QgaW50 ZWxfcmluZ19idWZmZXIgKnJpbmcpOw0KPiA+ICsNCj4gPiAgLyogb3ZlcmxheSAqLw0KPiA+ICBl eHRlcm4gc3RydWN0IGludGVsX292ZXJsYXlfZXJyb3Jfc3RhdGUgKmludGVsX292ZXJsYXlfY2Fw dHVyZV9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsNCj4gPiAgZXh0ZXJuIHZv aWQgaW50ZWxfb3ZlcmxheV9wcmludF9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jf c3RhdGVfYnVmICplLA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYw0KPiA+IGluZGV4IGZhNWI1 YWIuLjViNGU5NTMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMNCj4gPiBAQCAt OTc1LDcgKzk3NSw3IEBAIGk5MTVfZ2VtX2NoZWNrX3dlZGdlKHN0cnVjdCBpOTE1X2dwdV9lcnJv ciAqZXJyb3IsDQo+ID4gICAqIENvbXBhcmUgc2Vxbm8gYWdhaW5zdCBvdXRzdGFuZGluZyBsYXp5 IHJlcXVlc3QuIEVtaXQgYSByZXF1ZXN0IGlmIHRoZXkgYXJlDQo+ID4gICAqIGVxdWFsLg0KPiA+ ICAgKi8NCj4gPiAtc3RhdGljIGludA0KPiA+ICtpbnQNCj4gPiAgaTkxNV9nZW1fY2hlY2tfb2xy KHN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZywgdTMyIHNlcW5vKQ0KPiA+ICB7DQo+ID4g IAlpbnQgcmV0Ow0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYw0KPiA+IGluZGV4IGIxMGZiZGUu LmEzNTM2OTMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu Yw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMNCj4gPiBAQCAtMTA4 NCw2ICsxMDg0LDggQEAgc3RhdGljIHZvaWQgbm90aWZ5X3Jpbmcoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwNCj4gPiAgDQo+ID4gIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlKHJpbmcp Ow0KPiA+ICANCj4gPiArCWludGVsX25vdGlmeV9tbWlvX2ZsaXAoZGV2LCByaW5nKTsNCj4gPiAr DQo+IA0KPiBIbW0uIEhvdyBiYWRseSBpcyB0aGlzIGdvaW5nIHRvIGV4cGxvZGUgd2l0aCBVTVM/ DQoNCkhpIFZpbGxlLA0KSXQgc2VlbXMgdGhlcmUgd291bGQgYmUgYSBzbWFsbCByYWNlIGJldHdl ZW4gdGhlIHBhZ2UgZmlscCBkb25lIGludHIgYW5kDQp0aGUgZmxpcCBkb25lIGludGVycnVwdCBm cm9tIHByZXZpb3VzIHNldCBiYXNlLiBCdXQgaXQgc2VlbXMgdG8gYmUgdGhlDQpjYXNlIGZvciBD UyBmbGlwcyBhbHNvLiBJbiBib3RoIGNhc2VzLCBvbmNlIHdlIGRvIHRoZQ0KbWFya19wYWdlX2Zs aXBfYWN0aXZlLCB0aGVyZSBtYXkgYmUgYSB3aW5kb3cgaW4gd2hpY2ggcGFnZSBmbGlwIGludHIN CmZyb20gcHJldmlvdXMgc2V0IGJhc2UgbWF5IGFycml2ZS4NCkhhdmUgd2UgaW50ZXJwcmV0ZWQg dGhlIHJhY2UgY29ycmVjdGx5PyBPciBhcmUgd2UgbWlzc2luZyBzb21ldGhpbmcNCmhlcmU/DQoN CkFsc28sIG5vdGlmeV9tbWlvX2ZsaXAgaXMgYmVpbmcgY2FsbGVkIGZyb20gbm90aWZ5X3Jpbmcg ZnVuY3Rpb24uDQpOb3Qgc3VyZSBvZiB0aGUgc2NlbmFyaW8gaW4gd2hpY2ggaXQgbWF5IGV4cGxv ZGUgd2l0aCBVTVMuIENhbiB5b3UNCnBsZWFzZSBlbGFib3JhdGUgbW9yZS4NCg0KSSdsbCBoYXZl IG5leHQgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggd2l0aCByZXN0IG9mIHRoZSBjb21tZW50cyBhZGRy ZXNzZWQuDQoNCj4gDQo+ID4gIAl3YWtlX3VwX2FsbCgmcmluZy0+aXJxX3F1ZXVlKTsNCj4gPiAg CWk5MTVfcXVldWVfaGFuZ2NoZWNrKGRldik7DQo+ID4gIH0NCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jDQo+ID4gaW5kZXggMGY4ZjliYy4uOWQxOTBjMiAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiBAQCAtOTAzNyw2ICs5MDM3LDEx MCBAQCBlcnI6DQo+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4gIA0KPiA+ICtzdGF0aWMg dm9pZCBpbnRlbF9kb19tbWlvX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gPiArCQkJ c3RydWN0IGRybV9jcnRjICpjcnRjKQ0KPiANCj4gbml0OiBubyBuZWVkIHRvIHBhc3MgZGV2IGFu ZCBjcnRjLiBZb3UgY2FuIGRpZyBvdXQgZGV2X3ByaXYgZnJvbQ0KPiB0aGUgY3J0YyBpbiB0aGUg ZnVuY3Rpb24uDQo+IA0KPiBQYXNzaW5nIGludGVsX2NydGMgaW5zdGVhZCBvZiBkcm1fY3J0YyBj b3VsZCBhbHNvIGF2b2lkIHNvbWUgZXh0cmENCj4gdmFyaWFibGVzLg0KDQo+ID4gK3sNCj4gPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7DQo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOw0KPiA+ICsJc3RydWN0IGludGVs X2ZyYW1lYnVmZmVyICppbnRlbF9mYjsNCj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsNCj4gPiArCWludCBwbGFuZSA9IGludGVsX2NydGMt PnBsYW5lOw0KPiA+ICsNCj4gPiArCWludGVsX21hcmtfcGFnZV9mbGlwX2FjdGl2ZShpbnRlbF9j cnRjKTsNCj4gPiArDQo+ID4gKwlpbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGNydGMt PnByaW1hcnktPmZiKTsNCj4gPiArCW9iaiA9IGludGVsX2ZiLT5vYmo7DQo+IA0KPiBuaXQ6IGNv dWxkIGJlIGRvbmUgYXMgcGFydCBvZiB0aGUgZGVjbGFyYXRpb24NCj4gDQo+ID4gKw0KPiA+ICsJ LyogVXBkYXRlIHRoZSBiYXNlIGFkZHJlc3MgcmVnIGZvciB0aGUgcGxhbmUgKi8NCj4gDQo+IFVz ZWxlc3MgY29tbWVudC4NCj4gDQo+ID4gKwlJOTE1X1dSSVRFKERTUFNVUkYocGxhbmUpLCBpOTE1 X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSArDQo+ID4gKwkJCWludGVsX2NydGMtPmRzcGFkZHJf b2Zmc2V0KTsNCj4gDQo+IFNob3VsZCBwcm9iYWJseSBoYXZlIGEgUE9TVElOR19SRUFEKCkgaGVy ZS4NCj4gDQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBib29sIGludGVsX3Bvc3Rwb25lX2Zs aXAoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikNCj4gPiArew0KPiA+ICsJaWYgKCFv YmotPnJpbmcpDQo+ID4gKwkJcmV0dXJuIGZhbHNlOw0KPiA+ICsNCj4gPiArCWlmIChpOTE1X3Nl cW5vX3Bhc3NlZChvYmotPnJpbmctPmdldF9zZXFubyhvYmotPnJpbmcsIGZhbHNlKSwNCj4gDQo+ IFN0aWxsIG5vdCB1c2luZyBsYXp5X2NvaGVyZW5jeS4NCj4gDQo+ID4gKwkJCQlvYmotPmxhc3Rf d3JpdGVfc2Vxbm8pKQ0KPiA+ICsJCXJldHVybiBmYWxzZTsNCj4gPiArDQo+ID4gKwlpOTE1X2dl bV9jaGVja19vbHIob2JqLT5yaW5nLCBvYmotPmxhc3Rfd3JpdGVfc2Vxbm8pOw0KPiANCj4gRXJy b3IgaGFuZGxpbmcgaXMgbWlzc2luZy4NCj4gDQo+IEluIGZhY3QgaWYgd2UgZ2V0IGFuIGVycm9y IGZyb20gdGhpcyBJIGd1ZXNzIHdlIHNob3VsZCBmYWlsDQo+IC5xdWV1ZV9mbGlwKCkuIEEgYm9v bCByZXR1cm4gaXNuJ3Qgc3VmZmljaWVudCB0byBjb252ZXkgYm90aA0KPiBlcnJvcnMgYW5kIHdo ZXRoZXIgd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgR1BVIG9yIG5vdC4gSSBndWVzcw0KPiB5b3Ug Y291bGQgZW5jb2RlIHRoYXQgaW50byBhbiBpbnQgd2l0aCA+MCw9PTAsPDAgbWVhbmluZw0KPiBk aWZmZXJlbnQgdGhpbmdzLCBvciB5b3UgbWF5IGp1c3QgbmVlZCB0byBpbmxpbmUgdGhpcyBzdHVm Zg0KPiBpbnRvIGludGVsX3F1ZXVlX21taW9fZmxpcCgpLg0KPiANCj4gPiArDQo+ID4gKwlpZiAo V0FSTl9PTighb2JqLT5yaW5nLT5pcnFfZ2V0KG9iai0+cmluZykpKQ0KPiA+ICsJCXJldHVybiBm YWxzZTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gdHJ1ZTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArdm9p ZCBpbnRlbF9ub3RpZnlfbW1pb19mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQo+ID4gKwkJ CXN0cnVjdCBpbnRlbF9yaW5nX2J1ZmZlciAqcmluZykNCj4gDQo+IEFnYWluIGNvdWxkIGp1c3Qg cGFzcyByaW5nIGFuZCBkaWcgb3V0IGRldiBmcm9tIGl0Lg0KPiANCj4gPiArew0KPiA+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCj4gPiAr CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsNCj4gPiArCXVuc2lnbmVkIGxvbmcgaXJxX2ZsYWdzOw0K PiA+ICsJdTMyIHNlcW5vOw0KPiA+ICsNCj4gPiArCXNlcW5vID0gcmluZy0+Z2V0X3NlcW5vKHJp bmcsIGZhbHNlKTsNCj4gPiArDQo+ID4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPm1t aW9fZmxpcF9sb2NrLCBpcnFfZmxhZ3MpOw0KPiA+ICsJZm9yX2VhY2hfY3J0YyhkZXYsIGNydGMp IHsNCj4gPiArCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsNCj4gDQo+IENvdWxkIHVz ZSBmb3JfZWFjaF9pbnRlbF9jcnRjKCkgdG8gYXZvaWQgc29tZSBleHRyYSB2YXJpYWJsZXMuDQo+ IA0KPiA+ICsJCXN0cnVjdCBpbnRlbF9tbWlvX2ZsaXAgKm1taW9fZmxpcF9kYXRhOw0KPiA+ICsN Cj4gPiArCQlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsNCj4gPiArCQltbWlvX2Zs aXBfZGF0YSA9ICZpbnRlbF9jcnRjLT5tbWlvX2ZsaXBfZGF0YTsNCj4gPiArDQo+ID4gKwkJaWYg KG1taW9fZmxpcF9kYXRhLT5zZXFubyA9PSAwKQ0KPiA+ICsJCQljb250aW51ZTsNCj4gPiArCQlp ZiAocmluZy0+aWQgIT0gbW1pb19mbGlwX2RhdGEtPnJpbmdfaWQpDQo+ID4gKwkJCWNvbnRpbnVl Ow0KPiA+ICsNCj4gPiArCQlpZiAoaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8sIG1taW9fZmxpcF9k YXRhLT5zZXFubykpIHsNCj4gPiArCQkJaW50ZWxfZG9fbW1pb19mbGlwKGRldiwgY3J0Yyk7DQo+ ID4gKwkJCW1taW9fZmxpcF9kYXRhLT5zZXFubyA9IDA7DQo+ID4gKwkJCXJpbmctPmlycV9wdXQo cmluZyk7DQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmRldl9wcml2LT5tbWlvX2ZsaXBfbG9jaywgaXJxX2ZsYWdzKTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIGludCBpbnRlbF9xdWV1ZV9tbWlvX2ZsaXAoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwNCj4gPiArCQkJc3RydWN0IGRybV9jcnRjICpjcnRjLA0KPiA+ICsJCQlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwNCj4gPiArCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwNCj4gPiArCQkJdWludDMyX3QgZmxhZ3MpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7DQo+ID4gKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7DQo+ID4gKwl1bnNp Z25lZCBsb25nIGlycV9mbGFnczsNCj4gPiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJcmV0ID0g aW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooZGV2LCBvYmosIG9iai0+cmluZyk7DQo+ID4gKwlp ZiAocmV0KQ0KPiA+ICsJCWdvdG8gZXJyOw0KPiA+ICsNCj4gPiArCWlmICghaW50ZWxfcG9zdHBv bmVfZmxpcChvYmopKSB7DQo+ID4gKwkJaW50ZWxfZG9fbW1pb19mbGlwKGRldiwgY3J0Yyk7DQo+ ID4gKwkJcmV0dXJuIDA7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJc3Bpbl9sb2NrX2lycXNhdmUo JmRldl9wcml2LT5tbWlvX2ZsaXBfbG9jaywgaXJxX2ZsYWdzKTsNCj4gPiArCWludGVsX2NydGMt Pm1taW9fZmxpcF9kYXRhLnNlcW5vID0gb2JqLT5sYXN0X3dyaXRlX3NlcW5vOw0KPiA+ICsJaW50 ZWxfY3J0Yy0+bW1pb19mbGlwX2RhdGEucmluZ19pZCA9IG9iai0+cmluZy0+aWQ7DQo+ID4gKwlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+bW1pb19mbGlwX2xvY2ssIGlycV9mbGFn cyk7DQo+ID4gKw0KPiA+ICsJLyogRG91YmxlIGNoZWNrIHRvIGNhdGNoIGNhc2VzIHdoZXJlIGly cSBmaXJlZCBiZWZvcmUNCj4gPiArCSAqIG1taW8gZmxpcCBkYXRhIHdhcyByZWFkeQ0KPiA+ICsJ ICovDQo+ID4gKwlpbnRlbF9ub3RpZnlfbW1pb19mbGlwKGRldiwgb2JqLT5yaW5nKTsNCj4gPiAr CXJldHVybiAwOw0KPiA+ICsNCj4gPiArZXJyOg0KPiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0K PiA+ICsNCj4gPiAgc3RhdGljIGludCBpbnRlbF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwNCj4gPiAgCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQo+ID4gIAkJCQkg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsDQo+ID4gQEAgLTExMzc3LDcgKzExNDgxLDE4IEBA IHN0YXRpYyB2b2lkIGludGVsX2luaXRfZGlzcGxheShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0K PiA+ICAJCWJyZWFrOw0KPiA+ICAJfQ0KPiA+ICANCj4gPiArCS8qIFVzaW5nIE1NSU8gYmFzZWQg ZmxpcHMgc3RhcnRpbmcgZnJvbSBHZW41LCBmb3IgTWVkaWEgcG93ZXIgd2VsbA0KPiA+ICsJICog cmVzaWRlbmN5IG9wdGltaXphdGlvbi4gVGhpcyBpcyBub3QgY3VycmVudGx5IGJlaW5nIHVzZWQg Zm9yDQo+ID4gKwkgKiBvbGRlciBwbGF0Zm9ybXMgYmVjYXVzZSBvZiBub24tYXZhaWxhYmlsaXR5 IG9mIGZsaXAgZG9uZSBpbnRlcnJ1cHQuDQo+ID4gKwkgKiBUaGUgb3RoZXIgYWx0ZXJuYXRpdmUg b2YgaGF2aW5nIFJlbmRlciByaW5nIGJhc2VkIGZsaXAgY2FsbHMgaXMNCj4gPiArCSAqIG5vdCBi ZWluZyB1c2VkLCBhcyB0aGUgcGVyZm9ybWFuY2UoRlBTKSBvZiBjZXJ0YWluIDNEIEFwcHMgZ2V0 cw0KPiA+ICsJICogc2V2ZXJseSBhZmZlY3RlZC4NCj4gPiArCSAqLw0KPiA+ICsJaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDUpDQo+ID4gKwkJZGV2X3ByaXYtPmRpc3BsYXkucXVldWVfZmxp cCA9IGludGVsX3F1ZXVlX21taW9fZmxpcDsNCj4gDQo+IEkgc3RpbGwgdGhpbmsgd2UgbmVlZCBh IG1vZHVsZSBwYXJhbSBmb3IgdGhpcywgYW5kIGRlZmF1bHQgdG8gQ1MgZm9yDQo+IG5vdyAoZXhj ZXB0IG1heWJlIGZvciBWTFYpLg0KPiANCj4gPiArDQo+ID4gIAlpbnRlbF9wYW5lbF9pbml0X2Jh Y2tsaWdodF9mdW5jcyhkZXYpOw0KPiA+ICsNCj4gPiAgfQ0KPiA+ICANCj4gPiAgLyoNCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+IGluZGV4IDMyYTc0ZTEuLjc5NTNlZDYgMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+IEBAIC0zNTEsNiArMzUxLDExIEBA IHN0cnVjdCBpbnRlbF9waXBlX3dtIHsNCj4gPiAgCWJvb2wgc3ByaXRlc19zY2FsZWQ7DQo+ID4g IH07DQo+ID4gIA0KPiA+ICtzdHJ1Y3QgaW50ZWxfbW1pb19mbGlwIHsNCj4gPiArCXUzMiBzZXFu bzsNCj4gPiArCXUzMiByaW5nX2lkOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgc3RydWN0IGludGVs X2NydGMgew0KPiA+ICAJc3RydWN0IGRybV9jcnRjIGJhc2U7DQo+ID4gIAllbnVtIHBpcGUgcGlw ZTsNCj4gPiBAQCAtNDAzLDYgKzQwOCw3IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsNCj4gPiAgCX0g d207DQo+ID4gIA0KPiA+ICAJd2FpdF9xdWV1ZV9oZWFkX3QgdmJsX3dhaXQ7DQo+ID4gKwlzdHJ1 Y3QgaW50ZWxfbW1pb19mbGlwCW1taW9fZmxpcF9kYXRhOw0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeDQo+IA0KPiBTaG91bGQgYmUgYSBzcGFjZSwgbm90IHRhYi4NCj4gDQo+ID4g IH07DQo+ID4gIA0KPiA+ICBzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVycyB7DQo+ID4g LS0gDQo+ID4gMS44LjUuMQ0KPiANCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK