From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v3 01/23] drm: add vblank hooks to struct drm_crtc_funcs Date: Tue, 07 Feb 2017 16:01:35 +0200 Message-ID: <3998840.MQ8qj2lG9G@avalon> References: <1486458995-31018-1-git-send-email-shawnguo@kernel.org> <1486458995-31018-2-git-send-email-shawnguo@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id A5EC46E35F for ; Tue, 7 Feb 2017 14:01:16 +0000 (UTC) In-Reply-To: <1486458995-31018-2-git-send-email-shawnguo@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Shawn Guo Cc: Neil Armstrong , Daniel Vetter , Liviu Dudau , Daniel Vetter , Marek Vasut , Alexey Brodkin , Russell King , Xinliang Liu , Tomi Valkeinen , Mali DP Maintainers , Ben Skeggs , Jyri Sarha , dri-devel@lists.freedesktop.org, Maxime Ripard List-Id: dri-devel@lists.freedesktop.org SGkgU2hhd24sCgpUaGFuayB5b3UgZm9yIHRoZSBwYXRjaC4KCk9uIFR1ZXNkYXkgMDcgRmViIDIw MTcgMTc6MTY6MTMgU2hhd24gR3VvIHdyb3RlOgo+IEZyb206IFNoYXduIEd1byA8c2hhd24uZ3Vv QGxpbmFyby5vcmc+Cj4gCj4gVGhlIHZibGFuayBpcyBtb3N0bHkgQ1JUQyBzcGVjaWZpYyBhbmQg aW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDUlRDCj4gZHJpdmVyLiAgTGV0J3Mga2VlcCB0aGUgdmJs YW5rIGhvb2tzIHN0cnVjdCBkcm1fZHJpdmVyIGZvciBsZWdhY3kKPiBkcml2ZXJzLCBhbmQgYWRk IGNvcnJlc3BvbmRpbmcgaG9va3MgaW4gc3RydWN0IGRybV9jcnRjX2Z1bmNzLiAgVGhlc2UKPiBo b29rcyB0YWtlIHN0cnVjdCBkcm1fY3J0YyBwb2ludGVyIGFzIGFyZ3VtZW50LCBhbmQgd2lsbCBi ZSBjYWxsZWQgYnkKPiBjb3JlIHZibGFuayBoYW5kbGluZyBjb2RlIGZvciBEUklWRVJfTU9ERVNF VCBkcml2ZXJzLgo+IAo+IFRoZSBuZXcgaG9va3MgZ2V0IHBsdWdnZWQgaW50byBjb3JlIGJ5IGFk ZGluZyB3cmFwcGVyIGZ1bmN0aW9ucyBmb3IKPiB2YmxhbmsgaGFuZGxpbmcgY29kZS4gIFRoZSAu Z2V0X3ZibGFua19jb3VudGVyIGhvb2sgaXMgZWZmZWN0aXZlbHkKPiBvcHRpb25hbCwgYXMgd2Ug cHJvdmlkZSBkcm1fdmJsYW5rX25vX2h3X2NvdW50ZXIoKSBhcyB0aGUgZGVmYXVsdAo+IGZhbGxi YWNrIGluIHRoZSB3cmFwcGVyIGZ1bmN0aW9uLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNoYXduIEd1 byA8c2hhd24uZ3VvQGxpbmFyby5vcmc+CgpSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8 bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9pcnEuYyB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgfCA0NCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPiAgaW5jbHVkZS9kcm0vZHJtX2Rydi5oICAgICB8ICA5 ICsrKysrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTAwIGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gaW5kZXggZTA2Y2YxMWViYjRhLi42NDZiM2U1N2I5YWQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1faXJxLmMKPiBAQCAtODksNiArODksMjEgQEAgc3RhdGljIHZvaWQgc3RvcmVf dmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkCj4gaW50IHBpcGUsIHdyaXRl X3NlcXVubG9jaygmdmJsYW5rLT5zZXFsb2NrKTsKPiAgfQo+IAo+ICtzdGF0aWMgdTMyIF9fZ2V0 X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBl KQo+ICt7Cj4gKwlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VU KSkgewo+ICsJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGRybV9jcnRjX2Zyb21faW5kZXgoZGV2 LCBwaXBlKTsKPiArCj4gKwkJaWYgKGNydGMtPmZ1bmNzLT5nZXRfdmJsYW5rX2NvdW50ZXIpCj4g KwkJCXJldHVybiBjcnRjLT5mdW5jcy0+Z2V0X3ZibGFua19jb3VudGVyKGNydGMpOwo+ICsJfQo+ ICsKPiArCWlmIChkZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyKQo+ICsJCXJldHVybiBk ZXYtPmRyaXZlci0+Z2V0X3ZibGFua19jb3VudGVyKGRldiwgcGlwZSk7Cj4gKwo+ICsJcmV0dXJu IGRybV92Ymxhbmtfbm9faHdfY291bnRlcihkZXYsIHBpcGUpOwo+ICt9Cj4gKwo+ICAvKgo+ICAg KiBSZXNldCB0aGUgc3RvcmVkIHRpbWVzdGFtcCBmb3IgdGhlIGN1cnJlbnQgdmJsYW5rIGNvdW50 IHRvIGNvcnJlc3BvbmQKPiAgICogdG8gdGhlIGxhc3QgdmJsYW5rIG9jY3VycmVkLgo+IEBAIC0x MTIsOSArMTI3LDkgQEAgc3RhdGljIHZvaWQgZHJtX3Jlc2V0X3ZibGFua190aW1lc3RhbXAoc3Ry dWN0IGRybV9kZXZpY2UKPiAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSAqIHdoZW4gZHJtX3ZibGFu a19lbmFibGUoKSBhcHBsaWVzIHRoZSBkaWZmCj4gIAkgKi8KPiAgCWRvIHsKPiAtCQljdXJfdmJs YW5rID0gZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlcihkZXYsIHBpcGUpOwo+ICsJCWN1 cl92YmxhbmsgPSBfX2dldF92YmxhbmtfY291bnRlcihkZXYsIHBpcGUpOwo+ICAJCXJjID0gZHJt X2dldF9sYXN0X3ZibHRpbWVzdGFtcChkZXYsIHBpcGUsICZ0X3ZibGFuaywgMCk7Cj4gLQl9IHdo aWxlIChjdXJfdmJsYW5rICE9IGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIoZGV2LCBw aXBlKSAmJgo+IC0tY291bnQgPiAwKTsgKwl9IHdoaWxlIChjdXJfdmJsYW5rICE9IF9fZ2V0X3Zi bGFua19jb3VudGVyKGRldiwgcGlwZSkgCiYmCj4gLS1jb3VudCA+IDApOwo+IAo+ICAJLyoKPiAg CSAqIE9ubHkgcmVpbml0aWFsaXplIGNvcnJlc3BvbmRpbmcgdmJsYW5rIHRpbWVzdGFtcCBpZiBo aWdoLXByZWNpc2lvbgo+IHF1ZXJ5IEBAIC0xNjgsOSArMTgzLDkgQEAgc3RhdGljIHZvaWQgZHJt X3VwZGF0ZV92YmxhbmtfY291bnQoc3RydWN0Cj4gZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBp bnQgcGlwZSwgKiBjb3JyZXNwb25kaW5nIHZibGFuayB0aW1lc3RhbXAuCj4gIAkgKi8KPiAgCWRv IHsKPiAtCQljdXJfdmJsYW5rID0gZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRlcihkZXYs IHBpcGUpOwo+ICsJCWN1cl92YmxhbmsgPSBfX2dldF92YmxhbmtfY291bnRlcihkZXYsIHBpcGUp Owo+ICAJCXJjID0gZHJtX2dldF9sYXN0X3ZibHRpbWVzdGFtcChkZXYsIHBpcGUsICZ0X3ZibGFu aywgZmxhZ3MpOwo+IC0JfSB3aGlsZSAoY3VyX3ZibGFuayAhPSBkZXYtPmRyaXZlci0+Z2V0X3Zi bGFua19jb3VudGVyKGRldiwgcGlwZSkgJiYKPiAtLWNvdW50ID4gMCk7ICsJfSB3aGlsZSAoY3Vy X3ZibGFuayAhPSBfX2dldF92YmxhbmtfY291bnRlcihkZXYsIHBpcGUpIAomJgo+IC0tY291bnQg PiAwKTsKPiAKPiAgCWlmIChkZXYtPm1heF92YmxhbmtfY291bnQgIT0gMCkgewo+ICAJCS8qIHRy dXN0IHRoZSBodyBjb3VudGVyIHdoZW4gaXQncyBhcm91bmQgKi8KPiBAQCAtMjc1LDYgKzI5MCwy MCBAQCB1MzIgZHJtX2FjY3VyYXRlX3ZibGFua19jb3VudChzdHJ1Y3QgZHJtX2NydGMgKmNydGMp Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fYWNjdXJhdGVfdmJsYW5rX2NvdW50KTsKPiAKPiAr c3RhdGljIHZvaWQgX19kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNp Z25lZCBpbnQgcGlwZSkKPiArewo+ICsJaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBE UklWRVJfTU9ERVNFVCkpIHsKPiArCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkcm1fY3J0Y19m cm9tX2luZGV4KGRldiwgcGlwZSk7Cj4gKwo+ICsJCWlmIChjcnRjLT5mdW5jcy0+ZGlzYWJsZV92 YmxhbmspIHsKPiArCQkJY3J0Yy0+ZnVuY3MtPmRpc2FibGVfdmJsYW5rKGNydGMpOwo+ICsJCQly ZXR1cm47Cj4gKwkJfQo+ICsJfQo+ICsKPiArCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayhk ZXYsIHBpcGUpOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBEaXNhYmxlIHZibGFuayBpcnEncyBvbiBj cnRjLCBtYWtlIHN1cmUgdGhhdCBsYXN0IHZibGFuayBjb3VudAo+ICAgKiBvZiBoYXJkd2FyZSBh bmQgY29ycmVzcG9uZGluZyBjb25zaXN0ZW50IHNvZnR3YXJlIHZibGFuayBjb3VudGVyCj4gQEAg LTI5OCw3ICszMjcsNyBAQCBzdGF0aWMgdm9pZCB2YmxhbmtfZGlzYWJsZV9hbmRfc2F2ZShzdHJ1 Y3QgZHJtX2RldmljZQo+ICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKSAqIGhhcmR3YXJlIHBvdGVu dGlhbGx5IHJ1bnRpbWUgc3VzcGVuZGVkLgo+ICAJICovCj4gIAlpZiAodmJsYW5rLT5lbmFibGVk KSB7Cj4gLQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rKGRldiwgcGlwZSk7Cj4gKwkJX19k aXNhYmxlX3ZibGFuayhkZXYsIHBpcGUpOwo+ICAJCXZibGFuay0+ZW5hYmxlZCA9IGZhbHNlOwo+ ICAJfQo+IAo+IEBAIC0xMDI3LDYgKzEwNTYsMTggQEAgdm9pZCBkcm1fY3J0Y19zZW5kX3ZibGFu a19ldmVudChzdHJ1Y3QgZHJtX2NydGMKPiAqY3J0YywgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9j cnRjX3NlbmRfdmJsYW5rX2V2ZW50KTsKPiAKPiArc3RhdGljIGludCBfX2VuYWJsZV92Ymxhbmso c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gK3sKPiArCWlmIChk cm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKSB7Cj4gKwkJc3RydWN0 IGRybV9jcnRjICpjcnRjID0gZHJtX2NydGNfZnJvbV9pbmRleChkZXYsIHBpcGUpOwo+ICsKPiAr CQlpZiAoY3J0Yy0+ZnVuY3MtPmVuYWJsZV92YmxhbmspCj4gKwkJCXJldHVybiBjcnRjLT5mdW5j cy0+ZW5hYmxlX3ZibGFuayhjcnRjKTsKPiArCX0KPiArCj4gKwlyZXR1cm4gZGV2LT5kcml2ZXIt PmVuYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsKPiArfQo+ICsKPiAgLyoqCj4gICAqIGRybV92Ymxh bmtfZW5hYmxlIC0gZW5hYmxlIHRoZSB2YmxhbmsgaW50ZXJydXB0IG9uIGEgQ1JUQwo+ICAgKiBA ZGV2OiBEUk0gZGV2aWNlCj4gQEAgLTEwNTIsNyArMTA5Myw3IEBAIHN0YXRpYyBpbnQgZHJtX3Zi bGFua19lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiB1bnNpZ25lZCBpbnQgcGlwZSkg KiB0aW1lc3RhbXBzLiBGaWx0ZXJjb2RlIGluIGRybV9oYW5kbGVfdmJsYW5rKCkgd2lsbAo+ICAJ CSAqIHByZXZlbnQgZG91YmxlLWFjY291bnRpbmcgb2Ygc2FtZSB2YmxhbmsgaW50ZXJ2YWwuCj4g IAkJICovCj4gLQkJcmV0ID0gZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsK PiArCQlyZXQgPSBfX2VuYWJsZV92YmxhbmsoZGV2LCBwaXBlKTsKPiAgCQlEUk1fREVCVUcoImVu YWJsaW5nIHZibGFuayBvbiBjcnRjICV1LCByZXQ6ICVkXG4iLCBwaXBlLCByZXQpOwo+ICAJCWlm IChyZXQpCj4gIAkJCWF0b21pY19kZWMoJnZibGFuay0+cmVmY291bnQpOwo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+IGluZGV4 IDhmMGIxOTVlNGE1OS4uNDMyM2FjZWZhNTk2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9jcnRjLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gQEAgLTYwMSw2ICs2MDEs NTAgQEAgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHsKPiAgCSAqLwo+ICAJdm9pZCAoKmF0b21pY19w cmludF9zdGF0ZSkoc3RydWN0IGRybV9wcmludGVyICpwLAo+ICAJCQkJICAgY29uc3Qgc3RydWN0 IGRybV9jcnRjX3N0YXRlICpzdGF0ZSk7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAZ2V0X3ZibGFua19j b3VudGVyOgo+ICsJICoKPiArCSAqIERyaXZlciBjYWxsYmFjayBmb3IgZmV0Y2hpbmcgYSByYXcg aGFyZHdhcmUgdmJsYW5rIGNvdW50ZXIgZm9yIHRoZQo+ICsJICogQ1JUQy4gSXQncyBtZWFudCB0 byBiZSB1c2VkIGJ5IG5ldyBkcml2ZXJzIGFzIHRoZSByZXBsYWNlbWVudCBvZgo+ICsJICogJmRy bV9kcml2ZXIuZ2V0X3ZibGFua19jb3VudGVyIGhvb2suCj4gKwkgKgo+ICsJICogVGhpcyBjYWxs YmFjayBpcyBvcHRpb25hbC4gSWYgYSBkZXZpY2UgZG9lc24ndCBoYXZlIGEgaGFyZHdhcmUKPiAr CSAqIGNvdW50ZXIsIHRoZSBkcml2ZXIgY2FuIHNpbXBseSBsZWF2ZSB0aGUgaG9vayBhcyBOVUxM LiBUaGUgRFJNIGNvcmUKPiArCSAqIHdpbGwgYWNjb3VudCBmb3IgbWlzc2VkIHZibGFuayBldmVu dHMgd2hpbGUgaW50ZXJydXB0cyB3aGVyZSAKZGlzYWJsZWQKPiArCSAqIGJhc2VkIG9uIHN5c3Rl bSB0aW1lc3RhbXBzLgo+ICsJICoKPiArCSAqIFdyYXBhcm91bmQgaGFuZGxpbmcgYW5kIGxvc3Mg b2YgZXZlbnRzIGR1ZSB0byBtb2Rlc2V0dGluZyBpcyBkZWFsdAo+ICsJICogd2l0aCBpbiB0aGUg RFJNIGNvcmUgY29kZSwgYXMgbG9uZyBhcyBkcml2ZXJzIGNhbGwKPiArCSAqIGRybV9jcnRjX3Zi bGFua19vZmYoKSBhbmQgZHJtX2NydGNfdmJsYW5rX29uKCkgd2hlbiBkaXNhYmxpbmcgb3IKPiAr CSAqIGVuYWJsaW5nIGEgQ1JUQy4KPiArCSAqCj4gKwkgKiBSZXR1cm5zOgo+ICsJICoKPiArCSAq IFJhdyB2YmxhbmsgY291bnRlciB2YWx1ZS4KPiArCSAqLwo+ICsJdTMyICgqZ2V0X3ZibGFua19j b3VudGVyKShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICsKPiArCS8qKgo+ICsJICogQGVuYWJs ZV92Ymxhbms6Cj4gKwkgKgo+ICsJICogRW5hYmxlIHZibGFuayBpbnRlcnJ1cHRzIGZvciB0aGUg Q1JUQy4gSXQncyBtZWFudCB0byBiZSB1c2VkIGJ5Cj4gKwkgKiBuZXcgZHJpdmVycyBhcyB0aGUg cmVwbGFjZW1lbnQgb2YgJmRybV9kcml2ZXIuZW5hYmxlX3ZibGFuayBob29rLgo+ICsJICoKPiAr CSAqIFJldHVybnM6Cj4gKwkgKgo+ICsJICogWmVybyBvbiBzdWNjZXNzLCBhcHByb3ByaWF0ZSBl cnJubyBpZiB0aGUgdmJsYW5rIGludGVycnVwdCBjYW5ub3QKPiArCSAqIGJlIGVuYWJsZWQuCj4g KwkgKi8KPiArCWludCAoKmVuYWJsZV92YmxhbmspKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4g Kwo+ICsJLyoqCj4gKwkgKiBAZGlzYWJsZV92Ymxhbms6Cj4gKwkgKgo+ICsJICogRGlzYWJsZSB2 YmxhbmsgaW50ZXJydXB0cyBmb3IgdGhlIENSVEMuIEl0J3MgbWVhbnQgdG8gYmUgdXNlZCBieQo+ ICsJICogbmV3IGRyaXZlcnMgYXMgdGhlIHJlcGxhY2VtZW50IG9mICZkcm1fZHJpdmVyLmRpc2Fi bGVfdmJsYW5rIGhvb2suCj4gKwkgKi8KPiArCXZvaWQgKCpkaXNhYmxlX3ZibGFuaykoc3RydWN0 IGRybV9jcnRjICpjcnRjKTsKPiAgfTsKPiAKPiAgLyoqCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUv ZHJtL2RybV9kcnYuaCBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAo+IGluZGV4IGYyYzAwNDBkZGMz YS4uNDBhZTg5MTA2NTk0IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcnYuaAo+ICsr KyBiL2luY2x1ZGUvZHJtL2RybV9kcnYuaAo+IEBAIC0xMzAsNiArMTMwLDkgQEAgc3RydWN0IGRy bV9kcml2ZXIgewo+ICAJICogZHJtX2NydGNfdmJsYW5rX29mZigpIGFuZCBkcm1fY3J0Y192Ymxh bmtfb24oKSB3aGVuIGRpc2FibGluZyBvcgo+ICAJICogZW5hYmxpbmcgYSBDUlRDLgo+ICAJICoK PiArCSAqIFRoaXMgaXMgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IG5ldyBk cml2ZXJzLgo+ICsJICogVXNlICZkcm1fY3J0Y19mdW5jcy5nZXRfdmJsYW5rX2NvdW50ZXIgaW5z dGVhZC4KPiArCSAqCj4gIAkgKiBSZXR1cm5zOgo+ICAJICoKPiAgCSAqIFJhdyB2YmxhbmsgY291 bnRlciB2YWx1ZS4KPiBAQCAtMTQyLDYgKzE0NSw5IEBAIHN0cnVjdCBkcm1fZHJpdmVyIHsKPiAg CSAqIEVuYWJsZSB2YmxhbmsgaW50ZXJydXB0cyBmb3IgdGhlIENSVEMgc3BlY2lmaWVkIHdpdGgg dGhlIHBpcGUKPiAgCSAqIGFyZ3VtZW50Lgo+ICAJICoKPiArCSAqIFRoaXMgaXMgZGVwcmVjYXRl ZCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IG5ldyBkcml2ZXJzLgo+ICsJICogVXNlICZkcm1f Y3J0Y19mdW5jcy5lbmFibGVfdmJsYW5rIGluc3RlYWQuCj4gKwkgKgo+ICAJICogUmV0dXJuczoK PiAgCSAqCj4gIAkgKiBaZXJvIG9uIHN1Y2Nlc3MsIGFwcHJvcHJpYXRlIGVycm5vIGlmIHRoZSBn aXZlbiBAY3J0YydzIHZibGFuawo+IEBAIC0xNTQsNiArMTYwLDkgQEAgc3RydWN0IGRybV9kcml2 ZXIgewo+ICAJICoKPiAgCSAqIERpc2FibGUgdmJsYW5rIGludGVycnVwdHMgZm9yIHRoZSBDUlRD IHNwZWNpZmllZCB3aXRoIHRoZSBwaXBlCj4gIAkgKiBhcmd1bWVudC4KPiArCSAqCj4gKwkgKiBU aGlzIGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBieSBuZXcgZHJpdmVycy4K PiArCSAqIFVzZSAmZHJtX2NydGNfZnVuY3MuZGlzYWJsZV92YmxhbmsgaW5zdGVhZC4KPiAgCSAq Lwo+ICAJdm9pZCAoKmRpc2FibGVfdmJsYW5rKSAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHBpcGUpOwoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK