From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 6/7] drm/i915: Expose RPCS (SSEU) configuration to userspace Date: Thu, 6 Sep 2018 10:50:32 +0100 Message-ID: <9754f23c-47af-0196-1434-bc41c2fe026d@linux.intel.com> References: <20180905142222.3251-1-tvrtko.ursulin@linux.intel.com> <20180905142222.3251-7-tvrtko.ursulin@linux.intel.com> <153616138977.28292.10610247463718247671@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80DCA6E65E for ; Thu, 6 Sep 2018 09:50:35 +0000 (UTC) In-Reply-To: <153616138977.28292.10610247463718247671@skylake-alporthouse-com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA1LzA5LzIwMTggMTY6MjksIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE4LTA5LTA1IDE1OjIyOjIxKQo+PiBGcm9tOiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAKPiBOb3cgdGhpcyBsb29rcyBub3RoaW5nIGxpa2Ug bXkgZmlyc3Qgc3VnZ2VzdGlvbiEKPiAKPiBJIHRoaW5rIFR2cnRrbyBzaG91bGQgc3RhbmQgYWQg dGhlIGF1dGhvciBvZiB0aGUgZmluYWwgbWVjaGFuaXNtLCBJCj4gdGhpbmsgaXQgaXMgc3Vic3Rh bnRpYWxseSBkaWZmZXJlbnQgZnJvbSB0aGUgc3VibWlzc2lvbiBtZXRob2QgZmlyc3QKPiBkb25l IGJ5IExpb25lbC4KCk9rYXkgSSdsbCByZWxpZXZlIHlvdSBmcm9tIGF1dGhvcnNoaXAgb24gdGhp cyBvbmUuIE5vdCBzdXJlIHdobyBiZXR3ZWVuIApMaW9uZWwgYW5kIG1lIHdpdGgsIGJ1dCBJJ2xs IHRoaW5rIG9mIHNvbWV0aGluZy4KCj4+IFdlIHdhbnQgdG8gYWxsb3cgdXNlcnNwYWNlIHRvIHJl Y29uZmlndXJlIHRoZSBzdWJzbGljZSBjb25maWd1cmF0aW9uIGZvcgo+PiBpdHMgb3duIHVzZSBj YXNlLiBUbyBkbyBzbywgd2UgZXhwb3NlIGEgY29udGV4dCBwYXJhbWV0ZXIgdG8gYWxsb3cKPj4g YWRqdXN0bWVudCBvZiB0aGUgUlBDUyByZWdpc3RlciBzdG9yZWQgd2l0aGluIHRoZSBjb250ZXh0 IGltYWdlIChhbmQKPj4gY3VycmVudGx5IG5vdCBhY2Nlc3NpYmxlIHZpYSBMUkkpLiBJZiB0aGUg Y29udGV4dCBpcyBhZGp1c3RlZCBiZWZvcmUKPj4gZmlyc3QgdXNlLCB0aGUgYWRqdXN0bWVudCBp cyBmb3IgImZyZWUiOyBvdGhlcndpc2UgaWYgdGhlIGNvbnRleHQgaXMKPj4gYWN0aXZlIHdlIGZs dXNoIHRoZSBjb250ZXh0IG9mZiB0aGUgR1BVIChzdGFsbGluZyBhbGwgdXNlcnMpIGFuZCBmb3Jj aW5nCj4+IHRoZSBHUFUgdG8gc2F2ZSB0aGUgY29udGV4dCB0byBtZW1vcnkgd2hlcmUgd2UgY2Fu IG1vZGlmeSBpdCBhbmQgc28KPj4gZW5zdXJlIHRoYXQgdGhlIHJlZ2lzdGVyIGlzIHJlbG9hZGVk IG9uIG5leHQgZXhlY3V0aW9uLgo+Pgo+PiBUaGUgb3ZlcmhlYWQgb2YgbWFuYWdpbmcgYWRkaXRp b25hbCBFVSBzdWJzbGljZXMgY2FuIGJlIHNpZ25pZmljYW50LAo+PiBlc3BlY2lhbGx5IGluIG11 bHRpLWNvbnRleHQgd29ya2xvYWRzLiBOb24tR1BHUFUgY29udGV4dHMgc2hvdWxkCj4+IHByZWZl cmFibHkgZGlzYWJsZSB0aGUgc3Vic2xpY2VzIGl0IGlzIG5vdCB1c2luZywgYW5kIG90aGVycyBz aG91bGQKPj4gZmluZS10dW5lIHRoZSBudW1iZXIgdG8gbWF0Y2ggdGhlaXIgd29ya2xvYWQuCj4+ Cj4+IFdlIGV4cG9zZSBjb21wbGV0ZSBjb250cm9sIG92ZXIgdGhlIFJQQ1MgcmVnaXN0ZXIsIGFs bG93aW5nCj4+IGNvbmZpZ3VyYXRpb24gb2Ygc2xpY2Uvc3Vic2xpY2UsIHZpYSBtYXNrcyBwYWNr ZWQgaW50byBhIHU2NCBmb3IKPj4gc2ltcGxpY2l0eS4gRm9yIGV4YW1wbGUsCj4+Cj4+ICAgICAg ICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBhcmc7Cj4+ICAgICAgICAgIHN0 cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHNzZXUgPSB7IC5jbGFzcyA9IDAs Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC5pbnN0YW5jZSA9IDAsIH07Cj4+Cj4+ICAgICAgICAgIG1lbXNldCgmYXJnLCAwLCBzaXpl b2YoYXJnKSk7Cj4+ICAgICAgICAgIGFyZy5jdHhfaWQgPSBjdHg7Cj4+ICAgICAgICAgIGFyZy5w YXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VVOwo+PiAgICAgICAgICBhcmcudmFsdWUgPSAo dWludHB0cl90KSAmc3NldTsKPj4gICAgICAgICAgaWYgKGRybUlvY3RsKGZkLCBEUk1fSU9DVExf STkxNV9HRU1fQ09OVEVYVF9HRVRQQVJBTSwgJmFyZykgPT0gMCkgewo+PiAgICAgICAgICAgICAg ICAgIHNzZXUucGFja2VkLnN1YnNsaWNlX21hc2sgPSAwOwo+Pgo+PiAgICAgICAgICAgICAgICAg IGRybUlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9TRVRQQVJBTSwgJmFyZyk7 Cj4+ICAgICAgICAgIH0KPj4KPj4gY291bGQgYmUgdXNlZCB0byBkaXNhYmxlIGFsbCBzdWJzbGlj ZXMgd2hlcmUgc3VwcG9ydGVkLgo+Pgo+PiB2MjogRml4IG9mZnNldCBvZiBDVFhfUl9QV1JfQ0xL X1NUQVRFIGluIGludGVsX2xyX2NvbnRleHRfc2V0X3NzZXUoKSAoTGlvbmVsKQo+Pgo+PiB2Mzog QWRkIGFiaWxpdHkgdG8gcHJvZ3JhbSB0aGlzIHBlciBlbmdpbmUgKENocmlzKQo+Pgo+PiB2NDog TW92ZSBtb3N0IGdldF9zc2V1KCkgaW50byBpOTE1X2dlbV9jb250ZXh0LmMgKExpb25lbCkKPj4K Pj4gdjU6IFZhbGlkYXRlIHNzZXUgY29uZmlndXJhdGlvbiBhZ2FpbnN0IHRoZSBkZXZpY2UncyBj YXBhYmlsaXRpZXMgKExpb25lbCkKPj4KPj4gdjY6IENoYW5nZSBjb250ZXh0IHBvd2VyZ2F0aW5n IHNldHRpbmdzIHRocm91Z2ggTUlfU0RNIG9uIGtlcm5lbCBjb250ZXh0IChDaHJpcykKPj4KPj4g djc6IFN5bmNocm9uaXplIHRoZSByZXF1ZXN0cyBmb2xsb3dpbmcgYSBwb3dlcmdhdGluZyBzZXR0 aW5nIGNoYW5nZSB1c2luZyBhIGdsb2JhbAo+PiAgICAgIGRlcGVuZGVuY3kgKENocmlzKQo+PiAg ICAgIEl0ZXJhdGUgdGltZWxpbmVzIHRocm91Z2ggZGV2X3ByaXYuZ3QuYWN0aXZlX3JpbmdzIChU dnJ0a28pCj4+ICAgICAgRGlzYWJsZSBSUENTIGNvbmZpZ3VyYXRpb24gc2V0dGluZyBmb3Igbm9u IGNhcGFibGUgdXNlcnMgKExpb25lbC9UdnJ0a28pCj4+Cj4+IHY4OiBzL3VuaW9uIGludGVsX3Nz ZXUvc3RydWN0IGludGVsX3NzZXUvIChMaW9uZWwpCj4+ICAgICAgcy9kZXZfcHJpdi9pOTE1LyAo VHZydGtvKQo+PiAgICAgIENoYW5nZSB1YXBpIGNsYXNzL2luc3RhbmNlIGZpZWxkcyB0byB1MTYg KFR2cnRrbykKPj4gICAgICBCdW1wIG1hc2sgZmllbGRzIHRvIDY0Yml0cyAoTGlvbmVsKQo+PiAg ICAgIERvbid0IHJldHVybiBFUEVSTSB3aGVuIGR5bmFtaWMgc3NldSBpcyBkaXNhYmxlZCAoVHZy dGtvKQo+Pgo+PiB2OTogSW1wb3J0IGNvbnRleHQgaW1hZ2UgaW50byBrZXJuZWwgY29udGV4dCdz IHBwZ3R0IG9ubHkgd2hlbgo+PiAgICAgIHJlY29uZmlndXJpbmcgcG93ZXJnYXRlZCBzbGljZS9z dWJzbGljZXMgKENocmlzKQo+PiAgICAgIFVzZSBhbGlhc2luZyBwcGd0dCB3aGVuIG5lZWRlZCAo TWljaGVsKQo+Pgo+PiBUdnJ0a28gVXJzdWxpbjoKPj4KPj4gdjEwOgo+PiAgICogVXBkYXRlIGZv ciB1cHN0cmVhbSBjaGFuZ2VzLgo+PiAgICogUmVxdWVzdCBzdWJtaXQgbmVlZHMgYSBSUE0gcmVm ZXJlbmNlLgo+PiAgICogUmVqZWN0IG9uICFGVUxMX1BQR1RUIGZvciBzaW1wbGljaXR5Lgo+PiAg ICogUHVsbCBvdXQgZ2V0L3NldCBwYXJhbSB0byBoZWxwZXJzIGZvciByZWFkYWJpbGl0eSBhbmQg bGVzcyBpbmRlbnQuCj4+ICAgKiBVc2UgaTkxNV9yZXF1ZXN0X2F3YWl0X2RtYV9mZW5jZSBpbiBh ZGRfZ2xvYmFsX2JhcnJpZXIgdG8gc2tpcCB3YWl0cwo+PiAgICAgb24gdGhlIHNhbWUgdGltZWxp bmUgYW5kIGF2b2lkIEdFTV9CVUdfT04uCj4+ICAgKiBObyBuZWVkIHRvIGV4cGxpY2l0bHkgYXNz aWduIGEgTlVMTCBwb2ludGVyIHRvIGVuZ2luZSBpbiBsZWdhY3kgbW9kZS4KPj4gICAqIE5vIG5l ZWQgdG8gbW92ZSBnZW44X21ha2VfcnBjcyB1cC4KPj4gICAqIEZhY3RvcmVkIG91dCBnbG9iYWwg YmFycmllciBhcyBwcmVwIHBhdGNoLgo+PiAgICogQWxsb3cgdG8gb25seSBDQVBfU1lTX0FETUlO IGlmICFHZW4xMS4KPj4KPj4gdjExOgo+PiAgICogUmVtb3ZlIGVuZ2luZSB2ZnVuYyBpbiBmYXZv dXIgb2YgbG9jYWwgaGVscGVyLiAoQ2hyaXMgV2lsc29uKQo+PiAgICogU3RvcCByZXRpcmluZyBy ZXF1ZXN0cyBiZWZvcmUgdXBkYXRlcyBzaW5jZSBpdCBpcyBub3QgbmVlZGVkCj4+ICAgICAoQ2hy aXMgV2lsc29uKQo+PiAgICogSW1wbGVtZW50IGRpcmVjdCBDUFUgdXBkYXRlIHBhdGggZm9yIGlk bGUgY29udGV4dHMuIChDaHJpcyBXaWxzb24pCj4+ICAgKiBMZWZ0IHNpZGUgZGVwZW5kZW5jeSBu ZWVkcyBvbmx5IGJlIG9uIHRoZSBzYW1lIGNvbnRleHQgdGltZWxpbmUuCj4+ICAgICAoQ2hyaXMg V2lsc29uKQo+PiAgICogSXQgaXMgc3VmZmljaWVudCB0byBvcmRlciB0aGUgdGltZWxpbmUuIChD aHJpcyBXaWxzb24pCj4+ICAgKiBSZWplY3QgIVJDUyBjb25maWd1cmF0aW9uIGF0dGVtcHRzIHdp dGggLUVOT0RFViBmb3Igbm93Lgo+Pgo+PiB2MTI6Cj4+ICAgKiBSZWJhc2UgZm9yIG1ha2VfcnBj cy4KPj4KPj4gdjEzOgo+PiAgICogQ2VudHJhbGl6ZSBTU0VVIG5vcm1hbGl6YXRpb24gdG8gbWFr ZV9ycGNzLgo+PiAgICogVHlwZSB3aWR0aCBjaGVja2luZyAodUFQSSA8LT4gaW1wbGVtZW50YXRp b24pLgo+PiAgICogR2VuMTEgcmVzdHJpY3Rpb25zIHVBUEkgY2hlY2tzLgo+PiAgICogR2VuMTEg c3Vic2xpY2UgY291bnQgZGlmZmVyZW5jZXMgaGFuZGxpbmcuCj4+ICAgQ2hyaXMgV2lsc29uOgo+ PiAgICogYXJncy0+c2l6ZSBoYW5kbGluZyBmaXhlcy4KPj4gICAqIFVwZGF0ZSBjb250ZXh0IGlt YWdlIGZyb20gR0dUVC4KPj4gICAqIFBvc3Rwb25lIGNvbnRleHQgaW1hZ2UgdXBkYXRlIHRvIHBp bm5pbmcuCj4+ICAgKiBVc2UgaTkxNV9nZW1fYWN0aXZlX3JhdyBpbnN0ZWFkIG9mIGxhc3RfcmVx dWVzdF9vbl9lbmdpbmUuCj4+Cj4+IHYxNDoKPj4gICAqIEFkZCBhY3Rpdml0eSB0cmFja2VyIG9u IGludGVsX2NvbnRleHQgdG8gZml4IHRoZSBsaWZldGltZSBpc3N1ZXMKPj4gICAgIGFuZCBzaW1w bGlmeSB0aGUgY29kZS4gKENocmlzIFdpbHNvbikKPj4KPj4gdjE1Ogo+PiAgICogRml4IGNvbnRl eHQgcGluIGxlYWsgaWYgbm8gc3BhY2UgaW4gcmluZyBieSBzaW1wbGlmeWluZyB0aGUKPj4gICAg IGNvbnRleHQgcGlubmluZyBzZXF1ZW5jZS4KPj4KPj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg5OQo+PiBJc3N1ZTogaHR0cHM6Ly9n aXRodWIuY29tL2ludGVsL21lZGlhLWRyaXZlci9pc3N1ZXMvMjY3Cj4+IFNpZ25lZC1vZmYtYnk6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+PiBTaWduZWQtb2ZmLWJ5 OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+Cj4+IENj OiBEbWl0cnkgUm9nb3poa2luIDxkbWl0cnkudi5yb2dvemhraW5AaW50ZWwuY29tPgo+PiBDYzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gQ2M6IFpoaXBlbmcg R29uZyA8emhpcGVuZy5nb25nQGludGVsLmNvbT4KPj4gQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9v bmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgMzAzICsrKysrKysrKysrKysrKysrKysrKysr LQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCB8ICAgNiArCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgICA0ICstCj4+ICAg aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgIHwgIDQzICsrKysKPj4gICA0 IGZpbGVzIGNoYW5nZWQsIDM1MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+Pgo+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4+IGluZGV4IGNhMmM4ZmNkMTA5 MC4uYWExZjM0ZTYzMDgwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCj4+IEBAIC05MCw2ICs5MCw3IEBACj4+ICAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5o Pgo+PiAgICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+PiAgICNpbmNsdWRlICJpOTE1X3RyYWNlLmgi Cj4+ICsjaW5jbHVkZSAiaW50ZWxfbHJjX3JlZy5oIgo+PiAgICNpbmNsdWRlICJpbnRlbF93b3Jr YXJvdW5kcy5oIgo+PiAgIAo+PiAgICNkZWZpbmUgQUxMX0wzX1NMSUNFUyhkZXYpICgxIDw8IE5V TV9MM19TTElDRVMoZGV2KSkgLSAxCj4+IEBAIC0zMjIsNiArMzIzLDE0IEBAIHN0YXRpYyB1MzIg ZGVmYXVsdF9kZXNjX3RlbXBsYXRlKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 LAo+PiAgICAgICAgICByZXR1cm4gZGVzYzsKPj4gICB9Cj4+ICAgCj4+ICtzdGF0aWMgdm9pZCBp bnRlbF9jb250ZXh0X3JldGlyZShzdHJ1Y3QgaTkxNV9nZW1fYWN0aXZlICphY3RpdmUsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ PiArewo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IGNvbnRhaW5lcl9vZihh Y3RpdmUsIHR5cGVvZigqY2UpLCBhY3RpdmUpOwo+PiArCj4+ICsgICAgICAgaW50ZWxfY29udGV4 dF91bnBpbihjZSk7Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKgo+PiAgIF9fY3JlYXRlX2h3X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+PiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2 YXRlICpmaWxlX3ByaXYpCj4+IEBAIC0zNDUsNiArMzU0LDggQEAgX19jcmVhdGVfaHdfY29udGV4 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgICAgICAgICAgICAgICAg Y2UtPmdlbV9jb250ZXh0ID0gY3R4Owo+PiAgICAgICAgICAgICAgICAgIC8qIFVzZSB0aGUgd2hv bGUgZGV2aWNlIGJ5IGRlZmF1bHQgKi8KPj4gICAgICAgICAgICAgICAgICBjZS0+c3NldSA9IGlu dGVsX2RldmljZV9kZWZhdWx0X3NzZXUoZGV2X3ByaXYpOwo+PiArCj4+ICsgICAgICAgICAgICAg ICBpbml0X3JlcXVlc3RfYWN0aXZlKCZjZS0+YWN0aXZlLCBpbnRlbF9jb250ZXh0X3JldGlyZSk7 Cj4+ICAgICAgICAgIH0KPj4gICAKPj4gICAgICAgICAgSU5JVF9SQURJWF9UUkVFKCZjdHgtPmhh bmRsZXNfdm1hLCBHRlBfS0VSTkVMKTsKPj4gQEAgLTg0Niw2ICs4NTcsNDggQEAgaW50IGk5MTVf Z2VtX2NvbnRleHRfZGVzdHJveV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAo+PiAgICAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgCj4+ICtzdGF0aWMgaW50IGdl dF9zc2V1KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4+ICsgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICphcmdzKQo+PiArewo+PiArICAg ICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbV9zc2V1IHVzZXJfc3NldTsKPj4g KyAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4+ICsgICAgICAgc3RydWN0 IGludGVsX2NvbnRleHQgKmNlOwo+PiArCj4+ICsgICAgICAgaWYgKGFyZ3MtPnNpemUgPT0gMCkK Pj4gKyAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+PiArICAgICAgIGVsc2UgaWYgKGFyZ3MtPnNp emUgPCBzaXplb2YodXNlcl9zc2V1KSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFM Owo+PiArCj4+ICsgICAgICAgaWYgKGNvcHlfZnJvbV91c2VyKCZ1c2VyX3NzZXUsIHU2NF90b191 c2VyX3B0cihhcmdzLT52YWx1ZSksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv Zih1c2VyX3NzZXUpKSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwo+PiArCj4+ ICsgICAgICAgaWYgKHVzZXJfc3NldS5yc3ZkMSB8fCB1c2VyX3NzZXUucnN2ZDIpCj4+ICsgICAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArICAgICAgIGVuZ2luZSA9IGludGVs X2VuZ2luZV9sb29rdXBfdXNlcihjdHgtPmk5MTUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVzZXJfc3NldS5jbGFzcywKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9zc2V1Lmluc3RhbmNlKTsKPj4gKyAgICAgICBp ZiAoIWVuZ2luZSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsg ICAgICAgY2UgPSB0b19pbnRlbF9jb250ZXh0KGN0eCwgZW5naW5lKTsKPj4gKwo+PiArICAgICAg IHVzZXJfc3NldS5zbGljZV9tYXNrID0gY2UtPnNzZXUuc2xpY2VfbWFzazsKPj4gKyAgICAgICB1 c2VyX3NzZXUuc3Vic2xpY2VfbWFzayA9IGNlLT5zc2V1LnN1YnNsaWNlX21hc2s7Cj4+ICsgICAg ICAgdXNlcl9zc2V1Lm1pbl9ldXNfcGVyX3N1YnNsaWNlID0gY2UtPnNzZXUubWluX2V1c19wZXJf c3Vic2xpY2U7Cj4+ICsgICAgICAgdXNlcl9zc2V1Lm1heF9ldXNfcGVyX3N1YnNsaWNlID0gY2Ut PnNzZXUubWF4X2V1c19wZXJfc3Vic2xpY2U7Cj4+ICsKPj4gKyAgICAgICBpZiAoY29weV90b191 c2VyKHU2NF90b191c2VyX3B0cihhcmdzLT52YWx1ZSksICZ1c2VyX3NzZXUsCj4+ICsgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YodXNlcl9zc2V1KSkpCj4+ICsgICAgICAgICAgICAgICBy ZXR1cm4gLUVGQVVMVDsKPj4gKwo+PiArb3V0Ogo+PiArICAgICAgIGFyZ3MtPnNpemUgPSBzaXpl b2YodXNlcl9zc2V1KTsKPj4gKwo+PiArICAgICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ICAg aW50IGk5MTVfZ2VtX2NvbnRleHRfZ2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSkKPj4gICB7Cj4+IEBAIC04NTgsMTUgKzkxMSwxNyBAQCBpbnQg aTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAo+PiAgICAgICAgICBpZiAoIWN0eCkKPj4gICAgICAgICAgICAgICAgICByZXR1 cm4gLUVOT0VOVDsKPj4gICAKPj4gLSAgICAgICBhcmdzLT5zaXplID0gMDsKPiAKPiBJJ3ZlIGEg c2xpZ2h0IHByZWZlcmVuY2UgdG8gc2V0dGluZyB0byAwIHRoZW4gb3ZlcndyaXRpbmcgaXQgYWZ0 ZXJ3YXJkcy4KCldlIGNhbid0IHVzZS92YWxpZGF0ZSBpdCB0aGVuLiBBbHRlcm5hdGl2ZSB0byBq dXN0IG5vdCBjbGVhciBpdCBmb3IgQUJJIAp3aGVyZSBpdCBpcyBub3QgdXNlZD8gSW4gb3RoZXIg d29yZHMgd291bGQgZ28gYXdheSBmcm9tIHRoZSBjYXNlIApicmFuY2hlcyBjb21wbGV0ZWx5LiBE b2VzIHRoZSBBQkkgZGVwZW5kIG9uIGl0IGJlaW5nIHplcm9lZCBvbiByZXR1cm4gCmZyb20gZ2V0 X3BhcmFtPyBJdCB3b3VsZCBiZSBzdHJhbmdlLi4KCj4gCj4+ICAgICAgICAgIHN3aXRjaCAoYXJn cy0+cGFyYW0pIHsKPj4gICAgICAgICAgY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fQkFOX1BFUklP RDoKPj4gICAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOwo+PiAgICAgICAgICAgICAgICAg IGJyZWFrOwo+PiAgICAgICAgICBjYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9OT19aRVJPTUFQOgo+ PiArICAgICAgICAgICAgICAgYXJncy0+c2l6ZSA9IDA7Cj4+ICAgICAgICAgICAgICAgICAgYXJn cy0+dmFsdWUgPSBjdHgtPmZsYWdzICYgQ09OVEVYVF9OT19aRVJPTUFQOwo+PiAgICAgICAgICAg ICAgICAgIGJyZWFrOwo+PiAgICAgICAgICBjYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9HVFRfU0la RToKPj4gKyAgICAgICAgICAgICAgIGFyZ3MtPnNpemUgPSAwOwo+PiArCj4+ICAgICAgICAgICAg ICAgICAgaWYgKGN0eC0+cHBndHQpCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT52 YWx1ZSA9IGN0eC0+cHBndHQtPnZtLnRvdGFsOwo+PiAgICAgICAgICAgICAgICAgIGVsc2UgaWYg KHRvX2k5MTUoZGV2KS0+bW0uYWxpYXNpbmdfcHBndHQpCj4+ICAgaW50IGk5MTVfZ2VtX2NvbnRl eHRfc2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmls ZSkKPj4gICB7Cj4+IEBAIC05NTcsNyArMTI1NCw5IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X3Nl dHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eC0+c2NoZWQucHJpb3JpdHkgPSBwcmlvcml0 eTsKPj4gICAgICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+IC0K Pj4gKyAgICAgICBjYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9TU0VVOgo+PiArICAgICAgICAgICAg ICAgcmV0ID0gc2V0X3NzZXUoY3R4LCBhcmdzKTsKPj4gKyAgICAgICAgICAgICAgIGJyZWFrOwo+ PiAgICAgICAgICBkZWZhdWx0Ogo+PiAgICAgICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7Cj4+ ICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmgKPj4gaW5kZXggNzlkMmU4ZjYyYWQxLi45NjhlMWQ0N2Q5NDQgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAo+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKPj4gQEAgLTE2NSw2ICsxNjUsMTIg QEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewo+PiAgICAgICAgICAgICAgICAgIHU2NCBscmNf ZGVzYzsKPj4gICAgICAgICAgICAgICAgICBpbnQgcGluX2NvdW50Owo+PiAgIAo+PiArICAgICAg ICAgICAgICAgLyoqCj4+ICsgICAgICAgICAgICAgICAgKiBhY3RpdmU6IEFjdGl2ZSB0cmFja2Vy IGZvciB0aGUgZXh0ZXJuYWwgcnEgYWN0aXZpdHkgb24gdGhpcwo+PiArICAgICAgICAgICAgICAg ICogaW50ZWxfY29udGV4dCBvYmplY3QuCj4+ICsgICAgICAgICAgICAgICAgKi8KPj4gKyAgICAg ICAgICAgICAgIHN0cnVjdCBpOTE1X2dlbV9hY3RpdmUgYWN0aXZlOwo+PiArCj4+ICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHRfb3BzICpvcHM7Cj4+ICAgCj4+ICAg ICAgICAgICAgICAgICAgLyoqIHNzZXU6IENvbnRyb2wgZXUvc2xpY2UgcGFydGl0aW9uaW5nICov Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+IGluZGV4IDk3MDljMWZiZTgzNi4uM2M4NTM5 MmEzMTA5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+PiBAQCAtMjUzOCw3ICsy NTM4LDkgQEAgdTMyIGdlbjhfbWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPj4gICAgICAgICAgICogc3Vic2xpY2VzIGFyZSBlbmFibGVkLCBvciBhIGNvdW50IGJl dHdlZW4gb25lIGFuZCBmb3VyIG9uIHRoZSBmaXJzdAo+PiAgICAgICAgICAgKiBzbGljZS4KPj4g ICAgICAgICAgICovCj4+IC0gICAgICAgaWYgKElTX0dFTjExKGRldl9wcml2KSAmJiBzbGljZXMg PT0gMSAmJiBzdWJzbGljZXMgPj0gNCkgewo+PiArICAgICAgIGlmIChJU19HRU4xMShkZXZfcHJp dikgJiYKPj4gKyAgICAgICAgICAgc2xpY2VzID09IDEgJiYKPj4gKyAgICAgICAgICAgc3Vic2xp Y2VzID4gbWluX3QodTgsIDQsIGh3ZWlnaHQ4KHNzZXUtPnN1YnNsaWNlX21hc2tbMF0pIC8gMikp IHsKPiAKPiBTbmVha3kuIElzIHRoaXMgYSBkaXJlY3QgY29uc2VxdWVuY2Ugb2YgZXhwb3Npbmcg c3NldSB0byB0aGUgdXNlciwgb3IKPiBzaG91bGQgYXJndWUgdGhlIHByb3RlY3Rpb24gcmVxdWly ZWQgaXJyZXNwZWN0aXZlIG9mIHdobyBmaWxsIHNzZXU/CgpUaGUgZm9ybWVyLCB3aGVuIG5vdCBl eHBvc2VkIHRvIHRoZSB1c2VyIHNvbWUgaW52YWxpZC9pbXBvc3NpYmxlIApjb21iaW5hdGlvbnMg YXJlIG5vdCBwb3NzaWJsZS4gSSBkb24ndCBmZWVsIHdlIHNob3VsZCB2YWxpZGF0ZSB0aGUgU0tV IApjb25maWd1cmF0aW9uIGRldGVjdGlvbiBoZXJlIGJ1dCB0cnVzdCBpdC4KClJlZ2FyZHMsCgpU dnJ0a28KCj4gCj4+ICAgICAgICAgICAgICAgICAgR0VNX0JVR19PTihzdWJzbGljZXMgJiAxKTsK Pj4gICAKPj4gICAgICAgICAgICAgICAgICBzdWJzbGljZV9wZyA9IGZhbHNlOwo+IAo+IEZvciB0 aGUgcnEgbWVjaGFuaWNzIGFmdGVyIGFsbCB0aGUgaGFzc2xlIEkgZ2F2ZSBUdnJ0a28sCj4gUmV2 aWV3ZWQtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IAo+IEkg ZGlkbid0IGxvb2sgY2xvc2VseSBhdCB0aGUgdmFsaWRhdGlvbiBsYXllci4KPiAtQ2hyaXMKPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdm eCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==