From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH 1/6] drm: Add vblank prepare and unprepare hooks. Date: Thu, 4 Aug 2016 10:49:09 +0200 Message-ID: <20160804084909.GY6232@phenom.ffwll.local> References: <1470260019-6173-1-git-send-email-rodrigo.vivi@intel.com> <1470260019-6173-2-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470260019-6173-2-git-send-email-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Dhinakaran Pandiyan , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBdWcgMDMsIDIwMTYgYXQgMDI6MzM6MzRQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IFRoaXMgd2lsbCBhbGxvdyBkcml2ZXJzIHRvIGNvbnRyb2wgc3BlY2lmaWMgcG93ZXIg c2F2aW5nCj4gZmVhdHVyZSBhbmQgcG93ZXIgZG9tYWlucyB3aGVuIGRlYWxpbmcgd2l0aCB2Ymxh bmtzLgo+IAo+IFZibGFua3MgY29kZSBhcmUgcHJvdGVjdGVkIGJ5IHNwaW5fbG9ja3Mgd2hlcmUg d2UgY2FuJ3QKPiBoYXZlIGFueXRoaW5nIHRoYXQgY2FuIHNsZWVwLiBXaGlsZSBwb3dlciBzYXZp bmcgZmVhdHVyZXMKPiBhbmQgcG93ZXIgZG9tYWluIGNvZGUgaGF2ZSBtdXRleGVzIHRvIGNvbnRy b2wgdGhlIHN0YXRlcy4KPiAKPiBNdXRleCBjYW4gc2xlZXAgc28gdGhleSBjYW5ub3QgYmUgdXNl ZCBpbnNpZGUgc3BpbiBsb2NrIGFyZWFzLgo+IFNvIHRoZSBlYXNpZXN0IHdheSB0byBkZWFsIHdp dGggdGhlbSBjdXJyZW50bHkgaXMgdG8gYWRkIHRoZXNlCj4gcHJlcGFyZSBob29rIGZvciBwcmUg ZW5hYmxpbmcgdmJsYW5rcwo+IGFuZCB1bnByZXBhcmUgb25lIGZvciBwb3N0IGRpc2FibGluZyB0 aGVtLgo+IAo+IExldCdzIGludHJvZHVjZSB0aGlzIG9wdGlvbmFsIHByZXBhcmUgYW5kIHVucHJl cGFyZQo+IGhvb2tzIHNvIGRyaXZlcnMgY2FuIGRlYWwgd2l0aCBjYXNlcyBsaWtlIHRoaXMgYW5k IGFueSBvdGhlcgo+IGNhc2UgdGhhdCBzaG91bGQgcmVxdWlyZSBzbGVlcGluZyBjb2RlcyBpbnRl cmFjdGluZyB3aXRoIHZibGFua3MuCj4gCj4gdjI6IC0gUmViYXNlIGFmdGVyIGEgc3BsaXQgb24g ZHJtX2lycS5oLgo+ICAgICAtIFVzZSByZWZjb3VudCB0byBtaW5pbWl6ZSB0aGUgcHJlcGFyZS91 bnByZXBhcmUgY2FsbHMgdG8KPiAgICAgICBvbmx5IHdoZW4gZW5hYmxpbmcgb3IgZGlzYWJsaW5n IHRoZSB2YmxhbmsgaXJxLiAoREsncykKPiAgICAgLSBJbXByb3ZlZCBkb2MuCj4gICAgIC0gRml4 IHRoZSBuZWdhdGl2ZSB1bnByZXBhcmUuY291bnQgY2FzZS4KPiAKPiBDYzogRGhpbmFrYXJhbiBQ YW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTog Um9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX2lycS5jIHwgMzcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQo+ICBpbmNsdWRlL2RybS9kcm1QLmggICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1faXJxLmggICAgIHwgMjAg KysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCA5OSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJx LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gaW5kZXggNzdmMzU3Yi4uZDBkMWRkZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9pcnEuYwo+IEBAIC0zMzksNiArMzM5LDggQEAgdm9pZCBkcm1fdmJsYW5rX2Ns ZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJZHJtX2NvcmVfY2hlY2tfZmVhdHVy ZShkZXYsIERSSVZFUl9NT0RFU0VUKSk7Cj4gIAo+ICAJCWRlbF90aW1lcl9zeW5jKCZ2Ymxhbmst PmRpc2FibGVfdGltZXIpOwoKTmVlZHMgYSBzY2hlZHVsZV93b3JrIGhlcmUsIHNpbmNlIGlmIHlv dSBkZWxldGUgdGhlIHRpbWVyIGFuZCB0aGVuIHVubG9hZAp5b3UnbGwgbGVhayBhbGwgdGhlIHVu cHJlcGFyZSBjYWxscy4gV2hpY2ggd2lsbCB1cHNldCBhIGxvdCBvZiB0aGluZ3MgYXQKbGVhc3Qg b24gbW9kdWxlIHVubG9hZC4KCj4gKwo+ICsJCWZsdXNoX3dvcmsoJnZibGFuay0+dW5wcmVwYXJl LndvcmspOwo+ICAJfQo+ICAKPiAgCWtmcmVlKGRldi0+dmJsYW5rKTsKPiBAQCAtMzQ3LDYgKzM0 OSwyNCBAQCB2b2lkIGRybV92YmxhbmtfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX3ZibGFua19jbGVhbnVwKTsKPiAgCj4gK3N0YXRpYyB2 b2lkIGRybV92YmxhbmtfdW5wcmVwYXJlX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2Ymxhbms7Cj4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2Owo+ICsKPiArCXZibGFuayA9IGNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2Yo KnZibGFuayksIHVucHJlcGFyZS53b3JrKTsKPiArCWRldiA9IHZibGFuay0+ZGV2Owo+ICsKPiAr CWlmIChhdG9taWNfcmVhZCgmdmJsYW5rLT51bnByZXBhcmUuY291bnRlcikgPT0gMCkKPiArCQly ZXR1cm47Cgp3aGlsZSAoYXRvbWljX3JlYWQgPiAwKSB7CgkvKiBkbyBzdHVmZiAqLwoJYXRvbWlj X2RlYygpOwp9CgppcyBzaW1wbGVyLiBQbHVzIHRoaXMgbmVlZHMgYSBiaWcgY29tbWVudCB0aGF0 IHRoZSB3b3JrZXIgaGVyZSBpcyB0aGUKX29ubHlfIGNvZGUgd2ljaCBldmVyIGRlY3JlbWVudHMg dGhlIGNvdW50ZXIuIFdpdGhvdXQgdGhhdCB0aGlzIHdvdWxkIGJlCnJhY3kuCgo+ICsKPiArCWRv IHsKPiArCQlpZiAoZGV2LT5kcml2ZXItPnVucHJlcGFyZV92YmxhbmsgJiYKPiArCQkgICAgYXRv bWljX3JlYWQoJnZibGFuay0+cmVmY291bnQpID09IDApCj4gKwkJCWRldi0+ZHJpdmVyLT51bnBy ZXBhcmVfdmJsYW5rKGRldiwgdmJsYW5rLT5waXBlKTsKPiArCX0gd2hpbGUgKCFhdG9taWNfZGVj X2FuZF90ZXN0KCZ2YmxhbmstPnVucHJlcGFyZS5jb3VudGVyKSk7Cj4gK30KPiArCj4gIC8qKgo+ ICAgKiBkcm1fdmJsYW5rX2luaXQgLSBpbml0aWFsaXplIHZibGFuayBzdXBwb3J0Cj4gICAqIEBk ZXY6IERSTSBkZXZpY2UKPiBAQCAtMzgwLDYgKzQwMCw5IEBAIGludCBkcm1fdmJsYW5rX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG51bV9jcnRjcykKPiAgCQlzZXR1 cF90aW1lcigmdmJsYW5rLT5kaXNhYmxlX3RpbWVyLCB2YmxhbmtfZGlzYWJsZV9mbiwKPiAgCQkJ ICAgICh1bnNpZ25lZCBsb25nKXZibGFuayk7Cj4gIAkJc2VxbG9ja19pbml0KCZ2YmxhbmstPnNl cWxvY2spOwo+ICsKPiArCQlJTklUX1dPUksoJnZibGFuay0+dW5wcmVwYXJlLndvcmssCj4gKwkJ CSAgZHJtX3ZibGFua191bnByZXBhcmVfd29ya19mbik7Cj4gIAl9Cj4gIAo+ICAJRFJNX0lORk8o IlN1cHBvcnRzIHZibGFuayB0aW1lc3RhbXAgY2FjaGluZyBSZXYgMiAoMjEuMTAuMjAxMykuXG4i KTsKPiBAQCAtMTExNyw2ICsxMTQwLDEwIEBAIHN0YXRpYyBpbnQgZHJtX3ZibGFua19nZXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gIAlpZiAoV0FSTl9PTihw aXBlID49IGRldi0+bnVtX2NydGNzKSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gKwlpZiAo ZGV2LT5kcml2ZXItPnByZXBhcmVfdmJsYW5rICYmCj4gKwkgICAgYXRvbWljX3JlYWQoJnZibGFu ay0+cmVmY291bnQpID09IDApCgpUaGlzIGlzIHJhY3kuIElmIHlvdSBkb24ndCB3YW50IHRvIHBy ZXBhcmUgbXVsdGlwbGUgdGltZXMgdGhlbiB5b3UgbmVlZAphbm90aGVyIGF0b21pYyBjb3VudGVy LiBUYmggdGhhdCBzZWVtcyBvdmVya2lsbCwgSSdtIG5vdCBzdXJlIGF0IGFsbCB3aHkKd2Ugc2hv dWxkIGF2b2lkIG11bHRpcGxlIHByZXBhcmUvdW5wcmVwYXJlIGNhbGxzLgoKPiArCQlkZXYtPmRy aXZlci0+cHJlcGFyZV92YmxhbmsoZGV2LCBwaXBlKTsKPiArCj4gIAlzcGluX2xvY2tfaXJxc2F2 ZSgmZGV2LT52YmxfbG9jaywgaXJxZmxhZ3MpOwo+ICAJLyogR29pbmcgZnJvbSAwLT4xIG1lYW5z IHdlIGhhdmUgdG8gZW5hYmxlIGludGVycnVwdHMgYWdhaW4gKi8KPiAgCWlmIChhdG9taWNfYWRk X3JldHVybigxLCAmdmJsYW5rLT5yZWZjb3VudCkgPT0gMSkgewo+IEBAIC0xMTI5LDYgKzExNTYs MTAgQEAgc3RhdGljIGludCBkcm1fdmJsYW5rX2dldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSkKPiAgCX0KPiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ dmJsX2xvY2ssIGlycWZsYWdzKTsKPiAgCj4gKwlpZiAoZGV2LT5kcml2ZXItPnVucHJlcGFyZV92 YmxhbmsgJiYKPiArCSAgICBhdG9taWNfcmVhZCgmdmJsYW5rLT5yZWZjb3VudCkgPT0gMCkKClRo aXMgaXMgcmFjeS4gWW91IG5lZWQgdG8gY2hlY2sgd2hldGhlciBfdGhpc18gdmJsYW5rX2dldCBj YWxsIGZhaWxlZCAtCmFmdGVyIHlvdSBkcm9wcGVkIHRoZSBsb2NrIHNvbWVvbmUgZWxzZSBtaWdo dCBoYXZlIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWQKYSB2YmxhbmtfZ2V0IGJyZWFraW5nIHlvdXIg Y29kZSBoZXJlLgoKTm90ZSB0aGF0IGF0b21pY190IG9ubHkgbWVhbnMgdGhlIGNvdW50ZXIgc3Rh eXMgY29uc2lzdGVudC4gSXQgbWFrZXMKX3plcm9fIGd1cmFudGVlcyBhYm91dCBvcmRlcmluZyBv ciBhbnl0aGluZyBlbHNlIGdvaW5nIG9uIGluIHRoZSBzeXN0ZW0sCmFuZCBpbiBnZW5lcmFsIHlv dSBuZWVkIGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2FuIGFjY2VzcyBpdCBhbmQKZXhw ZWN0IHNvbWUgY29uc2lzdGVuY3kuIEluIHRoZSB3b3JrZXIgeW91J3ZlIGJlZW4gbHVja3ksIGhl cmUgaXQncwpicm9rZW4uIFBsZWFzZSBhdWRpdCB5b3VyIHVzYWdlIG9mIGF0b21pY190IGNhcmVm dWxseS4KCj4gKwkJZGV2LT5kcml2ZXItPnVucHJlcGFyZV92YmxhbmsoZGV2LCBwaXBlKTsKPiAr Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gIAo+IEBAIC0xMTc4LDYgKzEyMDksMTEgQEAgc3RhdGlj IHZvaWQgZHJtX3ZibGFua19wdXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50 IHBpcGUpCj4gIAkJCW1vZF90aW1lcigmdmJsYW5rLT5kaXNhYmxlX3RpbWVyLAo+ICAJCQkJICBq aWZmaWVzICsgKChkcm1fdmJsYW5rX29mZmRlbGF5ICogSFopLzEwMDApKTsKPiAgCX0KPiArCj4g KwlpZiAoYXRvbWljX3JlYWQoJnZibGFuay0+cmVmY291bnQpID09IDApIHsKPiArCQlhdG9taWNf aW5jKCZ2YmxhbmstPnVucHJlcGFyZS5jb3VudGVyKTsKPiArCQlzY2hlZHVsZV93b3JrKCZ2Ymxh bmstPnVucHJlcGFyZS53b3JrKTsKClNvIHByZXBhcmUgaXMgZG9uZSBvbmNlLCBidXQgdW5wcmVw YXJlIGV2ZXJ5IHRpbWUgd2UgcHV0LiBJIHJlYWxseSBkb24ndAp0aGluayB0aGUgY2hhbmdlIGRr IHN1Z2dlc3RlZCB3YXMgYWxsIHRoYXQgZ29vZCA7LSkKCkFsc28sIHRoaXMgbmVlZHMgYSBjaGVj ayBmb3IgdGhlIHVucHJlcGFyZSBob29rLCB3ZSBkb24ndCB3YW50IHRvIGluY3VyZQp0aGUgb3Zl cmhlYWQgZm9yIGRyaXZlcnMgd2hpY2ggZG9uJ3QgbmVlZCBpdC4KCj4gKwl9Cj4gIH0KPiAgCj4g IC8qKgo+IEBAIC0xNjAzLDcgKzE2MzksNiBAQCBzdGF0aWMgaW50IGRybV9xdWV1ZV92Ymxhbmtf ZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gIAl9Cj4g IAo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4g LQo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBlcnJfdW5sb2NrOgo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKPiBpbmRleCBkMzc3ODY1Li5jNmNhMDYx IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bVAuaAo+IEBAIC00MjIsNiArNDIyLDQ5IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiAgCXUzMiAo KmdldF92YmxhbmtfY291bnRlcikgKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGlu dCBwaXBlKTsKPiAgCj4gIAkvKioKPiArCSAqIHByZXBhcmVfdmJsYW5rIC0gT3B0aW9uYWwgcHJl cGFyZSB2YmxhbmsgaG9vay4KPiArCSAqIEBkZXY6IERSTSBkZXZpY2UKPiArCSAqIEBwaXBlOiBj b3VudGVyIHRvIGZldGNoCj4gKwkgKgo+ICsJICogRHJpdmVycyB0aGF0IG5lZWQgdG8gaGFuZGxl IGFueSBraW5kIG9mIG11dGV4IG9yIGFueSBvdGhlciBzbGVlcGluZwo+ICsJICogY29kZSBpbiBj b21iaW5hdGlvbiB3aXRoIHZibGFua3MgbmVlZCB0byBpbXBsZW1lbnQgdGhpcyBob29rCj4gKwkg KiB0aGF0IHdpbGwgYmUgY2FsbGVkIGJlZm9yZSBkcm1fdmJsYW5rX2dldCBzcGluX2xvY2sgZ2V0 cy4KPiArCSAqCj4gKwkgKiBQcmVwYXJlL1VucHJlcGFyZSB3YXMgZGVzaWduZWQgdG8gYmUgYWJs ZSB0byBzbGVlcCBzbyB0aGV5IGFyZSBub3QKPiArCSAqIGZyZWUgZnJvbSBjb25jdXJyZW5jZS4g VGhlcmUgbWlnaHQgYmUgZmV3IHNpbXVsdGFuZW91cyBjYWxscy4KPiArCSAqIFRoaXMgY29uY3Vy cmVuY2UgbmVlZHMgdG8gYmUgaGFuZGxlZCBvbiB0aGUgZHJpdmVyIHNpZGUgdGhhdCBpcwo+ICsJ ICogaW1wbGVtZW50aW5nIHRoZXNlIGhvb2tzLiBQcm9iYWJseSB3aXRoIHByb3RlY3RlZCBnZXQv cHV0IGNvdW50ZXJzLgoKIlRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBjb25jdXJyZW50bHku IiBTYXlzIGFsbCB0aGUgc2FtZSB0aGluZ3Mgd2l0aApmZXdlciB3b3JkcyA7LSkKCkJ1dCBub3Rl IHRoYXQgaWYgeW91IGRlY2lkZSB0byBpbXBsZW1lbnQgdGhlICJwcmVwYXJlL3VucHJlcGFyZSBv bmx5IG9uY2UiCmxvZ2ljICh3aXRob3V0IGJ1Z3MpLCB0aGVuIHRoaXMgaXMgbm90IHRydWUuCgo+ ICsJICoKPiArCSAqIElmIHRoaXMgaXMgdXNlZCB3aXRoIHNsZWVwaW5nIGNvZGUgeW91IG5lZWQg dG8gbWFrZSBzdXJlIHlvdSBhcmUKPiArCSAqIG5vdCBjYWxsaW5nIGRybV9jcnRjX3ZibGFua19n ZXQgaW5zaWRlIHNwaW5sb2NrIGFyZWFzIG9yIHdpdGggbG9jYWwKPiArCSAqIGlycSBkaXNhYmxl ZC4KCkltbyB0aGlzIGNvbW1lbnQgc2hvdWxkIGJlIG1vdmVkIHRvIGRybV9jcnRjX3ZibGFua19n ZXQgdW5kZXIgc29tZXRoaW5nCmxpa2UgdGhpcwoKTm90ZToKCkRyaXZlcnMgd2hpY2ggdXNlIHRo ZSBwcmVwYXJlX3ZibGFuayBob29rIGFuZCB3aGljaCBjYW4gYmxvY2sgaW4gdGhlaXIKY2FsbGJh Y2sgbXVzdCBlbnN1cmUgdGhhdCB0aGV5IG5ldmVyIGNhbGwgZHJtX2NydGNfdmJsYW5rX2dldCgp IGZyb20KYXRvbWljIGNvbnRleHRzLiBUaGUgRFJNIGNvcmUgYW5kIGhlbGVwcnMgYWxyZWFkeSBt YWtlIHRoaXMgZ3VhcmFudGVlLgoKQWxzbyBJIHRoaW5rIHRoaXMgc2hvdWxkIHJlZmVyZW5jZSB0 aGUgc2FuaXRpemVfY291bnRlciBmdW5jdGlvbiBhcyBhbgpleGFtcGxlLgoKCj4gKwkgKgo+ICsJ ICovCj4gKwl2b2lkICgqcHJlcGFyZV92YmxhbmspIChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSk7Cj4gKwo+ICsJLyoqCj4gKwkgKiB1bnByZXBhcmVfdmJsYW5rIC0g T3B0aW9uYWwgdW5wcmVwYXJlIHZibGFuayBob29rLgo+ICsJICogQGRldjogRFJNIGRldmljZQo+ ICsJICogQHBpcGU6IGNvdW50ZXIgdG8gZmV0Y2gKPiArCSAqCj4gKwkgKiBEcml2ZXJzIHRoYXQg bmVlZCB0byBoYW5kbGUgYW55IGtpbmQgb2YgbXV0ZXggb3IgYW55IG90aGVyIHNsZWVwaW5nCj4g KwkgKiBjb2RlIGluIGNvbWJpbmF0aW9uIHdpdGggdmJsYW5rcyBuZWVkIHRvIGltcGxlbWVudCB0 aGlzIGhvb2sKPiArCSAqIHRoYXQgd2lsbCBiZSBjYWxsZWQgaW4gYSB3b3JrIHF1ZXVlIHRvIGJl IGV4ZWN1dGVkIGFmdGVyIHNwaW4gbG9jawo+ICsJICogYXJlYXMgb2YgZHJtX3ZibGFua19wdXQu Cj4gKwkgKgo+ICsJICogUHJlcGFyZS9VbnByZXBhcmUgd2FzIGRlc2lnbmVkIHRvIGJlIGFibGUg dG8gc2xlZXAgc28gdGhleSBhcmUgbm90Cj4gKwkgKiBmcmVlIGZyb20gY29uY3VycmVuY2UuIFRo ZXJlIG1pZ2h0IGJlIGZldyBzaW11bHRhbmVvdXMgY2FsbHMuCj4gKwkgKiBUaGlzIGNvbmN1cnJl bmNlIG5lZWRzIHRvIGJlIGhhbmRsZWQgb24gdGhlIGRyaXZlciBzaWRlIHRoYXQgaXMKPiArCSAq IGltcGxlbWVudGluZyB0aGVzZSBob29rcy4gUHJvYmFibHkgd2l0aCBwcm90ZWN0ZWQgZ2V0L3B1 dCBjb3VudGVycy4KClRoaXMgaXMgbm90IHRydWUsIHlvdSBvbmx5IGhhdmUgb25lIHdvcmtlciwg dGhlcmUncyBubyBjb25jdXJyZW5jeS4KCj4gKwkgKgo+ICsJICogVW5wcmVwYXJlIGlzIGNhbGxl ZCBmcm9tIGEgd29ya3F1ZXVlIGJlY2F1c2UgYXN5bmNocm9ub3VzCgphc3luY2hyb25vdXNfbHlf Cgo+ICsJICogZHJtX2NydGNfdmJsYW5rX3B1dCB3aWxsIGJlIGluIHNwaW5sb2NrIGFyZWFzLiBT byBpdCBpcyBzYWZlIHRvCgpzL3dpbGwvY2FuLyBzL3NwaW5sb2NrIGFyZWFzL2F0b21pYyBjb250 ZXh0Ly4KCkFsc28gcGxlYXNlIGFkZCAoKSBhdCB0aGUgZW5kIG9mIGV2ZXJ5IGZ1bmN0aW9uIHlv dSByZWZlcmVuY2UsIHRvIGVuYWJsZQp0aGUga2VybmVsZG9jIGNyb3NzLWxpbmtpbmcuIFBsZWFz ZSBhbHNvIGNoZWNrIHdoYXQgbWFrZSBodG1sZG9jcwpnZW5lcmF0ZXMgdG8gbWFrZSBzdXJlIGl0 J3MgYWxsIGdvb2QuCgo+ICsJICoga2VlcCBkcm1fY3J0Y192YmxhbmtfcHV0IGluIGFyZWFzIHRo YXQgY2Fubm90IHNwbGVlcC4KPiArCSAqLwo+ICsJdm9pZCAoKnVucHJlcGFyZV92YmxhbmspIChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSk7Cj4gKwo+ICsKPiArCS8q Kgo+ICAJICogZW5hYmxlX3ZibGFuayAtIGVuYWJsZSB2YmxhbmsgaW50ZXJydXB0IGV2ZW50cwo+ ICAJICogQGRldjogRFJNIGRldmljZQo+ICAJICogQHBpcGU6IHdoaWNoIGlycSB0byBlbmFibGUK PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2lycS5oIGIvaW5jbHVkZS9kcm0vZHJtX2ly cS5oCj4gaW5kZXggMjQwMWIxNC4uOTNhOWU5ZCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9k cm1faXJxLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1faXJxLmgKPiBAQCAtNDUsNiArNDUsMjAg QEAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCB7Cj4gIH07Cj4gIAo+ICAvKioKPiAr ICogc3RydWN0IGRybV92YmxhbmtfdW5wcmVwYXJlIC0gdW5wcmVwYXJlIHZibGFuawo+ICsgKi8K PiArc3RydWN0IGRybV92YmxhbmtfdW5wcmVwYXJlIHsKPiArCS8qKgo+ICsJICogQHdvcms6IERl bGF5ZWQgd29yayB0byBoYW5kbGUgdW5wcmVwYXJlIG91dCBvZiBzcGlubG9jayBhcmVhcwo+ICsJ ICovCj4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKPiArCS8qKgo+ICsJICogQGNvdW50ZXI6 IE51bWJlciBvZiB2YmxhbmtzIGhhbmRsZWQKPiArCSAqLwo+ICsJYXRvbWljX3QgY291bnRlcjsK PiArfTsKPiArCj4gKy8qKgo+ICAgKiBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjIC0gdmJsYW5rIHRy YWNraW5nIGZvciBhIENSVEMKPiAgICoKPiAgICogVGhpcyBzdHJ1Y3R1cmUgdHJhY2tzIHRoZSB2 Ymxhbmsgc3RhdGUgZm9yIG9uZSBDUlRDLgo+IEBAIC0xMjgsNiArMTQyLDEyIEBAIHN0cnVjdCBk cm1fdmJsYW5rX2NydGMgewo+ICAJICogZGlzYWJsaW5nIGZ1bmN0aW9ucyBtdWx0aXBsZSB0aW1l cy4KPiAgCSAqLwo+ICAJYm9vbCBlbmFibGVkOwo+ICsJLyoqCj4gKwkgKiBAdW5wcmVwYXJlOiBU cmFja3MgdGhlIGFtb3VudCBvZiBkcm1fdmJsYW5rX3B1dCBoYW5kbGVkIHRoYXQgbmVlZHMKPiAr CSAqIGEgZGVsYXllZCB1bnByZXBhcmUgY2FsbCBzbyB0aGUgdW5wcmVwYXJlIGNhbiBydW4gb3V0 IG9mIHByb3RlY3RlZAo+ICsJICogYXJlYXMgd2hlcmUgY29kZSBjYW4gc2xlZXAuCj4gKwkgKi8K PiArCXN0cnVjdCBkcm1fdmJsYW5rX3VucHJlcGFyZSB1bnByZXBhcmU7CgpOb3Qgc3VyZSB3aHkg dGhlIHN1YnN0cnVjdCwgSSdkIGp1c3QgY2FsbCB0aGUgdW5wcmVwYXJlX3dvcmsgYW5kCnVucHJl cGFyZV9jb3VudGVyIGFuZCBsZXNzIGtlcm5lbC1kb2Mgbm9pc2UuIFdlIGRvIHN1YnN0cnVjc3Qg YSBsb3QgaW4gdGhlCmk5MTUgZGV2aWNlIHN0dXJjdCBiZWNhdXNlIGl0J3Mgc28gaHVnZSwgYW5k IHRvIGJlIGFibGUgdG8gc3BsaXQgdXAgdGhpbmdzCmEgYml0LiBCdXQgaW4gZ2VuZXJhbCBzdWJz dHJ1Y3QgbWVhbnMgeW91IG5lZWQgdG8ganVtcCBhcm91bmQgbW9yZSwgYW5kIGl0Cm1ha2VzIGl0 IGhhcmRlciB0byBmaW5kIGRlZmluaXRpb25zIHVzaW5nIHRvb2xzIGxpa2UgY3Njb3BlIG9yIGdy ZXAgb3IKc2ltaWxhci4KCkNoZWVycywgRGFuaWVsCj4gIH07Cj4gIAo+ICBleHRlcm4gaW50IGRy bV9pcnFfaW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgaXJxKTsKPiAtLSAKPiAy LjQuMwo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=