From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/vblank: drop the mode argument from drm_calc_vbltimestamp_from_scanoutpos Date: Thu, 30 Mar 2017 15:03:26 +0300 Message-ID: <20170330120326.GG30290@intel.com> References: <20170322083617.13361-15-daniel.vetter@ffwll.ch> <20170322205612.26619-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170322205612.26619-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: linux-arm-msm@vger.kernel.org, Intel Graphics Development , DRI Development , Ben Skeggs , Mario Kleiner , Alex Deucher , Daniel Vetter , freedreno@lists.freedesktop.org, Christian =?iso-8859-1?Q?K=F6nig?= List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXIgMjIsIDIwMTcgYXQgMDk6NTY6MTJQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBJZiB3ZSByZXN0cmljdCB0aGlzIGhlbHBlciB0byBvbmx5IGttcyBkcml2ZXJzICh3 aGljaCBpcyB0aGUgY2FzZSkgd2UKPiBjYW4gbG9vayB1cCB0aGUgY29ycmVjdCBtb2RlIGVhc2ls eSBvdXJzZWx2ZXMuIEJ1dCBpdCdzIGEgYml0IHRyaWNreToKPiAKPiAtIEFsbCBsZWdhY3kgZHJp dmVycyBsb29rIGF0IGNydGMtPmh3bW9kZS4gQnV0IHRoYXQgaXMgdXBkYXRlIGFscmVhZHkKPiAg IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG1vZGVzZXQgaGVscGVyLCB3aGljaCBtZWFucyB3aGVu IHdlIGRpc2FibGUKPiAgIGEgcGlwZS4gSGVuY2UgdGhlIGZpbmFsIHRpbWVzdGFtcHMgbWlnaHQg YmUgYSBiaXQgb2ZmLiBCdXQgc2luY2UKPiAgIHRoaXMgaXMgYW4gZXhpc3RpbmcgYnVnIEknbSBu b3QgZ29pbmcgdG8gY2hhbmdlIGl0LCBidXQganVzdCB0cnkgdG8KPiAgIGJlIGJ1Zy1mb3ItYnVn IGNvbXBhdGlibGUgd2l0aCB0aGUgY3VycmVudCBjb2RlLiBUaGlzIG9ubHkgYXBwbGllcwo+ICAg dG8gcmFkZW9uJmFtZGdwdS4KPiAKPiAtIGk5MTUgdHJpZXMgdG8gZ2V0IGl0IHBlcmZlY3QgYnkg dXBkYXRpbmcgY3J0Yy0+aHdtb2RlIHdoZW4gdGhlIHBpcGUKPiAgIGlzIG9mZiAoaS5lLiB2Ymxh bmstPmVuYWJsZWQgPSBmYWxzZSkuCj4gCj4gLSBBbGwgb3RoZXIgYXRvbWljIGRyaXZlcnMgbG9v ayBhdCBjcnRjLT5zdGF0ZS0+YWRqdXN0ZWRfbW9kZS4gVGhvc2UKPiAgIHRoYXQgbG9vayBhdCBz dGF0ZS0+cmVxdWVzdGVkX21vZGUgc2ltcGx5IGRvbid0IGFkanVzdCB0aGVpciBtb2RlLAo+ICAg c28gaXQncyB0aGUgc2FtZS4gVGhhdCBoYXMgdHdvIHByb2JsZW1zOiBBY2Nlc3NpbmcgY3J0Yy0+ c3RhdGUgZnJvbQo+ICAgaW50ZXJydXB0IGhhbmRsaW5nIGNvZGUgaXMgdW5zYWZlLCBhbmQgaXQn cyB1cGRhdGVkIGJlZm9yZSB3ZSBzaHV0Cj4gICBkb3duIHRoZSBwaXBlLiBGb3Igbm9uYmxvY2tp bmcgbW9kZXNldHMgaXQncyBldmVuIHdvcnNlLgo+IAo+IEZvciBhdG9taWMgZHJpdmVycyB0cnkg dG8gaW1wbGVtZW50IHdoYXQgaTkxNSBkb2VzLiBUbyBkbyB0aGF0IHdlIGFkZAo+IGEgbmV3IGh3 bW9kZSBmaWVsZCB0byB0aGUgdmJsYW5rIHN0cnVjdHVyZSwgYW5kIHVwZGF0ZSBpdCBmcm9tCj4g ZHJtX2NhbGNfdGltZXN0YW1waW5nX2NvbnN0YW50cygpLgoKaTkxNSBjbGVhciBjcnRjLT5od21v ZGUuY3J0Y19jbG9jayB3aGVuIHR1cm5pbmcgdGhlIGNydGMgb2ZmLCB3aGljaAp0aGlzIGRvZXMg bm90IGRvIGZvciB0aGUgbmV3IHZibGFuay0+aHdtb2RlLiBJIGd1ZXNzIG5vIG9uZSBzaG91bGQK cmVhbGx5IGVuZCB1cCBpbiB0aGVzZSBjb2RlcGF0aHMgd2l0aCBhIGRpc2FibGVkIGNydGMsIGJ1 dCBwYXJ0cyBvZgpkcm1faXJxLmMgc29ydCBvZiBsb29rIGxpa2UgdGhleSdyZSBleHBlY3Rpbmcg aXQgdG8gaGFwcGVuLgoKU28gc2hvdWxkIHdlIGhhdmUgc29tZSB3YXkgdG8gY2xlYXIgb3V0IHRo ZSB2YmxhbmstPmh3bW9kZS5jcnRjX2Nsb2NrCmZvciBkaXNhYmxlZCBjcnRjcz8gQW5kIHRoZW4g bWF5YmUgbWFrZSBzb21lIG9mIHRoZXNlIGNydGNfY2xvY2sgY2hlY2tzCldBUk4gYW5kIGV2ZW50 dWFsbHkganVzdCBudWtlIGl0IGFsbCBpZiBpdCBsb29rcyBsaWtlIG5vdGhpbmcgaXMgaGl0dGlu Zwp0aG9zZT8KCj4gRm9yIGF0b21pYyBkcml2ZXJzIHRoYXQncyBjYWxsZWQKPiBmcm9tIHRoZSBy aWdodCBzcG90IGJ5IHRoZSBoZWxwZXIgbGlicmFyeSBhbHJlYWR5LCBzbyBhbGwgZmluZS4gQnV0 Cj4gZm9yIHNhZmV0eSBsZXQncyBlbmZvcmNlIHRoYXQuCj4gCj4gRm9yIGxlZ2FjeSBkcml2ZXIg dGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZCBhdCB0aGUgZW5kIChvaCB0aGUKPiBmdW4pLCB3 aGljaCBpcyBicm9rZW4sIHNvIGFnYWluIGxldCdzIG5vdCBib3RoZXIgYW5kIGp1c3Qgc3RheQo+ IGJ1Zy1mb3ItYnVnIGNvbXBhdGlibGUuCj4gCj4gVGhlICBiZW5lZml0IGlzIHRoYXQgd2UgY2Fu IHVzZSBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zCj4gZGlyZWN0bHkgdG8g aW1wbGVtZW50IC0+Z2V0X3ZibGFua190aW1lc3RhbXAgaW4gZXZlcnkgZHJpdmVyLCBkZWxldGlu Zwo+IGEgbG90IG9mIGNvZGUuCj4gCj4gdjI6IENvbXBsZXRlbHkgbmV3IGFwcHJvYWNoLCB0cnlp bmcgdG8gbWltaWNrIHRoZSBpOTE1IHNvbHV0aW9uLgo+IAo+IHYzOiBGaXh1cCBrZXJuZWxkb2Mu Cj4gCj4gdjQ6IERyb3AgdGhlIFdBUk5fT04gdG8gY2hlY2sgdGhhdCB0aGUgdmJsYW5rIGlzIG9m ZiwgYXRvbWljIGhlbHBlcnMKPiBjdXJyZW50bHkgdW5jb25kaXRpb25hbGx5IGNhbGwgdGhpcy4g UmVjb21wdXRpbmcgdGhlIHNhbWUgc3R1ZmYgc2hvdWxkCj4gYmUgaGFybWxlc3MuCj4gCj4gQ2M6 IE1hcmlvIEtsZWluZXIgPG1hcmlvLmtsZWluZXJAdHVlYmluZ2VuLm1wZy5kZT4KPiBDYzogRXJp YyBBbmhvbHQgPGVyaWNAYW5ob2x0Lm5ldD4KPiBDYzogUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21h aWwuY29tPgo+IENjOiBsaW51eC1hcm0tbXNtQHZnZXIua2VybmVsLm9yZwo+IENjOiBmcmVlZHJl bm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gQ2M6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRl dWNoZXJAYW1kLmNvbT4KPiBDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0Bh bWQuY29tPgo+IENjOiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhhdC5jb20+Cj4gU2lnbmVkLW9m Zi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgIHwgIDQgLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYyAgIHwgIDIgKy0KPiAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jICAgfCA0MSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgICAgICAgICAgICAgICAg IHwgMjcgKysrKysrKysrKysrKysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYyAgICAgICAgICAgfCAzMyArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYyAgIHwgMjYgKy0tLS0tLS0tLS0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMgfCAyMiAtLS0t LS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXku aCB8ICAyIC0tCj4gIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMgICAgIHwg IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMgICAgICAgfCAgNiAr LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9rbXMuYyAgICAgICB8IDM3IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0 Yy5jICAgICAgICAgICAgfCAxMyAtLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X2Rydi5jICAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2 LmggICAgICAgICAgICAgfCAgMyAtLS0KPiAgaW5jbHVkZS9kcm0vZHJtX2lycS5oICAgICAgICAg ICAgICAgICAgICAgfCAxNSArKysrKysrKystLQo+ICAxNSBmaWxlcyBjaGFuZ2VkLCA0MiBpbnNl cnRpb25zKCspLCAxOTMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1LmgKPiBpbmRleCBlZGIzYmI4M2UxYTkuLjYxYmVmOTYwOWIyNCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gQEAgLTE3NjgsMTAgKzE3NjgsNiBAQCBpbnQgYW1kZ3B1 X2RldmljZV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCByZXN1bWUsIGJvb2wg ZmJjb24pOwo+ICB1MzIgYW1kZ3B1X2dldF92YmxhbmtfY291bnRlcl9rbXMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICBpbnQgYW1kZ3B1X2VuYWJsZV92Ymxh bmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiAgdm9p ZCBhbWRncHVfZGlzYWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2ln bmVkIGludCBwaXBlKTsKPiAtYm9vbCBhbWRncHVfZ2V0X3ZibGFua190aW1lc3RhbXBfa21zKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+IC0JCQkJICAgICBpbnQg Km1heF9lcnJvciwKPiAtCQkJCSAgICAgc3RydWN0IHRpbWV2YWwgKnZibGFua190aW1lLAo+IC0J CQkJICAgICBib29sIGluX3ZibGFua19pcnEpOwo+ICBsb25nIGFtZGdwdV9rbXNfY29tcGF0X2lv Y3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLAo+ICAJCQkgICAgIHVuc2ln bmVkIGxvbmcgYXJnKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYu Ywo+IGluZGV4IDhhNjEyOTZmZDRjYy4uYmExNjlhMDY5OWQ1IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYwo+IEBAIC02OTIsNyArNjkyLDcgQEAgc3RhdGljIHN0 cnVjdCBkcm1fZHJpdmVyIGttc19kcml2ZXIgPSB7Cj4gIAkuZ2V0X3ZibGFua19jb3VudGVyID0g YW1kZ3B1X2dldF92YmxhbmtfY291bnRlcl9rbXMsCj4gIAkuZW5hYmxlX3ZibGFuayA9IGFtZGdw dV9lbmFibGVfdmJsYW5rX2ttcywKPiAgCS5kaXNhYmxlX3ZibGFuayA9IGFtZGdwdV9kaXNhYmxl X3ZibGFua19rbXMsCj4gLQkuZ2V0X3ZibGFua190aW1lc3RhbXAgPSBhbWRncHVfZ2V0X3ZibGFu a190aW1lc3RhbXBfa21zLAo+ICsJLmdldF92YmxhbmtfdGltZXN0YW1wID0gZHJtX2NhbGNfdmJs dGltZXN0YW1wX2Zyb21fc2Nhbm91dHBvcywKPiAgCS5nZXRfc2Nhbm91dF9wb3NpdGlvbiA9IGFt ZGdwdV9nZXRfY3J0Y19zY2Fub3V0cG9zLAo+ICAjaWYgZGVmaW5lZChDT05GSUdfREVCVUdfRlMp Cj4gIAkuZGVidWdmc19pbml0ID0gYW1kZ3B1X2RlYnVnZnNfaW5pdCwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCj4gaW5kZXggYWQyOTVlODIyZDQ1Li4zMmE0OTJiZDRl NTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ttcy5jCj4gQEAgLTgy Nyw0NyArODI3LDYgQEAgdm9pZCBhbWRncHVfZGlzYWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICAJYW1kZ3B1X2lycV9wdXQoYWRldiwg JmFkZXYtPmNydGNfaXJxLCBpZHgpOwo+ICB9Cj4gIAo+IC0vKioKPiAtICogYW1kZ3B1X2dldF92 YmxhbmtfdGltZXN0YW1wX2ttcyAtIGdldCB2YmxhbmsgdGltZXN0YW1wCj4gLSAqCj4gLSAqIEBk ZXY6IGRybSBkZXYgcG9pbnRlcgo+IC0gKiBAY3J0YzogY3J0YyB0byBnZXQgdGhlIHRpbWVzdGFt cCBmb3IKPiAtICogQG1heF9lcnJvcjogbWF4IGVycm9yCj4gLSAqIEB2YmxhbmtfdGltZTogdGlt ZSB2YWx1ZQo+IC0gKiBAaW5fdmJsYW5rX2lycTogY2FsbGVkIGZyb20gZHJtX2hhbmRsZV92Ymxh bmsoKQo+IC0gKgo+IC0gKiBHZXRzIHRoZSB0aW1lc3RhbXAgb24gdGhlIHJlcXVlc3RlZCBjcnRj IGJhc2VkIG9uIHRoZQo+IC0gKiBzY2Fub3V0IHBvc2l0aW9uLiAgKGFsbCBhc2ljcykuCj4gLSAq IFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlLgo+IC0gKi8KPiAtYm9v bCBhbWRncHVfZ2V0X3ZibGFua190aW1lc3RhbXBfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCBwaXBlLAo+IC0JCQkJICAgICBpbnQgKm1heF9lcnJvciwKPiAtCQkJCSAg ICAgc3RydWN0IHRpbWV2YWwgKnZibGFua190aW1lLAo+IC0JCQkJICAgICBib29sIGluX3ZibGFu a19pcnEpCj4gLXsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAtCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCj4gLQlpZiAocGlwZSA+PSBkZXYt Pm51bV9jcnRjcykgewo+IC0JCURSTV9FUlJPUigiSW52YWxpZCBjcnRjICV1XG4iLCBwaXBlKTsK PiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+IC0JLyogR2V0IGFzc29jaWF0ZWQgZHJtX2Ny dGM6ICovCj4gLQljcnRjID0gJmFkZXYtPm1vZGVfaW5mby5jcnRjc1twaXBlXS0+YmFzZTsKPiAt CWlmICghY3J0Yykgewo+IC0JCS8qIFRoaXMgY2FuIG9jY3VyIG9uIGRyaXZlciBsb2FkIGlmIHNv bWUgY29tcG9uZW50IGZhaWxzIHRvCj4gLQkJICogaW5pdGlhbGl6ZSBjb21wbGV0ZWx5IGFuZCBk cml2ZXIgaXMgdW5sb2FkZWQgKi8KPiAtCQlEUk1fRVJST1IoIlVuaW5pdGlhbGl6ZWQgY3J0YyAl ZFxuIiwgcGlwZSk7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0JfQo+IC0KPiAtCS8qIEhlbHBlciBy b3V0aW5lIGluIERSTSBjb3JlIGRvZXMgYWxsIHRoZSB3b3JrOiAqLwo+IC0JcmV0dXJuIGRybV9j YWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3MoZGV2LCBwaXBlLCBtYXhfZXJyb3IsCj4g LQkJCQkJCSAgICAgdmJsYW5rX3RpbWUsIGluX3ZibGFua19pcnEsCj4gLQkJCQkJCSAgICAgJmNy dGMtPmh3bW9kZSk7Cj4gLX0KPiAtCj4gIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBhbWRn cHVfaW9jdGxzX2ttc1tdID0gewo+ICAJRFJNX0lPQ1RMX0RFRl9EUlYoQU1ER1BVX0dFTV9DUkVB VEUsIGFtZGdwdV9nZW1fY3JlYXRlX2lvY3RsLCBEUk1fQVVUSHxEUk1fUkVOREVSX0FMTE9XKSwK PiAgCURSTV9JT0NUTF9ERUZfRFJWKEFNREdQVV9DVFgsIGFtZGdwdV9jdHhfaW9jdGwsIERSTV9B VVRIfERSTV9SRU5ERVJfQUxMT1cpLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+IGluZGV4IGNkYjA2NGI0NmQwNC4u NDZjOTIzODQ4YzE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gQEAgLTY4Miw2ICs2ODIsNyBAQCB2b2lk IGRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ ICAKPiAgCXZibGFuay0+bGluZWR1cl9ucyAgPSBsaW5lZHVyX25zOwo+ICAJdmJsYW5rLT5mcmFt ZWR1cl9ucyA9IGZyYW1lZHVyX25zOwo+ICsJdmJsYW5rLT5od21vZGUgPSAqbW9kZTsKPiAgCj4g IAlEUk1fREVCVUcoImNydGMgJXU6IGh3bW9kZTogaHRvdGFsICVkLCB2dG90YWwgJWQsIHZkaXNw bGF5ICVkXG4iLAo+ICAJCSAgY3J0Yy0+YmFzZS5pZCwgbW9kZS0+Y3J0Y19odG90YWwsCj4gQEAg LTcwMiw3ICs3MDMsNiBAQCBFWFBPUlRfU1lNQk9MKGRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25z dGFudHMpOwo+ICAgKiAgICAgVHJ1ZSB3aGVuIGNhbGxlZCBmcm9tIGRybV9jcnRjX2hhbmRsZV92 YmxhbmsoKS4gIFNvbWUgZHJpdmVycwo+ICAgKiAgICAgbmVlZCB0byBhcHBseSBzb21lIHdvcmth cm91bmRzIGZvciBncHUtc3BlY2lmaWMgdmJsYW5rIGlycSBxdWlya3MKPiAgICogICAgIGlmIGZs YWcgaXMgc2V0Lgo+IC0gKiBAbW9kZTogbW9kZSB3aGljaCBkZWZpbmVzIHRoZSBzY2Fub3V0IHRp bWluZ3MKPiAgICoKPiAgICogSW1wbGVtZW50cyBjYWxjdWxhdGlvbiBvZiBleGFjdCB2Ymxhbmsg dGltZXN0YW1wcyBmcm9tIGdpdmVuIGRybV9kaXNwbGF5X21vZGUKPiAgICogdGltaW5ncyBhbmQg Y3VycmVudCB2aWRlbyBzY2Fub3V0IHBvc2l0aW9uIG9mIGEgQ1JUQy4gVGhpcyBjYW4gYmUgY2Fs bGVkIGZyb20KPiBAQCAtNzIyLDYgKzcyMiwxMyBAQCBFWFBPUlRfU1lNQk9MKGRybV9jYWxjX3Rp bWVzdGFtcGluZ19jb25zdGFudHMpOwo+ICAgKiByZXR1cm5zIGFzIG5vIG9wZXJhdGlvbiBpZiBh IGRvdWJsZXNjYW4gb3IgaW50ZXJsYWNlZCB2aWRlbyBtb2RlIGlzCj4gICAqIGFjdGl2ZS4gSGln aGVyIGxldmVsIGNvZGUgaXMgZXhwZWN0ZWQgdG8gaGFuZGxlIHRoaXMuCj4gICAqCj4gKyAqIFRo aXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IHRoZSAmZHJtX2RyaXZlci5nZXRf dmJsYW5rX3RpbWVzdGFtcAo+ICsgKiBkaXJlY3RseSwgaWYgdGhlIGRyaXZlciBpbXBsZW1lbnRz IHRoZSAmZHJtX2RyaXZlci5nZXRfc2Nhbm91dF9wb3NpdGlvbiBob29rLgo+ICsgKgo+ICsgKiBO b3RlIHRoYXQgYXRvbWljIGRyaXZlcnMgbXVzdCBjYWxsIGRybV9jYWxjX3RpbWVzdGFtcGluZ19j b25zdGFudHMoKSBiZWZvcmUKPiArICogZW5hYmxpbmcgYSBDUlRDLiBUaGUgYXRvbWljIGhlbHBl cnMgYWxyZWFkeSB0YWtlIGNhcmUgb2YgdGhhdCBpbgo+ICsgKiBkcm1fYXRvbWljX2hlbHBlcl91 cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUoKS4KPiArICoKPiAgICogUmV0dXJuczoKPiAgICoK PiAgICogUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MsIGFuZCBmYWxzZSBvbiBmYWlsdXJlLCBpLmUu IHdoZW4gbm8gYWNjdXJhdGUKPiBAQCAtNzMxLDE3ICs3MzgsMjQgQEAgYm9vbCBkcm1fY2FsY192 Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ CQkJICAgdW5zaWduZWQgaW50IHBpcGUsCj4gIAkJCQkJICAgaW50ICptYXhfZXJyb3IsCj4gIAkJ CQkJICAgc3RydWN0IHRpbWV2YWwgKnZibGFua190aW1lLAo+IC0JCQkJCSAgIGJvb2wgaW5fdmJs YW5rX2lycSwKPiAtCQkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkK PiArCQkJCQkgICBib29sIGluX3ZibGFua19pcnEpCj4gIHsKPiAgCXN0cnVjdCB0aW1ldmFsIHR2 X2V0aW1lOwo+ICAJa3RpbWVfdCBzdGltZSwgZXRpbWU7Cj4gIAl1bnNpZ25lZCBpbnQgdmJsX3N0 YXR1czsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwo+ICsJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRl di0+dmJsYW5rW3BpcGVdOwo+ICAJaW50IHZwb3MsIGhwb3MsIGk7Cj4gIAlpbnQgZGVsdGFfbnMs IGR1cmF0aW9uX25zOwo+ICAJdW5zaWduZWQgZmxhZ3MgPSBpbl92YmxhbmtfaXJxID8gRFJNX0NB TExFRF9GUk9NX1ZCTElSUSA6IDA7Cj4gIAo+IC0JaWYgKHBpcGUgPj0gZGV2LT5udW1fY3J0Y3Mp IHsKPiArCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkK PiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJY3J0YyA9IGRybV9jcnRjX2Zyb21faW5kZXgoZGV2 LCBwaXBlKTsKPiArCj4gKwlpZiAocGlwZSA+PSBkZXYtPm51bV9jcnRjcyB8fCAhY3J0Yykgewo+ ICAJCURSTV9FUlJPUigiSW52YWxpZCBjcnRjICV1XG4iLCBwaXBlKTsKPiAgCQlyZXR1cm4gZmFs c2U7Cj4gIAl9Cj4gQEAgLTc1Miw2ICs3NjYsMTEgQEAgYm9vbCBkcm1fY2FsY192Ymx0aW1lc3Rh bXBfZnJvbV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJcmV0dXJuIGZh bHNlOwo+ICAJfQo+ICAKPiArCWlmIChkcm1fZHJ2X3VzZXNfYXRvbWljX21vZGVzZXQoZGV2KSkK PiArCQltb2RlID0gJnZibGFuay0+aHdtb2RlOwo+ICsJZWxzZQo+ICsJCW1vZGUgPSAmY3J0Yy0+ aHdtb2RlOwo+ICsKPiAgCS8qIElmIG1vZGUgdGltaW5nIHVuZGVmaW5lZCwganVzdCByZXR1cm4g YXMgbm8tb3A6Cj4gIAkgKiBIYXBwZW5zIGR1cmluZyBpbml0aWFsIG1vZGVzZXR0aW5nIG9mIGEg Y3J0Yy4KPiAgCSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2ly cS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGluZGV4IDZjOGE3ZTEyODRj My4uZmVhZGZlYTc3MzU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTk2NCwz NyArOTY0LDYgQEAgaW50IGludGVsX2dldF9jcnRjX3NjYW5saW5lKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQo+ICAJcmV0dXJuIHBvc2l0aW9uOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBpOTE1 X2dldF92YmxhbmtfdGltZXN0YW1wKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGlu dCBwaXBlLAo+IC0JCQkgICAgICBpbnQgKm1heF9lcnJvciwKPiAtCQkJICAgICAgc3RydWN0IHRp bWV2YWwgKnZibGFua190aW1lLAo+IC0JCQkgICAgICBib29sIGluX3ZibGFua19pcnEpCj4gLXsK PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAt CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+IC0KPiAtCWlmIChwaXBlID49IElOVEVMX0lORk8o ZGV2X3ByaXYpLT5udW1fcGlwZXMpIHsKPiAtCQlEUk1fRVJST1IoIkludmFsaWQgY3J0YyAldVxu IiwgcGlwZSk7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0JfQo+IC0KPiAtCS8qIEdldCBkcm1fY3J0 YyB0byB0aW1lc3RhbXA6ICovCj4gLQljcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2 X3ByaXYsIHBpcGUpOwo+IC0JaWYgKGNydGMgPT0gTlVMTCkgewo+IC0JCURSTV9FUlJPUigiSW52 YWxpZCBjcnRjICV1XG4iLCBwaXBlKTsKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+IC0J aWYgKCFjcnRjLT5iYXNlLmh3bW9kZS5jcnRjX2Nsb2NrKSB7Cj4gLQkJRFJNX0RFQlVHX0tNUygi Y3J0YyAldSBpcyBkaXNhYmxlZFxuIiwgcGlwZSk7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0JfQo+ IC0KPiAtCS8qIEhlbHBlciByb3V0aW5lIGluIERSTSBjb3JlIGRvZXMgYWxsIHRoZSB3b3JrOiAq Lwo+IC0JcmV0dXJuIGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3MoZGV2LCBw aXBlLCBtYXhfZXJyb3IsCj4gLQkJCQkJCSAgICAgdmJsYW5rX3RpbWUsIGluX3ZibGFua19pcnEs Cj4gLQkJCQkJCSAgICAgJmNydGMtPmJhc2UuaHdtb2RlKTsKPiAtfQo+IC0KPiAgc3RhdGljIHZv aWQgaXJvbmxha2VfcnBzX2NoYW5nZV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gIHsKPiAgCXUzMiBidXN5X3VwLCBidXN5X2Rvd24sIG1heF9hdmcsIG1p bl9hdmc7Cj4gQEAgLTQzMjgsNyArNDI5Nyw3IEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAKPiAgCWRldl9wcml2LT5ob3RwbHVnLmhw ZF9zdG9ybV90aHJlc2hvbGQgPSBIUERfU1RPUk1fREVGQVVMVF9USFJFU0hPTEQ7Cj4gIAo+IC0J ZGV2LT5kcml2ZXItPmdldF92YmxhbmtfdGltZXN0YW1wID0gaTkxNV9nZXRfdmJsYW5rX3RpbWVz dGFtcDsKPiArCWRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX3RpbWVzdGFtcCA9IGRybV9jYWxjX3Zi bHRpbWVzdGFtcF9mcm9tX3NjYW5vdXRwb3M7Cj4gIAlkZXYtPmRyaXZlci0+Z2V0X3NjYW5vdXRf cG9zaXRpb24gPSBpOTE1X2dldF9jcnRjX3NjYW5vdXRwb3M7Cj4gIAo+ICAJaWYgKElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRw L21kcDUvbWRwNV9rbXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMu Ywo+IGluZGV4IDE2MTg0Y2NiZGQzYi4uNmJhMjE2YjhiYmE5IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbWRwL21kcDUvbWRwNV9rbXMuYwo+IEBAIC01OTUsMzAgKzU5NSw2IEBAIHN0YXRpYyBp bnQgbWRwNV9nZXRfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSwKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIG1kcDVfZ2V0 X3ZibGFua190aW1lc3RhbXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBp cGUsCj4gLQkJCQkgICAgICBpbnQgKm1heF9lcnJvciwKPiAtCQkJCSAgICAgIHN0cnVjdCB0aW1l dmFsICp2YmxhbmtfdGltZSwKPiAtCQkJCSAgICAgIGJvb2wgaW5fdmJsYW5rX2lycSkKPiAtewo+ IC0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gLQo+IC0JaWYgKHBpcGUgPCAwIHx8IHBpcGUgPj0gcHJp di0+bnVtX2NydGNzKSB7Cj4gLQkJRFJNX0VSUk9SKCJJbnZhbGlkIGNydGMgJWRcbiIsIHBpcGUp Owo+IC0JCXJldHVybiBmYWxzZTsKPiAtCX0KPiAtCj4gLQljcnRjID0gcHJpdi0+Y3J0Y3NbcGlw ZV07Cj4gLQlpZiAoIWNydGMpIHsKPiAtCQlEUk1fRVJST1IoIkludmFsaWQgY3J0YyAlZFxuIiwg cGlwZSk7Cj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0JfQo+IC0KPiAtCXJldHVybiBkcm1fY2FsY192 Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zKGRldiwgcGlwZSwgbWF4X2Vycm9yLAo+IC0JCQkJ CQkgICAgIHZibGFua190aW1lLCBpbl92YmxhbmtfaXJxLAo+IC0JCQkJCQkgICAgICZjcnRjLT5t b2RlKTsKPiAtfQo+IC0KPiAgc3RhdGljIHUzMiBtZHA1X2dldF92YmxhbmtfY291bnRlcihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgewo+ICAJc3RydWN0IG1z bV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTcyOCw3ICs3MDQs NyBAQCBzdHJ1Y3QgbXNtX2ttcyAqbWRwNV9rbXNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lkdGggPSAweGZmZmY7Cj4gIAlkZXYtPm1vZGVf Y29uZmlnLm1heF9oZWlnaHQgPSAweGZmZmY7Cj4gIAo+IC0JZGV2LT5kcml2ZXItPmdldF92Ymxh bmtfdGltZXN0YW1wID0gbWRwNV9nZXRfdmJsYW5rX3RpbWVzdGFtcDsKPiArCWRldi0+ZHJpdmVy LT5nZXRfdmJsYW5rX3RpbWVzdGFtcCA9IGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9tX3NjYW5v dXRwb3M7Cj4gIAlkZXYtPmRyaXZlci0+Z2V0X3NjYW5vdXRfcG9zaXRpb24gPSBtZHA1X2dldF9z Y2Fub3V0cG9zOwo+ICAJZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlciA9IG1kcDVfZ2V0 X3ZibGFua19jb3VudGVyOwo+ICAJZGV2LT5tYXhfdmJsYW5rX2NvdW50ID0gMHhmZmZmZmZmZjsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuYwo+IGluZGV4IGJlOGVj MThiYTEyNi4uZTRiZGFjMTNkNGU5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2 ZWF1L25vdXZlYXVfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91 dmVhdV9kaXNwbGF5LmMKPiBAQCAtMTU2LDI4ICsxNTYsNiBAQCBub3V2ZWF1X2Rpc3BsYXlfc2Nh bm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCXJl dHVybiAwOwo+ICB9Cj4gIAo+IC1ib29sCj4gLW5vdXZlYXVfZGlzcGxheV92YmxzdGFtcChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAtCQkJIGludCAqbWF4X2Vy cm9yLCBzdHJ1Y3QgdGltZXZhbCAqdGltZSwgYm9vbCBpbl92YmxhbmtfaXJxKQo+IC17Cj4gLQlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gLQo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShjcnRjLCAm ZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QsIGhlYWQpIHsKPiAtCQlpZiAobm91dmVhdV9jcnRj KGNydGMpLT5pbmRleCA9PSBwaXBlKSB7Cj4gLQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlOwo+IC0JCQlpZiAoZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KGRldikpCj4gLQkJCQlt b2RlID0gJmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+IC0JCQllbHNlCj4gLQkJCQltb2Rl ID0gJmNydGMtPmh3bW9kZTsKPiAtCQkJcmV0dXJuIGRybV9jYWxjX3ZibHRpbWVzdGFtcF9mcm9t X3NjYW5vdXRwb3MoZGV2LAo+IC0JCQkJCXBpcGUsIG1heF9lcnJvciwgdGltZSwgaW5fdmJsYW5r X2lycSwKPiAtCQkJCQltb2RlKTsKPiAtCQl9Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIGZhbHNlOwo+ IC19Cj4gLQo+ICBzdGF0aWMgdm9pZAo+ICBub3V2ZWF1X2Rpc3BsYXlfdmJsYW5rX2Zpbmkoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiAgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZl YXVfZGlzcGxheS5oCj4gaW5kZXggZjgyMWZjOWUyZGUzLi44MzYwYTg1ZWQ1ZWYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kaXNwbGF5LmgKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rpc3BsYXkuaAo+IEBAIC03MSw4ICs3MSw2 IEBAIHZvaWQgbm91dmVhdV9kaXNwbGF5X3ZibGFua19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNl ICosIHVuc2lnbmVkIGludCk7Cj4gIGludCAgbm91dmVhdV9kaXNwbGF5X3NjYW5vdXRwb3Moc3Ry dWN0IGRybV9kZXZpY2UgKiwgdW5zaWduZWQgaW50LAo+ICAJCQkJdW5zaWduZWQgaW50LCBpbnQg KiwgaW50ICosIGt0aW1lX3QgKiwKPiAgCQkJCWt0aW1lX3QgKiwgY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKik7Cj4gLWJvb2wgIG5vdXZlYXVfZGlzcGxheV92YmxzdGFtcChzdHJ1Y3Qg ZHJtX2RldmljZSAqLCB1bnNpZ25lZCBpbnQsIGludCAqLAo+IC0JCQkgICAgICAgc3RydWN0IHRp bWV2YWwgKiwgYm9vbCk7Cj4gIAo+ICBpbnQgIG5vdXZlYXVfY3J0Y19wYWdlX2ZsaXAoc3RydWN0 IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAgCQkJICAgIHN0 cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50LAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9kcm0uYwo+IGluZGV4IGVjNzE5ZGY2MTlhNi4uMWY3NTFhM2Y1NzBjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5jCj4gQEAgLTk3OCw3ICs5NzgsNyBA QCBkcml2ZXJfc3R1YiA9IHsKPiAgCS5lbmFibGVfdmJsYW5rID0gbm91dmVhdV9kaXNwbGF5X3Zi bGFua19lbmFibGUsCj4gIAkuZGlzYWJsZV92YmxhbmsgPSBub3V2ZWF1X2Rpc3BsYXlfdmJsYW5r X2Rpc2FibGUsCj4gIAkuZ2V0X3NjYW5vdXRfcG9zaXRpb24gPSBub3V2ZWF1X2Rpc3BsYXlfc2Nh bm91dHBvcywKPiAtCS5nZXRfdmJsYW5rX3RpbWVzdGFtcCA9IG5vdXZlYXVfZGlzcGxheV92Ymxz dGFtcCwKPiArCS5nZXRfdmJsYW5rX3RpbWVzdGFtcCA9IGRybV9jYWxjX3ZibHRpbWVzdGFtcF9m cm9tX3NjYW5vdXRwb3MsCj4gIAo+ICAJLmlvY3RscyA9IG5vdXZlYXVfaW9jdGxzLAo+ICAJLm51 bV9pb2N0bHMgPSBBUlJBWV9TSVpFKG5vdXZlYXVfaW9jdGxzKSwKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9kcnYuYwo+IGluZGV4IDVmYmJjNmFjMTY1ZC4uYTRiZjA5Y2QzM2Y3IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZHJ2LmMKPiBAQCAtMTE0LDEwICsxMTQsNiBAQCBpbnQg cmFkZW9uX3Jlc3VtZV9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCByZXN1bWUsIGJv b2wgZmJjb24pOwo+ICB1MzIgcmFkZW9uX2dldF92YmxhbmtfY291bnRlcl9rbXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpOwo+ICBpbnQgcmFkZW9uX2VuYWJsZV92 Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKTsKPiAg dm9pZCByYWRlb25fZGlzYWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBwaXBlKTsKPiAtYm9vbCByYWRlb25fZ2V0X3ZibGFua190aW1lc3RhbXBfa21z KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+IC0JCQkJICAgICBp bnQgKm1heF9lcnJvciwKPiAtCQkJCSAgICAgc3RydWN0IHRpbWV2YWwgKnZibGFua190aW1lLAo+ IC0JCQkJICAgICBib29sIGluX3ZibGFua19pcnEpOwo+ICB2b2lkIHJhZGVvbl9kcml2ZXJfaXJx X3ByZWluc3RhbGxfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICBpbnQgcmFkZW9uX2Ry aXZlcl9pcnFfcG9zdGluc3RhbGxfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lk IHJhZGVvbl9kcml2ZXJfaXJxX3VuaW5zdGFsbF9rbXMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gQEAgLTU0Myw3ICs1MzksNyBAQCBzdGF0aWMgc3RydWN0IGRybV9kcml2ZXIga21zX2RyaXZl ciA9IHsKPiAgCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSByYWRlb25fZ2V0X3ZibGFua19jb3VudGVy X2ttcywKPiAgCS5lbmFibGVfdmJsYW5rID0gcmFkZW9uX2VuYWJsZV92Ymxhbmtfa21zLAo+ICAJ LmRpc2FibGVfdmJsYW5rID0gcmFkZW9uX2Rpc2FibGVfdmJsYW5rX2ttcywKPiAtCS5nZXRfdmJs YW5rX3RpbWVzdGFtcCA9IHJhZGVvbl9nZXRfdmJsYW5rX3RpbWVzdGFtcF9rbXMsCj4gKwkuZ2V0 X3ZibGFua190aW1lc3RhbXAgPSBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9z LAo+ICAJLmdldF9zY2Fub3V0X3Bvc2l0aW9uID0gcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRwb3Ms Cj4gIAkuaXJxX3ByZWluc3RhbGwgPSByYWRlb25fZHJpdmVyX2lycV9wcmVpbnN0YWxsX2ttcywK PiAgCS5pcnFfcG9zdGluc3RhbGwgPSByYWRlb25fZHJpdmVyX2lycV9wb3N0aW5zdGFsbF9rbXMs Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fa21zLmMKPiBpbmRleCA0MTc2NWQxOGY4NjMuLjMz YjhiM2QyMjk2OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9r bXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ttcy5jCj4gQEAgLTg1 Nyw0MyArODU3LDYgQEAgdm9pZCByYWRlb25fZGlzYWJsZV92Ymxhbmtfa21zKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmRldi0+ aXJxLmxvY2ssIGlycWZsYWdzKTsKPiAgfQo+ICAKPiAtLyoqCj4gLSAqIHJhZGVvbl9nZXRfdmJs YW5rX3RpbWVzdGFtcF9rbXMgLSBnZXQgdmJsYW5rIHRpbWVzdGFtcAo+IC0gKgo+IC0gKiBAZGV2 OiBkcm0gZGV2IHBvaW50ZXIKPiAtICogQGNydGM6IGNydGMgdG8gZ2V0IHRoZSB0aW1lc3RhbXAg Zm9yCj4gLSAqIEBtYXhfZXJyb3I6IG1heCBlcnJvcgo+IC0gKiBAdmJsYW5rX3RpbWU6IHRpbWUg dmFsdWUKPiAtICogQGZsYWdzOiBmbGFncyBwYXNzZWQgdG8gdGhlIGRyaXZlcgo+IC0gKgo+IC0g KiBHZXRzIHRoZSB0aW1lc3RhbXAgb24gdGhlIHJlcXVlc3RlZCBjcnRjIGJhc2VkIG9uIHRoZQo+ IC0gKiBzY2Fub3V0IHBvc2l0aW9uLiAgKGFsbCBhc2ljcykuCj4gLSAqIFJldHVybnMgdHJ1ZSBv biBzdWNjZXNzLCBmYWxzZSBvbiBmYWlsdXJlLgo+IC0gKi8KPiAtYm9vbCByYWRlb25fZ2V0X3Zi bGFua190aW1lc3RhbXBfa21zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLAo+IC0J CQkJICAgICBpbnQgKm1heF9lcnJvciwKPiAtCQkJCSAgICAgc3RydWN0IHRpbWV2YWwgKnZibGFu a190aW1lLAo+IC0JCQkJICAgICBib29sIGluX3ZibGFua19pcnEpCj4gLXsKPiAtCXN0cnVjdCBk cm1fY3J0YyAqZHJtY3J0YzsKPiAtCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAtCj4gLQlpZiAoY3J0YyA8IDAgfHwgY3J0YyA+PSBkZXYtPm51bV9jcnRj cykgewo+IC0JCURSTV9FUlJPUigiSW52YWxpZCBjcnRjICVkXG4iLCBjcnRjKTsKPiAtCQlyZXR1 cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+IC0JLyogR2V0IGFzc29jaWF0ZWQgZHJtX2NydGM6ICovCj4g LQlkcm1jcnRjID0gJnJkZXYtPm1vZGVfaW5mby5jcnRjc1tjcnRjXS0+YmFzZTsKPiAtCWlmICgh ZHJtY3J0YykKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQo+IC0JLyogSGVscGVyIHJvdXRpbmUgaW4g RFJNIGNvcmUgZG9lcyBhbGwgdGhlIHdvcms6ICovCj4gLQlyZXR1cm4gZHJtX2NhbGNfdmJsdGlt ZXN0YW1wX2Zyb21fc2Nhbm91dHBvcyhkZXYsIGNydGMsIG1heF9lcnJvciwKPiAtCQkJCQkJICAg ICB2YmxhbmtfdGltZSwgaW5fdmJsYW5rX2lycSwKPiAtCQkJCQkJICAgICAmZHJtY3J0Yy0+aHdt b2RlKTsKPiAtfQo+IC0KPiAgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIHJhZGVvbl9pb2N0 bHNfa21zW10gPSB7Cj4gIAlEUk1fSU9DVExfREVGX0RSVihSQURFT05fQ1BfSU5JVCwgZHJtX2lu dmFsaWRfb3AsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCj4gIAlEUk1fSU9D VExfREVGX0RSVihSQURFT05fQ1BfU1RBUlQsIGRybV9pbnZhbGlkX29wLCBEUk1fQVVUSHxEUk1f TUFTVEVSfERSTV9ST09UX09OTFkpLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMKPiBpbmRleCAxOGJk MGQ4MTZmZTMuLjI1NjdkNmM5YTRlZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9jcnRjLmMKPiBAQCAt MjcwLDE5ICsyNzAsNiBAQCBpbnQgdmM0X2NydGNfZ2V0X3NjYW5vdXRwb3Moc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGNydGNfaWQsCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4g IAo+IC1ib29sIHZjNF9jcnRjX2dldF92YmxhbmtfdGltZXN0YW1wKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGludCBjcnRjX2lkLAo+IC0JCQkJICBpbnQgKm1heF9lcnJvciwgc3Ry dWN0IHRpbWV2YWwgKnZibGFua190aW1lLAo+IC0JCQkJICBib29sIGluX3ZibGFua19pcnEpCj4g LXsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRybV9jcnRjX2Zyb21faW5kZXgoZGV2LCBj cnRjX2lkKTsKPiAtCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUgPSBjcnRjLT5zdGF0ZTsK PiAtCj4gLQkvKiBIZWxwZXIgcm91dGluZSBpbiBEUk0gY29yZSBkb2VzIGFsbCB0aGUgd29yazog Ki8KPiAtCXJldHVybiBkcm1fY2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zKGRldiwg Y3J0Y19pZCwgbWF4X2Vycm9yLAo+IC0JCQkJCQkgICAgIHZibGFua190aW1lLCBpbl92Ymxhbmtf aXJxLAo+IC0JCQkJCQkgICAgICZzdGF0ZS0+YWRqdXN0ZWRfbW9kZSk7Cj4gLX0KPiAtCj4gIHN0 YXRpYyB2b2lkIHZjNF9jcnRjX2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4g IAlkcm1fY3J0Y19jbGVhbnVwKGNydGMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dmM0L3ZjNF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5jCj4gaW5kZXggNjFl Njc0YmFmM2E2Li5lODY0MjU2ZTEyZTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYwo+IEBAIC0x NTQsNyArMTU0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIHZjNF9kcm1fZHJpdmVyID0g ewo+ICAJLmlycV91bmluc3RhbGwgPSB2YzRfaXJxX3VuaW5zdGFsbCwKPiAgCj4gIAkuZ2V0X3Nj YW5vdXRfcG9zaXRpb24gPSB2YzRfY3J0Y19nZXRfc2Nhbm91dHBvcywKPiAtCS5nZXRfdmJsYW5r X3RpbWVzdGFtcCA9IHZjNF9jcnRjX2dldF92YmxhbmtfdGltZXN0YW1wLAo+ICsJLmdldF92Ymxh bmtfdGltZXN0YW1wID0gZHJtX2NhbGNfdmJsdGltZXN0YW1wX2Zyb21fc2Nhbm91dHBvcywKPiAg Cj4gICNpZiBkZWZpbmVkKENPTkZJR19ERUJVR19GUykKPiAgCS5kZWJ1Z2ZzX2luaXQgPSB2YzRf ZGVidWdmc19pbml0LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCj4gaW5kZXggODE1Y2RlYjU0OTcxLi42 NGM5MmUwZWI4ZjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuaAo+IEBAIC00NTAsOSArNDUwLDYg QEAgaW50IHZjNF9jcnRjX2dldF9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBjcnRjX2lkLAo+ICAJCQkgICAgdW5zaWduZWQgaW50IGZsYWdzLCBpbnQgKnZw b3MsIGludCAqaHBvcywKPiAgCQkJICAgIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90ICpldGltZSwK PiAgCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKPiAtYm9vbCB2 YzRfY3J0Y19nZXRfdmJsYW5rX3RpbWVzdGFtcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNp Z25lZCBpbnQgY3J0Y19pZCwKPiAtCQkJCSAgaW50ICptYXhfZXJyb3IsIHN0cnVjdCB0aW1ldmFs ICp2YmxhbmtfdGltZSwKPiAtCQkJCSAgYm9vbCBpbl92YmxhbmtfaXJxKTsKPiAgCj4gIC8qIHZj NF9kZWJ1Z2ZzLmMgKi8KPiAgaW50IHZjNF9kZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAq bWlub3IpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1faXJxLmggYi9pbmNsdWRlL2Ry bS9kcm1faXJxLmgKPiBpbmRleCA0NDU0MDZlZmI4ZGMuLmI0ODljYzg1NmU3YSAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2RybS9kcm1faXJxLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1faXJxLmgK PiBAQCAtMTIxLDYgKzEyMSwxOCBAQCBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjIHsKPiAgCSAqIGRy bV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoKS4KPiAgCSAqLwo+ICAJaW50IGxpbmVkdXJf bnM7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAaHdtb2RlOgo+ICsJICoKPiArCSAqIENhY2hlIG9mIHRo ZSBjdXJyZW50IGhhcmR3YXJlIGRpc3BsYXkgbW9kZS4gT25seSB2YWxpZGUgd2hlbiBAZW5hYmxl ZAo+ICsJICogaXMgc2V0LiBUaGlzIGlzIHVzZWQgYnkgaGVscGVycyBsaWtlCj4gKwkgKiBkcm1f Y2FsY192Ymx0aW1lc3RhbXBfZnJvbV9zY2Fub3V0cG9zKCkuIFdlIGNhbid0IGp1c3QgYWNjZXNz IHRoZQo+ICsJICogaGFyZHdhcmUgbW9kZSBieSBlLmcuIGxvb2tpbmcgYXQgJmRybV9jcnRjX3N0 YXRlLmFkanVzdGVkX21vZGUsCj4gKwkgKiBiZWNhdXNlIHRoYXQgb25lIGlzIHJlYWxseSBoYXJk IHRvIGdldCBhdCBmcm9tIGludGVycnVwdCBjb250ZXh0Lgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSBod21vZGU7Cj4gKwo+ICAJLyoqCj4gIAkgKiBAZW5hYmxlZDogVHJhY2tz IHRoZSBlbmFibGluZyBzdGF0ZSBvZiB0aGUgY29ycmVzcG9uZGluZyAmZHJtX2NydGMgdG8KPiAg CSAqIGF2b2lkIGRvdWJsZS1kaXNhYmxpbmcgYW5kIGhlbmNlIGNvcnJ1cHRpbmcgc2F2ZWQgc3Rh dGUuIE5lZWRlZCBieQo+IEBAIC0xNTYsOCArMTY4LDcgQEAgdTMyIGRybV9hY2N1cmF0ZV92Ymxh bmtfY291bnQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAgYm9vbCBkcm1fY2FsY192Ymx0aW1l c3RhbXBfZnJvbV9zY2Fub3V0cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkJICAg dW5zaWduZWQgaW50IHBpcGUsIGludCAqbWF4X2Vycm9yLAo+ICAJCQkJCSAgIHN0cnVjdCB0aW1l dmFsICp2YmxhbmtfdGltZSwKPiAtCQkJCQkgICBib29sIGluX3ZibGFua19pcnEsCj4gLQkJCQkJ ICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+ICsJCQkJCSAgIGJvb2wg aW5fdmJsYW5rX2lycSk7Cj4gIHZvaWQgZHJtX2NhbGNfdGltZXN0YW1waW5nX2NvbnN0YW50cyhz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlKTsKPiAgCj4gLS0gCj4gMi4xMS4wCj4gCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCklu dGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK