From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 20/20] drm/i915: write AVI infoframes for LSPCON Date: Wed, 12 Jul 2017 20:24:51 +0300 Message-ID: <20170712172451.GR12629@intel.com> References: <1499685528-6926-1-git-send-email-shashank.sharma@intel.com> <1499685528-6926-21-git-send-email-shashank.sharma@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: <1499685528-6926-21-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBKdWwgMTAsIDIwMTcgYXQgMDQ6NDg6NDhQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IExTUENPTiBjaGlwcyBjYW4ndCBwaWNrIHRoZSBIRE1JIEFWSSBpbmZvZnJhbWVz IGZyb20gZGlyZWN0IGxpbmsuCj4gSW4gb3JkZXIgdG8gcGFzcyBBVkkgaW5mb2ZyYW1lcyBmcm9t IGRpc3BsYXkgY29udHJvbGxlciB0byBMU1BDT04sCj4gd2UgaGF2ZSB0byB3cml0ZSBpbmZvZnJh bWUgcGFja2V0cyBpbnRvIHZlbmRvciBzcGVjaWZpZWQgQVVYIGFkZHJlc3MuCj4gCj4gQWxzbywg TFNQQ09OIHZlbmRvcnMgcHJvdmlkZSBBVVggb2Zmc2V0cywgdG8gaW5mb3JtIHRoZSBMU1BDT04K PiBjaGlwIHRoYXQgdGhlIEFWSSBJRiBwYWNrZXRzIGFyZSB3cml0dGVuLCBzbyB0aGF0IHRoZSBm aXJtd2FyZQo+IGNhbiBwaWNrIGl0IHVwIGFuZCBhcHBseS4KPiAKPiBUaGlzIHBhdGNoIGFkZHMg ZnVuY3Rpb24gdG8gd3JpdGUgQVZJIGluZm9mcmFtZXMgZm9yIGJvdGggTUNBIGFzCj4gd2VsbCBh cyBQYXJhZGUgVGVjaCBMU1BDT04gY2hpcHMuIFRoZXNlIHR3byB2ZW5kb3JzIHByb3ZpZGUgZGlm ZmVyZW50Cj4gbWV0aG9kcyBmb3Igd3JpdGluZyBpbmZvZnJhbWVzLCBzbyB0aGlzIHBhdGNoIGNv bnRhaW5zIHR3byBkaWZmZXJlbnQKPiBmdW5jdGlvbnMsIG9uZSBmb3IgZWFjaC4KClNlZW1zIHRv IG1lIHRoYXQgd2Ugc2hvdWxkIGFsc28gYmUgY2hlY2tpbmcgdGhlIHJlY2VpdmVyIGNhcCBmb3Ig dGhlCjQ0NC0+NDIwIGNvbnZlcnNpb24gc3VwcG9ydCwgYW5kIGVuYWJsZSBpdCBpbiB0aGUgUFJP VE9DT0xfQ09OVkVSVEVSCkRQQ0QgcmVnaXN0ZXIuIE9yIGFyZSB0aGVzZSBMU1BDT04gdGhpbmdz IGV2ZW4gaWdub3JpbmcgdGhhdCBwYXJ0IG9mIHRoZQpzcGVjPwoKPiAKPiBDYzogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogSW1yZSBEZWFrIDxp bXJlLmRlYWtAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hh c2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMgICAgfCAgIDggKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgfCAgIDMgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYyB8IDE3NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAx ODUgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggZjY5 MTcxMC4uOTQ0ZDlkNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTIwNjgs NiArMjA2OCwxNCBAQCB2b2lkIGludGVsX2RkaV9zZXRfYXZpX2luZm9mcmFtZShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkJICAgcmdiX3FyYW5nZV9saW1pdGVkLAo+ICAJCQkJ CSAgIHJnYl9xcmFuZ2Vfc2VsZWN0YWJsZSk7Cj4gIAo+ICsJaWYgKGNydGNfc3RhdGUtPmxzcGNv bl9hY3RpdmUpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50 ZWxfbHNwY29uKGVuY29kZXIpOwo+ICsKPiArCQkvKiBMU1BDT04gd3JpdGVzIGluZm9mcmFtZXMg dmlhIEFVWCAqLwo+ICsJCWxzcGNvbi0+d3JpdGVfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3Rh dGUsICZmcmFtZSk7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiAgCWludGVsX3dyaXRlX2luZm9m cmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCAmZnJhbWUpOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggZmFkOWE1My4uM2U2ODZkMiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gQEAgLTEwNzksNiArMTA3OSw5IEBAIHN0cnVjdCBpbnRlbF9sc3Bjb24g ewo+ICAJLyogQVZJIElGIHNldHVwIGZ1bmN0aW9uIGZvciBMU1BDT04gKi8KPiAgCXZvaWQgKCpz ZXRfaW5mb2ZyYW1lcykoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ICsJdm9pZCAoKndyaXRlX2lu Zm9mcmFtZSkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkJY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gKwkJCQl1bmlvbiBoZG1pX2luZm9mcmFt ZSAqZnJhbWUpOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPiBpbmRleCA1M2RkZDM5Li4wMWZkZGY3IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPiBAQCAtMzEsNiArMzEsMTggQEAKPiAg I2RlZmluZSBMU1BDT05fVkVORE9SX1BBUkFERV9PVUkgMHgwMDFDRjgKPiAgI2RlZmluZSBMU1BD T05fVkVORE9SX01DQV9PVUkgMHgwMDYwQUQKPiAgCj4gKy8qIEFVWCBhZGRyZXNzZXMgdG8gd3Jp dGUgQVZJIElGIGludG8gKi8KPiArI2RlZmluZSBMU1BDT05fTUNBX0FWSV9JRl9XUklURV9PRkZT RVQgMHg1QzAKPiArI2RlZmluZSBMU1BDT05fTUNBX0FWSV9JRl9DVFJMIDB4NURGCj4gKyNkZWZp bmUgIExTUENPTl9NQ0FfQVZJX0lGX0tJQ0tPRkYgKDEgPDwgMCkKPiArI2RlZmluZSAgTFNQQ09O X01DQV9BVklfSUZfSEFORExFRCAoMSA8PCAxKQo+ICsKPiArI2RlZmluZSBMU1BDT05fUEFSQURF X0FWSV9JRl9XUklURV9PRkZTRVQgMHg1MTYKPiArI2RlZmluZSBMU1BDT05fUEFSQURFX0FWSV9J Rl9DVFJMIDB4NTFFCj4gKyNkZWZpbmUgIExTUENPTl9QQVJBREVfQVZJX0lGX0tJQ0tPRkYgKDEg PDwgNykKPiArI2RlZmluZSBMU1BDT05fUEFSQURFX0FWSV9JRl9TVEFUVVMgMHg1MUYKPiArI2Rl ZmluZSAgTFNQQ09OX1BBUkFERV9BVklfSUZfSEFORExFRCAoMiA8PCA2KQo+ICsKPiAgc3RhdGlj IHN0cnVjdCBpbnRlbF9kcCAqbHNwY29uX3RvX2ludGVsX2RwKHN0cnVjdCBpbnRlbF9sc3Bjb24g KmxzcGNvbikKPiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPQo+ IEBAIC0yMTcsNiArMjI5LDE2NyBAQCBib29sIGxzcGNvbl95Y2JjcjQyMF9jb25maWcoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXJldHVybiBmYWxzZTsKPiAgfQo+ICAKPiAr c3RhdGljIGJvb2wgX2xzcGNvbl93cml0ZV9pbmZvZnJhbWVfcGFyYWRlKHN0cnVjdCBkcm1fZHBf YXV4ICphdXgsCj4gKwkJCQkJICAgdWludDhfdCAqYnVmZmVyLCBzc2l6ZV90IGxlbikKPiArewo+ ICsJdTggYXZpX2lmX2N0cmw7Cj4gKwl1OCBhdmlfaWZfc3RhdHVzOwo+ICsJdTggY291bnQgPSAw Owo+ICsJdTggcmV0cnkgPSA1Owo+ICsJdTggYXZpX2J1Zls4XSA9IHswLCB9Owo+ICsJdWludDE2 X3QgcmVnOwo+ICsJc3NpemVfdCByZXQ7Cj4gKwo+ICsJd2hpbGUgKGNvdW50KysgPCA0KSB7Cj4g Kwo+ICsJCWRvIHsKPiArCQkJLyogSXMgTFNQQ09OIEZXIHJlYWR5ICovCj4gKwkJCXJlZyA9IExT UENPTl9QQVJBREVfQVZJX0lGX0NUUkw7Cj4gKwkJCXJldCA9IGRybV9kcF9kcGNkX3JlYWQoYXV4 LCByZWcsICZhdmlfaWZfY3RybCwgMSk7Cj4gKwkJCWlmIChyZXQgPCAwKSB7Cj4gKwkJCQlEUk1f RVJST1IoIkRQQ0QgcmVhZCBmYWlsZWQsIGFkZDoweCV4XG4iLCByZWcpOwo+ICsJCQkJcmV0dXJu IGZhbHNlOwo+ICsJCQl9Cj4gKwo+ICsJCQlpZiAoYXZpX2lmX2N0cmwgJiBMU1BDT05fUEFSQURF X0FWSV9JRl9LSUNLT0ZGKQo+ICsJCQkJYnJlYWs7Cj4gKwkJCXVzbGVlcF9yYW5nZSgxMDAsIDIw MCk7Cj4gKwkJfSB3aGlsZSAoLS1yZXRyeSk7Cj4gKwo+ICsJCWlmICghKGF2aV9pZl9jdHJsICYg TFNQQ09OX1BBUkFERV9BVklfSUZfS0lDS09GRikpIHsKPiArCQkJRFJNX0VSUk9SKCJMU1BDT04g Rlcgbm90IHJlYWR5IGZvciBpbmZvZnJhbWVzXG4iKTsKPiArCQkJcmV0dXJuIGZhbHNlOwo+ICsJ CX0KPiArCj4gKwkJLyoKPiArCQkgKiBBVkkgSW5mb2ZyYW1lIGNvbnRhaW5zIDMxIGJ5dGVzIG9m IGRhdGE6Cj4gKwkJICoJSEIwIHRvIEhCMiAgICgzIGJ5dGVzIGhlYWRlcikKPiArCQkgKglQQjAg dG8gUEIyNyAoMjggYnl0ZXMgZGF0YSkKPiArCQkgKiBBcyBwZXIgUGFyYWRlIHNwZWMsIHdoaWxl IHNlbmRpbmcgZmlyc3QgYmxvY2sgKDhieXRlcyksCj4gKwkJICogYnl0ZSAwIGlzIGtlcHQgZm9y IHJlcXVlc3QgdG9rZW4gbm8sIGFuZCBieXRlMSAtIGJ5dGU3Cj4gKwkJICogY29udGFpbiBmcmFt ZSBkYXRhLiBTbyB3ZSBoYXZlIHRvIHBhY2sgZnJhbWUgbGlrZSB0aGlzOgo+ICsJCSAqCWZpcnN0 IGJsb2NrIG9mIDggYnl0ZXM6IDx0b2tlbj4gPEhCMC1IQjI+IDxQQjAtUEIzPgo+ICsJCSAqCW5l eHQgMyBibG9ja3M6IDxQQjQtUEIyNz4KPiArCQkgKi8KPiArCQlpZiAoY291bnQpCj4gKwkJCW1l bWNweShhdmlfYnVmLCBidWZmZXIgKyBjb3VudCAqIDggLSAxLCA4KTsKPiArCQllbHNlIHsKPiAr CQkJYXZpX2J1ZlswXSA9IDE7Cj4gKwkJCW1lbWNweSgmYXZpX2J1ZlsxXSwgYnVmZmVyLCA3KTsK PiArCQl9Cj4gKwo+ICsJCS8qIFdyaXRlIDggYnl0ZXMgb2YgZGF0YSBhdCBhIHRpbWUgKi8KPiAr CQlyZWcgPSBMU1BDT05fUEFSQURFX0FWSV9JRl9XUklURV9PRkZTRVQ7Cj4gKwkJcmV0ID0gZHJt X2RwX2RwY2Rfd3JpdGUoYXV4LCByZWcsIGF2aV9idWYsIDgpOwo+ICsJCWlmIChyZXQgPCAwKSB7 Cj4gKwkJCURSTV9FUlJPUigiRFBDRCB3cml0ZSBmYWlsZWQsIGFkZDoweCV4XG4iLCByZWcpOwo+ ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJfQo+ICsKPiArCQkvKgo+ICsJCSAqIFdoaWxlIHNlbmRp bmcgYSBibG9jayBvZiA4IGJ5ZXMsIHdlIG5lZWQgdG8gaW5mb3JtIGJsb2NrCj4gKwkJICogbnVt YmVyIHRvIEZXLCBieSBwcm9ncmFtbWluZyBiaXRzWzE6MF0gb2YgY3RybCByZWcgd2l0aAo+ICsJ CSAqIGJsb2NrIG51bWJlcgo+ICsJCSAqLwo+ICsJCWF2aV9pZl9jdHJsID0gMHg4MCArIGNvdW50 Owo+ICsJCXJlZyA9IExTUENPTl9QQVJBREVfQVZJX0lGX0NUUkw7Cj4gKwkJcmV0ID0gZHJtX2Rw X2RwY2Rfd3JpdGUoYXV4LCByZWcsICZhdmlfaWZfY3RybCwgMSk7Cj4gKwkJaWYgKHJldCA8IDAp IHsKPiArCQkJRFJNX0VSUk9SKCJEUENEIHdyaXRlIGZhaWxlZCwgYWRkOjB4JXhcbiIsIHJlZyk7 Cj4gKwkJCXJldHVybiBmYWxzZTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJLyogQ2hlY2sgTFNQQ09O IEZXIHN0YXR1cyAqLwo+ICsJcmVnID0gTFNQQ09OX1BBUkFERV9BVklfSUZfU1RBVFVTOwo+ICsJ cmV0ID0gZHJtX2RwX2RwY2RfcmVhZChhdXgsIHJlZywgJmF2aV9pZl9zdGF0dXMsIDEpOwo+ICsJ aWYgKHJldCA8IDApIHsKPiArCQlEUk1fRVJST1IoIkRQQ0Qgd3JpdGUgZmFpbGVkLCBhZGRyZXNz IDB4JXhcbiIsIHJlZyk7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCWlmIChhdmlf aWZfc3RhdHVzICYgTFNQQ09OX1BBUkFERV9BVklfSUZfSEFORExFRCkKPiArCQlEUk1fREVCVUdf S01TKCJBVkkgSUYgaGFuZGxlZCBieSBGV1xuIik7Cj4gKwo+ICsJcmV0dXJuIHRydWU7Cj4gK30K PiArCj4gK3N0YXRpYyBib29sIF9sc3Bjb25fd3JpdGVfaW5mb2ZyYW1lX21jYShzdHJ1Y3QgZHJt X2RwX2F1eCAqYXV4LAo+ICsJCQkJCXVpbnQ4X3QgKmJ1ZmZlciwgc3NpemVfdCBsZW4pCj4gK3sK PiArCWludCByZXQ7Cj4gKwl1aW50MzJfdCB2YWwgPSAwOwo+ICsJdWludDE2X3QgcmVnOwo+ICsJ dWludDhfdCAqZGF0YSA9IGJ1ZmZlcjsKPiArCj4gKwlyZWcgPSBMU1BDT05fTUNBX0FWSV9JRl9X UklURV9PRkZTRVQ7Cj4gKwl3aGlsZSAodmFsIDwgbGVuKSB7Cj4gKwkJcmV0ID0gZHJtX2RwX2Rw Y2Rfd3JpdGUoYXV4LCByZWcsIGRhdGEsIDEpOwo+ICsJCWlmIChyZXQgPCAwKSB7Cj4gKwkJCURS TV9FUlJPUigiRFBDRCB3cml0ZSBmYWlsZWQsIGFkZDoweCV4XG4iLCByZWcpOwo+ICsJCQlyZXR1 cm4gZmFsc2U7Cj4gKwkJfQo+ICsJCXZhbCsrOyByZWcrKzsgZGF0YSsrOwo+ICsJfQo+ICsKPiAr CXZhbCA9IDA7Cj4gKwlyZWcgPSBMU1BDT05fTUNBX0FWSV9JRl9DVFJMOwo+ICsJcmV0ID0gZHJt X2RwX2RwY2RfcmVhZChhdXgsIHJlZywgJnZhbCwgMSk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJ CURSTV9FUlJPUigiRFBDRCByZWFkIGZhaWxlZCwgYWRkcmVzcyAweCV4XG4iLCByZWcpOwo+ICsJ CXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwkvKiBJbmRpY2F0ZSBMU1BDT04gY2hpcCBhYm91 dCBpbmZvZnJhbWUsIGNsZWFyIGJpdCAxIGFuZCBzZXQgYml0IDAgKi8KPiArCXZhbCAmPSB+TFNQ Q09OX01DQV9BVklfSUZfSEFORExFRDsKPiArCXZhbCB8PSBMU1BDT05fTUNBX0FWSV9JRl9LSUNL T0ZGOwo+ICsKPiArCXJldCA9IGRybV9kcF9kcGNkX3dyaXRlKGF1eCwgcmVnLCAmdmFsLCAxKTsK PiArCWlmIChyZXQgPCAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJEUENEIHJlYWQgZmFpbGVkLCBhZGRy ZXNzIDB4JXhcbiIsIHJlZyk7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCXZhbCA9 IDA7Cj4gKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwgcmVnLCAmdmFsLCAxKTsKPiArCWlm IChyZXQgPCAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJEUENEIHJlYWQgZmFpbGVkLCBhZGRyZXNzIDB4 JXhcbiIsIHJlZyk7Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICsKPiArCWlmICh2YWwgPT0g TFNQQ09OX01DQV9BVklfSUZfSEFORExFRCkKPiArCQlEUk1fREVCVUdfS01TKCJBVkkgSUYgaGFu ZGxlZCBieSBGV1xuIik7Cj4gKwo+ICsJcmV0dXJuIHRydWU7Cj4gK30KPiArCj4gK3ZvaWQgbHNw Y29uX3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCQkg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICsJCQkJICB1bmlv biBoZG1pX2luZm9mcmFtZSAqZnJhbWUpCj4gK3sKPiArCWJvb2wgcmV0Owo+ICsJc3NpemVfdCBs ZW47Cj4gKwl1aW50OF90IGJ1ZltWSURFT19ESVBfREFUQV9TSVpFXTsKPiArCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgaW50 ZWxfbHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50ZWxfbHNwY29uKGVuY29kZXIpOwo+ICsKPiAr CWxlbiA9IGhkbWlfaW5mb2ZyYW1lX3BhY2soZnJhbWUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwo+ICsJ aWYgKGxlbiA8IDApIHsKPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byBwYWNrIEFWSSBJRlxuIik7 Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCWlmIChsc3Bjb24tPnZlbmRvciA9PSBMU1BDT05f VkVORE9SX01DQSkKPiArCQlyZXQgPSBfbHNwY29uX3dyaXRlX2luZm9mcmFtZV9tY2EoJmludGVs X2RwLT5hdXgsIGJ1ZiwgbGVuKTsKPiArCWVsc2UKPiArCQlyZXQgPSBfbHNwY29uX3dyaXRlX2lu Zm9mcmFtZV9wYXJhZGUoJmludGVsX2RwLT5hdXgsIGJ1ZiwgbGVuKTsKPiArCj4gKwlpZiAoIXJl dCkKPiArCQlEUk1fRVJST1IoIkZhaWxlZCB0byB3cml0ZSBBVkkgaW5mb2ZyYW1lc1xuIik7Cj4g KwllbHNlCj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiQVZJIGluZm9mcmFtZXMgdXBkYXRlZCBzdWNj ZXNzZnVsbHlcbiIpOwo+ICt9Cj4gKwo+ICB2b2lkIGxzcGNvbl9yZXN1bWUoc3RydWN0IGludGVs X2xzcGNvbiAqbHNwY29uKQo+ICB7Cj4gIAllbnVtIGRybV9sc3Bjb25fbW9kZSBleHBlY3RlZF9t b2RlOwo+IEBAIC0yODIsNiArNDU1LDcgQEAgYm9vbCBsc3Bjb25faW5pdChzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiAgCj4gIAljb25uZWN0b3ItPnljYmNyXzQy MF9hbGxvd2VkID0gdHJ1ZTsKPiAgCWxzcGNvbi0+c2V0X2luZm9mcmFtZXMgPSBpbnRlbF9kZGlf c2V0X2F2aV9pbmZvZnJhbWU7Cj4gKwlsc3Bjb24tPndyaXRlX2luZm9mcmFtZSA9IGxzcGNvbl93 cml0ZV9pbmZvZnJhbWU7Cj4gIAlkcm1fZHBfcmVhZF9kZXNjKCZkcC0+YXV4LCAmZHAtPmRlc2Ms IGRybV9kcF9pc19icmFuY2goZHAtPmRwY2QpKTsKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJTdWNj ZXNzOiBMU1BDT04gaW5pdFxuIik7Cj4gLS0gCj4gMi43LjQKCi0tIApWaWxsZSBTeXJqw6Rsw6QK SW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=