From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v4 4/4] drm/i915: set proper N/CTS in modeset Date: Wed, 12 Aug 2015 15:10:56 +0200 Message-ID: <20150812131056.GP17734@phenom.ffwll.local> References: <1439191931-25705-1-git-send-email-libin.yang@intel.com> <1439191931-25705-4-git-send-email-libin.yang@intel.com> <871tfb8hu8.fsf@intel.com> <96A12704CE18D347B625EE2D4A099D196E1E2C@SHSMSX103.ccr.corp.intel.com> <87oaie70wz.fsf@intel.com> <96A12704CE18D347B625EE2D4A099D196E30C8@SHSMSX103.ccr.corp.intel.com> <87egjautrh.fsf@intel.com> <96A12704CE18D347B625EE2D4A099D196E34F4@SHSMSX103.ccr.corp.intel.com> <87mvxxt4da.fsf@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: <87mvxxt4da.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: "tiwai@suse.de" , "alsa-devel@alsa-project.org" , "intel-gfx@lists.freedesktop.org" , "daniel.vetter@ffwll.ch" List-Id: alsa-devel@alsa-project.org T24gV2VkLCBBdWcgMTIsIDIwMTUgYXQgMDk6MjA6MTdBTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gV2VkLCAxMiBBdWcgMjAxNSwgIllhbmcsIExpYmluIiA8bGliaW4ueWFuZ0BpbnRl bC5jb20+IHdyb3RlOgo+ID4gSGkgSmFuaSwKPiA+Cj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0KPiA+PiBGcm9tOiBKYW5pIE5pa3VsYSBbbWFpbHRvOmphbmkubmlrdWxhQGxpbnV4Lmlu dGVsLmNvbV0KPiA+PiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgMTEsIDIwMTUgNDoxNCBQTQo+ID4+ IFRvOiBZYW5nLCBMaWJpbjsgYWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3JnOyB0aXdhaUBzdXNl LmRlOyBpbnRlbC0KPiA+PiBnZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkYW5pZWwudmV0dGVy QGZmd2xsLmNoCj4gPj4gU3ViamVjdDogUkU6IFtJbnRlbC1nZnhdIFtQQVRDSCB2NCA0LzRdIGRy bS9pOTE1OiBzZXQgcHJvcGVyIE4vQ1RTIGluCj4gPj4gbW9kZXNldAo+ID4+IAo+ID4+IE9uIFR1 ZSwgMTEgQXVnIDIwMTUsICJZYW5nLCBMaWJpbiIgPGxpYmluLnlhbmdAaW50ZWwuY29tPiB3cm90 ZToKPiA+PiA+IEhpIEphbmksCj4gPj4gPgo+ID4+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tCj4gPj4gPj4gRnJvbTogSmFuaSBOaWt1bGEgW21haWx0bzpqYW5pLm5pa3VsYUBsaW51eC5p bnRlbC5jb21dCj4gPj4gPj4gU2VudDogVHVlc2RheSwgQXVndXN0IDExLCAyMDE1IDM6MTQgUE0K PiA+PiA+PiBUbzogWWFuZywgTGliaW47IGFsc2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZzsgdGl3 YWlAc3VzZS5kZTsgaW50ZWwtCj4gPj4gPj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgZGFu aWVsLnZldHRlckBmZndsbC5jaAo+ID4+ID4+IFN1YmplY3Q6IFJFOiBbSW50ZWwtZ2Z4XSBbUEFU Q0ggdjQgNC80XSBkcm0vaTkxNTogc2V0IHByb3BlciBOL0NUUyBpbgo+ID4+ID4+IG1vZGVzZXQK PiA+PiA+Pgo+ID4+ID4+IE9uIFR1ZSwgMTEgQXVnIDIwMTUsICJZYW5nLCBMaWJpbiIgPGxpYmlu LnlhbmdAaW50ZWwuY29tPiB3cm90ZToKPiA+PiA+PiA+IEhpIEphbmksCj4gPj4gPj4gPgo+ID4+ ID4+ID4gVGhhbmtzIGZvciBjYXJlZnVsIHJldmlld2luZyBmb3IgYWxsIHRoZSBwYXRjaGVzLCBw bGVhc2UKPiA+PiA+PiA+IHNlZSBteSBjb21tZW50cy4KPiA+PiA+PiA+Cj4gPj4gPj4gPj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+PiA+PiA+PiBGcm9tOiBKYW5pIE5pa3VsYSBbbWFp bHRvOmphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbV0KPiA+PiA+PiA+PiBTZW50OiBNb25kYXks IEF1Z3VzdCAxMCwgMjAxNSA4OjEwIFBNCj4gPj4gPj4gPj4gVG86IFlhbmcsIExpYmluOyBhbHNh LWRldmVsQGFsc2EtcHJvamVjdC5vcmc7IHRpd2FpQHN1c2UuZGU7IGludGVsLQo+ID4+ID4+ID4+ IGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2gKPiA+PiA+ PiA+PiBTdWJqZWN0OiBSZTogW0ludGVsLWdmeF0gW1BBVENIIHY0IDQvNF0gZHJtL2k5MTU6IHNl dCBwcm9wZXIgTi9DVFMKPiA+PiBpbgo+ID4+ID4+ID4+IG1vZGVzZXQKPiA+PiA+PiA+Pgo+ID4+ ID4+ID4+IE9uIE1vbiwgMTAgQXVnIDIwMTUsIGxpYmluLnlhbmdAaW50ZWwuY29tIHdyb3RlOgo+ ID4+ID4+ID4+ID4gRnJvbTogTGliaW4gWWFuZyA8bGliaW4ueWFuZ0BpbnRlbC5jb20+Cj4gPj4g Pj4gPj4gPgo+ID4+ID4+ID4+ID4gV2hlbiBtb2Rlc2V0IG9jY3VycyBhbmQgdGhlIFRNRFMgZnJl cXVlbmN5IGlzIHNldCB0byBzb21lCj4gPj4gPj4gPj4gPiBzcGVpY2FsIHZhbHVlLCB0aGUgTi9D VFMgbmVlZCB0byBiZSBzZXQgbWFudWFsbHkgaWYgYXVkaW8KPiA+PiA+PiA+PiA+IGlzIHBsYXlp bmcuCj4gPj4gPj4gPj4KPiA+PiA+PiA+PiBXaGVuIG1vZGVzZXQgb2NjdXJzLCB3ZSBkaXNhYmxl IGV2ZXJ5dGhpbmcsIGFuZCB0aGVuIHJlLWVuYWJsZQo+ID4+ID4+ID4+IGV2ZXJ5dGhpbmcsIGFu ZCBub3RpZnkgdGhlIGF1ZGlvIGRyaXZlciBldmVyeSBzdGVwIG9mIHRoZSB3YXkuIElJVUMKPiA+ PiA+PiA+PiB0aGVyZSBzaG91bGQgYmUgbm8gYXVkaW8gcGxheWluZyBhY3Jvc3MgdGhlIG1vZGVz ZXQsIGFuZCB3aGVuCj4gPj4gdGhlCj4gPj4gPj4gPj4gbW9kZXNldCBpcyBjb21wbGV0ZSBhbmQg d2UndmUgc2V0IHRoZSB2YWxpZCBFTEQsIHRoZSBhdWRpbyBkcml2ZXIKPiA+PiA+PiA+PiBzaG91 bGQKPiA+PiA+PiA+PiBjYWxsIHRoZSBjYWxsYmFjayBmcm9tIHRoZSBlYXJsaWVyIHBhdGNoZXMg dG8gc2V0IHRoZSBjb3JyZWN0IGF1ZGlvCj4gPj4gPj4gPj4gcmF0ZS4KPiA+PiA+PiA+Pgo+ID4+ ID4+ID4+IFdoeSBpcyB0aGlzIHBhdGNoIG5lZWRlZD8gUGxlYXNlIGVubGlnaHRlbiBtZS4KPiA+ PiA+PiA+Cj4gPj4gPj4gPiBQbGVhc2UgaW1hZ2UgdGhpcyBzY2VuYXJpbzogd2hlbiBhdWRpbyBp cyBwbGF5aW5nLCB0aGUgZ2Z4IGRyaXZlcgo+ID4+ID4+ID4gZG9lcyB0aGUgbW9kZXNldC4gSW4g dGhpcyBzaXR1YXRpb24sIGFmdGVyIG1vZGVzZXQsIGF1ZGlvIGRyaXZlcgo+ID4+ID4+ID4gd2ls bCBkbyBub3RoaW5nIGFuZCBjb250aW51ZSBwbGF5aW5nLiBBbmQgYXVkaW8gZHJpdmVyIHdpbGwg bm90IGNhbGwKPiA+PiA+PiA+IHNldF9uY3RzLgo+ID4+ID4+Cj4gPj4gPj4gV2h5IGRvZXMgdGhl IGF1ZGlvIGRyaXZlciBub3QgZG8gYW55dGhpbmcgaGVyZT8gV2hlbmV2ZXIgdGhlcmUncwo+ID4+ IGEKPiA+PiA+PiBtb2Rlc2V0LCB0aGUgZ3JhcGhpY3MgZHJpdmVyIHdpbGwgZGlzYWJsZSBhdWRp byBhbmQgaW52YWxpZGF0ZSB0aGUKPiA+PiBFTEQsCj4gPj4gPj4gd2hpY2ggc2hvdWxkIGNhdXNl IGFuIGludGVycnVwdCB0byBub3RpZnkgdGhlIGF1ZGlvIGRyaXZlciBhYm91dAo+ID4+ID4+IHRo aXMuIFRoaXMgaXMgbm8gZGlmZmVyZW50IGZyb20gYSBob3QtdW5wbHVnLCBpbiBmYWN0IEkgY2Fu J3Qgc2VlIGhvdwo+ID4+ID4+IHRoZSBhdWRpbyBkcml2ZXIgY291bGQgZXZlbiBkZXRlY3Qgd2hl dGhlciB0aGVyZSdzIGJlZW4gYSBob3RwbHVnCj4gPj4gb3IKPiA+PiA+PiBub3QKPiA+PiA+PiB3 aGVuIHRoZXJlJ3MgYSBjb2RlYyBkaXNhYmxlL2VuYWJsZS4KPiA+PiA+Cj4gPj4gPiBZZXMsIGl0 IHdpbGwgdHJpZ2dlciBhbiBpbnRlcnJ1cHQgdG8gYXVkaW8gZHJpdmVyIHdoZW4gdW5wbHVnCj4g Pj4gPiBhbmQgYW5vdGhlciBpbnRlcnJ1cHQgZm9yIGhvdHBsdWcuIEJ1dCBmcm9tIGF1ZGlvIGRy aXZlciwKPiA+PiA+IHdlIHdpbGwgbm90IHN0b3AgdGhlIHBsYXlpbmcgYW5kIHJlc3VtZSB0aGUg cGxheWluZyBiYXNlZAo+ID4+ID4gb24gdGhlIGhvdHBsdWcgb3IgbW9kZXNldC4gVGhlIGF1ZGlv IGlzIGFsd2F5cyBwbGF5aW5nIGR1cmluZwo+ID4+ID4gdGhlIGhvdHBsdWcvbW9kZXNldC4KPiA+ PiAKPiA+PiBCdXQgdGhlIHdob2xlIGRpc3BsYXksIGFuZCBjb25zZXF1ZW50bHkgRUxELCBtaWdo dCBoYXZlIGNoYW5nZWQKPiA+PiBkdXJpbmcKPiA+PiB0aGUgaG90cGx1Zywgd2h5IGRvIHlvdSBh c3N1bWUgeW91IGNhbiBqdXN0IGtlZXAgcGxheWluZz8hIFRoZQo+ID4+IGRpc3BsYXkKPiA+PiBt aWdodCBldmVuIGhhdmUgY2hhbmdlZCBmcm9tIEhETUkgdG8gRFAgb3IgdmljZSB2ZXJzYS4KPiA+ Cj4gPiBUaGUgZWxkIGluZm8gY2hhbmdpbmcgd2lsbCBub3QgaW1wYWN0IHRoZSBhdWRpbyBwbGF5 aW5nLgo+ID4gQWN0dWFsbHksIHlvdSBjYW4gaW1hZ2UgdGhlIG1vbml0b3IgYXMgYSBkaWdpdGFs IHNwZWFrZXIsIGp1c3QKPiA+IGxpa2UgdGhlIGhlYWRwaG9uZSB0byB0aGUgYW5hbG9nIGF1ZGlv LiBVbnBsdWcgdGhlIHNwZWFrZXIKPiA+IHdpbGwgbm90IGltcGFjdCBvbiB0aGUgYXVkaW8gcGxh eWluZy4gT2YgY291cnNlICwgdGhlcmUgaXMgYQo+ID4gbGl0dGxlIGRpZmZlcmVuY2UsIHdoZW4g bW9uaXRvciBob3RwbHVnLCBpbiB0aGUgaW50ZXJydXB0LAo+ID4gd2UgbWF5IGNoYW5nZSB0aGUg Y29kZWMgY29uZmlndXJhdGlvbiBkeW5hbWljYWxseS4gCj4gPgo+ID4gQW5kIGF1ZGlvIGRyaXZl ciBzdXBwbHkgdGhlIG1lY2hhbmlzbSB0byBzdG9wIHRoZQo+ID4gYXVkaW8gcGxheWluZyB3aGVu IGhvdHBsdWcgaWYgdGhlIEhXIHJlcXVpcmVzLgo+ID4KPiA+PiAKPiA+PiBXZSd2ZSBhbHNvIGJl ZW4gcHV0dGluZyBhIGxvdCBvZiBlZmZvcnQgaW50byBub3QgZGVwZW5kaW5nIG9uIHByZXZpb3Vz Cj4gPj4gc3RhdGUgd2hlbiBlbmFibGluZyB0aGUgb3V0cHV0cywgZm9yIG1vcmUgcmVsaWFiaWxp dHkuIFdlIGdlbmVyYWxseQo+ID4+IGRvbid0IGRvIHBhcnRpYWwgY2hhbmdlcywgd2UgZGlzYWJs ZSBldmVyeXRoaW5nIGFuZCB0aGVuIGVuYWJsZQo+ID4+IGFnYWluLiBBbmQgbm93IHlvdSdyZSBz dWdnZXN0aW5nIHdlIGxvb2sgYXQgc29tZSByZWdpc3RlciB3aGljaCBmb3IgYWxsCj4gPj4gd2Ug a25vdyBtYXkgaGF2ZSBiZWVuIHZhbGlkIGZvciBzb21lIG90aGVyIGRpc3BsYXk/Cj4gPgo+ID4g SW4gdGhlIHBhdGNoLCBpdCB3aWxsIG5vdCBkZXBlbmQgb24gcHJldmlvdXMgc3RhdGUsIEkgdGhp bmsuIFdlCj4gPiByZWFkIHRoZSByZWdpc3RlciB2YWx1ZSB3aGljaCBpcyBiYXNlZCBvbiB0aGUg c3RhdGUgYWZ0ZXIgbW9kZXNldC4KPiAKPiBPa2F5LCBsZXQncyBoYXZlIHRoZSBwYXRjaGVzIGNs ZWFuZWQgdXAgYW5kIHNlZS4gSXQnbGwgYmUgZWFzaWVyIGFuZAo+IHF1aWNrZXIgdG8gc29saWNp dCBtb3JlIHJldmlldyBvbiB0aGF0IHRoYW4gdGhpcyBleHBhbmRpbmcgdGhyZWFkLgoKSXQgc291 bmRzIGxpa2Ugd2UgYWN0dWFsbHkgbmVlZCB0byBwaW5nIHRoZSBhdWRpbyBzaWRlIF9iZWZvcmVf IHdlIGRvIHRoZQpodyBtb2Rlc2V0IHdoaWxlIGNvbXB1dGluZyB0aGUgcGlwZV9jb25maWcuIFRo YXQgd291bGQgcHJvYmFibHkgdGFrZSBjYXJlCm9mIG15IHJ3bSBjb25jZXJucywgZ2l2ZSB0aGlz IHRoaW5nIHByb3BlciBzdHJ1Y3R1cmUgYW5kIGFsc28gbWFrZSBzdXJlCk4vQ1RTIG5ldmVyIGdl dCBvdXQgb2Ygc3luYy4gQWxzbyB0aGVuIHdlIGNhbiB0cmFjayB0aGlzIHN0dWZmIGluIHRoZQpw aXBlX2NvbmZpZyBhbmQgdGhyb3cgdGhlIHN0YXRlIGNoZWNrZXIgYXQgaXQgdG8gbWFrZSBzdXJl IGl0J3MgYWxsIGZpbmUuCi1EYW5pZWwKCj4gCj4gUGxlYXNlIGZpbmQgb25lIG1vcmUgY29kZSBj b21tZW50IGJlbG93Lgo+IAo+ID4KPiA+PiAKPiA+PiBUaW1lb3V0Lgo+ID4+IAo+ID4+IAo+ID4+ IEJSLAo+ID4+IEphbmkuCj4gPj4gCj4gPj4gCj4gPj4gPgo+ID4+ID4+Cj4gPj4gPj4gQlIsCj4g Pj4gPj4gSmFuaS4KPiA+PiA+Pgo+ID4+ID4+Cj4gPj4gPj4gPgo+ID4+ID4+ID4+Cj4gPj4gPj4g Pj4gQWxzbyBzb21lIGNvbW1lbnRzIGluLWxpbmUsIHByb3ZpZGVkIHlvdSd2ZSBjb252aW5jZWQg bWUgZmlyc3QuIDspCj4gPj4gPj4gPj4KPiA+PiA+PiA+PiA+IFNpZ25lZC1vZmYtYnk6IExpYmlu IFlhbmcgPGxpYmluLnlhbmdAaW50ZWwuY29tPgo+ID4+ID4+ID4+ID4gLS0tCj4gPj4gPj4gPj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICB8ICA2ICsrKysrKwo+ID4+ID4+ ID4+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgfCA0Mgo+ID4+ID4+ID4+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPj4gPj4gPj4gPiAgMiBm aWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspCj4gPj4gPj4gPj4gPgo+ID4+ID4+ID4+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+PiA+PiA+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+PiA+PiA+PiA+IGluZGV4IGRhMmQx MjguLjg1ZjNiZWIgMTAwNjQ0Cj4gPj4gPj4gPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oCj4gPj4gPj4gPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oCj4gPj4gPj4gPj4gPiBAQCAtNzAzMCw2ICs3MDMwLDEyIEBAIGVudW0gc2tsX2Rpc3Bf cG93ZXJfd2VsbHMgewo+ID4+ID4+ID4+ID4KPiA+PiAJX0hTV19BVURfRElHX0NOVlRfMikKPiA+ PiA+PiA+PiA+ICAjZGVmaW5lIERJUF9QT1JUX1NFTF9NQVNLCQkweDMKPiA+PiA+PiA+PiA+Cj4g Pj4gPj4gPj4gPiArI2RlZmluZSBfSFNXX0FVRF9TVFJfREVTQ18xCQkweDY1MDg0Cj4gPj4gPj4g Pj4gPiArI2RlZmluZSBfSFNXX0FVRF9TVFJfREVTQ18yCQkweDY1MTg0Cj4gPj4gPj4gPj4gPiAr I2RlZmluZSBBVURfU1RSX0RFU0MocGlwZSkJX1BJUEUocGlwZSwgXAo+ID4+ID4+ID4+ID4gKwo+ ID4+IF9IU1dfQVVEX1NUUl9ERVNDXzEsCj4gPj4gPj4gPj4gCVwKPiA+PiA+PiA+PiA+ICsKPiA+ PiBfSFNXX0FVRF9TVFJfREVTQ18yKQo+ID4+ID4+ID4+ID4gKwo+ID4+ID4+ID4+ID4gICNkZWZp bmUgX0hTV19BVURfRURJRF9EQVRBX0EJCTB4NjUwNTAKPiA+PiA+PiA+PiA+ICAjZGVmaW5lIF9I U1dfQVVEX0VESURfREFUQV9CCQkweDY1MTUwCj4gPj4gPj4gPj4gPiAgI2RlZmluZSBIU1dfQVVE X0VESURfREFUQShwaXBlKSBfUElQRShwaXBlLCBcCj4gPj4gPj4gPj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4+ID4+ID4+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+ID4+ID4+ID4+ID4gaW5kZXggZWRkZjM3Zi4uMDgy Zjk2ZCAxMDA2NDQKPiA+PiA+PiA+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2F1ZGlvLmMKPiA+PiA+PiA+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMKPiA+PiA+PiA+PiA+IEBAIC0yMzUsNiArMjM1LDkgQEAgc3RhdGljIHZvaWQKPiA+PiA+ PiBoc3dfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdAo+ID4+ID4+ID4+IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiA+PiA+PiA+PiA+ICAJY29uc3QgdWludDhfdCAqZWxkID0gY29ubmVjdG9y LT5lbGQ7Cj4gPj4gPj4gPj4gPiAgCXVpbnQzMl90IHRtcDsKPiA+PiA+PiA+PiA+ICAJaW50IGxl biwgaTsKPiA+PiA+PiA+PiA+ICsJaW50IGN2dF9pZHg7Cj4gPj4gPj4gPj4gPiArCWludCBuX2xv dywgbl91cCwgbjsKPiA+PiA+PiA+PiA+ICsJaW50IGJhc2VfcmF0ZSwgbXVsLCBkaXYsIHJhdGU7 Cj4gPj4gPj4gPj4gPgo+ID4+ID4+ID4+ID4gIAlEUk1fREVCVUdfS01TKCJFbmFibGUgYXVkaW8g Y29kZWMgb24gcGlwZSAlYywgJXUKPiA+PiBieXRlcwo+ID4+ID4+ID4+IEVMRFxuIiwKPiA+PiA+ PiA+PiA+ICAJCSAgICAgIHBpcGVfbmFtZShwaXBlKSwgZHJtX2VsZF9zaXplKGVsZCkpOwo+ID4+ ID4+ID4+ID4gQEAgLTI2Nyw2ICsyNzAsMjEgQEAgc3RhdGljIHZvaWQKPiA+PiA+PiBoc3dfYXVk aW9fY29kZWNfZW5hYmxlKHN0cnVjdAo+ID4+ID4+ID4+IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiA+PiA+PiA+PiA+ICAJdG1wIHw9IEFVRElPX0VMRF9WQUxJRChwaXBlKTsKPiA+PiA+PiA+ PiA+ICAJSTkxNV9XUklURShIU1dfQVVEX1BJTl9FTERfQ1BfVkxELCB0bXApOwo+ID4+ID4+ID4+ ID4KPiA+PiA+PiA+PiA+ICsJaWYgKChtb2RlLT5jbG9jayA9PSAyOTcwMDApIHx8Cj4gPj4gPj4g Pj4gPiArCQkobW9kZS0+Y2xvY2sgPT0gRElWX1JPVU5EX1VQKDI5NzAwMCAqIDEwMDAsCj4gPj4g Pj4gPj4gMTAwMSkpKSB7Cj4gCj4gUGxlYXNlIGFic3RyYWN0IHRoYXQgY29uZGl0aW9uIGludG8g YSBoZWxwZXIgYW5kIGdpdmUgaXQgYSBoZWxwZnVsCj4gbmFtZS4gVGhhdCdzIHJlcGVhdGVkIG1h bnkgdGltZXMgbm93LCBpbiB0aGlzIGFuZCBuZWdhdGVkIGZvcm1zLCBhbmQgSQo+IHdhbnQgdGhl IGNvbXBpbGVyIHRvIGVuc3VyZSBpdCdzIHRoZSBzYW1lIGluIGVhY2ggcGxhY2UuCj4gCj4gVGhh bmtzLAo+IEphbmkuCj4gCj4gPj4gPj4gPj4gPiArCQl0bXAgPQo+ID4+IEk5MTVfUkVBRChIU1df QVVEX1BJUEVfQ09OTl9TRUxfQ1RSTCk7Cj4gPj4gPj4gPj4gPiArCQljdnRfaWR4ID0gKHRtcCA+ PiBwaXBlKjgpICYgMHhmZjsKPiA+PiA+PiA+PiA+ICsJCXRtcCA9IEk5MTVfUkVBRChBVURfU1RS X0RFU0MoY3Z0X2lkeCkpOwo+ID4+ID4+ID4+ID4gKwkJYmFzZV9yYXRlID0gdG1wICYgKDEgPDwg MTQpOwo+ID4+ID4+ID4+ID4gKwkJaWYgKGJhc2VfcmF0ZSA9PSAwKQo+ID4+ID4+ID4+ID4gKwkJ CXJhdGUgPSA0ODAwMDsKPiA+PiA+PiA+PiA+ICsJCWVsc2UKPiA+PiA+PiA+PiA+ICsJCQlyYXRl ID0gNDQxMDA7Cj4gPj4gPj4gPj4gPiArCQltdWwgPSAodG1wICYgKDB4NyA8PCAxMSkpICsgMTsK PiA+PiA+PiA+PiA+ICsJCWRpdiA9ICh0bXAgJiAoMHg3IDw8IDgpKSArIDE7Cj4gPj4gPj4gPj4g PiArCQlyYXRlID0gcmF0ZSAqIG11bCAvIGRpdjsKPiA+PiA+PiA+PiA+ICsJfQo+ID4+ID4+ID4+ Cj4gPj4gPj4gPj4gVGhpcyBzaG91bGQgYmUgYWJzdHJhY3RlZCB0byBhIHNlcGFyYXRlIGZ1bmN0 aW9uLgo+ID4+ID4+ID4KPiA+PiA+PiA+IFllcy4gSSB3aWxsIGRvIGl0Lgo+ID4+ID4+ID4KPiA+ PiA+PiA+Pgo+ID4+ID4+ID4+ID4gKwo+ID4+ID4+ID4+ID4gIAkvKiBFbmFibGUgdGltZXN0YW1w cyAqLwo+ID4+ID4+ID4+ID4gIAl0bXAgPSBJOTE1X1JFQUQoSFNXX0FVRF9DRkcocGlwZSkpOwo+ ID4+ID4+ID4+ID4gIAl0bXAgJj0gfkFVRF9DT05GSUdfTl9WQUxVRV9JTkRFWDsKPiA+PiA+PiA+ PiA+IEBAIC0yNzYsNiArMjk0LDMwIEBAIHN0YXRpYyB2b2lkCj4gPj4gPj4gaHN3X2F1ZGlvX2Nv ZGVjX2VuYWJsZShzdHJ1Y3QKPiA+PiA+PiA+PiBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4g Pj4gPj4gPj4gPiAgCQl0bXAgfD0gQVVEX0NPTkZJR19OX1ZBTFVFX0lOREVYOwo+ID4+ID4+ID4+ ID4gIAllbHNlCj4gPj4gPj4gPj4gPiAgCQl0bXAgfD0gYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxf Y2xvY2sobW9kZSk7Cj4gPj4gPj4gPj4gPiArCj4gPj4gPj4gPj4gPiArCWlmICgobW9kZS0+Y2xv Y2sgIT0gMjk3MDAwKSAmJgo+ID4+ID4+ID4+ID4gKwkJKG1vZGUtPmNsb2NrICE9IERJVl9ST1VO RF9VUCgyOTcwMDAgKiAxMDAwLAo+ID4+ID4+ID4+IDEwMDEpKSkgewo+ID4+ID4+ID4+ID4gKwkJ dG1wICY9IH5BVURfQ09ORklHX05fUFJPR19FTkFCTEU7Cj4gPj4gPj4gPj4gPiArCX0gZWxzZSB7 Cj4gPj4gPj4gPj4gPiArCQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShhdWRfbmN0cyk7IGkr Kykgewo+ID4+ID4+ID4+ID4gKwkJCWlmICgocmF0ZSA9PSBhdWRfbmN0c1tpXS5zYW1wbGVfcmF0 ZSkgJiYKPiA+PiA+PiA+PiA+ICsJCQkJKG1vZGUtPmNsb2NrID09Cj4gPj4gYXVkX25jdHNbaV0u Y2xvY2spKSB7Cj4gPj4gPj4gPj4gPiArCQkJCW4gPSBhdWRfbmN0c1tpXS5uOwo+ID4+ID4+ID4+ ID4gKwkJCQlicmVhazsKPiA+PiA+PiA+PiA+ICsJCQl9Cj4gPj4gPj4gPj4gPiArCQl9Cj4gPj4g Pj4gPj4gPiArCQlpZiAobiAhPSAwKSB7Cj4gPj4gPj4gPj4gPiArCQkJdG1wIHw9IEFVRF9DT05G SUdfTl9QUk9HX0VOQUJMRTsKPiA+PiA+PiA+PiA+ICsJCQluX2xvdyA9IG4gJiAweGZmZjsKPiA+ PiA+PiA+PiA+ICsJCQluX3VwID0gKG4gPj4gMTIpICYgMHhmZjsKPiA+PiA+PiA+PiA+ICsJCQl0 bXAgfD0gQVVEX0NPTkZJR19OX1BST0dfRU5BQkxFOwo+ID4+ID4+ID4+ID4gKwkJCXRtcCAmPSB+ QVVEX0NPTkZJR19VUFBFUl9OX01BU0s7Cj4gPj4gPj4gPj4gPiArCQkJdG1wIHw9IChuX3VwIDw8 Cj4gPj4gPj4gPj4gQVVEX0NPTkZJR19VUFBFUl9OX1NISUZUKTsKPiA+PiA+PiA+PiA+ICsJCQl0 bXAgJj0KPiA+PiB+QVVEX0NPTkZJR19MT1dFUl9OX01BU0s7Cj4gPj4gPj4gPj4gPiArCQkJdG1w IHw9IChuX2xvdyA8PAo+ID4+ID4+ID4+IEFVRF9DT05GSUdfTE9XRVJfTl9TSElGVCk7Cj4gPj4g Pj4gPj4gPiArCQl9Cj4gPj4gPj4gPj4gPiArCX0KPiA+PiA+PiA+Pgo+ID4+ID4+ID4+IFBsZWFz ZSBkZS1kdXBsaWNhdGUgdGhlIGNvcHktcGFzdGUgZnJvbSBwYXRjaCAyLiBBdCB0aGUgdmVyeSBs ZWFzdAo+ID4+ID4+IHlvdQo+ID4+ID4+ID4+IHNob3VsZCB1c2UgYSBoZWxwZXIgZm9yIGZpbmRp bmcgdGhlIHBhcmFtZXRlcnMgZnJvbSB0aGUgdGFibGUuCj4gPj4gPj4gPgo+ID4+ID4+ID4gT0su IEkgc2VlLgo+ID4+ID4+ID4KPiA+PiA+PiA+IFJlZ2FyZHMsCj4gPj4gPj4gPiBMaWJpbgo+ID4+ ID4+ID4KPiA+PiA+PiA+Pgo+ID4+ID4+ID4+ID4gKwo+ID4+ID4+ID4+ID4gIAlJOTE1X1dSSVRF KEhTV19BVURfQ0ZHKHBpcGUpLCB0bXApOwo+ID4+ID4+ID4+ID4gIH0KPiA+PiA+PiA+PiA+Cj4g Pj4gPj4gPj4gPiAtLQo+ID4+ID4+ID4+ID4gMS45LjEKPiA+PiA+PiA+PiA+Cj4gPj4gPj4gPj4g PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+ID4+ ID4+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4+ID4+ID4+ID4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+ID4+ID4+ID4+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4+ID4+ID4+Cj4gPj4gPj4gPj4gLS0KPiA+ PiA+PiA+PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIK PiA+PiA+Pgo+ID4+ID4+IC0tCj4gPj4gPj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNl IFRlY2hub2xvZ3kgQ2VudGVyCj4gPj4gCj4gPj4gLS0KPiA+PiBKYW5pIE5pa3VsYSwgSW50ZWwg T3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50 ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3 YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=