From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Deng, Emily" Subject: RE: [PATCH] drm/amd/amdgpu: For virtual display, enable multi crtcs. Date: Fri, 30 Sep 2016 03:49:27 +0000 Message-ID: References: <1475131540-1987-1-git-send-email-Emily.Deng@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Alex Deucher Cc: amd-gfx list DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWxleCBEZXVjaGVyIFtt YWlsdG86YWxleGRldWNoZXJAZ21haWwuY29tXQ0KPiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAz MCwgMjAxNiAxMToyOSBBTQ0KPiBUbzogRGVuZywgRW1pbHkgPEVtaWx5LkRlbmdAYW1kLmNvbT4N Cj4gQ2M6IGFtZC1nZnggbGlzdCA8YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+DQo+IFN1 YmplY3Q6IFJlOiBbUEFUQ0hdIGRybS9hbWQvYW1kZ3B1OiBGb3IgdmlydHVhbCBkaXNwbGF5LCBl bmFibGUgbXVsdGkgY3J0Y3MuDQo+IA0KPiBPbiBUaHUsIFNlcCAyOSwgMjAxNiBhdCAyOjQ1IEFN LCBFbWlseSBEZW5nIDxFbWlseS5EZW5nQGFtZC5jb20+IHdyb3RlOg0KPiA+IEVuYWJsZSBtdWx0 aSBjcnRjcyBmb3IgdmlydHVhbCBkaXNwbGF5LCB1c2VyIGNhbiBzZXQgdGhlIG51bWJlciBvZg0K PiA+IGNydGNzIGJ5IGFtZGdwdSBtb2R1bGUgcGFyYW1ldGVyICB2aXJ0dWFsX2Rpc3BsYXkuDQo+ ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBFbWlseSBEZW5nIDxFbWlseS5EZW5nQGFtZC5jb20+DQo+ ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L09iamVjdElELmggICAgICB8 ICAyNSArKysrKy0NCj4gPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rldmlj ZS5jIHwgIDI3ICsrKysrLS0NCj4gPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Rydi5jICAgIHwgICAyICstDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92 aXJ0dWFsLmMgICB8IDExOA0KPiArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiA+ICA0 IGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9PYmplY3RJRC5oDQo+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9PYmplY3RJRC5oDQo+ID4gaW5kZXggYjhk NjY2Ny4uMzAwMjgzNiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9PYmplY3RJRC5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvT2JqZWN0 SUQuaA0KPiA+IEBAIC0xNDksNyArMTQ5LDYgQEANCj4gPiAgI2RlZmluZSBHUkFQSF9PQkpFQ1Rf RU5VTV9JRDUgICAgICAgICAgICAgICAgICAgICAweDA1DQo+ID4gICNkZWZpbmUgR1JBUEhfT0JK RUNUX0VOVU1fSUQ2ICAgICAgICAgICAgICAgICAgICAgMHgwNg0KPiA+ICAjZGVmaW5lIEdSQVBI X09CSkVDVF9FTlVNX0lENyAgICAgICAgICAgICAgICAgICAgIDB4MDcNCj4gPiAtI2RlZmluZSBH UkFQSF9PQkpFQ1RfRU5VTV9WSVJUVUFMICAgICAgICAgICAgICAgICAweDA4DQo+ID4NCj4gPiAg LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo+ ID4gIC8qIEdyYXBoaWNzIE9iamVjdCBJRCBCaXQgZGVmaW5pdGlvbiAgICAgICAgICAgICAgICAq Lw0KPiA+IEBAIC00MTEsOCArNDEwLDI4IEBADQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JBUEhfT0JKRUNUX0VOVU1fSUQxIDw8IEVOVU1f SURfU0hJRlQNCj4gfFwNCj4gPg0KPiA+IEVOQ09ERVJfT0JKRUNUX0lEX0hETUlfQU5YOTgwNSA8 PCBPQkpFQ1RfSURfU0hJRlQpDQo+ID4NCj4gPiAtI2RlZmluZSBFTkNPREVSX1ZJUlRVQUxfRU5V TV9WSVJUVUFMDQo+ICggR1JBUEhfT0JKRUNUX1RZUEVfRU5DT0RFUiA8PCBPQkpFQ1RfVFlQRV9T SElGVCB8XA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdSQVBIX09CSkVDVF9FTlVNX1ZJUlRVQUwgPDwNCj4gRU5VTV9JRF9TSElGVCB8XA0K PiA+ICsjZGVmaW5lIEVOQ09ERVJfVklSVFVBTF9FTlVNX0lEMQ0KPiAoIEdSQVBIX09CSkVDVF9U WVBFX0VOQ09ERVIgPDwgT0JKRUNUX1RZUEVfU0hJRlQgfFwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUkFQSF9PQkpFQ1RfRU5VTV9JRDEg PDwNCj4gRU5VTV9JRF9TSElGVCB8XA0KPiA+ICsNCj4gPiArRU5DT0RFUl9PQkpFQ1RfSURfVklS VFVBTCA8PCBPQkpFQ1RfSURfU0hJRlQpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIEVOQ09ERVJfVklS VFVBTF9FTlVNX0lEMg0KPiAoIEdSQVBIX09CSkVDVF9UWVBFX0VOQ09ERVIgPDwgT0JKRUNUX1RZ UEVfU0hJRlQgfFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHUkFQSF9PQkpFQ1RfRU5VTV9JRDIgPDwNCj4gRU5VTV9JRF9TSElGVCB8XA0K PiA+ICsNCj4gPiArRU5DT0RFUl9PQkpFQ1RfSURfVklSVFVBTCA8PCBPQkpFQ1RfSURfU0hJRlQp DQo+ID4gKw0KPiA+ICsjZGVmaW5lIEVOQ09ERVJfVklSVFVBTF9FTlVNX0lEMw0KPiAoIEdSQVBI X09CSkVDVF9UWVBFX0VOQ09ERVIgPDwgT0JKRUNUX1RZUEVfU0hJRlQgfFwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUkFQSF9PQkpFQ1Rf RU5VTV9JRDMgPDwNCj4gRU5VTV9JRF9TSElGVCB8XA0KPiA+ICsNCj4gPiArRU5DT0RFUl9PQkpF Q1RfSURfVklSVFVBTCA8PCBPQkpFQ1RfSURfU0hJRlQpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIEVO Q09ERVJfVklSVFVBTF9FTlVNX0lENA0KPiAoIEdSQVBIX09CSkVDVF9UWVBFX0VOQ09ERVIgPDwg T0JKRUNUX1RZUEVfU0hJRlQgfFwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHUkFQSF9PQkpFQ1RfRU5VTV9JRDQgPDwNCj4gRU5VTV9JRF9T SElGVCB8XA0KPiA+ICsNCj4gPiArRU5DT0RFUl9PQkpFQ1RfSURfVklSVFVBTCA8PCBPQkpFQ1Rf SURfU0hJRlQpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIEVOQ09ERVJfVklSVFVBTF9FTlVNX0lENQ0K PiAoIEdSQVBIX09CSkVDVF9UWVBFX0VOQ09ERVIgPDwgT0JKRUNUX1RZUEVfU0hJRlQgfFwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUkFQ SF9PQkpFQ1RfRU5VTV9JRDUgPDwNCj4gRU5VTV9JRF9TSElGVCB8XA0KPiA+ICsNCj4gPiArRU5D T0RFUl9PQkpFQ1RfSURfVklSVFVBTCA8PCBPQkpFQ1RfSURfU0hJRlQpDQo+ID4gKw0KPiA+ICsj ZGVmaW5lIEVOQ09ERVJfVklSVFVBTF9FTlVNX0lENg0KPiAoIEdSQVBIX09CSkVDVF9UWVBFX0VO Q09ERVIgPDwgT0JKRUNUX1RZUEVfU0hJRlQgfFwNCj4gPiArDQo+ID4gK0dSQVBIX09CSkVDVF9F TlVNX0lENiA8PCBFTlVNX0lEX1NISUZUIHxcDQo+ID4NCj4gPiBFTkNPREVSX09CSkVDVF9JRF9W SVJUVUFMIDw8IE9CSkVDVF9JRF9TSElGVCkNCj4gPg0KPiA+ICAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jDQo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4gPiBpbmRleCBjNjI2NDM0Li4xZjAw OGEwIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k ZXZpY2UuYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZp Y2UuYw0KPiA+IEBAIC0xMjM5LDIwICsxMjM5LDM3IEBAIHN0YXRpYyB2b2lkDQo+IGFtZGdwdV93 aGV0aGVyX2VuYWJsZV92aXJ0dWFsX2Rpc3BsYXkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp DQo+ID4gICAgICAgICBpZiAoYW1kZ3B1X3ZpcnR1YWxfZGlzcGxheSkgew0KPiA+ICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGRldiA9IGFkZXYtPmRkZXY7DQo+ID4gICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKnBjaV9hZGRyZXNzX25hbWUgPSBwY2lfbmFtZShkZGV2LT5w ZGV2KTsNCj4gPiAtICAgICAgICAgICAgICAgY2hhciAqcGNpYWRkc3RyLCAqcGNpYWRkc3RyX3Rt cCwgKnBjaWFkZG5hbWU7DQo+ID4gKyAgICAgICAgICAgICAgIGNoYXIgKnBjaWFkZHN0ciwgKnBj aWFkZHN0cl90bXAsICpwY2lhZGRuYW1lX3RtcCwNCj4gPiArICpwY2lhZGRuYW1lOw0KPiA+DQo+ ID4gICAgICAgICAgICAgICAgIHBjaWFkZHN0ciA9IGtzdHJkdXAoYW1kZ3B1X3ZpcnR1YWxfZGlz cGxheSwgR0ZQX0tFUk5FTCk7DQo+ID4gICAgICAgICAgICAgICAgIHBjaWFkZHN0cl90bXAgPSBw Y2lhZGRzdHI7DQo+ID4gLSAgICAgICAgICAgICAgIHdoaWxlICgocGNpYWRkbmFtZSA9IHN0cnNl cCgmcGNpYWRkc3RyX3RtcCwgIjsiKSkpIHsNCj4gPiArICAgICAgICAgICAgICAgd2hpbGUgKChw Y2lhZGRuYW1lX3RtcCA9IHN0cnNlcCgmcGNpYWRkc3RyX3RtcCwgIjsiKSkpIHsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBwY2lhZGRuYW1lID0gc3Ryc2VwKCZwY2lhZGRuYW1lX3RtcCwg IiwiKTsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmNtcChwY2lfYWRkcmVz c19uYW1lLCBwY2lhZGRuYW1lKSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbG9uZyBudW1fY3J0YzsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCByZXMgPSAtMTsNCj4gPiArDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh ZGV2LT5lbmFibGVfdmlydHVhbF9kaXNwbGF5ID0gdHJ1ZTsNCj4gPiArDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAocGNpYWRkbmFtZV90bXApDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IGtzdHJ0b2wocGNpYWRkbmFtZV90 bXAsIDEwLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZudW1fY3J0Yyk7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKCFyZXMpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKG51bV9jcnRjIDwgMSkNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBudW1fY3J0YyA9IDE7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChudW1fY3J0YyA+IDYpDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtX2NydGMgPSA2Ow0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT5tb2RlX2luZm8ubnVtX2Ny dGMgPSBudW1fY3J0YzsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz ZQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT5tb2Rl X2luZm8ubnVtX2NydGMgPSAxOw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICAgICAgICAgICAgICAg ICB9DQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgRFJNX0lORk8oInZpcnR1YWwgZGlzcGxheSBz dHJpbmc6JXMsICVzOnZpcnR1YWxfZGlzcGxheTolZFxuIiwNCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhbWRncHVfdmlydHVhbF9kaXNwbGF5LCBwY2lfYWRkcmVzc19uYW1l LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZXYtPmVuYWJsZV92aXJ0 dWFsX2Rpc3BsYXkpOw0KPiA+ICsgICAgICAgICAgICAgICBEUk1fSU5GTygidmlydHVhbCBkaXNw bGF5IHN0cmluZzolcywgJXM6dmlydHVhbF9kaXNwbGF5OiVkLA0KPiBudW1fY3J0YzolZFxuIiwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfdmlydHVhbF9kaXNwbGF5LCBwY2lf YWRkcmVzc19uYW1lLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGFkZXYtPmVuYWJsZV92 aXJ0dWFsX2Rpc3BsYXksDQo+ID4gKyBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGMpOw0KPiA+DQo+ ID4gICAgICAgICAgICAgICAgIGtmcmVlKHBjaWFkZHN0cik7DQo+ID4gICAgICAgICB9DQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYw0KPiA+ IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Rydi5jDQo+ID4gaW5kZXggODBk OGM5My4uZDliN2NiYyAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZHJ2LmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZHJ2LmMNCj4gPiBAQCAtMjA3LDcgKzIwNyw3IEBAIG1vZHVsZV9wYXJhbV9uYW1lZChwZ19t YXNrLCBhbWRncHVfcGdfbWFzaywNCj4gdWludCwNCj4gPiAwNDQ0KTsgIE1PRFVMRV9QQVJNX0RF U0MoZGlzYWJsZV9jdSwgIkRpc2FibGUgQ1VzIChzZS5zaC5jdSwuLi4pIik7DQo+ID4gbW9kdWxl X3BhcmFtX25hbWVkKGRpc2FibGVfY3UsIGFtZGdwdV9kaXNhYmxlX2N1LCBjaGFycCwgMDQ0NCk7 DQo+ID4NCj4gPiAtTU9EVUxFX1BBUk1fREVTQyh2aXJ0dWFsX2Rpc3BsYXksICJFbmFibGUgdmly dHVhbCBkaXNwbGF5IGZlYXR1cmUNCj4gPiAodGhlIHZpcnR1YWxfZGlzcGxheSB3aWxsIGJlIHNl dCBsaWtlIHh4eHg6eHg6eHgueDt4eHh4Onh4Onh4LngpIik7DQo+ID4gK01PRFVMRV9QQVJNX0RF U0ModmlydHVhbF9kaXNwbGF5LCAiRW5hYmxlIHZpcnR1YWwgZGlzcGxheSBmZWF0dXJlDQo+ID4g Kyh0aGUgdmlydHVhbF9kaXNwbGF5IHdpbGwgYmUgc2V0IGxpa2UNCj4gPiAreHh4eDp4eDp4eC54 LHg7eHh4eDp4eDp4eC54LHgpIik7DQo+ID4gIG1vZHVsZV9wYXJhbV9uYW1lZCh2aXJ0dWFsX2Rp c3BsYXksIGFtZGdwdV92aXJ0dWFsX2Rpc3BsYXksIGNoYXJwLA0KPiA+IDA0NDQpOw0KPiA+DQo+ ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBwY2lpZGxpc3RbXSA9IHsgZGlm ZiAtLWdpdA0KPiA+IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYw0K PiA+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3ZpcnR1YWwuYw0KPiA+IGluZGV4 IGYzZGViZTguLjUzMWQwMjVmIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2RjZV92aXJ0dWFsLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdmlydHVhbC5jDQo+ID4gQEAgLTM1Miw3ICszNTIsNiBAQCBzdGF0aWMgaW50IGRjZV92 aXJ0dWFsX2Vhcmx5X2luaXQodm9pZCAqaGFuZGxlKQ0KPiA+ICAgICAgICAgZGNlX3ZpcnR1YWxf c2V0X2Rpc3BsYXlfZnVuY3MoYWRldik7DQo+ID4gICAgICAgICBkY2VfdmlydHVhbF9zZXRfaXJx X2Z1bmNzKGFkZXYpOw0KPiA+DQo+ID4gLSAgICAgICBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGMg PSAxOw0KPiA+ICAgICAgICAgYWRldi0+bW9kZV9pbmZvLm51bV9ocGQgPSAxOw0KPiA+ICAgICAg ICAgYWRldi0+bW9kZV9pbmZvLm51bV9kaWcgPSAxOw0KPiA+ICAgICAgICAgcmV0dXJuIDA7DQo+ ID4gQEAgLTM2Myw2ICszNjIsOSBAQCBzdGF0aWMgYm9vbCBkY2VfdmlydHVhbF9nZXRfY29ubmVj dG9yX2luZm8oc3RydWN0DQo+IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ID4gICAgICAgICBzdHJ1 Y3QgYW1kZ3B1X2kyY19idXNfcmVjIGRkY19idXM7DQo+ID4gICAgICAgICBzdHJ1Y3QgYW1kZ3B1 X3JvdXRlciByb3V0ZXI7DQo+ID4gICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2hwZCBocGQ7DQo+ID4g KyAgICAgICBpbnQgaSA9IDA7DQo+ID4gKyAgICAgICB1aW50MzJfdCBlbmNvZGVyX2VudW0gPSBF TkNPREVSX1ZJUlRVQUxfRU5VTV9JRDE7DQo+ID4gKyAgICAgICB1aW50MzJfdCBzdXBwb3J0ZWRf ZGV2aWNlID0gQVRPTV9ERVZJQ0VfREZQMV9TVVBQT1JUOw0KPiA+DQo+ID4gICAgICAgICAvKiBs b29rIHVwIGdwaW8gZm9yIGRkYywgaHBkICovDQo+ID4gICAgICAgICBkZGNfYnVzLnZhbGlkID0g ZmFsc2U7DQo+ID4gQEAgLTM3MywxNyArMzc1LDQxIEBAIHN0YXRpYyBib29sIGRjZV92aXJ0dWFs X2dldF9jb25uZWN0b3JfaW5mbyhzdHJ1Y3QNCj4gYW1kZ3B1X2RldmljZSAqYWRldikNCj4gPiAg ICAgICAgIG1lbXNldCgmcm91dGVyLCAwLCBzaXplb2Yocm91dGVyKSk7DQo+ID4gICAgICAgICBy b3V0ZXIuZGRjX3ZhbGlkID0gZmFsc2U7DQo+ID4gICAgICAgICByb3V0ZXIuY2RfdmFsaWQgPSBm YWxzZTsNCj4gPiAtICAgICAgIGFtZGdwdV9kaXNwbGF5X2FkZF9jb25uZWN0b3IoYWRldiwNCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsDQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE9NX0RFVklDRV9DUlQxX1NVUFBPUlQsDQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNU T1JfVklSVFVBTCwgJmRkY19idXMsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT05ORUNUT1JfT0JKRUNUX0lEX1ZJUlRVQUwsDQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmaHBkLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnJvdXRlcik7DQo+ID4gLQ0KPiA+IC0gICAgICAgYW1kZ3B1X2Rpc3Bs YXlfYWRkX2VuY29kZXIoYWRldiwNCj4gRU5DT0RFUl9WSVJUVUFMX0VOVU1fVklSVFVBTCwNCj4g PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEFUT01fREVWSUNFX0NSVDFfU1VQUE9SVCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOw0KPiA+ICsNCj4gPiArICAgICAgIGZv ciAoaSA9IDA7IGkgPCBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgew0KPiA+ICsgICAg ICAgICAgICAgICBzd2l0Y2ggKGkpIHsNCj4gPiArICAgICAgICAgICAgICAgY2FzZSAwOg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZXJfZW51bSA9IEVOQ09ERVJfVklSVFVBTF9F TlVNX0lEMTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfZGV2aWNlID0g QVRPTV9ERVZJQ0VfREZQMV9TVVBQT1JUOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KPiA+ICsgICAgICAgICAgICAgICBjYXNlIDE6DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgZW5jb2Rlcl9lbnVtID0gRU5DT0RFUl9WSVJUVUFMX0VOVU1fSUQyOw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9kZXZpY2UgPSBBVE9NX0RFVklDRV9ERlAyX1NV UFBPUlQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAg ICAgICAgIGNhc2UgMjoNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVyX2VudW0g PSBFTkNPREVSX1ZJUlRVQUxfRU5VTV9JRDM7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg c3VwcG9ydGVkX2RldmljZSA9IEFUT01fREVWSUNFX0RGUDNfU1VQUE9SVDsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgY2FzZSAzOg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZXJfZW51bSA9IEVOQ09ERVJfVklSVFVBTF9F TlVNX0lENDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfZGV2aWNlID0g QVRPTV9ERVZJQ0VfREZQNF9TVVBQT1JUOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGJy ZWFrOw0KPiA+ICsgICAgICAgICAgICAgICBjYXNlIDQ6DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgZW5jb2Rlcl9lbnVtID0gRU5DT0RFUl9WSVJUVUFMX0VOVU1fSUQ1Ow0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9kZXZpY2UgPSBBVE9NX0RFVklDRV9ERlA1X1NV UFBPUlQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAg ICAgICAgIGNhc2UgNToNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVyX2VudW0g PSBFTkNPREVSX1ZJUlRVQUxfRU5VTV9JRDY7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg c3VwcG9ydGVkX2RldmljZSA9IEFUT01fREVWSUNFX0RGUDZfU1VQUE9SVDsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4g PiArICAgICAgICAgICAgICAgYW1kZ3B1X2Rpc3BsYXlfYWRkX2Nvbm5lY3RvcihhZGV2LCBpLCBz dXBwb3J0ZWRfZGV2aWNlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJN X01PREVfQ09OTkVDVE9SX1ZJUlRVQUwsICZkZGNfYnVzLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ09OTkVDVE9SX09CSkVDVF9JRF9WSVJUVUFMLCAmaHBkLCAmcm91dGVy KTsNCj4gPiArICAgICAgICAgICAgICAgYW1kZ3B1X2Rpc3BsYXlfYWRkX2VuY29kZXIoYWRldiwg ZW5jb2Rlcl9lbnVtLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9y dGVkX2RldmljZSwgMCk7DQo+ID4gKyAgICAgICB9DQo+ID4NCj4gPiAgICAgICAgIGFtZGdwdV9s aW5rX2VuY29kZXJfY29ubmVjdG9yKGFkZXYtPmRkZXYpOw0KPiA+DQo+ID4gQEAgLTYwMyw3ICs2 MjksMjggQEAgc3RhdGljIHZvaWQgZGNlX3ZpcnR1YWxfZW5jb2Rlcl9hZGQoc3RydWN0DQo+IGFt ZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsNCj4gPg0KPiA+ ICAgICAgICAgZW5jb2RlciA9ICZhbWRncHVfZW5jb2Rlci0+YmFzZTsNCj4gPiAtICAgICAgIGVu Y29kZXItPnBvc3NpYmxlX2NydGNzID0gMHgxOw0KPiA+ICsNCj4gPiArICAgICAgIHN3aXRjaCAo YWRldi0+bW9kZV9pbmZvLm51bV9jcnRjKSB7DQo+ID4gKyAgICAgICBjYXNlIDE6DQo+ID4gKyAg ICAgICAgICAgICAgIGVuY29kZXItPnBvc3NpYmxlX2NydGNzID0gMHgxOw0KPiA+ICsgICAgICAg ICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgMjoNCj4gPiArICAgICAgICAgICAgICAg ZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSAweDM7DQo+ID4gKyAgICAgICAgICAgICAgIGJyZWFr Ow0KPiA+ICsgICAgICAgY2FzZSAzOg0KPiA+ICsgICAgICAgICAgICAgICBlbmNvZGVyLT5wb3Nz aWJsZV9jcnRjcyA9IDB4NzsNCj4gPiArICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAg ICBjYXNlIDQ6DQo+ID4gKyAgICAgICAgICAgICAgIGVuY29kZXItPnBvc3NpYmxlX2NydGNzID0g MHhmOw0KPiA+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgNToNCj4g PiArICAgICAgICAgICAgICAgZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSAweDFmOw0KPiA+ICsg ICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAgICAgIGNhc2UgNjoNCj4gPiArICAgICAgICAg ICAgICAgZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSAweDNmOw0KPiA+ICsgICAgICAgICAgICAg ICBicmVhazsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gICAgICAgICBhbWRncHVfZW5jb2Rl ci0+ZW5jX3ByaXYgPSBOVUxMOw0KPiA+ICAgICAgICAgYW1kZ3B1X2VuY29kZXItPmVuY29kZXJf ZW51bSA9IGVuY29kZXJfZW51bTsNCj4gPiAgICAgICAgIGFtZGdwdV9lbmNvZGVyLT5lbmNvZGVy X2lkID0gKGVuY29kZXJfZW51bSAmIE9CSkVDVF9JRF9NQVNLKQ0KPiA+ID4+IE9CSkVDVF9JRF9T SElGVDsgQEAgLTY0OCw5ICs2OTUsMTUgQEAgc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0DQo+ ID4gZGNlX3ZpcnR1YWxfdmJsYW5rX3RpbWVyX2hhbmRsZShzdHJ1Y3QgaHJ0aW1lciAqdmJsYSAg ew0KPiA+ICAgICAgICAgc3RydWN0IGFtZGdwdV9tb2RlX2luZm8gKm1vZGVfaW5mbyA9IGNvbnRh aW5lcl9vZih2YmxhbmtfdGltZXIsDQo+IHN0cnVjdCBhbWRncHVfbW9kZV9pbmZvICx2Ymxhbmtf dGltZXIpOw0KPiA+ICAgICAgICAgc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBjb250YWlu ZXJfb2YobW9kZV9pbmZvLCBzdHJ1Y3QNCj4gYW1kZ3B1X2RldmljZSAsbW9kZV9pbmZvKTsNCj4g PiAtICAgICAgIHVuc2lnbmVkIGNydGMgPSAwOw0KPiA+IC0gICAgICAgZHJtX2hhbmRsZV92Ymxh bmsoYWRldi0+ZGRldiwgY3J0Yyk7DQo+ID4gLSAgICAgICBkY2VfdmlydHVhbF9wYWdlZmxpcF9p cnEoYWRldiwgTlVMTCwgTlVMTCk7DQo+ID4gKyAgICAgICBpbnQgaTsNCj4gPiArICAgICAgIHN0 cnVjdCBhbWRncHVfaXZfZW50cnkgZW50cnk7DQo+ID4gKw0KPiA+ICsgICAgICAgZm9yIChpID0g MDsgaSA8IGFkZXYtPm1vZGVfaW5mby5udW1fY3J0YzsgaSsrKSB7DQo+ID4gKyAgICAgICAgICAg ICAgIGVudHJ5LnNyY19pZCA9IGk7DQo+ID4gKyAgICAgICAgICAgICAgIGRybV9oYW5kbGVfdmJs YW5rKGFkZXYtPmRkZXYsIGkpOw0KPiA+ICsgICAgICAgICAgICAgICBkY2VfdmlydHVhbF9wYWdl ZmxpcF9pcnEoYWRldiwgTlVMTCwgJmVudHJ5KTsNCj4gPiArICAgICAgIH0NCj4gDQo+IERvbid0 IHlvdSB3YW50IGEgc2VwYXJhdGUgdGltZXIgZm9yIGVhY2ggdmlydHVhbCBjcnRjPyAgSSB0aGlu ayB5b3Ugc2hvdWxkIGFsc28NCj4gYXQgbGVhc3QgdHJhY2sgd2hpY2ggdmlydHVhbCBjcnRjcyBo YXZlIHZibGFua3MgZW5hYmxlZCBzbyB5b3UgZG9uJ3QgaGFuZGxlDQo+IHZibGFua3Mgb24gY3J0 Y3MgdGhhdCBhcmUgb2ZmIGZvciBleGFtcGxlLg0KPiANCltbRW1pbHlEXV0gVGhhbmtzLCBPay4g SSB3aWxsIHNlcGFyYXRlIHRoZSB0aW1lciBmb3IgZWFjaCBjcnRjLg0KPiANCj4gPiArDQo+ID4g ICAgICAgICBocnRpbWVyX3N0YXJ0KHZibGFua190aW1lciwga3RpbWVfc2V0KDAsDQo+IERDRV9W SVJUVUFMX1ZCTEFOS19QRVJJT0QpLCBIUlRJTUVSX01PREVfUkVMKTsNCj4gPiAgICAgICAgIHJl dHVybiBIUlRJTUVSX05PUkVTVEFSVDsNCj4gPiAgfQ0KPiA+IEBAIC02ODksNiArNzQyLDIxIEBA IHN0YXRpYyBpbnQgZGNlX3ZpcnR1YWxfc2V0X2NydGNfaXJxX3N0YXRlKHN0cnVjdA0KPiBhbWRn cHVfZGV2aWNlICphZGV2LA0KPiA+ICAgICAgICAgY2FzZSBBTURHUFVfQ1JUQ19JUlFfVkJMQU5L MToNCj4gPiAgICAgICAgICAgICAgICAgZGNlX3ZpcnR1YWxfc2V0X2NydGNfdmJsYW5rX2ludGVy cnVwdF9zdGF0ZShhZGV2LCAwLCBzdGF0ZSk7DQo+ID4gICAgICAgICAgICAgICAgIGJyZWFrOw0K PiA+ICsgICAgICAgY2FzZSBBTURHUFVfQ1JUQ19JUlFfVkJMQU5LMjoNCj4gPiArICAgICAgICAg ICAgICAgZGNlX3ZpcnR1YWxfc2V0X2NydGNfdmJsYW5rX2ludGVycnVwdF9zdGF0ZShhZGV2LCAx LCBzdGF0ZSk7DQo+ID4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgY2FzZSBB TURHUFVfQ1JUQ19JUlFfVkJMQU5LMzoNCj4gPiArICAgICAgICAgICAgICAgZGNlX3ZpcnR1YWxf c2V0X2NydGNfdmJsYW5rX2ludGVycnVwdF9zdGF0ZShhZGV2LCAyLCBzdGF0ZSk7DQo+ID4gKyAg ICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgY2FzZSBBTURHUFVfQ1JUQ19JUlFfVkJM QU5LNDoNCj4gPiArICAgICAgICAgICAgICAgZGNlX3ZpcnR1YWxfc2V0X2NydGNfdmJsYW5rX2lu dGVycnVwdF9zdGF0ZShhZGV2LCAzLCBzdGF0ZSk7DQo+ID4gKyAgICAgICAgICAgICAgIGJyZWFr Ow0KPiA+ICsgICAgICAgY2FzZSBBTURHUFVfQ1JUQ19JUlFfVkJMQU5LNToNCj4gPiArICAgICAg ICAgICAgICAgZGNlX3ZpcnR1YWxfc2V0X2NydGNfdmJsYW5rX2ludGVycnVwdF9zdGF0ZShhZGV2 LCA0LCBzdGF0ZSk7DQo+ID4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgY2Fz ZSBBTURHUFVfQ1JUQ19JUlFfVkJMQU5LNjoNCj4gPiArICAgICAgICAgICAgICAgZGNlX3ZpcnR1 YWxfc2V0X2NydGNfdmJsYW5rX2ludGVycnVwdF9zdGF0ZShhZGV2LCA1LCBzdGF0ZSk7DQo+ID4g KyAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ICAgICAgICAgZGVmYXVsdDoNCj4gPiAgICAgICAg ICAgICAgICAgYnJlYWs7DQo+ID4gICAgICAgICB9DQo+ID4gQEAgLTcwOCwxNiArNzc2LDIwIEBA IHN0YXRpYyBpbnQgZGNlX3ZpcnR1YWxfY3J0Y19pcnEoc3RydWN0DQo+IGFtZGdwdV9kZXZpY2Ug KmFkZXYsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFtZGdwdV9p cnFfc3JjICpzb3VyY2UsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpICB7DQo+ID4gLSAgICAgICB1bnNpZ25lZCBjcnRjID0g MDsNCj4gPiArICAgICAgIGludCBpOw0KPiA+ICAgICAgICAgdW5zaWduZWQgaXJxX3R5cGUgPSBB TURHUFVfQ1JUQ19JUlFfVkJMQU5LMTsNCj4gPg0KPiA+IC0gICAgICAgZGNlX3ZpcnR1YWxfY3J0 Y192YmxhbmtfaW50X2FjayhhZGV2LCBjcnRjKTsNCj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkg PCBhZGV2LT5tb2RlX2luZm8ubnVtX2NydGM7IGkrKykgew0KPiA+ICsgICAgICAgICAgICAgICBp cnFfdHlwZSA9IGFtZGdwdV9jcnRjX2lkeF90b19pcnFfdHlwZShhZGV2LCBpKTsNCj4gPiArICAg ICAgICAgICAgICAgZW50cnktPnNyY19pZCA9IGk7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAg ICBkY2VfdmlydHVhbF9jcnRjX3ZibGFua19pbnRfYWNrKGFkZXYsIGkpOw0KPiA+ICsgICAgICAg ICAgICAgICBpZiAoYW1kZ3B1X2lycV9lbmFibGVkKGFkZXYsIHNvdXJjZSwgaXJxX3R5cGUpKQ0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRybV9oYW5kbGVfdmJsYW5rKGFkZXYtPmRkZXYs IGkpOw0KPiA+DQo+ID4gLSAgICAgICBpZiAoYW1kZ3B1X2lycV9lbmFibGVkKGFkZXYsIHNvdXJj ZSwgaXJxX3R5cGUpKSB7DQo+ID4gLSAgICAgICAgICAgICAgIGRybV9oYW5kbGVfdmJsYW5rKGFk ZXYtPmRkZXYsIGNydGMpOw0KPiA+ICsgICAgICAgICAgICAgICBkY2VfdmlydHVhbF9wYWdlZmxp cF9pcnEoYWRldiwgTlVMTCwgZW50cnkpOw0KPiA+ICsgICAgICAgICAgICAgICBEUk1fREVCVUco IklIOiBEJWQgdmJsYW5rXG4iLCBpICsgMSk7DQo+ID4gICAgICAgICB9DQo+ID4gLSAgICAgICBk Y2VfdmlydHVhbF9wYWdlZmxpcF9pcnEoYWRldiwgTlVMTCwgTlVMTCk7DQo+ID4gLSAgICAgICBE Uk1fREVCVUcoIklIOiBEJWQgdmJsYW5rXG4iLCBjcnRjICsgMSk7DQo+ID4gICAgICAgICByZXR1 cm4gMDsNCj4gPiAgfQ0KPiA+DQo+ID4gQEAgLTc0NCw3ICs4MTYsNyBAQCBzdGF0aWMgaW50IGRj ZV92aXJ0dWFsX3BhZ2VmbGlwX2lycShzdHJ1Y3QNCj4gYW1kZ3B1X2RldmljZSAqYWRldiwNCj4g PiAgICAgICAgIHN0cnVjdCBhbWRncHVfY3J0YyAqYW1kZ3B1X2NydGM7DQo+ID4gICAgICAgICBz dHJ1Y3QgYW1kZ3B1X2ZsaXBfd29yayAqd29ya3M7DQo+ID4NCj4gPiAtICAgICAgIGNydGNfaWQg PSAwOw0KPiA+ICsgICAgICAgY3J0Y19pZCA9IGVudHJ5LT5zcmNfaWQ7DQo+ID4gICAgICAgICBh bWRncHVfY3J0YyA9IGFkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjX2lkXTsNCj4gPg0KPiA+ICAg ICAgICAgaWYgKGNydGNfaWQgPj0gYWRldi0+bW9kZV9pbmZvLm51bV9jcnRjKSB7DQo+ID4gLS0N Cj4gPiAxLjkuMQ0KPiA+DQo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18NCj4gPiBhbWQtZ2Z4IG1haWxpbmcgbGlzdA0KPiA+IGFtZC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbWQtZ2Z4DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1n ZngK