From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Hurley Subject: Re: [PATCH] drm/vblank: Fixup and document timestamp update/read barriers Date: Wed, 15 Apr 2015 09:00:04 -0400 Message-ID: <552E60D4.3070307@hurleysoftware.com> References: <1429082222-20820-1-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f169.google.com (mail-qk0-f169.google.com [209.85.220.169]) by gabe.freedesktop.org (Postfix) with ESMTP id 296FE6E848 for ; Wed, 15 Apr 2015 06:00:24 -0700 (PDT) Received: by qkx62 with SMTP id 62so80534830qkx.0 for ; Wed, 15 Apr 2015 06:00:23 -0700 (PDT) In-Reply-To: <1429082222-20820-1-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , =?UTF-8?B?TWljaGVsIETDpG56ZXI=?= , DRI Development List-Id: dri-devel@lists.freedesktop.org SGkgRGFuaWVsLAoKT24gMDQvMTUvMjAxNSAwMzoxNyBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiBUaGlzIHdhcyBhIGJpdCB0b28gbXVjaCBjYXJnby1jdWx0ZWQsIHNvIGxldHMgbWFrZSBpdCBz b2xpZDoKPiAtIHZibGFuay0+Y291bnQgZG9lc24ndCBuZWVkIHRvIGJlIGFuIGF0b21pYywgd3Jp dGVzIGFyZSBhbHdheXMgZG9uZQo+ICAgdW5kZXIgdGhlIHByb3RlY3Rpb24gb2YgZGV2LT52Ymxh bmtfdGltZV9sb2NrLiBTd2l0Y2ggdG8gYW4gdW5zaWduZWQKPiAgIGxvbmcgaW5zdGVhZCBhbmQg dXBkYXRlIGNvbW1lbnRzLiBOb3RlIHRoYXQgYXRvbWljX3JlYWQgaXMganVzdCBhCj4gICBub3Jt YWwgcmVhZCBvZiBhIHZvbGF0aWxlIHZhcmlhYmxlLCBzbyBubyBuZWVkIHRvIGF1ZGl0IGFsbCB0 aGUKPiAgIHJlYWQtc2lkZSBhY2Nlc3Mgc3BlY2lmaWNhbGx5Lgo+IAo+IC0gVGhlIGJhcnJpZXJz IGZvciB0aGUgdmJsYW5rIGNvdW50ZXIgc2VxbG9jayB3ZXJlbid0IGNvbXBsZXRlOiBUaGUKPiAg IHJlYWQtc2lkZSB3YXMgbWlzc2luZyB0aGUgZmlyc3QgYmFycmllciBiZXR3ZWVuIHRoZSBjb3Vu dGVyIHJlYWQgYW5kCj4gICB0aGUgdGltZXN0YW1wIHJlYWQsIGl0IG9ubHkgaGFkIGEgYmFycmll ciBiZXR3ZWVuIHRoZSB0cyBhbmQgdGhlCj4gICBjb3VudGVyIHJlYWQuIFdlIG5lZWQgYm90aC4K PiAKPiAtIEJhcnJpZXJzIHdlcmVuJ3QgcHJvcGVybHkgZG9jdW1lbnRlZC4gU2luY2UgYmFycmll cnMgb25seSB3b3JrIGlmCj4gICB5b3UgaGF2ZSB0aGVtIG9uIGJvdGhzIHNpZGVzIG9mIHRoZSB0 cmFuc2FjdGlvbiBpdCdzIHBydWRlbnQgdG8KPiAgIHJlZmVyZW5jZSB3aGVyZSB0aGUgb3RoZXIg c2lkZSBpcy4gVG8gYXZvaWQgZHVwbGljYXRpbmcgdGhlCj4gICB3cml0ZS1zaWRlIGNvbW1lbnQg MyB0aW1lcyBleHRyYWN0IGEgbGl0dGxlIHN0b3JlX3ZibGFuaygpIGhlbHBlci4KPiAgIEluIHRo YXQgaGVscGVyIGFsc28gYXNzZXJ0IHRoYXQgd2UgZG8gaW5kZWVkIGhvbGQKPiAgIGRldi0+dmJs YW5rX3RpbWVfbG9jaywgc2luY2UgaW4gc29tZSBjYXNlcyB0aGUgbG9jayBpcyBhY3F1aXJlZCBh Cj4gICBmZXcgZnVuY3Rpb25zIHVwIGluIHRoZSBjYWxsY2hhaW4uCj4gCj4gU3BvdHRlZCB3aGls ZSByZXZpZXdpbmcgYSBwYXRjaCBmcm9tIENocmlzIFdpbHNvbiB0byBhZGQgYSBmYXN0cGF0aCB0 bwo+IHRoZSB2Ymxhbmtfd2FpdCBpb2N0bC4KPiAKPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0Bj aHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IE1hcmlvIEtsZWluZXIgPG1hcmlvLmtsZWluZXIuZGVA Z21haWwuY29tPgo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+IENjOiBNaWNoZWwgRMOkbnplciA8bWljaGVsQGRhZW56ZXIubmV0Pgo+IFNpZ25l ZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICB8ICA4 ICsrKy0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNDYgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2lycS5jCj4gaW5kZXggYzhhMzQ0NzY1NzBhLi4yM2JmYmM2MWE0OTQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1faXJxLmMKPiBAQCAtNzQsNiArNzQsMzMgQEAgbW9kdWxlX3BhcmFtX25hbWVkKHZi bGFua29mZmRlbGF5LCBkcm1fdmJsYW5rX29mZmRlbGF5LCBpbnQsIDA2MDApOwo+ICBtb2R1bGVf cGFyYW1fbmFtZWQodGltZXN0YW1wX3ByZWNpc2lvbl91c2VjLCBkcm1fdGltZXN0YW1wX3ByZWNp c2lvbiwgaW50LCAwNjAwKTsKPiAgbW9kdWxlX3BhcmFtX25hbWVkKHRpbWVzdGFtcF9tb25vdG9u aWMsIGRybV90aW1lc3RhbXBfbW9ub3RvbmljLCBpbnQsIDA2MDApOwo+ICAKPiArc3RhdGljIHZv aWQgc3RvcmVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLAo+ICsJCQkg dW5zaWduZWQgdmJsYW5rX2NvdW50X2luYywKPiArCQkJIHN0cnVjdCB0aW1ldmFsICp0X3ZibGFu aykKPiArewo+ICsJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJsYW5r W2NydGNdOwo+ICsJdTMyIHRzbG90Owo+ICsKPiArCWFzc2VydF9zcGluX2xvY2tlZCgmZGV2LT52 YmxhbmtfdGltZV9sb2NrKTsKPiArCj4gKwlpZiAodF92YmxhbmspIHsKPiArCQl0c2xvdCA9IHZi bGFuay0+Y291bnQgKyB2YmxhbmtfY291bnRfaW5jOwo+ICsJCXZibGFua3RpbWVzdGFtcChkZXYs IGNydGMsIHRzbG90KSA9ICp0X3ZibGFuazsKPiArCX0KPiArCj4gKwkvKgo+ICsJICogdmJsYW5r IHRpbWVzdGFtcCB1cGRhdGVzIGFyZSBwcm90ZWN0ZWQgb24gdGhlIHdyaXRlIHNpZGUgd2l0aAo+ ICsJICogdmJsYW5rX3RpbWVfbG9jaywgYnV0IG9uIHRoZSByZWFkIHNpZGUgZG9uZSBsb2NrbGVz c2x5IHVzaW5nIGEKPiArCSAqIHNlcXVlbmNlLWxvY2sgb24gdGhlIHZibGFuayBjb3VudGVyLiBF bnN1cmUgY29ycmVjdCBvcmRlcmluZyB1c2luZwo+ICsJICogbWVtb3J5IGJhcnJyaWVycy4gV2Ug bmVlZCB0aGUgYmFycmllciBib3RoIGJlZm9yZSBhbmQgYWxzbyBhZnRlciB0aGUKPiArCSAqIGNv dW50ZXIgdXBkYXRlIHRvIHN5bmNocm9uaXplIHdpdGggdGhlIG5leHQgdGltZXN0YW1wIHdyaXRl Lgo+ICsJICogVGhlIHJlYWQtc2lkZSBiYXJyaWVycyBmb3IgdGhpcyBhcmUgaW4gZHJtX3ZibGFu a19jb3VudF9hbmRfdGltZS4KPiArCSAqLwo+ICsJc21wX3dtYigpOwo+ICsJdmJsYW5rLT5jb3Vu dCArPSB2YmxhbmtfY291bnRfaW5jOwo+ICsJc21wX3dtYigpOwoKVGhlIGNvbW1lbnQgYW5kIHRo ZSBjb2RlIGFyZSBlYWNoIHNlbGYtY29udHJhZGljdG9yeS4KCklmIHZibGFuay0+Y291bnQgd3Jp dGVzIGFyZSBhbHdheXMgcHJvdGVjdGVkIGJ5IHZibGFua190aW1lX2xvY2sgKHNvbWV0aGluZyBJ CmRpZCBub3QgdmVyaWZ5IGJ1dCB0aGF0IHRoZSBjb21tZW50IGFib3ZlIGFzc2VydHMpLCB0aGVu IHRoZSB0cmFpbGluZyB3cml0ZQpiYXJyaWVyIGlzIG5vdCByZXF1aXJlZCAoYW5kIHRoZSBhc3Nl cnRpb24gdGhhdCBpdCBpcyBpbiB0aGUgY29tbWVudCBpcyBpbmNvcnJlY3QpLgoKQSBzcGluIHVu bG9jayBvcGVyYXRpb24gaXMgYWx3YXlzIGEgd3JpdGUgYmFycmllci4KClJlZ2FyZHMsClBldGVy IEh1cmxleQoKPiArfQo+ICsKPiAgLyoqCj4gICAqIGRybV91cGRhdGVfdmJsYW5rX2NvdW50IC0g dXBkYXRlIHRoZSBtYXN0ZXIgdmJsYW5rIGNvdW50ZXIKPiAgICogQGRldjogRFJNIGRldmljZQo+ IEBAIC05Myw3ICsxMjAsNyBAQCBtb2R1bGVfcGFyYW1fbmFtZWQodGltZXN0YW1wX21vbm90b25p YywgZHJtX3RpbWVzdGFtcF9tb25vdG9uaWMsIGludCwgMDYwMCk7Cj4gIHN0YXRpYyB2b2lkIGRy bV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ ICB7Cj4gIAlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbY3J0 Y107Cj4gLQl1MzIgY3VyX3ZibGFuaywgZGlmZiwgdHNsb3Q7Cj4gKwl1MzIgY3VyX3ZibGFuaywg ZGlmZjsKPiAgCWJvb2wgcmM7Cj4gIAlzdHJ1Y3QgdGltZXZhbCB0X3ZibGFuazsKPiAgCj4gQEAg LTEyOSwxOCArMTU2LDEyIEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICAJaWYgKGRpZmYgPT0gMCkKPiAgCQly ZXR1cm47Cj4gIAo+IC0JLyogUmVpbml0aWFsaXplIGNvcnJlc3BvbmRpbmcgdmJsYW5rIHRpbWVz dGFtcCBpZiBoaWdoLXByZWNpc2lvbiBxdWVyeQo+IC0JICogYXZhaWxhYmxlLiBTa2lwIHRoaXMg c3RlcCBpZiBxdWVyeSB1bnN1cHBvcnRlZCBvciBmYWlsZWQuIFdpbGwKPiAtCSAqIHJlaW5pdGlh bGl6ZSBkZWxheWVkIGF0IG5leHQgdmJsYW5rIGludGVycnVwdCBpbiB0aGF0IGNhc2UuCj4gKwkv Kgo+ICsJICogT25seSByZWluaXRpYWxpemUgY29ycmVzcG9uZGluZyB2YmxhbmsgdGltZXN0YW1w IGlmIGhpZ2gtcHJlY2lzaW9uIHF1ZXJ5Cj4gKwkgKiBhdmFpbGFibGUgYW5kIGRpZG4ndCBmYWls LiBXaWxsIHJlaW5pdGlhbGl6ZSBkZWxheWVkIGF0IG5leHQgdmJsYW5rCj4gKwkgKiBpbnRlcnJ1 cHQgaW4gdGhhdCBjYXNlLgo+ICAJICovCj4gLQlpZiAocmMpIHsKPiAtCQl0c2xvdCA9IGF0b21p Y19yZWFkKCZ2YmxhbmstPmNvdW50KSArIGRpZmY7Cj4gLQkJdmJsYW5rdGltZXN0YW1wKGRldiwg Y3J0YywgdHNsb3QpID0gdF92Ymxhbms7Cj4gLQl9Cj4gLQo+IC0Jc21wX21iX19iZWZvcmVfYXRv bWljKCk7Cj4gLQlhdG9taWNfYWRkKGRpZmYsICZ2YmxhbmstPmNvdW50KTsKPiAtCXNtcF9tYl9f YWZ0ZXJfYXRvbWljKCk7Cj4gKwlzdG9yZV92YmxhbmsoZGV2LCBjcnRjLCBkaWZmLCByYyA/ICZ0 X3ZibGFuayA6IE5VTEwpOwo+ICB9Cj4gIAo+ICAvKgo+IEBAIC0yMTgsNyArMjM5LDcgQEAgc3Rh dGljIHZvaWQgdmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IGNydGMpCj4gIAkvKiBDb21wdXRlIHRpbWUgZGlmZmVyZW5jZSB0byBzdG9yZWQgdGltZXN0 YW1wIG9mIGxhc3QgdmJsYW5rCj4gIAkgKiBhcyB1cGRhdGVkIGJ5IGxhc3QgaW52b2NhdGlvbiBv ZiBkcm1faGFuZGxlX3ZibGFuaygpIGluIHZibGFuayBpcnEuCj4gIAkgKi8KPiAtCXZibGNvdW50 ID0gYXRvbWljX3JlYWQoJnZibGFuay0+Y291bnQpOwo+ICsJdmJsY291bnQgPSB2YmxhbmstPmNv dW50Owo+ICAJZGlmZl9ucyA9IHRpbWV2YWxfdG9fbnMoJnR2YmxhbmspIC0KPiAgCQkgIHRpbWV2 YWxfdG9fbnMoJnZibGFua3RpbWVzdGFtcChkZXYsIGNydGMsIHZibGNvdW50KSk7Cj4gIAo+IEBA IC0yMzQsMTcgKzI1NSw4IEBAIHN0YXRpYyB2b2lkIHZibGFua19kaXNhYmxlX2FuZF9zYXZlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICAJICogYXZhaWxhYmxlLiBJbiB0aGF0 IGNhc2Ugd2UgY2FuJ3QgYWNjb3VudCBmb3IgdGhpcyBhbmQganVzdAo+ICAJICogaG9wZSBmb3Ig dGhlIGJlc3QuCj4gIAkgKi8KPiAtCWlmICh2YmxyYyAmJiAoYWJzNjQoZGlmZl9ucykgPiAxMDAw MDAwKSkgewo+IC0JCS8qIFN0b3JlIG5ldyB0aW1lc3RhbXAgaW4gcmluZ2J1ZmZlci4gKi8KPiAt CQl2Ymxhbmt0aW1lc3RhbXAoZGV2LCBjcnRjLCB2Ymxjb3VudCArIDEpID0gdHZibGFuazsKPiAt Cj4gLQkJLyogSW5jcmVtZW50IGNvb2tlZCB2YmxhbmsgY291bnQuIFRoaXMgYWxzbyBhdG9taWNh bGx5IGNvbW1pdHMKPiAtCQkgKiB0aGUgdGltZXN0YW1wIGNvbXB1dGVkIGFib3ZlLgo+IC0JCSAq Lwo+IC0JCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOwo+IC0JCWF0b21pY19pbmMoJnZibGFuay0+ Y291bnQpOwo+IC0JCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7Cj4gLQl9Cj4gKwlpZiAodmJscmMg JiYgKGFiczY0KGRpZmZfbnMpID4gMTAwMDAwMCkpCj4gKwkJc3RvcmVfdmJsYW5rKGRldiwgY3J0 YywgMSwgJnR2YmxhbmspOwo+ICAKPiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+dmJs YW5rX3RpbWVfbG9jaywgaXJxZmxhZ3MpOwo+ICB9Cj4gQEAgLTg1Miw3ICs4NjQsNyBAQCB1MzIg ZHJtX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKPiAgCj4g IAlpZiAoV0FSTl9PTihjcnRjID49IGRldi0+bnVtX2NydGNzKSkKPiAgCQlyZXR1cm4gMDsKPiAt CXJldHVybiBhdG9taWNfcmVhZCgmdmJsYW5rLT5jb3VudCk7Cj4gKwlyZXR1cm4gdmJsYW5rLT5j b3VudDsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV92YmxhbmtfY291bnQpOwo+ICAKPiBAQCAt ODk3LDE2ICs5MDksMTcgQEAgdTMyIGRybV92YmxhbmtfY291bnRfYW5kX3RpbWUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IGNydGMsCj4gIAlpZiAoV0FSTl9PTihjcnRjID49IGRldi0+bnVt X2NydGNzKSkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gLQkvKiBSZWFkIHRpbWVzdGFtcCBmcm9tIHNs b3Qgb2YgX3ZibGFua190aW1lIHJpbmdidWZmZXIKPiAtCSAqIHRoYXQgY29ycmVzcG9uZHMgdG8g Y3VycmVudCB2YmxhbmsgY291bnQuIFJldHJ5IGlmCj4gLQkgKiBjb3VudCBoYXMgaW5jcmVtZW50 ZWQgZHVyaW5nIHJlYWRvdXQuIFRoaXMgd29ya3MgbGlrZQo+IC0JICogYSBzZXFsb2NrLgo+ICsJ LyoKPiArCSAqIFZibGFuayB0aW1lc3RhbXBzIGFyZSByZWFkIGxvY2tsZXNzLiBUbyBlbnN1cmUg Y29uc2lzdGVuY3kgdGhlIHZibGFuawo+ICsJICogY291bnRlciBpcyByZWNoZWNrZWQgYW5kIG9y ZGVyaW5nIGlzIGVuc3VyZWQgdXNpbmcgbWVtb3J5IGJhcnJpZXJzLgo+ICsJICogVGhpcyB3b3Jr cyBsaWtlIGEgc2VxbG9jay4gVGhlIHdyaXRlLXNpZGUgYmFycmllcnMgYXJlIGluIHN0b3JlX3Zi bGFuay4KPiAgCSAqLwo+ICAJZG8gewo+IC0JCWN1cl92YmxhbmsgPSBhdG9taWNfcmVhZCgmdmJs YW5rLT5jb3VudCk7Cj4gKwkJY3VyX3ZibGFuayA9IHZibGFuay0+Y291bnQ7Cj4gKwkJc21wX3Jt YigpOwo+ICAJCSp2Ymxhbmt0aW1lID0gdmJsYW5rdGltZXN0YW1wKGRldiwgY3J0YywgY3VyX3Zi bGFuayk7Cj4gIAkJc21wX3JtYigpOwo+IC0JfSB3aGlsZSAoY3VyX3ZibGFuayAhPSBhdG9taWNf cmVhZCgmdmJsYW5rLT5jb3VudCkpOwo+ICsJfSB3aGlsZSAoY3VyX3ZibGFuayAhPSB2Ymxhbmst PmNvdW50KTsKPiAgCj4gIAlyZXR1cm4gY3VyX3ZibGFuazsKPiAgfQo+IEBAIC0xNzE1LDcgKzE3 MjgsNyBAQCBib29sIGRybV9oYW5kbGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGlu dCBjcnRjKQo+ICAJICovCj4gIAo+ICAJLyogR2V0IGN1cnJlbnQgdGltZXN0YW1wIGFuZCBjb3Vu dC4gKi8KPiAtCXZibGNvdW50ID0gYXRvbWljX3JlYWQoJnZibGFuay0+Y291bnQpOwo+ICsJdmJs Y291bnQgPSB2YmxhbmstPmNvdW50Owo+ICAJZHJtX2dldF9sYXN0X3ZibHRpbWVzdGFtcChkZXYs IGNydGMsICZ0dmJsYW5rLCBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRKTsKPiAgCj4gIAkvKiBDb21w dXRlIHRpbWUgZGlmZmVyZW5jZSB0byB0aW1lc3RhbXAgb2YgbGFzdCB2YmxhbmsgKi8KPiBAQCAt MTczMSwyMCArMTc0NCwxMSBAQCBib29sIGRybV9oYW5kbGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBjcnRjKQo+ICAJICogZS5nLiwgZHVlIHRvIHNwdXJpb3VzIHZibGFuayBp bnRlcnJ1cHRzLiBXZSBuZWVkIHRvCj4gIAkgKiBpZ25vcmUgdGhvc2UgZm9yIGFjY291bnRpbmcu Cj4gIAkgKi8KPiAtCWlmIChhYnM2NChkaWZmX25zKSA+IERSTV9SRURVTkRBTlRfVkJMSVJRX1RI UkVTSF9OUykgewo+IC0JCS8qIFN0b3JlIG5ldyB0aW1lc3RhbXAgaW4gcmluZ2J1ZmZlci4gKi8K PiAtCQl2Ymxhbmt0aW1lc3RhbXAoZGV2LCBjcnRjLCB2Ymxjb3VudCArIDEpID0gdHZibGFuazsK PiAtCj4gLQkJLyogSW5jcmVtZW50IGNvb2tlZCB2YmxhbmsgY291bnQuIFRoaXMgYWxzbyBhdG9t aWNhbGx5IGNvbW1pdHMKPiAtCQkgKiB0aGUgdGltZXN0YW1wIGNvbXB1dGVkIGFib3ZlLgo+IC0J CSAqLwo+IC0JCXNtcF9tYl9fYmVmb3JlX2F0b21pYygpOwo+IC0JCWF0b21pY19pbmMoJnZibGFu ay0+Y291bnQpOwo+IC0JCXNtcF9tYl9fYWZ0ZXJfYXRvbWljKCk7Cj4gLQl9IGVsc2Ugewo+ICsJ aWYgKGFiczY0KGRpZmZfbnMpID4gRFJNX1JFRFVOREFOVF9WQkxJUlFfVEhSRVNIX05TKQo+ICsJ CXN0b3JlX3ZibGFuayhkZXYsIGNydGMsIDEsICZ0dmJsYW5rKTsKPiArCWVsc2UKPiAgCQlEUk1f REVCVUcoImNydGMgJWQ6IFJlZHVuZGFudCB2YmxpcnEgaWdub3JlZC4gZGlmZl9ucyA9ICVkXG4i LAo+ICAJCQkgIGNydGMsIChpbnQpIGRpZmZfbnMpOwo+IC0JfQo+ICAKPiAgCXNwaW5fdW5sb2Nr KCZkZXYtPnZibGFua190aW1lX2xvY2spOwo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCj4gaW5kZXggNjJjNDA3NzdjMDA5Li40YzMxYTJj YzVhMzMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtUC5oCj4gKysrIGIvaW5jbHVkZS9k cm0vZHJtUC5oCj4gQEAgLTY4Niw5ICs2ODYsMTMgQEAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFu a19ldmVudCB7Cj4gIHN0cnVjdCBkcm1fdmJsYW5rX2NydGMgewo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldjsJCS8qIHBvaW50ZXIgdG8gdGhlIGRybV9kZXZpY2UgKi8KPiAgCXdhaXRfcXVldWVf aGVhZF90IHF1ZXVlOwkvKio8IFZCTEFOSyB3YWl0IHF1ZXVlICovCj4gLQlzdHJ1Y3QgdGltZXZh bCB0aW1lW0RSTV9WQkxBTktUSU1FX1JCU0laRV07CS8qKjwgdGltZXN0YW1wIG9mIGN1cnJlbnQg Y291bnQgKi8KPiAgCXN0cnVjdCB0aW1lcl9saXN0IGRpc2FibGVfdGltZXI7CQkvKiBkZWxheWVk IGRpc2FibGUgdGltZXIgKi8KPiAtCWF0b21pY190IGNvdW50OwkJCS8qKjwgbnVtYmVyIG9mIFZC TEFOSyBpbnRlcnJ1cHRzICovCj4gKwo+ICsJLyogdmJsYW5rIGNvdW50ZXIsIHByb3RlY3RlZCBi eSBkZXYtPnZibGFua190aW1lX2xvY2sgZm9yIHdyaXRlcyAqLwo+ICsJdW5zaWduZWQgbG9uZyBj b3VudDsKPiArCS8qIHZibGFuayB0aW1lc3RhbXBzLCBwcm90ZWN0ZWQgYnkgZGV2LT52Ymxhbmtf dGltZV9sb2NrIGZvciB3cml0ZXMgKi8KPiArCXN0cnVjdCB0aW1ldmFsIHRpbWVbRFJNX1ZCTEFO S1RJTUVfUkJTSVpFXTsKPiArCj4gIAlhdG9taWNfdCByZWZjb3VudDsJCS8qIG51bWJlciBvZiB1 c2VycyBvZiB2YmxhbmsgaW50ZXJydXB0c3BlciBjcnRjICovCj4gIAl1MzIgbGFzdDsJCQkvKiBw cm90ZWN0ZWQgYnkgZGV2LT52YmxfbG9jaywgdXNlZCAqLwo+ICAJCQkJCS8qIGZvciB3cmFwYXJv dW5kIGhhbmRsaW5nICovCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=