From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mario Kleiner Subject: Re: Funky new vblank counter regressions in Linux 4.4-rc1 Date: Wed, 25 Nov 2015 18:24:13 +0100 Message-ID: <5655EEBD.5040403@gmail.com> References: <564E0AF4.3050406@gmail.com> <20151119182051.GU4437@intel.com> <564E1F18.5070508@gmail.com> <20151119194557.GB4437@intel.com> <564F3B42.5050803@gmail.com> <20151120153435.GR4437@intel.com> <56532F69.9080001@gmail.com> <20151123155109.GB4437@intel.com> <565353CA.5010909@gmail.com> <20151123202426.GC4437@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 76D856E671 for ; Mon, 30 Nov 2015 12:13:55 -0800 (PST) Resent-Message-ID: <20151130201333.GJ4437@intel.com> Resent-To: dri-devel@lists.freedesktop.org In-Reply-To: <20151123202426.GC4437@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: =?UTF-8?Q?Michel_D=c3=a4nzer?= List-Id: dri-devel@lists.freedesktop.org T24gMTEvMjMvMjAxNSAwOToyNCBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIE1vbiwg Tm92IDIzLCAyMDE1IGF0IDA2OjU4OjM0UE0gKzAxMDAsIE1hcmlvIEtsZWluZXIgd3JvdGU6Cj4+ Cj4+Cj4+IE9uIDExLzIzLzIwMTUgMDQ6NTEgUE0sIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPj4+ IE9uIE1vbiwgTm92IDIzLCAyMDE1IGF0IDA0OjIzOjIxUE0gKzAxMDAsIE1hcmlvIEtsZWluZXIg d3JvdGU6Cj4+Pj4gT24gMTEvMjAvMjAxNSAwNDozNCBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3Rl Ogo+Pj4+PiBPbiBGcmksIE5vdiAyMCwgMjAxNSBhdCAwNDoyNDo1MFBNICswMTAwLCBNYXJpbyBL bGVpbmVyIHdyb3RlOgo+Pj4+Cj4+Pj4gLi4uCj4+Pj4gT2ssIGJ1dCB3aHkgd291bGQgdGhhdCBi ZSBhIGJhZCB0aGluZz8gSSB0aGluayB3ZSB3YW50IGl0IHRvIHRoaW5rIGl0IGlzCj4+Pj4gaW4g dGhlIHByZXZpb3VzIGZyYW1lIGlmIGl0IGlzIGNhbGxlZCBvdXRzaWRlIHRoZSB2YmxhbmsgaXJx IGNvbnRleHQuCj4+Pj4gVGhlIG9ubHkgcmVhc29uIHdlIGZ1ZGdlIGl0IHRvIHRoZSBuZXh0IGZy YW1lcyB2YmxhbmsgaWYgaSB2YmxhbmsgaXJxIGlzCj4+Pj4gYmVjYXVzZSB3ZSBrbm93IHRoZSB2 YmxhbmsgaXJxIGhhbmRsZXIgd2UgYXJlIGV4ZWN1dGluZyBhdG0uIHdhcyBtZWFudAo+Pj4+IHRv IGV4ZWN1dGUgd2l0aGluIHRoZSB1cGNvbWluZyB2YmxhbmsgZm9yIHRoZSBuZXh0IGZyYW1lLCBz byB3ZSBmdWRnZQo+Pj4+IHRoZSBzY2Fub3V0IHBvc2l0aW9ucyBhbmQgdGhlcmVieSB0aW1lc3Rh bXAgdG8gY29ycmVzcG9uZCB0byB0aGF0IG5ldwo+Pj4+IGZyYW1lLiBCdXQgaWYgc29tZXRoaW5n IGNhbGxlZCBvdXRzaWRlIGlycSBjb250ZXh0IGl0IHNob3VsZCBnZXQgYQo+Pj4+IHNjYW5vdXQg cG9zaXRpb24vdGltZXN0YW1wIHRoYXQgY29ycmVzcG9uZHMgdG8gInJlYWxpdHkiLgo+Pj4KPj4+ IEl0IHdvdWxkIGJlIGEgYmFkIHRoaW5nIHNpbmNlIGl0IHdvdWxkIGNhdXNlIHRoZSB0aW1lc3Rh bXAgdG8ganVtcAo+Pj4gYmFja3dhcmRzLCBhbmQgdGhhdCB3b3VsZCBhbHNvIGNhdXNlIHRoZSBm cmFtZSBjb3VudCBndWVzc3RpbWF0ZSB0byBnbwo+Pj4gYmFja3dhcmRzLgo+Pj4KPj4KPj4gQnV0 IG9ubHkgaWYgd2UgZG9uJ3QgdXNlIHRoZSBkZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVy KCkgbWV0aG9kLAo+PiB3aGljaCB3ZSB0cnkgdG8gdXNlIG9uIEFNRC4KPgo+IFdlbGwsIGlmIHlv dSBkbyBpdCB0aGF0IHdheSB0aGVuIHlvdSBoYXZlIHRoZSBwcm9ibGVtIG9mIHRoZSBodyBjb3Vu dGVyCj4gc2VlbWluZyB0byBqdW1wIGZvcndhcmQgYnkgb25lIGFmdGVyIGNyb3NzaW5nIHRoZSBz dGFydCBvZiB2YmxhbmsgKHdoZW4KPiBjb21wYXJlZCB0byB0aGUgdmFsdWUgeW91IHNhbXBsZWQg d2hlbiB5b3UgcHJvY2Vzc2VkIHRoZSBlYXJseSB2YmxhbmsKPiBpbnRlcnJ1cHQpLgo+CgpPaywg ZmluYWxseSBpIHNlZSB0aGUgYmFkIHNjZW5hcmlvIHRoYXQgd291bGRuJ3QgZ2V0IHByZXZlbnRl ZCBieSBvdXIgCmN1cnJlbnQgbG9ja2luZyB3aXRoIHRoZSBuZXcgdmJsYW5rIGNvdW50aW5nIGlu IHRoZSBjb3JlLiBUaGUgdmJsYW5rIAplbmFibGUgcGF0aCBpcyBzYWZlIGR1ZSB0byBsb2NraW5n IGFuZCBkaXNjb3VudGluZyBvZiByZWR1bmRhbnQgCnRpbWVzdGFtcHMgZXRjLiBCdXQgdGhlIGRp c2FibGUgcGF0aCBjb3VsZCBnbyB3cm9uZzoKCjEuIFZibGFuayBpcnEgZmlyZXMsIGRybV9oYW5k bGVfdmJsYW5rKCkgLT4gZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoKSwKdXBkYXRlcyB0aW1lc3Rh bXBzIGFuZCBjb3VudHMgImFzIGlmIiBpbiB2YmxhbmsgLT4gaW5jcmVtZW50ZWQgdmJsYW5rIApj b3VudCBhbmQgdGltZXN0YW1wIG5vdyBzZXQgaW4gdGhlIGZ1dHVyZS4KCjIuIEFmdGVyIHZibGFu ayBpcnEgZmluaXNoZXMsIGJ1dCBqdXN0IGJlZm9yZSBsZWFkaW5nIGVkZ2Ugb2YgdmJsYW5rLCAK dmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoKSBleGVjdXRlcywgZG9lc24ndCBnZXQgYnVtcGVkIHRp bWVzdGFtcCBvciAKY291bnQgYmVjYXVzZSBiZWZvcmUgdmJsYW5rIGFuZCBub3QgaW4gdmJsYW5r IGlycS4gTm93IApkcm1fdXBkYXRlX3ZibGFua19jb3VudCgpIHdvdWxkIHByb2Nlc3MgYQoibmV3 IiB0aW1lc3RhbXAgYW5kIGNvdW50IGZyb20gdGhlIHBhc3QgYW5kIHdlJ2QgaGF2ZSB0aW1lIGFu ZCBjb3VudHMgCmdvaW5nIGJhY2t3YXJkcywgYW5kIGJhZCB0aGluZ3Mgd291bGQgaGFwcGVuLgoK SSBoYXZlbid0IG9ic2VydmVkIHN1Y2ggYSB0aGluZyBoYXBwZW5pbmcgZHVyaW5nIHRlc3Rpbmcg c28gZmFyLCAKcHJvYmFibHkgYmVjYXVzZSB0aGUgdGltZSB3aW5kb3cgaW4gd2hpY2ggaXQgY291 bGQgaGFwcGVuIGlzIHRpbnksIGJ1dCAKZ2l2ZW4gaG93IGF3ZnVsbHkgYmFkIGl0IHdvdWxkIGJl LCBpdCBuZWVkcyB0byBiZSBwcmV2ZW50ZWQuCgpJIGhhZCBhIGxvb2sgYXQgdGhlIGRlc2NyaXB0 aW9uIG9mIHRoZSBWYmxhbmsgaXJxIGluIHRoZSAiTTc2IFJlZ2lzdGVyIApSZWZlcmVuY2UgR3Vp ZGUiIGZvciBvbGRlciBhc2ljcyBhbmQgdGhlIGRlc2NyaXB0aW9uIHN1Z2dlc3RzIHRoYXQgdGhl IAp2YmxhbmsgaXJxIGZpcmVzIHdoZW4gdGhlIGNydGMncyBsaW5lIGJ1ZmZlciBpcyBmaW5pc2hl ZCByZWFkaW5nIHBpeGVsIApkYXRhIGZyb20gdGhlIHNjYW5vdXQgYnVmZmVyIGluIG1lbW9yeSBm b3IgYSBmcmFtZSwgaWUuLCB3aGVuIHRoZSBsaW5lIApidWZmZXIgcmVhZCAiZW50ZXJzIiB2Ymxh bmsuIFRoYXQgd291bGQgZXhwbGFpbiB3aHkgdGhlIGlycSBoYXBwZW5zIGEgCmZldyBzY2FubGlu ZXMgYmVmb3JlIGFjdHVhbCB2YmxhbmssIGJlY2F1c2UgbGluZSBidWZmZXIgcmVmaWxscyBtdXN0 IApvYnZpb3VzbHkgaGFwcGVuIGJlZm9yZSB0aGUgY3J0YyBjYW4gc2VuZCBwaXhlbCBkYXRhIGZy b20gdGhlIGxpbmUgCmJ1ZmZlciB0byB0aGUgZW5jb2RlcnMsIHNvIGl0IHdvdWxkIGxlYWQgYSBi aXQgaW4gdGltZS4gVGhhdCBhbHNvIG1lYW5zIAp3ZSBjYW4ndCBkZWxheSB0aGUgdmJsYW5rIGly cSB0byBhY3R1YWxseSBoYXBwZW4gYXQgc3RhcnQgb2YgdmJsYW5rIGFuZCAKaGF2ZSB0byBkZWFs IHdpdGggdGhlIGVhcmx5IHZibGFuayBpcnEuCgo+IEkgZ3Vlc3Mgb25lIHNpbGx5IGlkZWEgd291 bGQgYmUgdG8gZGVmZXIgdGhlIHZibGFuayBpbnRlcnJ1cHQgcHJvY2Vzc2luZwo+IHRvIGEgdGlt ZXIsIGFuZCBqdXN0IHNjaGVkdWxlIGl0IGEgYml0IGludG8gdGhlIGZ1dHVyZSBmcm9tIHRoZSBh Y3R1YWwKPiBpbnRlcnJ1cHQgaGFuZGxlci4KPgoKVGltZXIgd291bGQgYmUgYmFkIGJlY2F1c2Ug dGhlbiB3ZSBnZXQgcHJvYmxlbXMgd2l0aCB0aGUgcGFnZWZsaXAgCmNvbXBsZXRpb24gaXJxIHNv bWV0aW1lcyBiZWluZyBwcm9jZXNzZWQgYmVmb3JlIHRoZSB2YmxhbmsgaXJxLCBhbmQgCmJlY2F1 c2Ugd2Ugd2FudCB0byBiZSBmYXN0IGluIHZibGFuayBpcnEgaGFuZGxpbmcsIGRlbGl2ZXJpbmcg dmJsYW5rIApldmVudHMgZXRjLiBJIHdvdWxkbid0IHRydXN0IGEgdGltZXIgdG8gYmUgcmVsaWFi bGUgZW5vdWdoIGZvciBzdWNoIApzaG9ydCB3YWl0cy4gQnVzeSB3YWl0aW5nIHdvdWxkbid0IGJl IGdyZWF0IGVpdGhlciBpbiBpcnEuCgpTbyB3aGF0IGFib3V0IHRoaXMgcmVsYXRpdmVseSBzaW1w bGUgb25lPwoKMS4gSW4gcmFkZW9uX2dldF9jcnRjX3NjYW5vdXRwb3MoKSB3ZSBhcnRpZmljYWxs eSBkZWZpbmUgdGhlIAp2Ymxhbmtfc3RhcnQgbGluZSB0byBiZSwgZS5nLCA1IHNjYW5saW5lcyBi ZWZvcmUgdGhlIHRydWUgc3RhcnQgb2YgCnZibGFuaywgc28gZm9yIHRoZSBwdXJwb3NlIG9mIHZi bGFuayBjb3VudGVyIHF1ZXJpZXMgYW5kIHRpbWVzdGFtcGluZyAKb3VyICJ2YmxhbmsiIHdvdWxk IHN0YXJ0IGEgYml0IGVhcmxpZXIgYW5kIHRoZSB2YmxhbmsgaXJxIHdvdWxkIGFsd2F5cyAKZXhl Y3V0ZSBpbiAidmJsYW5rIi4gTm9uLUlycSBpbnZvY2F0aW9ucyBsaWtlIHZibGFua19kaXNhYmxl X2FuZF9zYXZlKCkgCndvdWxkIGFsc28gYmUgdHJlYXRlZCB0byB0aGlzIGVhcmx5IHZibGFuayBz dGFydCBhbmQgc28gd2hhdCB0aGUgRFJNIApjb3JlIG9ic2VydmVzIHdvdWxkIGFsd2F5cyBiZSBj b25zaXN0ZW50LgoKMi4gQXQgbGVhc3QgaW4gcmFkZW9uLWttcyB3ZSBhbHNvIHVzZSByYWRlb25f Z2V0X2NydGNfc2Nhbm91dHBvcygpIAppbnRlcm5hbGx5IGZvciAiZHlucG0iIGR5bmFtaWMgcG93 ZXIgbWFuYWdlbWVudC9yZWNsb2NraW5nLCBhbmQgdG8gCmltcGxlbWVudCBwYWdlZmxpcCBjb21w bGV0aW9uIGRldGVjdGlvbiBvbiBhc2ljcyBvbGRlciB0aGFuIERDRTMgd2hpY2ggCmRvbid0IGhh dmUgcGFnZWZsaXAgaW50ZXJydXB0cy4gRm9yIHRob3NlIGNhc2VzIHdlIG5lZWQgdG8gdXNlIHRo ZSB0cnVlIApzdGFydCBvZiB2YmxhbmssIHNvIGZvciB0aGlzIGludGVybmFsIHVzZSB3ZSBwYXNz IGluIHNvbWUgc3BlY2lhbCBmbGFnIAppbnRvIHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0cG9zKCkg dG8gdGVsbCBpdCB0byBub3Qgc2hpZnQgdGhlIHZibGFuayAKc3RhcnQgYXJvdW5kLgoKMy4gSSd2 ZSBhZGRlZCBhbm90aGVyIGNoZWNrIHRvIG15IHBhdGNoIGZvciBkcm1fdXBkYXRlX3ZibGFua19j b3VudCgpIHRvIApjYXRjaCB0aW1lc3RhbXBzIGdvaW5nIGJhY2t3YXJkcyBhbmQgZGlzY291bnRp bmcgc3VjaCBjYXNlcywgZm9yIGEgYml0IApvZiBleHRyYSByb2J1c3RuZXNzIGFnYWluc3QgZHJp dmVyIHRyb3VibGUuCgpBbnkgaWRlYXMgd2h5IHRoaXMgd291bGQgYmUgYSBzdHVwaWQgaWRlYT8g SSdsbCB0cnkgdGhpcyBub3cgYW5kIGp1c3QgCmhvcGUgbWVhbndoaWxlIG5vYm9keSBmaW5kcyBh IHJlYXNvbiB3aHkgdGhpcyB3b3VsZCBiZSBiYWQuCgp0aGFua3MsCi1tYXJpbwoKPj4gQWxzbyBk ZXYtPnZibGFua190aW1lX2xvY2sgc2hvdWxkIHByb3RlY3QgdXMKPj4gZnJvbSBjb25jdXJyZW50 IGV4ZWN1dGlvbiBvZiB0aGUgdmJsYW5rIGNvdW50aW5nL3RpbWVzdGFtcGluZyBpbiBpcnEKPj4g Y29udGV4dCBhbmQgbm9uLWlycSBjb250ZXh0PyBBdCBsZWFzdCB0aGF0IHdhcyBvbmUgb2YgdGhl IHB1cnBvc2VzIG9mCj4+IHRoYXQgbG9jayBpbiB0aGUgcGFzdD8KPgo+IFRoZSBzY2VuYXJpb24g SSBvdXRsaW5lZCBkb2Vzbid0IHJlcXVpcmUgYW55dGhpbmcgdG8gaGFwcGVuCj4gY29uY3VycmVu dGx5Lgo+Cj4+Cj4+IC1tYXJpbwo+Pgo+Pj4+Cj4+Pj4gSXQgd291bGQgbWF5YmUgYmUgYSBwcm9i bGVtIHRvIGdldCBkaWZmZXJlbnQgYW5zd2VycyBmb3IgYSBxdWVyeSBhdCB0aGUKPj4+PiBzYW1l IHNjYW5vdXQgcG9zaXRpb24gaWYgd2UgdXNlZCAuZ2V0X3NjYW5vdXRfcG9zaXRpb24oKSBmb3Ig c29tZXRoaW5nCj4+Pj4gZWxzZSB0aGFuIGZvciBjYWxjdWxhdGluZyB2YmxhbmsgdGltZXN0YW1w cywgYnV0IHdlIGRvbid0IGRvIHRoYXQgYXRtLgo+Pj4+Cj4+Pj4gTWF5YmUgaSdtIG92ZXJsb29r aW5nIHNvbWV0aGluZyBoZXJlIHJlbGF0ZWQgdG8gdGhlIHNvbWV3aGF0IHJld3JpdHRlbgo+Pj4+ IGNvZGUgZnJvbSB0aGUgbGFzdCB5ZWFyIG9yIHNvPyBCdXQgaW4gdGhlIG9yaWdpbmFsIGRlc2ln biB0aGlzIHdvdWxkIGJlCj4+Pj4gZXhhY3RseSB3aGF0IGkgaW50ZW5kZWQ/Cj4+Pj4KPj4+PiAu Li4KPj4+Pgo+Pj4+Pj4gU28gaXQncyBnb29kIGVub3VnaCBmb3IgdHlwaWNhbCBkZXNrdG9wCj4+ Pj4+PiBhcHBsaWNhdGlvbnMvY29tcG9zaXRvcnMvZ2FtZXMvbWVkaWEgcGxheWVycywgYW5kIGEg bmljZSBpbXByb3ZlbWVudAo+Pj4+Pj4gb3ZlciB0aGUgcHJldmlvdXMgc3RhdGUsIGJ1dCBub3Qg cXVpdGUgc3VmZmljaWVudCBmb3IgYXBwbGljYXRpb25zIHRoYXQKPj4+Pj4+IG5lZWQgbG9uZyB0 aW1lIGNvbnNpc3RlbnQgdmJsYW5rIGNvdW50cyBmb3IgbG9uZyB3YWl0cyBvZiBtdWx0aXBsZQo+ Pj4+Pj4gc2Vjb25kcyBvciBldmVuIG1pbnV0ZXMuIFNvIGl0J3Mgc3RpbGwgZ29vZCB0byBoYXZl IGh3IGNvdW50ZXJzIGlmIHdlCj4+Pj4+PiBjYW4gZ2V0IHNvbWUgdGhhdCBhcmUgcmVsaWFibGUg ZW5vdWdoLgo+Pj4+Pgo+Pj4+PiBBaCwgSSBkaWRuJ3QgcmVhbGl6ZSB5b3UgY2FyZSBhYm91dCBz bWFsbCBlcnJvcnMgaW4gdGhlIGNvdW50ZXIgZm9yCj4+Pj4+IHN1Y2ggbG9uZyBwZXJpb2RzIG9m IHZibGFuayBvZmYuCj4+Pj4+Cj4+Pj4KPj4+PiBBY3R1YWxseSwgeW91IGFyZSByaWdodCwgaSB3 YXMgc3R1cGlkIC0gbm90IGVub3VnaCBzbGVlcCBsYXN0IGZyaWRheS4gSQo+Pj4+IGRvIGNhcmUg YWJvdXQgc3VjaCBzbWFsbCBlcnJvcnMsIGJ1dCB0aGUgbG9uZyB2Ymxhbmsgb2ZmIHBlcmlvZHMg ZG9uJ3QKPj4+PiBtYXR0ZXIgYXQgYWxsIHRoZSB3YXkgbXkgc29mdHdhcmUgd29ya3MuIEkgcXVl cnkgdGhlIGN1cnJlbnQgY291bnQgYW5kCj4+Pj4gdGltZXN0YW1wIChnbFhHZXRTeW5jVmFsdWVz T01MKSwgY2FsY3VsYXRlIGEgdGFyZ2V0IGNvdW50IGJhc2VkIG9uIHRob3NlCj4+Pj4gYW5kIHRo ZW4gc2NoZWR1bGUgYSBzd2FwIGZvciB0aGF0IHRhcmdldCBjb3VudCB2aWEgZ2xYU3dhcEJ1ZmZl cnNNc2NPTUwuCj4+Pj4gVGhhdCBzd2FwYnVmZmVycyBjYWxsIHdpbGwga2VlcCB2YmxhbmsgaXJx cyBvbiB1bnRpbCB0aGUga21zIHBhZ2VmbGlwIGlzCj4+Pj4gcXVldWVkLiBTbyBpIG9ubHkgY2Fy ZSBhYm91dCB2YmxhbmsgY291bnRzL3RpbWVzdGFtcHMgYmVpbmcgY29uc2lzdGVudAo+Pj4+IGZv ciBzaG9ydCBhbW91bnRzIG9mIHRpbWUsIHR5cGljYWxseSAxIHZpZGVvIHJlZnJlc2ggZnJvbSB2 YmxhbmsgcXVlcnkKPj4+PiB0byBxdWV1ZWluZyBhIHZibGFuayBldmVudCwgYW5kIHRoZW4gZnJv bSByZWNlcHRpb24gb2YgdGhhdAo+Pj4+IGV2ZW50L3F1ZXVpbmcgdGhlIHBhZ2VmbGlwIHRvIHBh Z2VmbGlwIGNvbXBsZXRpb24gZXZlbnQuIFNvIGV2ZW4gaWYgdGhlCj4+Pj4gc3lzdGVtIHdvdWxk IGJlIGhlYXZpbHkgbG9hZGVkIGFuZCBteSBjb2RlIHdvdWxkIGhhdmUgYmlnIHByZWVtcHRpb24K Pj4+PiBkZWxheXMgaSB0aGluayBjb3VudHMgdGhhdCBhcmUgY29uc2lzdGVudCBvdmVyIGEgZmV3 IHNlY29uZHMgd291bGQgYmUKPj4+PiBlbm91Z2ggdG8ga2VlcCB0aGluZ3Mgd29ya2luZy4gT3Ro ZXJ3aXNlIGl0IHdvdWxkbid0IHdvcmsgbm93IGVpdGhlcgo+Pj4+IHdpdGggYSB2Ymxhbmsgb2Zm IGFmdGVyIDUgc2Vjb25kcyBhbmQgbm91dmVhdSBub3QgaGF2aW5nIHZibGFuayBodyBjb3VudGVy cy4KPj4+Pgo+Pj4+IC1tYXJpbwo+Pj4+Cj4+Pj4KPj4+Pj4+Cj4+Pj4+PiAtbWFyaW8KPj4+Pj4+ Cj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtbWFyaW8KPj4+Pj4+Pj4KPj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+IEl0IGFsbW9zdCBzb3J0IG9mIHdvcmtzIG9uIHRoZSByczYwMCBjb2RlIHBhdGgsIGJ1 dCBpIG5lZWQgYSBiaXQgb2YgaW5mbwo+Pj4+Pj4+Pj4+IGZyb20geW91Ogo+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4gMS4gVGhlcmUncyB0aGlzIHJlZ2lzdGVyIGZyb20gdGhlIG9sZCBzcGVjcyBmb3Ig bTc2LnBkZiwgd2hpY2ggaXMgbm90Cj4+Pj4+Pj4+Pj4gcGFydCBvZiB0aGUgY3VycmVudCByZWdp c3RlciBkZWZpbmVzIGZvciByYWRlb24ta21zOgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gIkQxQ1JU Q19TVEFUVVNfVkZfQ09VTlQgLSBSVyAtIDMyIGJpdHMgLSBbR3B1RjBNTVJlZzoweDYwQThdIgo+ Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gSXQgY29udGFpbnMgdGhlIGxvd2VyIDE2IGJpdHMgb2YgZnJh bWVjb3VudGVyIGFuZCB0aGUgMTMgYml0cyBvZgo+Pj4+Pj4+Pj4+IHZlcnRpY2FsIHNjYW5vdXQg cG9zaXRpb24uIEl0IHNlZW1zIHRvIGdpdmUgdGhlIHNhbWUgcmVhZGluZ3MgYXMgdGhlIDI0Cj4+ Pj4+Pj4+Pj4gYml0IFJfMDA2MEE0X0QxQ1JUQ19TVEFUVVNfRlJBTUVfQ09VTlQgd2UgdXNlIGZv ciB0aGUgaHcgY291bnRlci4gVGhpcwo+Pj4+Pj4+Pj4+IHdvdWxkIGNvbWUgaGFuZHkuCj4+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+PiBEb2VzIEV2ZXJncmVlbiBhbmQgbGF0ZXIgaGF2ZSBhIHNhbWUvc2lt aWxhciByZWdpc3RlciBhbmQgd2hlcmUgaXMgaXQ/Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAyLiBU aGUgaHcgZnJhbWVjb3VudGVyIHNlZW1zIHRvIGluY3JlbWVudCB3aGVuIHRoZSB2ZXJ0aWNhbCBz Y2Fub3V0Cj4+Pj4+Pj4+Pj4gcG9zaXRpb24gd3JhcHMgYmFjayBmcm9tIChWVE9UQUwgLSAxKSB0 byAwLCBhdCBsZWFzdCBvbiB0aGUgb25lIERDRS0zCj4+Pj4+Pj4+Pj4gZ3B1IGkgdGVzdGVkIHNv IGZhci4gSXMgdGhpcyBzbyBvbiBhbGwgYXNpY3M/IEFuZCBpcyB0aGUgaHcgY291bnRlcgo+Pj4+ Pj4+Pj4+IGluY3JlbWVudCBoYXBwZW5pbmcgZXhhY3RseSBhdCB0aGUgbW9tZW50IHRoYXQgdmVy dGljYWwgc2Nhbm91dCBwb3NpdGlvbgo+Pj4+Pj4+Pj4+IGp1bXBzIGJhY2sgdG8gemVybywgaWUu IGJvdGggZXZlbnRzIGFyZSBkcml2ZW4gYnkgdGhlIHNhbWUgc2lnbmFsPyBPciBpcwo+Pj4+Pj4+ Pj4+IHRoZSBmcmFtZWNvdW50ZXIgaW5jcmVtZW50IGp1c3QgaGFwcGVuaW5nIHNvbWV3aGVyZSBp bnNpZGUgZWl0aGVyCj4+Pj4+Pj4+Pj4gc2NhbmxpbmUgVlRPVEFMLTEgb3Igc2NhbmxpbmUgMD8K Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gSWYgd2UgY2FuIGZpeCB0aGlzIGFuZCBn ZXQgaXQgaW50byByYzIgb3IgcmMzIHRoZW4gd2UgY291bGQgYXZvaWQgYSBiYWQKPj4+Pj4+Pj4+ PiByZWdyZXNzaW9uIGFuZCB3aXRoIGEgYml0IG9mIGx1Y2sgYXQgdGhlIHNhbWUgdGltZSBpbXBy b3ZlIGJ5IGJlaW5nIGFibGUKPj4+Pj4+Pj4+PiB0byBzZXQgZGV2LT52YmxhbmtfZGlzYWJsZV9p bW1lZGlhdGUgPSB0cnVlIHRoZW4gYW5kIGFsbG93IHZibGFuayBpcnFzCj4+Pj4+Pj4+Pj4gdG8g Z2V0IHR1cm5lZCBvZmYgbW9yZSBhZ2dyZXNzaXZlbHkgZm9yIGEgYml0IG9mIGV4dHJhIHBvd2Vy IHNhdmluZy4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IHRoYW5rcywKPj4+Pj4+Pj4+PiAtbWFyaW8K Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4+Pj4+ Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+Pj4+Pj4+Pj4+IEBAIC0xNzIs OSArMTcyLDExIEBAIHN0YXRpYyB2b2lkIGRybV91cGRhdGVfdmJsYW5rX2NvdW50KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+Pj4+Pj4+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncykKPj4+Pj4+ Pj4+PiAgICAgICB7Cj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgIHN0cnVjdCBkcm1fdmJsYW5rX2Ny dGMgKnZibGFuayA9ICZkZXYtPnZibGFua1twaXBlXTsKPj4+Pj4+Pj4+PiAtICAgICAgIHUzMiBj dXJfdmJsYW5rLCBkaWZmOwo+Pj4+Pj4+Pj4+ICsgICAgICAgdTMyIGN1cl92YmxhbmssIGRpZmYg PSAwOwo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICBib29sIHJjOwo+Pj4+Pj4+Pj4+ICAgICAgICAg ICAgICBzdHJ1Y3QgdGltZXZhbCB0X3ZibGFuazsKPj4+Pj4+Pj4+PiArICAgICAgIGNvbnN0IHN0 cnVjdCB0aW1ldmFsICp0X29sZDsKPj4+Pj4+Pj4+PiArICAgICAgIHU2NCBkaWZmX25zOwo+Pj4+ Pj4+Pj4+ICAgICAgICAgICAgICBpbnQgY291bnQgPSBEUk1fVElNRVNUQU1QX01BWFJFVFJJRVM7 Cj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgIGludCBmcmFtZWR1cl9ucyA9IHZibGFuay0+ZnJhbWVk dXJfbnM7Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBAQCAtMTk1LDEzICsxOTcsMTUgQEAgc3RhdGlj IHZvaWQgZHJtX3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHBpcGUsCj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgcmMgPSBkcm1f Z2V0X2xhc3RfdmJsdGltZXN0YW1wKGRldiwgcGlwZSwgJnRfdmJsYW5rLCBmbGFncyk7Cj4+Pj4+ Pj4+Pj4gICAgICAgICAgICAgIH0gd2hpbGUgKGN1cl92YmxhbmsgIT0gZGV2LT5kcml2ZXItPmdl dF92YmxhbmtfY291bnRlcihkZXYsIHBpcGUpICYmIC0tY291bnQgPiAwKTsKPj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4+IC0gICAgICAgaWYgKGRldi0+bWF4X3ZibGFua19jb3VudCAhPSAwKSB7Cj4+Pj4+ Pj4+Pj4gLSAgICAgICAgICAgICAgIC8qIHRydXN0IHRoZSBodyBjb3VudGVyIHdoZW4gaXQncyBh cm91bmQgKi8KPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgZGlmZiA9IChjdXJfdmJsYW5rIC0g dmJsYW5rLT5sYXN0KSAmIGRldi0+bWF4X3ZibGFua19jb3VudDsKPj4+Pj4+Pj4+PiAtICAgICAg IH0gZWxzZSBpZiAocmMgJiYgZnJhbWVkdXJfbnMpIHsKPj4+Pj4+Pj4+PiAtICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IHRpbWV2YWwgKnRfb2xkOwo+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAg ICB1NjQgZGlmZl9uczsKPj4+Pj4+Pj4+PiAtCj4+Pj4+Pj4+Pj4gKyAgICAgICAvKgo+Pj4+Pj4+ Pj4+ICsgICAgICAgICogQWx3YXlzIHVzZSB2YmxhbmsgdGltZXN0YW1waW5nIGJhc2VkIG1ldGhv ZCBpZiBzdXBwb3J0ZWQgdG8gcmVqZWN0Cj4+Pj4+Pj4+Pj4gKyAgICAgICAgKiByZWR1bmRhbnQg dmJsYW5rIGlycXMuIEUuZy4sIEFNRCBoYXJkd2FyZSBuZWVkcyB0aGlzIHRvIG5vdCBzY3JldyB1 cAo+Pj4+Pj4+Pj4+ICsgICAgICAgICogZHVlIHRvIHNvbWUgaXJxIGhhbmRsaW5nIHF1aXJrLgo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEhtbS4gSSdtIHRoaW5raW5nIGl0IHdvdWxkIGJlIGJldHRlciB0 byBzaW1wbHkgbm90IGNsYWltIHRoYXQgdGhlcmUncyBhIGh3Cj4+Pj4+Pj4+PiBjb3VudGVyIGlm IGl0IGlzbid0IHJlbGlhYmxlLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiArICAgICAgICAqCj4+Pj4+ Pj4+Pj4gKyAgICAgICAgKiBUaGlzIGFsc28gc2V0cyB0aGUgZGlmZiB2YWx1ZSBmb3IgdXNlIGFz IGZhbGxiYWNrIGJlbG93IGluIGNhc2UgdGhlCj4+Pj4+Pj4+Pj4gKyAgICAgICAgKiBodyBkb2Vz IG5vdCBzdXBwb3J0IGEgc3VpdGFibGUgaHcgdmJsYW5rIGNvdW50ZXIuCj4+Pj4+Pj4+Pj4gKyAg ICAgICAgKi8KPj4+Pj4+Pj4+PiArICAgICAgIGlmIChyYyAmJiBmcmFtZWR1cl9ucykgewo+Pj4+ Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgIHRfb2xkID0gJnZibGFua3RpbWVzdGFtcChkZXYs IHBpcGUsIHZibGFuay0+Y291bnQpOwo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgIGRp ZmZfbnMgPSB0aW1ldmFsX3RvX25zKCZ0X3ZibGFuaykgLSB0aW1ldmFsX3RvX25zKHRfb2xkKTsK Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IEBAIC0yMTIsMTEgKzIxNiwyOCBAQCBzdGF0aWMgdm9pZCBk cm1fdXBkYXRlX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSwKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgKi8KPj4+Pj4+Pj4+PiAg ICAgICAgICAgICAgICAgICAgICBkaWZmID0gRElWX1JPVU5EX0NMT1NFU1RfVUxMKGRpZmZfbnMs IGZyYW1lZHVyX25zKTsKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICBpZiAo ZGlmZiA9PSAwICYmIGZsYWdzICYgRFJNX0NBTExFRF9GUk9NX1ZCTElSUSkKPj4+Pj4+Pj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUdfVkJMKCJjcnRjICV1OiBSZWR1bmRhbnQg dmJsaXJxIGlnbm9yZWQuIgo+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiBkaWZmX25zID0gJWxsZCwgZnJhbWVkdXJfbnMgPSAlZClcbiIsCj4+Pj4+Pj4+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXBlLCAobG9uZyBsb25n KSBkaWZmX25zLCBmcmFtZWR1cl9ucyk7Cj4+Pj4+Pj4+Pj4gLSAgICAgICB9IGVsc2Ugewo+Pj4+ Pj4+Pj4+ICsgICAgICAgICAgICAgICBpZiAoZGlmZiA9PSAwICYmIGZsYWdzICYgRFJNX0NBTExF RF9GUk9NX1ZCTElSUSkgewo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVH X1ZCTCgiY3J0YyAldTogUmVkdW5kYW50IHZibGlycSBpZ25vcmVkLiIKPj4+Pj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICIgZGlmZl9ucyA9ICVsbGQsIGZyYW1lZHVyX25zID0gJWQpXG4iLAo+ Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgcGlwZSwgKGxvbmcgbG9uZykgZGlmZl9ucywg ZnJhbWVkdXJfbnMpOwo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAg IC8qIFRyZWF0IHRoaXMgcmVkdW5kYW50IGludm9jYXRpb24gYXMgbm8tb3AuICovCj4+Pj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICBXQVJOX09OX09OQ0UoY3VyX3ZibGFuayAhPSB2Ymxhbmst Pmxhc3QpOwo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Pj4+Pj4+Pj4+ ICsgICAgICAgICAgICAgICB9Cj4+Pj4+Pj4+Pj4gKyAgICAgICB9Cj4+Pj4+Pj4+Pj4gKwo+Pj4+ Pj4+Pj4+ICsgICAgICAgLyoKPj4+Pj4+Pj4+PiArICAgICAgICAqIGh3IGNvdW50ZXJzLCBpZiBt YXJrZWQgYXMgc3VwcG9ydGVkIHZpYSBtYXhfdmJsYW5rX2NvdW50ICE9IDAsCj4+Pj4+Pj4+Pj4g KyAgICAgICAgKiAqbXVzdCogaW5jcmVtZW50IGF0IGxlYWRpbmcgZWRnZSBvZiB2YmxhbmsgYW5k IGluIHN5bmMgd2l0aAo+Pj4+Pj4+Pj4+ICsgICAgICAgICogdGhlIGZpcmluZyBvZiB0aGUgaHcg dmJsYW5rIGlycSwgb3RoZXJ3aXNlIHdlIGhhdmUgYSByYWNlIGhlcmUKPj4+Pj4+Pj4+PiArICAg ICAgICAqIGJldHdlZW4gZ3B1IGFuZCB1cywgd2hlcmUgc21hbGwgdmFyaWF0aW9ucyBpbiBvdXIg ZXhlY3V0aW9uCj4+Pj4+Pj4+Pj4gKyAgICAgICAgKiB0aW1pbmcgY2FuIGNhdXNlIG9mZi1ieS1v bmUgbWlzY291bnRpbmcgb2YgdmJsYW5rcy4KPj4+Pj4+Pj4+PiArICAgICAgICAqLwo+Pj4+Pj4+ Pj4+ICsgICAgICAgaWYgKGRldi0+bWF4X3ZibGFua19jb3VudCAhPSAwKSB7Cj4+Pj4+Pj4+Pj4g KyAgICAgICAgICAgICAgIC8qIHRydXN0IHRoZSBodyBjb3VudGVyIHdoZW4gaXQncyBhcm91bmQg Ki8KPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgZGlmZiA9IChjdXJfdmJsYW5rIC0gdmJsYW5r LT5sYXN0KSAmIGRldi0+bWF4X3ZibGFua19jb3VudDsKPj4+Pj4+Pj4+PiArICAgICAgIH0gZWxz ZSBpZiAoIShyYyAmJiBmcmFtZWR1cl9ucykpIHsKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAg ICAgICAvKiBzb21lIGtpbmQgb2YgZGVmYXVsdCBmb3IgZHJpdmVycyB3L28gYWNjdXJhdGUgdmJs IHRpbWVzdGFtcGluZyAqLwo+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgIGRpZmYgPSAo ZmxhZ3MgJiBEUk1fQ0FMTEVEX0ZST01fVkJMSVJRKSAhPSAwOwo+Pj4+Pj4+Pj4+ICAgICAgICAg ICAgICB9Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pgo+Pj4KPgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=