From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm: use seqlocks for vblank time/count Date: Mon, 9 May 2016 20:11:49 +0200 Message-ID: <20160509181149.GC27098@phenom.ffwll.local> References: <1462810123-28493-1-git-send-email-matthew.auld@intel.com> <20160509171607.GP4329@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: <20160509171607.GP4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Matthew Auld , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMDksIDIwMTYgYXQgMDg6MTY6MDdQTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgTWF5IDA5LCAyMDE2IGF0IDA1OjA4OjQzUE0gKzAxMDAsIE1hdHRo ZXcgQXVsZCB3cm90ZToKPiA+IFRoaXMgcGF0Y2ggYWltcyB0byByZXBsYWNlIHRoZSByb2xsLXlv dXItb3duIHNlcWxvY2sgaW1wbGVtZW50YXRpb24gd2l0aAo+ID4gZnVsbC1ibG93biBzZXFsb2Nr Jy4gV2UgYWxzbyByZW1vdmUgdGhlIHRpbWVzdGFtcCByaW5nLWJ1ZmZlciBpbiBmYXZvdXIKPiA+ IG9mIHNpbmdsZSB0aW1lc3RhbXAvY291bnQgcGFpciBwcm90ZWN0ZWQgYnkgYSBzZXFsb2NrLiBJ biB0dXJuIHRoaXMKPiA+IG1lYW5zIHdlIGNhbiBub3cgaW5jcmVtZW50IHRoZSB2YmxhbmsgZnJl ZWx5IHdpdGhvdXQgdGhlIG5lZWQgZm9yCj4gPiBjbGFtcGluZy4KPiAKPiBUaGlzIHdpbGwgYWxz byBjaGFuZ2UgdGhlIGJlaGF2aW91ciB0byBibG9jayBuZXcgcmVhZGVycyB3aGlsZSB0aGUKPiB3 cml0ZXIgaGFzIHRoZSBsb2NrLCB3aGVyZWFzIHRoZSBvbGQgY29kZSB3b3VsZCBhbGxvdyByZWFk ZXJzIHRvCj4gcHJvY2VlZCBpbiBwYXJhbGxlbC4gV2UgZG8gdGhlIHdob2xlIGh3IGNvdW50ZXIg KyBzY2Fub3V0IHBvc2l0aW9uCj4gcXVlcnkgd2hpbGUgaG9sZGluZyB0aGUgbG9jayBzbyBpdCdz IG5vdCBleGFjdGx5IHplcm8gYW1vdW50IG9mIHdvcmssCj4gYnV0IEknbSBub3Qgc3VyZSB0aGF0 J3MgYSByZWFsIHByb2JsZW0uCj4gCj4gSSBndWVzcyB3ZSBjb3VsZCByZWR1Y2UgdGhlIHNjb3Bl IG9mIHRoZSBzZXFsb2NrLCBidXQgdGhlbiBtYXliZSB3ZSdkCj4gbmVlZCB0byBrZWVwIHRoZSB2 YmxhbmtfdGltZV9sb2NrIHNwaW5sb2NrIGFzIHdlbGwuIFRoZSBkZXRhaWxzIGVzY2FwZQo+IG1l IG5vdywgc28gSSdkIGhhdmUgcmUtcmVhZCB0aGUgY29kZSBhZ2Fpbi4KPiAKPiBDY2luZyBNYXJp byB0b28uCgpZZWFoLCBteSBpZGVhIHdhcyB0byBrZWVwIHRoZSBzcGlubG9jaywgYW5kIG9ubHkg cmVwbGFjZSB0aGUgc3R1ZmYgaW4Kc3RvcmVfdmJsYW5rIGFuZCB0aGUgZmV3IGRvIHt9IHdoaWxl IChjdXJfdmJsYW5rICE9IGdldF92YmxhbmtfY291bnRlcikKbG9vcHMuIEV4dGVuZGluZyB0aGUg c2VxbG9jayBzdHVmZiB0byBldmVyeXRoaW5nIHNlZW1zIGluZGVlZCBjb3VudGVyIHRvCk1hcmlv J3MgbG9ja2luZyBzY2hlbWUuCgpTbyBnb2FsIHdvdWxkIGJlIHRvIHJlYWxseSBqdXN0IHJlcGxh Y2UgdGhlIGhhbGYtYmFrZWQgc2VxbG9jayB0aGF0IHdlCmhhdmUgYWxyZWFkeSwgYW5kIGxlYXZl IGFsbCBvdGhlciBsb2NraW5nIHVuY2hhbmdlZC4KLURhbmllbAoKPiAKPiA+IAo+ID4gQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gPiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IE1h dHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9kcm1faXJxLmMgfCAxMTEgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+ID4gIGluY2x1ZGUvZHJtL2RybVAuaCAgICAgICAgfCAgMTQgKystLS0t Cj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25zKC0p Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9pcnEuYwo+ID4gaW5kZXggM2MxYTZmMS4uYmZjNmE4ZCAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1faXJxLmMKPiA+IEBAIC00MiwxMCArNDIsNiBAQAo+ID4gICNpbmNsdWRlIDxsaW51eC92 Z2FhcmIuaD4KPiA+ICAjaW5jbHVkZSA8bGludXgvZXhwb3J0Lmg+Cj4gPiAgCj4gPiAtLyogQWNj ZXNzIG1hY3JvIGZvciBzbG90cyBpbiB2YmxhbmsgdGltZXN0YW1wIHJpbmdidWZmZXIuICovCj4g PiAtI2RlZmluZSB2Ymxhbmt0aW1lc3RhbXAoZGV2LCBwaXBlLCBjb3VudCkgXAo+ID4gLQkoKGRl diktPnZibGFua1twaXBlXS50aW1lWyhjb3VudCkgJSBEUk1fVkJMQU5LVElNRV9SQlNJWkVdKQo+ ID4gLQo+ID4gIC8qIFJldHJ5IHRpbWVzdGFtcCBjYWxjdWxhdGlvbiB1cCB0byAzIHRpbWVzIHRv IHNhdGlzZnkKPiA+ICAgKiBkcm1fdGltZXN0YW1wX3ByZWNpc2lvbiBiZWZvcmUgZ2l2aW5nIHVw Lgo+ID4gICAqLwo+ID4gQEAgLTgyLDI5ICs3OCwxMyBAQCBzdGF0aWMgdm9pZCBzdG9yZV92Ymxh bmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4gPiAgCQkJIHN0 cnVjdCB0aW1ldmFsICp0X3ZibGFuaywgdTMyIGxhc3QpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJt X3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlwZV07Cj4gPiAtCXUzMiB0c2xv dDsKPiA+ICAKPiA+IC0JYXNzZXJ0X3NwaW5fbG9ja2VkKCZkZXYtPnZibGFua190aW1lX2xvY2sp Owo+ID4gKwlhc3NlcnRfc3Bpbl9sb2NrZWQoJmRldi0+dmJsYW5rX3NlcWxvY2subG9jayk7Cj4g PiAgCj4gPiAgCXZibGFuay0+bGFzdCA9IGxhc3Q7Cj4gPiAgCj4gPiAtCS8qIEFsbCB3cml0ZXJz IGhvbGQgdGhlIHNwaW5sb2NrLCBidXQgcmVhZGVycyBhcmUgc2VyaWFsaXplZCBieQo+ID4gLQkg KiB0aGUgbGF0Y2hpbmcgb2YgdmJsYW5rLT5jb3VudCBiZWxvdy4KPiA+IC0JICovCj4gPiAtCXRz bG90ID0gdmJsYW5rLT5jb3VudCArIHZibGFua19jb3VudF9pbmM7Cj4gPiAtCXZibGFua3RpbWVz dGFtcChkZXYsIHBpcGUsIHRzbG90KSA9ICp0X3ZibGFuazsKPiA+IC0KPiA+IC0JLyoKPiA+IC0J ICogdmJsYW5rIHRpbWVzdGFtcCB1cGRhdGVzIGFyZSBwcm90ZWN0ZWQgb24gdGhlIHdyaXRlIHNp ZGUgd2l0aAo+ID4gLQkgKiB2YmxhbmtfdGltZV9sb2NrLCBidXQgb24gdGhlIHJlYWQgc2lkZSBk b25lIGxvY2tsZXNzbHkgdXNpbmcgYQo+ID4gLQkgKiBzZXF1ZW5jZS1sb2NrIG9uIHRoZSB2Ymxh bmsgY291bnRlci4gRW5zdXJlIGNvcnJlY3Qgb3JkZXJpbmcgdXNpbmcKPiA+IC0JICogbWVtb3J5 IGJhcnJyaWVycy4gV2UgbmVlZCB0aGUgYmFycmllciBib3RoIGJlZm9yZSBhbmQgYWxzbyBhZnRl ciB0aGUKPiA+IC0JICogY291bnRlciB1cGRhdGUgdG8gc3luY2hyb25pemUgd2l0aCB0aGUgbmV4 dCB0aW1lc3RhbXAgd3JpdGUuCj4gPiAtCSAqIFRoZSByZWFkLXNpZGUgYmFycmllcnMgZm9yIHRo aXMgYXJlIGluIGRybV92YmxhbmtfY291bnRfYW5kX3RpbWUuCj4gPiAtCSAqLwo+ID4gLQlzbXBf d21iKCk7Cj4gPiArCXZibGFuay0+dGltZSA9ICp0X3ZibGFuazsKPiA+ICAJdmJsYW5rLT5jb3Vu dCArPSB2YmxhbmtfY291bnRfaW5jOwo+ID4gLQlzbXBfd21iKCk7Cj4gPiAgfQo+ID4gIAo+ID4g IC8qKgo+ID4gQEAgLTEyNyw3ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCBkcm1fcmVzZXRfdmJsYW5r X3RpbWVzdGFtcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZQo+ID4g IAlzdHJ1Y3QgdGltZXZhbCB0X3ZibGFuazsKPiA+ICAJaW50IGNvdW50ID0gRFJNX1RJTUVTVEFN UF9NQVhSRVRSSUVTOwo+ID4gIAo+ID4gLQlzcGluX2xvY2soJmRldi0+dmJsYW5rX3RpbWVfbG9j ayk7Cj4gPiArCXdyaXRlX3NlcWxvY2soJmRldi0+dmJsYW5rX3NlcWxvY2spOwo+ID4gIAo+ID4g IAkvKgo+ID4gIAkgKiBzYW1wbGUgdGhlIGN1cnJlbnQgY291bnRlciB0byBhdm9pZCByYW5kb20g anVtcHMKPiA+IEBAIC0xNTIsNyArMTMyLDcgQEAgc3RhdGljIHZvaWQgZHJtX3Jlc2V0X3ZibGFu a190aW1lc3RhbXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUKPiA+ ICAJICovCj4gPiAgCXN0b3JlX3ZibGFuayhkZXYsIHBpcGUsIDEsICZ0X3ZibGFuaywgY3VyX3Zi bGFuayk7Cj4gPiAgCj4gPiAtCXNwaW5fdW5sb2NrKCZkZXYtPnZibGFua190aW1lX2xvY2spOwo+ ID4gKwl3cml0ZV9zZXF1bmxvY2soJmRldi0+dmJsYW5rX3NlcWxvY2spOwo+ID4gIH0KPiA+ICAK PiA+ICAvKioKPiA+IEBAIC0yMDUsNyArMTg1LDcgQEAgc3RhdGljIHZvaWQgZHJtX3VwZGF0ZV92 YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUsCj4g PiAgCQljb25zdCBzdHJ1Y3QgdGltZXZhbCAqdF9vbGQ7Cj4gPiAgCQl1NjQgZGlmZl9uczsKPiA+ ICAKPiA+IC0JCXRfb2xkID0gJnZibGFua3RpbWVzdGFtcChkZXYsIHBpcGUsIHZibGFuay0+Y291 bnQpOwo+ID4gKwkJdF9vbGQgPSAmdmJsYW5rLT50aW1lOwo+ID4gIAkJZGlmZl9ucyA9IHRpbWV2 YWxfdG9fbnMoJnRfdmJsYW5rKSAtIHRpbWV2YWxfdG9fbnModF9vbGQpOwo+ID4gIAo+ID4gIAkJ LyoKPiA+IEBAIC0yMzksNDkgKzIxOSw2IEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5r X2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+ID4gIAkJ ZGlmZiA9IDE7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JLyoKPiA+IC0JICogRklNWEU6IE5lZWQgdG8g cmVwbGFjZSB0aGlzIGhhY2sgd2l0aCBwcm9wZXIgc2VxbG9ja3MuCj4gPiAtCSAqCj4gPiAtCSAq IFJlc3RyaWN0IHRoZSBidW1wIG9mIHRoZSBzb2Z0d2FyZSB2YmxhbmsgY291bnRlciB0byBhIHNh ZmUgbWF4aW11bQo+ID4gLQkgKiB2YWx1ZSBvZiArMSB3aGVuZXZlciB0aGVyZSBpcyB0aGUgcG9z c2liaWxpdHkgdGhhdCBjb25jdXJyZW50IHJlYWRlcnMKPiA+IC0JICogb2YgdmJsYW5rIHRpbWVz dGFtcHMgY291bGQgYmUgYWN0aXZlIGF0IHRoZSBtb21lbnQsIGFzIHRoZSBjdXJyZW50Cj4gPiAt CSAqIGltcGxlbWVudGF0aW9uIG9mIHRoZSB0aW1lc3RhbXAgY2FjaGluZyBhbmQgdXBkYXRpbmcg aXMgbm90IHNhZmUKPiA+IC0JICogYWdhaW5zdCBjb25jdXJyZW50IHJlYWRlcnMgZm9yIGNhbGxz IHRvIHN0b3JlX3ZibGFuaygpIHdpdGggYSBidW1wCj4gPiAtCSAqIG9mIGFueXRoaW5nIGJ1dCAr MS4gQSBidW1wICE9IDEgd291bGQgdmVyeSBsaWtlbHkgcmV0dXJuIGNvcnJ1cHRlZAo+ID4gLQkg KiB0aW1lc3RhbXBzIHRvIHVzZXJzcGFjZSwgYmVjYXVzZSB0aGUgc2FtZSBzbG90IGluIHRoZSBj YWNoZSBjb3VsZAo+ID4gLQkgKiBiZSBjb25jdXJyZW50bHkgd3JpdHRlbiBieSBzdG9yZV92Ymxh bmsoKSBhbmQgcmVhZCBieSBvbmUgb2YgdGhvc2UKPiA+IC0JICogcmVhZGVycyB3aXRob3V0IHRo ZSByZWFkLXJldHJ5IGxvZ2ljIGRldGVjdGluZyB0aGUgY29sbGlzaW9uLgo+ID4gLQkgKgo+ID4g LQkgKiBDb25jdXJyZW50IHJlYWRlcnMgY2FuIGV4aXN0IHdoZW4gd2UgYXJlIGNhbGxlZCBmcm9t IHRoZQo+ID4gLQkgKiBkcm1fdmJsYW5rX29mZigpIG9yIGRybV92Ymxhbmtfb24oKSBmdW5jdGlv bnMgYW5kIG90aGVyIG5vbi12YmxhbmstCj4gPiAtCSAqIGlycSBjYWxsZXJzLiBIb3dldmVyLCBh bGwgdGhvc2UgY2FsbHMgdG8gdXMgYXJlIGhhcHBlbmluZyB3aXRoIHRoZQo+ID4gLQkgKiB2Ymxf bG9jayBsb2NrZWQgdG8gcHJldmVudCBkcm1fdmJsYW5rX2dldCgpLCBzbyB0aGUgdmJsYW5rIHJl ZmNvdW50Cj4gPiAtCSAqIGNhbid0IGluY3JlYXNlIHdoaWxlIHdlIGFyZSBleGVjdXRpbmcuIFRo ZXJlZm9yZSBhIHplcm8gcmVmY291bnQgYXQKPiA+IC0JICogdGhpcyBwb2ludCBpcyBzYWZlIGZv ciBhcmJpdHJhcnkgY291bnRlciBidW1wcyBpZiB3ZSBhcmUgY2FsbGVkCj4gPiAtCSAqIG91dHNp ZGUgdmJsYW5rIGlycSwgYSBub24temVybyBjb3VudCBpcyBub3QgMTAwJSBzYWZlLiBVbmZvcnR1 bmF0ZWx5Cj4gPiAtCSAqIHdlIG11c3QgYWxzbyBhY2NlcHQgYSByZWZjb3VudCBvZiAxLCBhcyB3 aGVuZXZlciB3ZSBhcmUgY2FsbGVkIGZyb20KPiA+IC0JICogZHJtX3ZibGFua19nZXQoKSAtPiBk cm1fdmJsYW5rX2VuYWJsZSgpIHRoZSByZWZjb3VudCB3aWxsIGJlIDEgYW5kCj4gPiAtCSAqIHdl IG11c3QgbGV0IHRoYXQgb25lIHBhc3MgdGhyb3VnaCBpbiBvcmRlciB0byBub3QgbG9zZSB2Ymxh bmsgY291bnRzCj4gPiAtCSAqIGR1cmluZyB2YmxhbmsgaXJxIG9mZiAtIHdoaWNoIHdvdWxkIGNv bXBsZXRlbHkgZGVmZWF0IHRoZSB3aG9sZQo+ID4gLQkgKiBwb2ludCBvZiB0aGlzIHJvdXRpbmUu Cj4gPiAtCSAqCj4gPiAtCSAqIFdoZW5ldmVyIHdlIGFyZSBjYWxsZWQgZnJvbSB2YmxhbmsgaXJx LCB3ZSBoYXZlIHRvIGFzc3VtZSBjb25jdXJyZW50Cj4gPiAtCSAqIHJlYWRlcnMgZXhpc3Qgb3Ig Y2FuIHNob3cgdXAgYW55IHRpbWUgZHVyaW5nIG91ciBleGVjdXRpb24sIGV2ZW4gaWYKPiA+IC0J ICogdGhlIHJlZmNvdW50IGlzIGN1cnJlbnRseSB6ZXJvLCBhcyB2YmxhbmsgaXJxcyBhcmUgdXN1 YWxseSBvbmx5Cj4gPiAtCSAqIGVuYWJsZWQgZHVlIHRvIHRoZSBwcmVzZW5jZSBvZiByZWFkZXJz LCBhbmQgYmVjYXVzZSB3aGVuIHdlIGFyZSBjYWxsZWQKPiA+IC0JICogZnJvbSB2YmxhbmsgaXJx IHdlIGNhbid0IGhvbGQgdGhlIHZibF9sb2NrIHRvIHByb3RlY3QgdXMgZnJvbSBzdWRkZW4KPiA+ IC0JICogYnVtcHMgaW4gdmJsYW5rIHJlZmNvdW50LiBUaGVyZWZvcmUgYWxzbyByZXN0cmljdCBi dW1wcyB0byArMSB3aGVuCj4gPiAtCSAqIGNhbGxlZCBmcm9tIHZibGFuayBpcnEuCj4gPiAtCSAq Lwo+ID4gLQlpZiAoKGRpZmYgPiAxKSAmJiAoYXRvbWljX3JlYWQoJnZibGFuay0+cmVmY291bnQp ID4gMSB8fAo+ID4gLQkgICAgKGZsYWdzICYgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSkpKSB7Cj4g PiAtCQlEUk1fREVCVUdfVkJMKCJjbGFtcGluZyB2YmxhbmsgYnVtcCB0byAxIG9uIGNydGMgJXU6 IGRpZmZyPSV1ICIKPiA+IC0JCQkgICAgICAicmVmY291bnQgJXUsIHZibGlycSAldVxuIiwgcGlw ZSwgZGlmZiwKPiA+IC0JCQkgICAgICBhdG9taWNfcmVhZCgmdmJsYW5rLT5yZWZjb3VudCksCj4g PiAtCQkJICAgICAgKGZsYWdzICYgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSkgIT0gMCk7Cj4gPiAt CQlkaWZmID0gMTsKPiA+IC0JfQo+ID4gLQo+ID4gIAlEUk1fREVCVUdfVkJMKCJ1cGRhdGluZyB2 YmxhbmsgY291bnQgb24gY3J0YyAldToiCj4gPiAgCQkgICAgICAiIGN1cnJlbnQ9JXUsIGRpZmY9 JXUsIGh3PSV1IGh3X2xhc3Q9JXVcbiIsCj4gPiAgCQkgICAgICBwaXBlLCB2YmxhbmstPmNvdW50 LCBkaWZmLCBjdXJfdmJsYW5rLCB2YmxhbmstPmxhc3QpOwo+ID4gQEAgLTMxOCw3ICsyNTUsNyBA QCBzdGF0aWMgdm9pZCB2YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiA+ICAJICogc28gbm8gdXBkYXRlcyBvZiB0aW1lc3Rh bXBzIG9yIGNvdW50IGNhbiBoYXBwZW4gYWZ0ZXIgd2UndmUKPiA+ICAJICogZGlzYWJsZWQuIE5l ZWRlZCB0byBwcmV2ZW50IHJhY2VzIGluIGNhc2Ugb2YgZGVsYXllZCBpcnEncy4KPiA+ICAJICov Cj4gPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPnZibGFua190aW1lX2xvY2ssIGlycWZsYWdz KTsKPiA+ICsJd3JpdGVfc2VxbG9ja19pcnFzYXZlKCZkZXYtPnZibGFua19zZXFsb2NrLCBpcnFm bGFncyk7Cj4gPiAgCj4gPiAgCS8qCj4gPiAgCSAqIE9ubHkgZGlzYWJsZSB2YmxhbmsgaW50ZXJy dXB0cyBpZiB0aGV5J3JlIGVuYWJsZWQuIFRoaXMgYXZvaWRzCj4gPiBAQCAtMzM4LDcgKzI3NSw3 IEBAIHN0YXRpYyB2b2lkIHZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ID4gIAkgKi8KPiA+ICAJZHJtX3VwZGF0ZV92Ymxh bmtfY291bnQoZGV2LCBwaXBlLCAwKTsKPiA+ICAKPiA+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGV2LT52YmxhbmtfdGltZV9sb2NrLCBpcnFmbGFncyk7Cj4gPiArCXdyaXRlX3NlcXVubG9j a19pcnFyZXN0b3JlKCZkZXYtPnZibGFua19zZXFsb2NrLCBpcnFmbGFncyk7Cj4gPiAgfQo+ID4g IAo+ID4gIHN0YXRpYyB2b2lkIHZibGFua19kaXNhYmxlX2ZuKHVuc2lnbmVkIGxvbmcgYXJnKQo+ ID4gQEAgLTQwNCw3ICszNDEsNyBAQCBpbnQgZHJtX3ZibGFua19pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBudW1fY3J0Y3MpCj4gPiAgCXVuc2lnbmVkIGludCBpOwo+ ID4gIAo+ID4gIAlzcGluX2xvY2tfaW5pdCgmZGV2LT52YmxfbG9jayk7Cj4gPiAtCXNwaW5fbG9j a19pbml0KCZkZXYtPnZibGFua190aW1lX2xvY2spOwo+ID4gKwlzZXFsb2NrX2luaXQoJmRldi0+ dmJsYW5rX3NlcWxvY2spOwo+ID4gIAo+ID4gIAlkZXYtPm51bV9jcnRjcyA9IG51bV9jcnRjczsK PiA+ICAKPiA+IEBAIC05OTEsMjUgKzkyOCwxOSBAQCB1MzIgZHJtX3ZibGFua19jb3VudF9hbmRf dGltZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiA+ICAJCQkg ICAgICBzdHJ1Y3QgdGltZXZhbCAqdmJsYW5rdGltZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1f dmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXYtPnZibGFua1twaXBlXTsKPiA+IC0JaW50IGNvdW50 ID0gRFJNX1RJTUVTVEFNUF9NQVhSRVRSSUVTOwo+ID4gLQl1MzIgY3VyX3ZibGFuazsKPiA+ICsJ dTMyIHZibGFua19jb3VudDsKPiA+ICsJdW5zaWduZWQgaW50IHNlcTsKPiA+ICAKPiA+ICAJaWYg KFdBUk5fT04ocGlwZSA+PSBkZXYtPm51bV9jcnRjcykpCj4gPiAgCQlyZXR1cm4gMDsKPiA+ICAK PiA+IC0JLyoKPiA+IC0JICogVmJsYW5rIHRpbWVzdGFtcHMgYXJlIHJlYWQgbG9ja2xlc3MuIFRv IGVuc3VyZSBjb25zaXN0ZW5jeSB0aGUgdmJsYW5rCj4gPiAtCSAqIGNvdW50ZXIgaXMgcmVjaGVj a2VkIGFuZCBvcmRlcmluZyBpcyBlbnN1cmVkIHVzaW5nIG1lbW9yeSBiYXJyaWVycy4KPiA+IC0J ICogVGhpcyB3b3JrcyBsaWtlIGEgc2VxbG9jay4gVGhlIHdyaXRlLXNpZGUgYmFycmllcnMgYXJl IGluIHN0b3JlX3ZibGFuay4KPiA+IC0JICovCj4gPiAgCWRvIHsKPiA+IC0JCWN1cl92Ymxhbmsg PSB2YmxhbmstPmNvdW50Owo+ID4gLQkJc21wX3JtYigpOwo+ID4gLQkJKnZibGFua3RpbWUgPSB2 Ymxhbmt0aW1lc3RhbXAoZGV2LCBwaXBlLCBjdXJfdmJsYW5rKTsKPiA+IC0JCXNtcF9ybWIoKTsK PiA+IC0JfSB3aGlsZSAoY3VyX3ZibGFuayAhPSB2YmxhbmstPmNvdW50ICYmIC0tY291bnQgPiAw KTsKPiA+ICsJCXNlcSA9IHJlYWRfc2VxYmVnaW4oJmRldi0+dmJsYW5rX3NlcWxvY2spOwo+ID4g KwkJdmJsYW5rX2NvdW50ID0gdmJsYW5rLT5jb3VudDsKPiA+ICsJCSp2Ymxhbmt0aW1lID0gdmJs YW5rLT50aW1lOwo+ID4gKwl9IHdoaWxlIChyZWFkX3NlcXJldHJ5KCZkZXYtPnZibGFua19zZXFs b2NrLCBzZXEpKTsKPiA+ICAKPiA+IC0JcmV0dXJuIGN1cl92Ymxhbms7Cj4gPiArCXJldHVybiB2 YmxhbmtfY291bnQ7Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX3ZibGFua19jb3VudF9h bmRfdGltZSk7Cj4gPiAgCj4gPiBAQCAtMTE2MCwxMSArMTA5MSwxMSBAQCBzdGF0aWMgaW50IGRy bV92YmxhbmtfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBl KQo+ID4gIAo+ID4gIAlhc3NlcnRfc3Bpbl9sb2NrZWQoJmRldi0+dmJsX2xvY2spOwo+ID4gIAo+ ID4gLQlzcGluX2xvY2soJmRldi0+dmJsYW5rX3RpbWVfbG9jayk7Cj4gPiArCXdyaXRlX3NlcWxv Y2soJmRldi0+dmJsYW5rX3NlcWxvY2spOwo+ID4gIAo+ID4gIAlpZiAoIXZibGFuay0+ZW5hYmxl ZCkgewo+ID4gIAkJLyoKPiA+IC0JCSAqIEVuYWJsZSB2YmxhbmsgaXJxcyB1bmRlciB2Ymxhbmtf dGltZV9sb2NrIHByb3RlY3Rpb24uCj4gPiArCQkgKiBFbmFibGUgdmJsYW5rIGlycXMgdW5kZXIg dmJsYW5rX3NlcWxvY2sgcHJvdGVjdGlvbi4KPiA+ICAJCSAqIEFsbCB2YmxhbmsgY291bnQgJiB0 aW1lc3RhbXAgdXBkYXRlcyBhcmUgaGVsZCBvZmYKPiA+ICAJCSAqIHVudGlsIHdlIGFyZSBkb25l IHJlaW5pdGlhbGl6aW5nIG1hc3RlciBjb3VudGVyIGFuZAo+ID4gIAkJICogdGltZXN0YW1wcy4g RmlsdGVyY29kZSBpbiBkcm1faGFuZGxlX3ZibGFuaygpIHdpbGwKPiA+IEBAIC0xMTgwLDcgKzEx MTEsNyBAQCBzdGF0aWMgaW50IGRybV92YmxhbmtfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCj4gPiAtCXNwaW5f dW5sb2NrKCZkZXYtPnZibGFua190aW1lX2xvY2spOwo+ID4gKwl3cml0ZV9zZXF1bmxvY2soJmRl di0+dmJsYW5rX3NlcWxvY2spOwo+ID4gIAo+ID4gIAlyZXR1cm4gcmV0Owo+ID4gIH0KPiA+IEBA IC0xODgwLDE4ICsxODExLDE4IEBAIGJvb2wgZHJtX2hhbmRsZV92Ymxhbmsoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gPiAgCSAqIHZibGFuayBlbmFibGUvZGlz YWJsZSwgYXMgdGhpcyB3b3VsZCBjYXVzZSBpbmNvbnNpc3RlbnQKPiA+ICAJICogb3IgY29ycnVw dGVkIHRpbWVzdGFtcHMgYW5kIHZibGFuayBjb3VudHMuCj4gPiAgCSAqLwo+ID4gLQlzcGluX2xv Y2soJmRldi0+dmJsYW5rX3RpbWVfbG9jayk7Cj4gPiArCXdyaXRlX3NlcWxvY2soJmRldi0+dmJs YW5rX3NlcWxvY2spOwo+ID4gIAo+ID4gIAkvKiBWYmxhbmsgaXJxIGhhbmRsaW5nIGRpc2FibGVk LiBOb3RoaW5nIHRvIGRvLiAqLwo+ID4gIAlpZiAoIXZibGFuay0+ZW5hYmxlZCkgewo+ID4gLQkJ c3Bpbl91bmxvY2soJmRldi0+dmJsYW5rX3RpbWVfbG9jayk7Cj4gPiArCQl3cml0ZV9zZXF1bmxv Y2soJmRldi0+dmJsYW5rX3NlcWxvY2spOwo+ID4gIAkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZGV2LT5ldmVudF9sb2NrLCBpcnFmbGFncyk7Cj4gPiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCX0K PiA+ICAKPiA+ICAJZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoZGV2LCBwaXBlLCBEUk1fQ0FMTEVE X0ZST01fVkJMSVJRKTsKPiA+ICAKPiA+IC0Jc3Bpbl91bmxvY2soJmRldi0+dmJsYW5rX3RpbWVf bG9jayk7Cj4gPiArCXdyaXRlX3NlcXVubG9jaygmZGV2LT52Ymxhbmtfc2VxbG9jayk7Cj4gPiAg Cj4gPiAgCXdha2VfdXAoJnZibGFuay0+cXVldWUpOwo+ID4gIAlkcm1faGFuZGxlX3ZibGFua19l dmVudHMoZGV2LCBwaXBlKTsKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9p bmNsdWRlL2RybS9kcm1QLmgKPiA+IGluZGV4IDM2MGIyYTcuLjhiZWU0MjQgMTAwNjQ0Cj4gPiAt LS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybVAuaAo+ID4g QEAgLTUyLDYgKzUyLDcgQEAKPiA+ICAjaW5jbHVkZSA8bGludXgvcG9sbC5oPgo+ID4gICNpbmNs dWRlIDxsaW51eC9yYXRlbGltaXQuaD4KPiA+ICAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KPiA+ ICsjaW5jbHVkZSA8bGludXgvc2VxbG9jay5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+ Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L3ZtYWxs b2MuaD4KPiA+IEBAIC0zOTIsMTEgKzM5Myw2IEBAIHN0cnVjdCBkcm1fbWFzdGVyIHsKPiA+ICAJ dm9pZCAqZHJpdmVyX3ByaXY7Cj4gPiAgfTsKPiA+ICAKPiA+IC0vKiBTaXplIG9mIHJpbmdidWZm ZXIgZm9yIHZibGFuayB0aW1lc3RhbXBzLiBKdXN0IGRvdWJsZS1idWZmZXIKPiA+IC0gKiBpbiBp bml0aWFsIGltcGxlbWVudGF0aW9uLgo+ID4gLSAqLwo+ID4gLSNkZWZpbmUgRFJNX1ZCTEFOS1RJ TUVfUkJTSVpFIDIKPiA+IC0KPiA+ICAvKiBGbGFncyBhbmQgcmV0dXJuIGNvZGVzIGZvciBnZXRf dmJsYW5rX3RpbWVzdGFtcCgpIGRyaXZlciBmdW5jdGlvbi4gKi8KPiA+ICAjZGVmaW5lIERSTV9D QUxMRURfRlJPTV9WQkxJUlEgMQo+ID4gICNkZWZpbmUgRFJNX1ZCTEFOS1RJTUVfU0NBTk9VVFBP U19NRVRIT0QgKDEgPDwgMCkKPiA+IEBAIC03MjUsMTAgKzcyMSw4IEBAIHN0cnVjdCBkcm1fdmJs YW5rX2NydGMgewo+ID4gIAl3YWl0X3F1ZXVlX2hlYWRfdCBxdWV1ZTsJLyoqPCBWQkxBTksgd2Fp dCBxdWV1ZSAqLwo+ID4gIAlzdHJ1Y3QgdGltZXJfbGlzdCBkaXNhYmxlX3RpbWVyOwkJLyogZGVs YXllZCBkaXNhYmxlIHRpbWVyICovCj4gPiAgCj4gPiAtCS8qIHZibGFuayBjb3VudGVyLCBwcm90 ZWN0ZWQgYnkgZGV2LT52YmxhbmtfdGltZV9sb2NrIGZvciB3cml0ZXMgKi8KPiA+IC0JdTMyIGNv dW50Owo+ID4gLQkvKiB2YmxhbmsgdGltZXN0YW1wcywgcHJvdGVjdGVkIGJ5IGRldi0+dmJsYW5r X3RpbWVfbG9jayBmb3Igd3JpdGVzICovCj4gPiAtCXN0cnVjdCB0aW1ldmFsIHRpbWVbRFJNX1ZC TEFOS1RJTUVfUkJTSVpFXTsKPiA+ICsJdTMyIGNvdW50OwkJCS8qIHZibGFuayBjb3VudGVyLCBw cm90ZWN0ZWQgYnkgZGV2LT52Ymxhbmtfc2VxbG9jayAqLwo+ID4gKwlzdHJ1Y3QgdGltZXZhbCB0 aW1lOwkJLyogdmJsYW5rIHRpbWVzdGFtcCwgcHJvdGVjdGVkIGJ5IGRldi0+dmJsYW5rX3NlcWxv Y2sgKi8KPiA+ICAKPiA+ICAJYXRvbWljX3QgcmVmY291bnQ7CQkvKiBudW1iZXIgb2YgdXNlcnMg b2YgdmJsYW5rIGludGVycnVwdHNwZXIgY3J0YyAqLwo+ID4gIAl1MzIgbGFzdDsJCQkvKiBwcm90 ZWN0ZWQgYnkgZGV2LT52YmxfbG9jaywgdXNlZCAqLwo+ID4gQEAgLTgzNSw3ICs4MjksNyBAQCBz dHJ1Y3QgZHJtX2RldmljZSB7Cj4gPiAgCS8qIGFycmF5IG9mIHNpemUgbnVtX2NydGNzICovCj4g PiAgCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuazsKPiA+ICAKPiA+IC0Jc3BpbmxvY2tf dCB2YmxhbmtfdGltZV9sb2NrOyAgICAvKio8IFByb3RlY3RzIHZibGFuayBjb3VudCBhbmQgdGlt ZSB1cGRhdGVzIGR1cmluZyB2YmxhbmsgZW5hYmxlL2Rpc2FibGUgKi8KPiA+ICsJc2VxbG9ja190 IHZibGFua19zZXFsb2NrOwkvKio8IFByb3RlY3RzIHZibGFuayBjb3VudCBhbmQgdGltZSB1cGRh dGVzIGR1cmluZyB2YmxhbmsgZW5hYmxlL2Rpc2FibGUgKi8KPiA+ICAJc3BpbmxvY2tfdCB2Ymxf bG9jazsKPiA+ICAKPiA+ICAJdTMyIG1heF92YmxhbmtfY291bnQ7ICAgICAgICAgICAvKio8IHNp emUgb2YgdmJsYW5rIGNvdW50ZXIgcmVnaXN0ZXIgKi8KPiA+IC0tIAo+ID4gMi40LjExCj4gCj4g LS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwgT1RDCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==