From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhi Wang Subject: Re: [RFCv2 03/14] drm/i915: Introduce host graphics memory/fence partition for GVT-g Date: Tue, 23 Feb 2016 21:23:05 +0800 Message-ID: <56CC5D39.7090408@intel.com> References: <1455795741-3487-1-git-send-email-zhi.a.wang@intel.com> <1455795741-3487-4-git-send-email-zhi.a.wang@intel.com> <1456233390.7789.80.camel@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 0DAC46E563 for ; Tue, 23 Feb 2016 13:25:46 +0000 (UTC) In-Reply-To: <1456233390.7789.80.camel@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: Joonas Lahtinen , intel-gfx@lists.freedesktop.org, igvt-g@lists.01.org Cc: daniel.vetter@ffwll.ch, david.j.cowperthwaite@intel.com, zhiyuan.lv@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwMi8yMy8xNiAyMToxNiwgSm9vbmFzIExhaHRpbmVuIHdyb3RlOgo+IE9uIHRvLCAyMDE2 LTAyLTE4IGF0IDE5OjQyICswODAwLCBaaGkgV2FuZyB3cm90ZToKPj4gRnJvbTogQmluZyBOaXUg PGJpbmcubml1QGludGVsLmNvbT4KPj4KPj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGhvc3QgZ3Jh cGhpY3MgbWVtb3J5L2ZlbmNlIHBhcnRpdGlvbiB3aGVuIEdWVC1nCj4+IGlzIGVuYWJsZWQuCj4+ Cj4+IFVuZGVyIEdWVC1nLCBpOTE1IGhvc3QgZHJpdmVyIG9ubHkgb3duZWQgbGltaXRlZCBncmFw aGljcyByZXNvdXJjZXMsCj4+IG90aGVycyBhcmUgbWFuYWdlZCBieSBHVlQtZyByZXNvdXJjZSBh bGxvY2F0b3IgYW5kIGtlcHQgZm9yIG90aGVyIHZHUFVzLgo+Pgo+PiB2MjoKPj4gLSBBZGRyZXNz IGFsbCBjb2Rpbmctc3R5bGUgY29tbWVudHMgZnJvbSBKb29uYXMgcHJldmlvdXNseS4KPj4gLSBG aXggZXJyb3JzIGFuZCB3YXJubmluZyByZXBvcnRlZCBieSBjaGVja3BhdGNoLnBsLiAoSm9vbmFz KQo+PiAtIE1vdmUgdGhlIGdyYXBocyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMuIChEYW5pZWwpCj4+ Cj4+IFNpZ25lZC1vZmYtYnk6IEJpbmcgTml1IDxiaW5nLm5pdUBpbnRlbC5jb20+Cj4+IFNpZ25l ZC1vZmYtYnk6IFpoaSBXYW5nIDx6aGkuYS53YW5nQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jICAgICAgfCAgNCArKysrCj4+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Z0L3BhcmFtcy5jICAgfCAxMiArKysrKysrKysrKysKPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9ndnQvcGFyYW1zLmggICB8ICAzICsrKwo+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICB8ICA0ICsrKy0K Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyB8ICA0ICsrLS0KPj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyAgICB8IDIxICsrKysrKysrKysrKysrKysr LS0tLQo+PiAgIDcgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMo LSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9ndnQuYwo+PiBpbmRleCA1MmNmYTMyLi4yMDk5YjdlIDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvZ3Z0LmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Z0L2d2dC5jCj4+IEBAIC0zNDgsNiArMzQ4LDEwIEBAIHZvaWQg Kmd2dF9jcmVhdGVfcGd0X2RldmljZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4+ICAgCQlnb3RvIGVycjsKPj4gICAJfQo+Pgo+PiArCWRldl9wcml2LT5ndnQuaG9zdF9mZW5j ZV9zeiA9IGd2dC5ob3N0X2ZlbmNlX3N6Owo+PiArCWRldl9wcml2LT5ndnQuaG9zdF9sb3dfZ21f c3pfaW5fbWIgPSBndnQuaG9zdF9sb3dfZ21fc3o7Cj4+ICsJZGV2X3ByaXYtPmd2dC5ob3N0X2hp Z2hfZ21fc3pfaW5fbWIgPSBndnQuaG9zdF9oaWdoX2dtX3N6Owo+Cj4gSSdtIHRoaW5raW5nLCBj b3VsZCB3ZSBleHBvc2UgdGhlIHBndF9kZXZpY2Ugc3RydWN0IChhdCBsZWFzdAo+IHBhcnRpYWxs eSwgYW5kIHRoZW4gaGF2ZSBhIFBJTVBMIHBhdHRlcm4pLCB0byBhdm9pZCB0aGlzIGtpbmQgb2YK PiBkdXBsaWNhdGlvbiBvZiBkZWNsYXJhdGlvbnMgYW5kIHVubmVjZXNzYXJ5IGNvcGllcyBiZXR3 ZWVuIGk5MTUgYW5kCj4gaTkxNV9ndnQgbW9kdWxlcz8KPgo+IEl0J3MgbGl0dGxlIHJvdWdoIHRo YXQgdGhlIGd2dCBkcml2ZXIgd3JpdGVzIHRvIGk5MTVfcHJpdmF0ZSBzdHJ1Y3QuCj4gSSdkIHJh dGhlciBzZWUgdGhhdCBndnQuaG9zdF9mZW5jZV9zeiBhbmQgb3RoZXIgdmFyaWFibGVzIGdldCBz YW5pdGl6ZWQKPiBhbmQgdGhlbiB3cml0dGVuIHRvIHBndF9kZXZpY2UgKG1heWJlIHRoZSBwdWJs aWMgcGFydCB3b3VsZCBiZQo+IGk5MTVfcGd0X2RldmljZSkgYW5kIHVzZWQgYnkgZ3Z0IGFuZCBp OTE1IGNvZGUuCj4KPiBXYXMgdGhpcyBldmVyIGNvbnNpZGVyZWQ/Cj4KVGhlIHByZXZpb3VzIHZl cnNpb24gZG8gc29tZXRoaW5nIHNpbWlsYXIgbGlrZSB0aGF0LCBib3RoIGk5MTUgYW5kIGd2dCAK cmVhZHMgR1ZUIG1vZHVsZSBrZXJuZWwgcGFyYW1ldGVyIGJ1dCBjb25zaWRlcmVkIHRoYXQgR1ZU IG1vZHVsZXMgY291bGQgCmJlIGNvbmZpZ3VyZWQgYXMgIm4iIGluIGtlcm5lbCBjb25maWd1cmF0 aW9uLCBwcm9iYWJseSB3ZSBzaG91bGQgbGV0IAppOTE1IHRvIHN0b3JlIHRoaXMgaW5mb3JtYXRp b24gYW5kIEdWVCB0byBjb25maWd1cmUgaXQgaWYgR1ZUIGlzIGFjdGl2ZT8KPj4gKwo+PiAgIAln dnRfZGJnX2NvcmUoInBndCBkZXZpY2UgY3JlYXRpb24gZG9uZSwgaWQgJWQiLCBwZGV2LT5pZCk7 Cj4+Cj4+ICAgCXJldHVybiBwZGV2Owo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L3BhcmFtcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3BhcmFtcy5jCj4+IGlu ZGV4IGQzODFkMTcuLjc1MTk1ZmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d2dC9wYXJhbXMuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvcGFyYW1zLmMK Pj4gQEAgLTI2LDcgKzI2LDE5IEBACj4+ICAgc3RydWN0IGd2dF9rZXJuZWxfcGFyYW1zIGd2dCA9 IHsKPj4gICAJLmVuYWJsZSA9IGZhbHNlLAo+PiAgIAkuZGVidWcgPSAwLAo+PiArCS5ob3N0X2xv d19nbV9zeiA9IDk2LAkvKiBpbiBNQiAqLwo+PiArCS5ob3N0X2hpZ2hfZ21fc3ogPSAzODQsIC8q IGluIE1CICovCj4+ICsJLmhvc3RfZmVuY2Vfc3ogPSA0LAo+PiAgIH07Cj4+Cj4+ICAgbW9kdWxl X3BhcmFtX25hbWVkKGd2dF9lbmFibGUsIGd2dC5lbmFibGUsIGJvb2wsIDA2MDApOwo+PiAgIE1P RFVMRV9QQVJNX0RFU0MoZ3Z0X2VuYWJsZSwgIkVuYWJsZSBJbnRlbCBHVlQtZyBob3N0IHN1cHBv cnQiKTsKPj4gKwo+PiArbW9kdWxlX3BhcmFtX25hbWVkKGd2dF9ob3N0X2xvd19nbV9zeiwgZ3Z0 Lmhvc3RfbG93X2dtX3N6LCBpbnQsIDA2MDApOwo+PiArTU9EVUxFX1BBUk1fREVTQyhndnRfaG9z dF9sb3dfZ21fc3osICJBbW91bnQgb2YgYXBlcnR1cmUgc2l6ZSBvZiBob3N0IChpbiBNQikiKTsK Pgo+IEFzIGk5MTVfZ3Z0IHdpbGwgYmUgdGhlIGhvc3QgbW9kdWxlLCAiZ3Z0X2hvc3QiIGNhbiBi ZSByZW1vdmVkIHNvIHRoZQo+IG1vZHVsZSBwYXJhbWV0ZXJzIGJlY29tZTsKPgo+IGk5MTVfZ3Z0 Lmxvd19nbV9zeiBpbnN0ZWFkIG9mIGk5MTVfZ3Z0Lmd2dF9ob3N0X2xvd19nbV9zego+Cj4gQWxz byBzaG91bGQgdGhlc2UgYmUgX3Vuc2FmZSBwYXJhbWV0ZXJzIGJlY2F1c2UgSSBiZXQgdGhleSBj YW4gbWFrZSB0aGUKPiBtYWNoaW5lIGdvIGNyYXp5IGlmIHdyb25nPwo+ClllcywgdGhlIHBhcmFt cyBuZWVkIHRvIGJlIGNoZWNrZWQsIGluZGVlZC4KPj4gKwo+PiArbW9kdWxlX3BhcmFtX25hbWVk KGd2dF9ob3N0X2hpZ2hfZ21fc3osIGd2dC5ob3N0X2hpZ2hfZ21fc3osIGludCwgMDYwMCk7Cj4+ ICtNT0RVTEVfUEFSTV9ERVNDKGd2dF9ob3N0X2hpZ2hfZ21fc3osICJBbW91bnQgb2YgaGlnaCBt ZW1vcnkgc2l6ZSBvZiBob3N0IChpbiBNQikiKTsKPj4gKwo+PiArbW9kdWxlX3BhcmFtX25hbWVk KGd2dF9ob3N0X2ZlbmNlX3N6LCBndnQuaG9zdF9mZW5jZV9zeiwgaW50LCAwNjAwKTsKPj4gK01P RFVMRV9QQVJNX0RFU0MoZ3Z0X2hvc3RfZmVuY2Vfc3osICJBbW91bnQgb2YgZmVuY2Ugc2l6ZSBv ZiBob3N0IChpbiBNQikiKTsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2 dC9wYXJhbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9wYXJhbXMuaAo+PiBpbmRleCBk Mjk1NWI5Li5mNGU5MzU2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQv cGFyYW1zLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Z0L3BhcmFtcy5oCj4+IEBA IC0yNyw2ICsyNyw5IEBACj4+ICAgc3RydWN0IGd2dF9rZXJuZWxfcGFyYW1zIHsKPj4gICAJYm9v bCBlbmFibGU7Cj4+ICAgCWludCBkZWJ1ZzsKPj4gKwlpbnQgaG9zdF9sb3dfZ21fc3o7Cj4+ICsJ aW50IGhvc3RfaGlnaF9nbV9zejsKPj4gKwlpbnQgaG9zdF9mZW5jZV9zejsKPj4gICB9Owo+Pgo+ PiAgIGV4dGVybiBzdHJ1Y3QgZ3Z0X2tlcm5lbF9wYXJhbXMgZ3Z0Owo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPj4gaW5kZXggMmY4OTdjMy4uMWZkNTU3NSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4+IEBAIC0xNzA1LDggKzE3MDUsNDMgQEAgc3RydWN0IGk5MTVfd29ya2Fyb3Vu ZHMgewo+PiAgIAl1MzIgaHdfd2hpdGVsaXN0X2NvdW50W0k5MTVfTlVNX1JJTkdTXTsKPj4gICB9 Owo+Pgo+PiArLyoKPj4gKyAqIFVuZGVyIEdWVC1nLCBpOTE1IGhvc3QgZHJpdmVyIG9ubHkgb3du ZWQgbGltaXRlZCBncmFwaGljcyByZXNvdXJjZXMsCj4+ICsgKiBvdGhlcnMgYXJlIG1hbmFnZWQg YnkgR1ZULWcgcmVzb3VyY2UgYWxsb2NhdG9yIGFuZCBrZXB0IGZvciBvdGhlciB2R1BVcy4KPj4g KyAqCj4+ICsgKiBGb3IgZ3JhcGhpY3MgbWVtb3J5IHNwYWNlIHBhcnRpdGlvbiwgYSB0eXBpY2Fs IGxheW91dCBsb29rcyBsaWtlOgo+PiArICoKPj4gKyAqICstLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwqIEhvc3Qg fCAgICpHVlQtZyBSZXNvdXJjZSAgICAgfCogSG9zdHwgICAqR1ZULWcgUmVzb3VyY2UgICAgIHwK Pj4gKyAqIHwgT3duZWQgfCAgIEFsbG9jYXRvciBNYW5hZ2VkICAgfCBPd25lZHwgICBBbGxvY2F0 b3IgTWFuYWdlZCAgIHwKPj4gKyAqIHwgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgfCAgICAgICB8ICAgICAgIHwgICAgICAgfCAgICAgIHwgICAgICAgfCAgICAgICB8ICAgICAg IHwKPj4gKyAqIHwgaTkxNSAgfCB2bSAxICB8IHZtIDIgIHwgdm0gMyAgfCBpOTE1IHwgdm0gMSAg fCB2bSAyICB8IHZtIDMgIHwKPj4gKyAqIHwgICAgICAgfCAgICAgICB8ICAgICAgIHwgICAgICAg fCAgICAgIHwgICAgICAgfCAgICAgICB8ICAgICAgIHwKPj4gKyAqICstLS0tLS0tKy0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsKPj4gKyAqIHwg ICAgICAgICAgIEFwZXJ0dXJlICAgICAgICAgICAgfCAgICAgICAgICAgIEhpZGRlbiAgICAgICAg ICAgIHwKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgIEdHVFQg bWVtb3J5IHNwYWNlICAgICAgICAgICAgICAgICAgICAgIHwKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq Cj4+ICsgKiBTaW1pbGFyIHdpdGggZmVuY2UgcmVnaXN0ZXJzIHBhcnRpdGlvbjoKPj4gKyAqCj4+ ICsgKiArLS0tLS0tICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgKiBIb3N0fCAg ICBHVlQtZyBSZXNvdXJjZSAgICAgfAo+PiArICogfCBPd25lZCB8ICAgQWxsb2NhdG9yIE1hbmFn ZWQgICArCj4+ICsgKiAwICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIDMxCj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgfCAgICAgICB8 ICAgICAgIHwgICAgICAgfAo+PiArICogfCBpOTE1ICB8IHZtIDEgIHwgdm0gMiAgfCB2bSAzICB8 Cj4+ICsgKiB8ICAgICAgIHwgICAgICAgfCAgICAgICB8ICAgICAgIHwKPj4gKyAqICstLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKwo+PiArICovCj4+ICAgc3RydWN0IGk5MTVfZ3Z0IHsK Pj4gICAJdm9pZCAqcGd0X2RldmljZTsKPj4gKwl1MzIgaG9zdF9sb3dfZ21fc3pfaW5fbWI7Cj4+ ICsJdTMyIGhvc3RfaGlnaF9nbV9zel9pbl9tYjsKPj4gKwlpbnQgaG9zdF9mZW5jZV9zejsKPj4g ICB9Owo+Pgo+PiAgIHN0cnVjdCBpOTE1X3ZpcnR1YWxfZ3B1IHsKPj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCj4+IGluZGV4IGY2OGYzNDYuLjFjMDAwNmEgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYwo+PiBAQCAtNTA3OCw3ICs1MDc4LDkgQEAgaTkxNV9nZW1fbG9hZF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCWVsc2UKPj4gICAJCWRldl9wcml2LT5udW1fZmVuY2Vf cmVncyA9IDg7Cj4+Cj4+IC0JaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldikpCj4+ICsJaWYgKGlu dGVsX2d2dF9hY3RpdmUoZGV2KSkKPj4gKwkJZGV2X3ByaXYtPm51bV9mZW5jZV9yZWdzID0gZGV2 X3ByaXYtPmd2dC5ob3N0X2ZlbmNlX3N6Owo+PiArCWVsc2UgaWYgKGludGVsX3ZncHVfYWN0aXZl KGRldikpCj4+ICAgCQlkZXZfcHJpdi0+bnVtX2ZlbmNlX3JlZ3MgPQo+PiAgIAkJCQlJOTE1X1JF QUQodmd0aWZfcmVnKGF2YWlsX3JzLmZlbmNlX251bSkpOwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+PiBpbmRleCA5MTI3ZjhmLi5kZTA5ZGQ0IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+PiBAQCAtMjczNCw3ICsyNzM0LDcgQEAgc3RhdGljIGlu dCBpOTE1X2dlbV9zZXR1cF9nbG9iYWxfZ3R0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAg CWk5MTVfYWRkcmVzc19zcGFjZV9pbml0KGdndHRfdm0sIGRldl9wcml2KTsKPj4gICAJZ2d0dF92 bS0+dG90YWwgKz0gUEFHRV9TSVpFOwo+Pgo+PiAtCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXYp KSB7Cj4+ICsJaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldikgfHwgaW50ZWxfZ3Z0X2FjdGl2ZShk ZXYpKSB7Cj4+ICAgCQlyZXQgPSBpbnRlbF92Z3RfYmFsbG9vbihkZXYpOwo+PiAgIAkJaWYgKHJl dCkKPj4gICAJCQlyZXR1cm4gcmV0Owo+PiBAQCAtMjgzMyw3ICsyODMzLDcgQEAgdm9pZCBpOTE1 X2dsb2JhbF9ndHRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAlpOTE1X2dl bV9jbGVhbnVwX3N0b2xlbihkZXYpOwo+Pgo+PiAgIAlpZiAoZHJtX21tX2luaXRpYWxpemVkKCZ2 bS0+bW0pKSB7Cj4+IC0JCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXYpKQo+PiArCQlpZiAoaW50 ZWxfdmdwdV9hY3RpdmUoZGV2KSB8fCBpbnRlbF9ndnRfYWN0aXZlKGRldikpCj4+ICAgCQkJaW50 ZWxfdmd0X2RlYmFsbG9vbigpOwo+Pgo+PiAgIAkJZHJtX21tX3Rha2Vkb3duKCZ2bS0+bW0pOwo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwo+PiBpbmRleCBkZWE3NDI5Li43YmUxNDM1IDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYwo+PiBAQCAtMTg4LDEwICsxODgsMjMgQEAgaW50 IGludGVsX3ZndF9iYWxsb29uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCXVuc2lnbmVk IGxvbmcgdW5tYXBwYWJsZV9iYXNlLCB1bm1hcHBhYmxlX3NpemUsIHVubWFwcGFibGVfZW5kOwo+ PiAgIAlpbnQgcmV0Owo+Pgo+PiAtCW1hcHBhYmxlX2Jhc2UgPSBJOTE1X1JFQUQodmd0aWZfcmVn KGF2YWlsX3JzLm1hcHBhYmxlX2dtYWRyLmJhc2UpKTsKPj4gLQltYXBwYWJsZV9zaXplID0gSTkx NV9SRUFEKHZndGlmX3JlZyhhdmFpbF9ycy5tYXBwYWJsZV9nbWFkci5zaXplKSk7Cj4+IC0JdW5t YXBwYWJsZV9iYXNlID0gSTkxNV9SRUFEKHZndGlmX3JlZyhhdmFpbF9ycy5ub25tYXBwYWJsZV9n bWFkci5iYXNlKSk7Cj4+IC0JdW5tYXBwYWJsZV9zaXplID0gSTkxNV9SRUFEKHZndGlmX3JlZyhh dmFpbF9ycy5ub25tYXBwYWJsZV9nbWFkci5zaXplKSk7Cj4+ICsJaWYgKGludGVsX2d2dF9hY3Rp dmUoZGV2KSkgewo+PiArCQltYXBwYWJsZV9iYXNlID0gMDsKPj4gKwkJbWFwcGFibGVfc2l6ZSA9 IGRldl9wcml2LT5ndnQuaG9zdF9sb3dfZ21fc3pfaW5fbWIgPDwgMjA7Cj4+ICsJCXVubWFwcGFi bGVfYmFzZSA9IGRldl9wcml2LT5ndHQubWFwcGFibGVfZW5kOwo+PiArCQl1bm1hcHBhYmxlX3Np emUgPSBkZXZfcHJpdi0+Z3Z0Lmhvc3RfaGlnaF9nbV9zel9pbl9tYiA8PCAyMDsKPj4gKwl9IGVs c2UgaWYgKGludGVsX3ZncHVfYWN0aXZlKGRldikpIHsKPj4gKwkJbWFwcGFibGVfYmFzZSA9IEk5 MTVfUkVBRCgKPj4gKwkJCXZndGlmX3JlZyhhdmFpbF9ycy5tYXBwYWJsZV9nbWFkci5iYXNlKSk7 Cj4+ICsJCW1hcHBhYmxlX3NpemUgPSBJOTE1X1JFQUQoCj4+ICsJCQl2Z3RpZl9yZWcoYXZhaWxf cnMubWFwcGFibGVfZ21hZHIuc2l6ZSkpOwo+PiArCQl1bm1hcHBhYmxlX2Jhc2UgPSBJOTE1X1JF QUQoCj4+ICsJCQl2Z3RpZl9yZWcoYXZhaWxfcnMubm9ubWFwcGFibGVfZ21hZHIuYmFzZSkpOwo+ PiArCQl1bm1hcHBhYmxlX3NpemUgPSBJOTE1X1JFQUQoCj4+ICsJCQl2Z3RpZl9yZWcoYXZhaWxf cnMubm9ubWFwcGFibGVfZ21hZHIuc2l6ZSkpOwo+PiArCX0gZWxzZSB7Cj4+ICsJCXJldHVybiAt RU5PREVWOwo+PiArCX0KPj4KPj4gICAJbWFwcGFibGVfZW5kID0gbWFwcGFibGVfYmFzZSArIG1h cHBhYmxlX3NpemU7Cj4+ICAgCXVubWFwcGFibGVfZW5kID0gdW5tYXBwYWJsZV9iYXNlICsgdW5t YXBwYWJsZV9zaXplOwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK