From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm: use seqlock for vblank time/count Date: Tue, 24 May 2016 15:20:54 +0300 Message-ID: <20160524122054.GD4329@intel.com> References: <1462890088-18194-1-git-send-email-matthew.auld@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: <1462890088-18194-1-git-send-email-matthew.auld@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Matthew Auld Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMTAsIDIwMTYgYXQgMDM6MjE6MjhQTSArMDEwMCwgTWF0dGhldyBBdWxkIHdy b3RlOgo+IFRoaXMgcGF0Y2ggYWltcyB0byByZXBsYWNlIHRoZSByb2xsLXlvdXItb3duIHNlcWxv Y2sgaW1wbGVtZW50YXRpb24gd2l0aAo+IGZ1bGwtYmxvd24gc2VxbG9jaycuIFdlIGFsc28gcmVt b3ZlIHRoZSB0aW1lc3RhbXAgcmluZy1idWZmZXIgaW4gZmF2b3VyCj4gb2Ygc2luZ2xlIHRpbWVz dGFtcC9jb3VudCBwYWlyIHByb3RlY3RlZCBieSBhIHNlcWxvY2suIEluIHR1cm4gdGhpcwo+IG1l YW5zIHdlIGNhbiBub3cgaW5jcmVtZW50IHRoZSB2YmxhbmsgZnJlZWx5IHdpdGhvdXQgdGhlIG5l ZWQgZm9yCj4gY2xhbXBpbmcuCj4gCj4gdjI6Cj4gICAtIHJlZHVjZSB0aGUgc2NvcGUgb2YgdGhl IHNlcWxvY2ssIGtlZXBpbmcgdmJsYW5rX3RpbWVfbG9jawo+ICAgLSBtYWtlIHRoZSBzZXFsb2Nr IHBlciB2YmxhbmtfY3J0Yywgc28gbXVsdGlwbGUgcmVhZGVycyBhcmVuJ3QgYmxvY2tlZCBieQo+ ICAgICB0aGUgd3JpdGVyCj4gCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3 bGwuY2g+Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4gU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29t PgoKTEdUTQoKUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jIHwgOTAgKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgaW5jbHVkZS9k cm0vZHJtUC5oICAgICAgICB8IDE0ICsrKy0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTcgaW5z ZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gaW5kZXggM2MxYTZm MS4uMGU5NTEwMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+IEBAIC00MiwxMCArNDIsNiBAQAo+ICAjaW5j bHVkZSA8bGludXgvdmdhYXJiLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4KPiAgCj4g LS8qIEFjY2VzcyBtYWNybyBmb3Igc2xvdHMgaW4gdmJsYW5rIHRpbWVzdGFtcCByaW5nYnVmZmVy LiAqLwo+IC0jZGVmaW5lIHZibGFua3RpbWVzdGFtcChkZXYsIHBpcGUsIGNvdW50KSBcCj4gLQko KGRldiktPnZibGFua1twaXBlXS50aW1lWyhjb3VudCkgJSBEUk1fVkJMQU5LVElNRV9SQlNJWkVd KQo+IC0KPiAgLyogUmV0cnkgdGltZXN0YW1wIGNhbGN1bGF0aW9uIHVwIHRvIDMgdGltZXMgdG8g c2F0aXNmeQo+ICAgKiBkcm1fdGltZXN0YW1wX3ByZWNpc2lvbiBiZWZvcmUgZ2l2aW5nIHVwLgo+ ICAgKi8KPiBAQCAtODIsMjkgKzc4LDE1IEBAIHN0YXRpYyB2b2lkIHN0b3JlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCQkJIHN0cnVjdCB0aW1l dmFsICp0X3ZibGFuaywgdTMyIGxhc3QpCj4gIHsKPiAgCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMg KnZibGFuayA9ICZkZXYtPnZibGFua1twaXBlXTsKPiAtCXUzMiB0c2xvdDsKPiAgCj4gIAlhc3Nl cnRfc3Bpbl9sb2NrZWQoJmRldi0+dmJsYW5rX3RpbWVfbG9jayk7Cj4gIAo+ICAJdmJsYW5rLT5s YXN0ID0gbGFzdDsKPiAgCj4gLQkvKiBBbGwgd3JpdGVycyBob2xkIHRoZSBzcGlubG9jaywgYnV0 IHJlYWRlcnMgYXJlIHNlcmlhbGl6ZWQgYnkKPiAtCSAqIHRoZSBsYXRjaGluZyBvZiB2Ymxhbmst PmNvdW50IGJlbG93Lgo+IC0JICovCj4gLQl0c2xvdCA9IHZibGFuay0+Y291bnQgKyB2Ymxhbmtf Y291bnRfaW5jOwo+IC0JdmJsYW5rdGltZXN0YW1wKGRldiwgcGlwZSwgdHNsb3QpID0gKnRfdmJs YW5rOwo+IC0KPiAtCS8qCj4gLQkgKiB2YmxhbmsgdGltZXN0YW1wIHVwZGF0ZXMgYXJlIHByb3Rl Y3RlZCBvbiB0aGUgd3JpdGUgc2lkZSB3aXRoCj4gLQkgKiB2YmxhbmtfdGltZV9sb2NrLCBidXQg b24gdGhlIHJlYWQgc2lkZSBkb25lIGxvY2tsZXNzbHkgdXNpbmcgYQo+IC0JICogc2VxdWVuY2Ut bG9jayBvbiB0aGUgdmJsYW5rIGNvdW50ZXIuIEVuc3VyZSBjb3JyZWN0IG9yZGVyaW5nIHVzaW5n Cj4gLQkgKiBtZW1vcnkgYmFycnJpZXJzLiBXZSBuZWVkIHRoZSBiYXJyaWVyIGJvdGggYmVmb3Jl IGFuZCBhbHNvIGFmdGVyIHRoZQo+IC0JICogY291bnRlciB1cGRhdGUgdG8gc3luY2hyb25pemUg d2l0aCB0aGUgbmV4dCB0aW1lc3RhbXAgd3JpdGUuCj4gLQkgKiBUaGUgcmVhZC1zaWRlIGJhcnJp ZXJzIGZvciB0aGlzIGFyZSBpbiBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lLgo+IC0JICovCj4g LQlzbXBfd21iKCk7Cj4gKwl3cml0ZV9zZXFsb2NrKCZ2YmxhbmstPnNlcWxvY2spOwo+ICsJdmJs YW5rLT50aW1lID0gKnRfdmJsYW5rOwo+ICAJdmJsYW5rLT5jb3VudCArPSB2YmxhbmtfY291bnRf aW5jOwo+IC0Jc21wX3dtYigpOwo+ICsJd3JpdGVfc2VxdW5sb2NrKCZ2YmxhbmstPnNlcWxvY2sp Owo+ICB9Cj4gIAo+ICAvKioKPiBAQCAtMjA1LDcgKzE4Nyw3IEBAIHN0YXRpYyB2b2lkIGRybV91 cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBw aXBlLAo+ICAJCWNvbnN0IHN0cnVjdCB0aW1ldmFsICp0X29sZDsKPiAgCQl1NjQgZGlmZl9uczsK PiAgCj4gLQkJdF9vbGQgPSAmdmJsYW5rdGltZXN0YW1wKGRldiwgcGlwZSwgdmJsYW5rLT5jb3Vu dCk7Cj4gKwkJdF9vbGQgPSAmdmJsYW5rLT50aW1lOwo+ICAJCWRpZmZfbnMgPSB0aW1ldmFsX3Rv X25zKCZ0X3ZibGFuaykgLSB0aW1ldmFsX3RvX25zKHRfb2xkKTsKPiAgCj4gIAkJLyoKPiBAQCAt MjM5LDQ5ICsyMjEsNiBAQCBzdGF0aWMgdm9pZCBkcm1fdXBkYXRlX3ZibGFua19jb3VudChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCQlkaWZmID0gMTsKPiAg CX0KPiAgCj4gLQkvKgo+IC0JICogRklNWEU6IE5lZWQgdG8gcmVwbGFjZSB0aGlzIGhhY2sgd2l0 aCBwcm9wZXIgc2VxbG9ja3MuCj4gLQkgKgo+IC0JICogUmVzdHJpY3QgdGhlIGJ1bXAgb2YgdGhl IHNvZnR3YXJlIHZibGFuayBjb3VudGVyIHRvIGEgc2FmZSBtYXhpbXVtCj4gLQkgKiB2YWx1ZSBv ZiArMSB3aGVuZXZlciB0aGVyZSBpcyB0aGUgcG9zc2liaWxpdHkgdGhhdCBjb25jdXJyZW50IHJl YWRlcnMKPiAtCSAqIG9mIHZibGFuayB0aW1lc3RhbXBzIGNvdWxkIGJlIGFjdGl2ZSBhdCB0aGUg bW9tZW50LCBhcyB0aGUgY3VycmVudAo+IC0JICogaW1wbGVtZW50YXRpb24gb2YgdGhlIHRpbWVz dGFtcCBjYWNoaW5nIGFuZCB1cGRhdGluZyBpcyBub3Qgc2FmZQo+IC0JICogYWdhaW5zdCBjb25j dXJyZW50IHJlYWRlcnMgZm9yIGNhbGxzIHRvIHN0b3JlX3ZibGFuaygpIHdpdGggYSBidW1wCj4g LQkgKiBvZiBhbnl0aGluZyBidXQgKzEuIEEgYnVtcCAhPSAxIHdvdWxkIHZlcnkgbGlrZWx5IHJl dHVybiBjb3JydXB0ZWQKPiAtCSAqIHRpbWVzdGFtcHMgdG8gdXNlcnNwYWNlLCBiZWNhdXNlIHRo ZSBzYW1lIHNsb3QgaW4gdGhlIGNhY2hlIGNvdWxkCj4gLQkgKiBiZSBjb25jdXJyZW50bHkgd3Jp dHRlbiBieSBzdG9yZV92YmxhbmsoKSBhbmQgcmVhZCBieSBvbmUgb2YgdGhvc2UKPiAtCSAqIHJl YWRlcnMgd2l0aG91dCB0aGUgcmVhZC1yZXRyeSBsb2dpYyBkZXRlY3RpbmcgdGhlIGNvbGxpc2lv bi4KPiAtCSAqCj4gLQkgKiBDb25jdXJyZW50IHJlYWRlcnMgY2FuIGV4aXN0IHdoZW4gd2UgYXJl IGNhbGxlZCBmcm9tIHRoZQo+IC0JICogZHJtX3ZibGFua19vZmYoKSBvciBkcm1fdmJsYW5rX29u KCkgZnVuY3Rpb25zIGFuZCBvdGhlciBub24tdmJsYW5rLQo+IC0JICogaXJxIGNhbGxlcnMuIEhv d2V2ZXIsIGFsbCB0aG9zZSBjYWxscyB0byB1cyBhcmUgaGFwcGVuaW5nIHdpdGggdGhlCj4gLQkg KiB2YmxfbG9jayBsb2NrZWQgdG8gcHJldmVudCBkcm1fdmJsYW5rX2dldCgpLCBzbyB0aGUgdmJs YW5rIHJlZmNvdW50Cj4gLQkgKiBjYW4ndCBpbmNyZWFzZSB3aGlsZSB3ZSBhcmUgZXhlY3V0aW5n LiBUaGVyZWZvcmUgYSB6ZXJvIHJlZmNvdW50IGF0Cj4gLQkgKiB0aGlzIHBvaW50IGlzIHNhZmUg Zm9yIGFyYml0cmFyeSBjb3VudGVyIGJ1bXBzIGlmIHdlIGFyZSBjYWxsZWQKPiAtCSAqIG91dHNp ZGUgdmJsYW5rIGlycSwgYSBub24temVybyBjb3VudCBpcyBub3QgMTAwJSBzYWZlLiBVbmZvcnR1 bmF0ZWx5Cj4gLQkgKiB3ZSBtdXN0IGFsc28gYWNjZXB0IGEgcmVmY291bnQgb2YgMSwgYXMgd2hl bmV2ZXIgd2UgYXJlIGNhbGxlZCBmcm9tCj4gLQkgKiBkcm1fdmJsYW5rX2dldCgpIC0+IGRybV92 YmxhbmtfZW5hYmxlKCkgdGhlIHJlZmNvdW50IHdpbGwgYmUgMSBhbmQKPiAtCSAqIHdlIG11c3Qg bGV0IHRoYXQgb25lIHBhc3MgdGhyb3VnaCBpbiBvcmRlciB0byBub3QgbG9zZSB2YmxhbmsgY291 bnRzCj4gLQkgKiBkdXJpbmcgdmJsYW5rIGlycSBvZmYgLSB3aGljaCB3b3VsZCBjb21wbGV0ZWx5 IGRlZmVhdCB0aGUgd2hvbGUKPiAtCSAqIHBvaW50IG9mIHRoaXMgcm91dGluZS4KPiAtCSAqCj4g LQkgKiBXaGVuZXZlciB3ZSBhcmUgY2FsbGVkIGZyb20gdmJsYW5rIGlycSwgd2UgaGF2ZSB0byBh c3N1bWUgY29uY3VycmVudAo+IC0JICogcmVhZGVycyBleGlzdCBvciBjYW4gc2hvdyB1cCBhbnkg dGltZSBkdXJpbmcgb3VyIGV4ZWN1dGlvbiwgZXZlbiBpZgo+IC0JICogdGhlIHJlZmNvdW50IGlz IGN1cnJlbnRseSB6ZXJvLCBhcyB2YmxhbmsgaXJxcyBhcmUgdXN1YWxseSBvbmx5Cj4gLQkgKiBl bmFibGVkIGR1ZSB0byB0aGUgcHJlc2VuY2Ugb2YgcmVhZGVycywgYW5kIGJlY2F1c2Ugd2hlbiB3 ZSBhcmUgY2FsbGVkCj4gLQkgKiBmcm9tIHZibGFuayBpcnEgd2UgY2FuJ3QgaG9sZCB0aGUgdmJs X2xvY2sgdG8gcHJvdGVjdCB1cyBmcm9tIHN1ZGRlbgo+IC0JICogYnVtcHMgaW4gdmJsYW5rIHJl ZmNvdW50LiBUaGVyZWZvcmUgYWxzbyByZXN0cmljdCBidW1wcyB0byArMSB3aGVuCj4gLQkgKiBj YWxsZWQgZnJvbSB2YmxhbmsgaXJxLgo+IC0JICovCj4gLQlpZiAoKGRpZmYgPiAxKSAmJiAoYXRv bWljX3JlYWQoJnZibGFuay0+cmVmY291bnQpID4gMSB8fAo+IC0JICAgIChmbGFncyAmIERSTV9D QUxMRURfRlJPTV9WQkxJUlEpKSkgewo+IC0JCURSTV9ERUJVR19WQkwoImNsYW1waW5nIHZibGFu ayBidW1wIHRvIDEgb24gY3J0YyAldTogZGlmZnI9JXUgIgo+IC0JCQkgICAgICAicmVmY291bnQg JXUsIHZibGlycSAldVxuIiwgcGlwZSwgZGlmZiwKPiAtCQkJICAgICAgYXRvbWljX3JlYWQoJnZi bGFuay0+cmVmY291bnQpLAo+IC0JCQkgICAgICAoZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJM SVJRKSAhPSAwKTsKPiAtCQlkaWZmID0gMTsKPiAtCX0KPiAtCj4gIAlEUk1fREVCVUdfVkJMKCJ1 cGRhdGluZyB2YmxhbmsgY291bnQgb24gY3J0YyAldToiCj4gIAkJICAgICAgIiBjdXJyZW50PSV1 LCBkaWZmPSV1LCBodz0ldSBod19sYXN0PSV1XG4iLAo+ICAJCSAgICAgIHBpcGUsIHZibGFuay0+ Y291bnQsIGRpZmYsIGN1cl92YmxhbmssIHZibGFuay0+bGFzdCk7Cj4gQEAgLTQyMCw2ICszNTks NyBAQCBpbnQgZHJtX3ZibGFua19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBudW1fY3J0Y3MpCj4gIAkJaW5pdF93YWl0cXVldWVfaGVhZCgmdmJsYW5rLT5xdWV1ZSk7 Cj4gIAkJc2V0dXBfdGltZXIoJnZibGFuay0+ZGlzYWJsZV90aW1lciwgdmJsYW5rX2Rpc2FibGVf Zm4sCj4gIAkJCSAgICAodW5zaWduZWQgbG9uZyl2YmxhbmspOwo+ICsJCXNlcWxvY2tfaW5pdCgm dmJsYW5rLT5zZXFsb2NrKTsKPiAgCX0KPiAgCj4gIAlEUk1fSU5GTygiU3VwcG9ydHMgdmJsYW5r IHRpbWVzdGFtcCBjYWNoaW5nIFJldiAyICgyMS4xMC4yMDEzKS5cbiIpOwo+IEBAIC05OTEsMjUg KzkzMSwxOSBAQCB1MzIgZHJtX3ZibGFua19jb3VudF9hbmRfdGltZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSwKPiAgCQkJICAgICAgc3RydWN0IHRpbWV2YWwgKnZi bGFua3RpbWUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXYt PnZibGFua1twaXBlXTsKPiAtCWludCBjb3VudCA9IERSTV9USU1FU1RBTVBfTUFYUkVUUklFUzsK PiAtCXUzMiBjdXJfdmJsYW5rOwo+ICsJdTMyIHZibGFua19jb3VudDsKPiArCXVuc2lnbmVkIGlu dCBzZXE7Cj4gIAo+ICAJaWYgKFdBUk5fT04ocGlwZSA+PSBkZXYtPm51bV9jcnRjcykpCj4gIAkJ cmV0dXJuIDA7Cj4gIAo+IC0JLyoKPiAtCSAqIFZibGFuayB0aW1lc3RhbXBzIGFyZSByZWFkIGxv Y2tsZXNzLiBUbyBlbnN1cmUgY29uc2lzdGVuY3kgdGhlIHZibGFuawo+IC0JICogY291bnRlciBp cyByZWNoZWNrZWQgYW5kIG9yZGVyaW5nIGlzIGVuc3VyZWQgdXNpbmcgbWVtb3J5IGJhcnJpZXJz Lgo+IC0JICogVGhpcyB3b3JrcyBsaWtlIGEgc2VxbG9jay4gVGhlIHdyaXRlLXNpZGUgYmFycmll cnMgYXJlIGluIHN0b3JlX3ZibGFuay4KPiAtCSAqLwo+ICAJZG8gewo+IC0JCWN1cl92Ymxhbmsg PSB2YmxhbmstPmNvdW50Owo+IC0JCXNtcF9ybWIoKTsKPiAtCQkqdmJsYW5rdGltZSA9IHZibGFu a3RpbWVzdGFtcChkZXYsIHBpcGUsIGN1cl92YmxhbmspOwo+IC0JCXNtcF9ybWIoKTsKPiAtCX0g d2hpbGUgKGN1cl92YmxhbmsgIT0gdmJsYW5rLT5jb3VudCAmJiAtLWNvdW50ID4gMCk7Cj4gKwkJ c2VxID0gcmVhZF9zZXFiZWdpbigmdmJsYW5rLT5zZXFsb2NrKTsKPiArCQl2YmxhbmtfY291bnQg PSB2YmxhbmstPmNvdW50Owo+ICsJCSp2Ymxhbmt0aW1lID0gdmJsYW5rLT50aW1lOwo+ICsJfSB3 aGlsZSAocmVhZF9zZXFyZXRyeSgmdmJsYW5rLT5zZXFsb2NrLCBzZXEpKTsKPiAgCj4gLQlyZXR1 cm4gY3VyX3ZibGFuazsKPiArCXJldHVybiB2YmxhbmtfY291bnQ7Cj4gIH0KPiAgRVhQT1JUX1NZ TUJPTChkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybVAuaCBiL2luY2x1ZGUvZHJtL2RybVAuaAo+IGluZGV4IDM2MGIyYTcuLjlmMzMw OTAgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCj4gKysrIGIvaW5jbHVkZS9kcm0v ZHJtUC5oCj4gQEAgLTUyLDYgKzUyLDcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4KPiAg I2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPgo+ICAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4K PiArI2luY2x1ZGUgPGxpbnV4L3NlcWxvY2suaD4KPiAgI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4K PiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+ Cj4gQEAgLTM5MiwxMSArMzkzLDYgQEAgc3RydWN0IGRybV9tYXN0ZXIgewo+ICAJdm9pZCAqZHJp dmVyX3ByaXY7Cj4gIH07Cj4gIAo+IC0vKiBTaXplIG9mIHJpbmdidWZmZXIgZm9yIHZibGFuayB0 aW1lc3RhbXBzLiBKdXN0IGRvdWJsZS1idWZmZXIKPiAtICogaW4gaW5pdGlhbCBpbXBsZW1lbnRh dGlvbi4KPiAtICovCj4gLSNkZWZpbmUgRFJNX1ZCTEFOS1RJTUVfUkJTSVpFIDIKPiAtCj4gIC8q IEZsYWdzIGFuZCByZXR1cm4gY29kZXMgZm9yIGdldF92YmxhbmtfdGltZXN0YW1wKCkgZHJpdmVy IGZ1bmN0aW9uLiAqLwo+ICAjZGVmaW5lIERSTV9DQUxMRURfRlJPTV9WQkxJUlEgMQo+ICAjZGVm aW5lIERSTV9WQkxBTktUSU1FX1NDQU5PVVRQT1NfTUVUSE9EICgxIDw8IDApCj4gQEAgLTcyNSwx MCArNzIxLDEwIEBAIHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgewo+ICAJd2FpdF9xdWV1ZV9oZWFk X3QgcXVldWU7CS8qKjwgVkJMQU5LIHdhaXQgcXVldWUgKi8KPiAgCXN0cnVjdCB0aW1lcl9saXN0 IGRpc2FibGVfdGltZXI7CQkvKiBkZWxheWVkIGRpc2FibGUgdGltZXIgKi8KPiAgCj4gLQkvKiB2 YmxhbmsgY291bnRlciwgcHJvdGVjdGVkIGJ5IGRldi0+dmJsYW5rX3RpbWVfbG9jayBmb3Igd3Jp dGVzICovCj4gLQl1MzIgY291bnQ7Cj4gLQkvKiB2YmxhbmsgdGltZXN0YW1wcywgcHJvdGVjdGVk IGJ5IGRldi0+dmJsYW5rX3RpbWVfbG9jayBmb3Igd3JpdGVzICovCj4gLQlzdHJ1Y3QgdGltZXZh bCB0aW1lW0RSTV9WQkxBTktUSU1FX1JCU0laRV07Cj4gKwlzZXFsb2NrX3Qgc2VxbG9jazsJCS8q IHByb3RlY3RzIHZibGFuayBjb3VudCBhbmQgdGltZSAqLwo+ICsKPiArCXUzMiBjb3VudDsJCQkv KiB2YmxhbmsgY291bnRlciAqLwo+ICsJc3RydWN0IHRpbWV2YWwgdGltZTsJCS8qIHZibGFuayB0 aW1lc3RhbXAgKi8KPiAgCj4gIAlhdG9taWNfdCByZWZjb3VudDsJCS8qIG51bWJlciBvZiB1c2Vy cyBvZiB2YmxhbmsgaW50ZXJydXB0c3BlciBjcnRjICovCj4gIAl1MzIgbGFzdDsJCQkvKiBwcm90 ZWN0ZWQgYnkgZGV2LT52YmxfbG9jaywgdXNlZCAqLwo+IC0tIAo+IDIuNC4xMQoKLS0gClZpbGxl IFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==