From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: [PATCH 3/5] drm: introduce pipe color correction properties Date: Tue, 23 Feb 2016 14:39:10 +0000 Message-ID: <1456238352-2478-4-git-send-email-lionel.g.landwerlin@intel.com> References: <1456238352-2478-1-git-send-email-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1456238352-2478-1-git-send-email-lionel.g.landwerlin@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Kumar@freedesktop.org, kausalmalladi@gmail.com, kiran.s.kumar@intel.com List-Id: dri-devel@lists.freedesktop.org UGF0Y2ggYmFzZWQgb24gYSBwcmV2aW91cyBzZXJpZXMgYnkgU2hhc2hhbmsgU2hhcm1hLgoKVGhp cyBpbnRyb2R1Y2VzIG9wdGlvbmFsIHByb3BlcnRpZXMgdG8gZW5hYmxlIGNvbG9yIGNvcnJlY3Rp b24gYXQgdGhlCnBpcGUgbGV2ZWwuIEl0IHJlbGllcyBvbiAzIHRyYW5zZm9ybWF0aW9ucyBhcHBs aWVkIHRvIGV2ZXJ5IHBpeGVscwpkaXNwbGF5ZWQuIEZpcnN0IGEgbG9va3VwIGludG8gYSBkZWdh bW1hIHRhYmxlLCB0aGVuIGEgbXVsdGlwbGljYXRpb24Kb2YgdGhlIHJnYiBjb21wb25lbnRzIGJ5 IGEgM3gzIG1hdHJpeCBhbmQgZmluYWxseSBhbm90aGVyIGxvb2t1cCBpbnRvCmEgZ2FtbWEgdGFi bGUuCgpUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgY2FuIGJlIGFkZGVkIHRvIGEgcGlwZSA6CiAg LSBERUdBTU1BX0xVVCA6IGJsb2IgY29udGFpbmluZyBkZWdhbW1hIExVVAogIC0gREVHQU1NQV9M VVRfU0laRSA6IG51bWJlciBvZiBlbGVtZW50cyBpbiBERUdBTU1BX0xVVAogIC0gQ1RNIDogdHJh bnNmb3JtYXRpb24gbWF0cml4IGFwcGxpZWQgYWZ0ZXIgdGhlIGRlZ2FtbWEgTFVUCiAgLSBHQU1N QV9MVVQgOiBibG9iIGNvbnRhaW5pbmcgZ2FtbWEgTFVUCiAgLSBHQU1NQV9MVVRfU0laRSA6IG51 bWJlciBvZiBlbGVtZW50cyBpbiBHQU1NQV9MVVQKCkRFR0FNTUFfTFVUX1NJWkUgYW5kIEdBTU1B X0xVVF9TSVpFIGFyZSByZWFkIG9ubHkgcHJvcGVydGllcywgc2V0IGJ5CnRoZSBkcml2ZXIgdG8g dGVsbCB1c2Vyc3BhY2UgYXBwbGljYXRpb25zIHdoYXQgc2l6ZXMgc2hvdWxkIGJlIHRoZQpsb29r dXAgdGFibGVzIGluIERFR0FNTUFfTFVUIGFuZCBHQU1NQV9MVVQuCgpBIGhlbHBlciBpcyBhbHNv IHByb3ZpZGVkIHNvIGxlZ2FjeSBnYW1tYSBjb3JyZWN0aW9uIGlzIHJlZGlyZWN0ZWQKdGhyb3Vn aCB0aGVzZSBuZXcgcHJvcGVydGllcy4KCnYyOiBSZWdpc3RlciBMVVQgc2l6ZSBwcm9wZXJ0aWVz IGFzIHJhbmdlCgp2MzogRml4IHJvdW5kIGluIGRybV9jb2xvcl9sdXRfZ2V0X3ZhbHVlKCkgaGVs cGVyCiAgICBNb3JlIGRvY3Mgb24gaG93IGRlZ2FtbWEvZ2FtbWEgcHJvcGVydGllcyBhcmUgdXNl ZAoKdjQ6IFVwZGF0ZSBjb250cmlidXRvcnMKCnY1OiBSZW5hbWUgQ1RNX01BVFJJWCBwcm9wZXJ0 eSB0byBDVE0gKERvaCEpCiAgICBBZGQgbGVnYWN5IGdhbW1hX3NldCBhdG9taWMgaGVscGVyCiAg ICBEZXNjcmliZSBDVE0vTFVUIGFjcm9ueW1zIGluIHRoZSBrZXJuZWwgZG9jCgpTaWduZWQtb2Zm LWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4K U2lnbmVkLW9mZi1ieTogS3VtYXIsIEtpcmFuIFMgPGtpcmFuLnMua3VtYXJAaW50ZWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBLYXVzYWwgTWFsbGFkaSA8a2F1c2FsbWFsbGFkaUBnbWFpbC5jb20+ClJl dmlld2VkLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgotLS0KIERv Y3VtZW50YXRpb24vRG9jQm9vay9ncHUudG1wbCAgICAgIHwgIDU5ICsrKysrKysrKysrKysrKysr KysrLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCAgODYgKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YyB8IDEwMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Yy5jICAgICAgICAgIHwgIDM1ICsrKysrKysrKysrKwogZHJpdmVycy9ncHUv ZHJtL2RybV9jcnRjX2hlbHBlci5jICAgfCAgMzMgKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9k cm1fYXRvbWljX2hlbHBlci5oICAgICB8ICAgMyArKwogaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAg ICAgICAgICAgICAgfCAgNDYgKysrKysrKysrKysrKysrLQogaW5jbHVkZS9kcm0vZHJtX2NydGNf aGVscGVyLmggICAgICAgfCAgIDMgKysKIGluY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCAgICAg ICAgIHwgIDE1ICsrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCAzNzggaW5zZXJ0aW9ucygrKSwgNSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwg Yi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwKaW5kZXggZmU2YjM2YS4uMTY5MmM0ZCAx MDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsCisrKyBiL0RvY3VtZW50 YXRpb24vRG9jQm9vay9ncHUudG1wbApAQCAtMTgxNiw3ICsxODE2LDcgQEAgdm9pZCBpbnRlbF9j cnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCTx0ZCB2YWxpZ249InRvcCIgPkRlc2Ny aXB0aW9uL1Jlc3RyaWN0aW9uczwvdGQ+CiAJPC90cj4KIAk8dHI+Ci0JPHRkIHJvd3NwYW49IjM3 IiB2YWxpZ249InRvcCIgPkRSTTwvdGQ+CisJPHRkIHJvd3NwYW49IjQyIiB2YWxpZ249InRvcCIg PkRSTTwvdGQ+CiAJPHRkIHZhbGlnbj0idG9wIiA+R2VuZXJpYzwvdGQ+CiAJPHRkIHZhbGlnbj0i dG9wIiA+4oCccm90YXRpb27igJ08L3RkPgogCTx0ZCB2YWxpZ249InRvcCIgPkJJVE1BU0s8L3Rk PgpAQCAtMjA2OCw3ICsyMDY4LDcgQEAgdm9pZCBpbnRlbF9jcnRfaW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCTx0ZCB2YWxpZ249InRvcCIgPnByb3BlcnR5IHRvIHN1Z2dlc3QgYW4gWSBv ZmZzZXQgZm9yIGEgY29ubmVjdG9yPC90ZD4KIAk8L3RyPgogCTx0cj4KLQk8dGQgcm93c3Bhbj0i MyIgdmFsaWduPSJ0b3AiID5PcHRpb25hbDwvdGQ+CisJPHRkIHJvd3NwYW49IjgiIHZhbGlnbj0i dG9wIiA+T3B0aW9uYWw8L3RkPgogCTx0ZCB2YWxpZ249InRvcCIgPuKAnHNjYWxpbmcgbW9kZeKA nTwvdGQ+CiAJPHRkIHZhbGlnbj0idG9wIiA+RU5VTTwvdGQ+CiAJPHRkIHZhbGlnbj0idG9wIiA+ eyAiTm9uZSIsICJGdWxsIiwgIkNlbnRlciIsICJGdWxsIGFzcGVjdCIgfTwvdGQ+CkBAIC0yMDky LDYgKzIwOTIsNjEgQEAgdm9pZCBpbnRlbF9jcnRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCTx0ZCB2YWxpZ249InRvcCIgPlRCRDwvdGQ+CiAJPC90cj4KIAk8dHI+CisJPHRkIHZhbGln bj0idG9wIiA+4oCcREVHQU1NQV9MVVTigJ08L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPkJMT0I8 L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPjA8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPkNSVEM8 L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPkRSTSBwcm9wZXJ0eSB0byBzZXQgdGhlIGRlZ2FtbWEg bG9va3VwIHRhYmxlCisJCShMVVQpIG1hcHBpbmcgcGl4ZWwgZGF0YSBmcm9tIHRoZSBmcmFtZWJ1 ZmZlciBiZWZvcmUgaXQgaXMKKwkJZ2l2ZW4gdG8gdGhlIHRyYW5zZm9ybWF0aW9uIG1hdHJpeC4g VGhlIGRhdGEgaXMgYW4gaW50ZXJwcmV0ZWQKKwkJYXMgYW4gYXJyYXkgb2Ygc3RydWN0IGRybV9j b2xvcl9sdXQgZWxlbWVudHMuIEhhcmR3YXJlIG1pZ2h0CisJCWNob29zZSBub3QgdG8gdXNlIHRo ZSBmdWxsIHByZWNpc2lvbiBvZiB0aGUgTFVUIGVsZW1lbnRzIG5vcgorCQl1c2UgYWxsIHRoZSBl bGVtZW50cyBvZiB0aGUgTFVUIChmb3IgZXhhbXBsZSB0aGUgaGFyZHdhcmUKKwkJbWlnaHQgY2hv b3NlIHRvIGludGVycG9sYXRlIGJldHdlZW4gTFVUWzBdIGFuZCBMVVRbNF0pLiA8L3RkPgorCTwv dHI+CisJPHRyPgorCTx0ZCB2YWxpZ249InRvcCIgPuKAnERFR0FNTUFfTFVUX1NJWkXigJ08L3Rk PgorCTx0ZCB2YWxpZ249InRvcCIgPlJBTkdFIHwgSU1NVVRBQkxFPC90ZD4KKwk8dGQgdmFsaWdu PSJ0b3AiID5NaW49MCwgTWF4PVVJTlRfTUFYPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5DUlRD PC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5EUk0gcHJvcGVydHkgdG8gZ2l2ZXMgdGhlIHNpemUg b2YgdGhlIGxvb2t1cAorCQl0YWJsZSB0byBiZSBzZXQgb24gdGhlIERFR0FNTUFfTFVUIHByb3Bl cnR5ICh0aGUgc2l6ZSBkZXBlbmRzCisJCW9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlKS48L3Rk PgorCTwvdHI+CisJPHRyPgorCTx0ZCB2YWxpZ249InRvcCIgPuKAnENUTeKAnTwvdGQ+CisJPHRk IHZhbGlnbj0idG9wIiA+QkxPQjwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+MDwvdGQ+CisJPHRk IHZhbGlnbj0idG9wIiA+Q1JUQzwvdGQ+CisJPHRkIHZhbGlnbj0idG9wIiA+RFJNIHByb3BlcnR5 IHRvIHNldCB0aGUgY3VycmVudAorCQl0cmFuc2Zvcm1hdGlvbiBtYXRyaXggKENUTSkgYXBwbHkg dG8gcGl4ZWwgZGF0YSBhZnRlciB0aGUKKwkJbG9va3VwIHRocm91Z2ggdGhlIGRlZ2FtbWEgTFVU IGFuZCBiZWZvcmUgdGhlIGxvb2t1cCB0aHJvdWdoCisJCXRoZSBnYW1tYSBMVVQuIFRoZSBkYXRh IGlzIGFuIGludGVycHJldGVkIGFzIGEgc3RydWN0CisJCWRybV9jb2xvcl9jdG0uPC90ZD4KKwk8 L3RyPgorCTx0cj4KKwk8dGQgdmFsaWduPSJ0b3AiID7igJxHQU1NQV9MVVTigJ08L3RkPgorCTx0 ZCB2YWxpZ249InRvcCIgPkJMT0I8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPjA8L3RkPgorCTx0 ZCB2YWxpZ249InRvcCIgPkNSVEM8L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPkRSTSBwcm9wZXJ0 eSB0byBzZXQgdGhlIGdhbW1hIGxvb2t1cCB0YWJsZQorCQkoTFVUKSBtYXBwaW5nIHBpeGVsIGRh dGEgYWZ0ZXIgdG8gdGhlIHRyYW5zZm9ybWF0aW9uIG1hdHJpeCB0bworCQlkYXRhIHNlbnQgdG8g dGhlIGNvbm5lY3Rvci4gVGhlIGRhdGEgaXMgYW4gaW50ZXJwcmV0ZWQgYXMgYW4KKwkJYXJyYXkg b2Ygc3RydWN0IGRybV9jb2xvcl9sdXQgZWxlbWVudHMuIEhhcmR3YXJlIG1pZ2h0IGNob29zZQor CQlub3QgdG8gdXNlIHRoZSBmdWxsIHByZWNpc2lvbiBvZiB0aGUgTFVUIGVsZW1lbnRzIG5vciB1 c2UgYWxsCisJCXRoZSBlbGVtZW50cyBvZiB0aGUgTFVUIChmb3IgZXhhbXBsZSB0aGUgaGFyZHdh cmUgbWlnaHQgY2hvb3NlCisJCXRvIGludGVycG9sYXRlIGJldHdlZW4gTFVUWzBdIGFuZCBMVVRb NF0pLjwvdGQ+CisJPC90cj4KKwk8dHI+CisJPHRkIHZhbGlnbj0idG9wIiA+4oCcR0FNTUFfTFVU X1NJWkXigJ08L3RkPgorCTx0ZCB2YWxpZ249InRvcCIgPlJBTkdFIHwgSU1NVVRBQkxFPC90ZD4K Kwk8dGQgdmFsaWduPSJ0b3AiID5NaW49MCwgTWF4PVVJTlRfTUFYPC90ZD4KKwk8dGQgdmFsaWdu PSJ0b3AiID5DUlRDPC90ZD4KKwk8dGQgdmFsaWduPSJ0b3AiID5EUk0gcHJvcGVydHkgdG8gZ2l2 ZXMgdGhlIHNpemUgb2YgdGhlIGxvb2t1cAorCQl0YWJsZSB0byBiZSBzZXQgb24gdGhlIEdBTU1B X0xVVCBwcm9wZXJ0eSAodGhlIHNpemUgZGVwZW5kcyBvbgorCQl0aGUgdW5kZXJseWluZyBoYXJk d2FyZSkuPC90ZD4KKwk8L3RyPgorCTx0cj4KIAk8dGQgcm93c3Bhbj0iMjAiIHZhbGlnbj0idG9w IiA+aTkxNTwvdGQ+CiAJPHRkIHJvd3NwYW49IjIiIHZhbGlnbj0idG9wIiA+R2VuZXJpYzwvdGQ+ CiAJPHRkIHZhbGlnbj0idG9wIiA+IkJyb2FkY2FzdCBSR0IiPC90ZD4KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j CmluZGV4IDA5MjYyMGMuLmI3NjdhNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMjgsNiArMjgs NyBAQAogCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5o PgorI2luY2x1ZGUgPGRybS9kcm1fbW9kZS5oPgogI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVs cGVyLmg+CiAKIC8qKgpAQCAtMzc2LDYgKzM3Nyw1NyBAQCBpbnQgZHJtX2F0b21pY19zZXRfbW9k ZV9wcm9wX2Zvcl9jcnRjKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCiBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfc2V0X21vZGVfcHJvcF9mb3JfY3J0Yyk7CiAKIC8qKgorICogZHJtX2F0 b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2IgLSByZXBsYWNlIGEgYmxvYiBwcm9wZXJ0eQorICog QGJsb2I6IGEgcG9pbnRlciB0byB0aGUgbWVtYmVyIGJsb2IgdG8gYmUgcmVwbGFjZWQKKyAqIEBu ZXdfYmxvYjogdGhlIG5ldyBibG9iIHRvIHJlcGxhY2Ugd2l0aAorICogQGV4cGVjdGVkX3NpemU6 IHRoZSBleHBlY3RlZCBzaXplIG9mIHRoZSBuZXcgYmxvYgorICogQHJlcGxhY2VkOiB3aGV0aGVy IHRoZSBibG9iIGhhcyBiZWVuIHJlcGxhY2VkCisgKgorICogUkVUVVJOUzoKKyAqIFplcm8gb24g c3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlCisgKi8KK3N0YXRpYyBpbnQKK2RybV9hdG9t aWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9iKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqKmJsb2Is CisJCQkJIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbmV3X2Jsb2IsCisJCQkJIGJvb2wgKnJl cGxhY2VkKQoreworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqb2xkX2Jsb2IgPSAqYmxvYjsK KworCWlmIChvbGRfYmxvYiA9PSBuZXdfYmxvYikKKwkJcmV0dXJuIDA7CisKKwlpZiAob2xkX2Js b2IpCisJCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKG9sZF9ibG9iKTsKKwlpZiAobmV3 X2Jsb2IpCisJCWRybV9wcm9wZXJ0eV9yZWZlcmVuY2VfYmxvYihuZXdfYmxvYik7CisJKmJsb2Ig PSBuZXdfYmxvYjsKKwkqcmVwbGFjZWQgPSB0cnVlOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRp YyBpbnQKK2RybV9hdG9taWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9iX2Zyb21faWQoc3RydWN0IGRy bV9jcnRjICpjcnRjLAorCQkJCQkgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoqYmxvYiwKKwkJ CQkJIHVpbnQ2NF90IGJsb2JfaWQsCisJCQkJCSBzc2l6ZV90IGV4cGVjdGVkX3NpemUsCisJCQkJ CSBib29sICpyZXBsYWNlZCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2 OworCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbmV3X2Jsb2IgPSBOVUxMOworCisJaWYgKGJs b2JfaWQgIT0gMCkgeworCQluZXdfYmxvYiA9IGRybV9wcm9wZXJ0eV9sb29rdXBfYmxvYihkZXYs IGJsb2JfaWQpOworCQlpZiAobmV3X2Jsb2IgPT0gTlVMTCkKKwkJCXJldHVybiAtRUlOVkFMOwor CQlpZiAoZXhwZWN0ZWRfc2l6ZSA+IDAgJiYgZXhwZWN0ZWRfc2l6ZSAhPSBuZXdfYmxvYi0+bGVu Z3RoKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIGRybV9hdG9taWNfcmVwbGFj ZV9wcm9wZXJ0eV9ibG9iKGJsb2IsIG5ld19ibG9iLCByZXBsYWNlZCk7Cit9CisKKy8qKgogICog ZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eSAtIHNldCBwcm9wZXJ0eSBvbiBDUlRDCiAgKiBA Y3J0YzogdGhlIGRybSBDUlRDIHRvIHNldCBhIHByb3BlcnR5IG9uCiAgKiBAc3RhdGU6IHRoZSBz dGF0ZSBvYmplY3QgdG8gdXBkYXRlIHdpdGggdGhlIG5ldyBwcm9wZXJ0eSB2YWx1ZQpAQCAtMzk3 LDYgKzQ0OSw3IEBAIGludCBkcm1fYXRvbWljX2NydGNfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0 cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOworCWJvb2wg cmVwbGFjZWQgPSBmYWxzZTsKIAlpbnQgcmV0OwogCiAJaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ cHJvcF9hY3RpdmUpCkBAIC00MDcsOCArNDYwLDMxIEBAIGludCBkcm1fYXRvbWljX2NydGNfc2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJcmV0ID0gZHJtX2F0b21pY19zZXRf bW9kZV9wcm9wX2Zvcl9jcnRjKHN0YXRlLCBtb2RlKTsKIAkJZHJtX3Byb3BlcnR5X3VucmVmZXJl bmNlX2Jsb2IobW9kZSk7CiAJCXJldHVybiByZXQ7Ci0JfQotCWVsc2UgaWYgKGNydGMtPmZ1bmNz LT5hdG9taWNfc2V0X3Byb3BlcnR5KQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5k ZWdhbW1hX2x1dF9wcm9wZXJ0eSkgeworCQlyZXQgPSBkcm1fYXRvbWljX3JlcGxhY2VfcHJvcGVy dHlfYmxvYl9mcm9tX2lkKGNydGMsCisJCQkJCSZzdGF0ZS0+ZGVnYW1tYV9sdXQsCisJCQkJCXZh bCwKKwkJCQkJLTEsCisJCQkJCSZyZXBsYWNlZCk7CisJCXN0YXRlLT5jb2xvcl9tZ210X2NoYW5n ZWQgPSByZXBsYWNlZDsKKwkJcmV0dXJuIHJldDsKKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNv bmZpZy0+Y3RtX3Byb3BlcnR5KSB7CisJCXJldCA9IGRybV9hdG9taWNfcmVwbGFjZV9wcm9wZXJ0 eV9ibG9iX2Zyb21faWQoY3J0YywKKwkJCQkJJnN0YXRlLT5jdG0sCisJCQkJCXZhbCwKKwkJCQkJ c2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfY3RtKSwKKwkJCQkJJnJlcGxhY2VkKTsKKwkJc3RhdGUt PmNvbG9yX21nbXRfY2hhbmdlZCA9IHJlcGxhY2VkOworCQlyZXR1cm4gcmV0OworCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gY29uZmlnLT5nYW1tYV9sdXRfcHJvcGVydHkpIHsKKwkJcmV0ID0gZHJt X2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChjcnRjLAorCQkJCQkmc3RhdGUt PmdhbW1hX2x1dCwKKwkJCQkJdmFsLAorCQkJCQktMSwKKwkJCQkJJnJlcGxhY2VkKTsKKwkJc3Rh dGUtPmNvbG9yX21nbXRfY2hhbmdlZCA9IHJlcGxhY2VkOworCQlyZXR1cm4gcmV0OworCX0gZWxz ZSBpZiAoY3J0Yy0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpCiAJCXJldHVybiBjcnRjLT5m dW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShjcnRjLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7CiAJ ZWxzZQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTQ0NCw2ICs1MjAsMTIgQEAgZHJtX2F0b21pY19j cnRjX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCSp2YWwgPSBzdGF0ZS0+ YWN0aXZlOwogCWVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9tb2RlX2lkKQogCQkq dmFsID0gKHN0YXRlLT5tb2RlX2Jsb2IpID8gc3RhdGUtPm1vZGVfYmxvYi0+YmFzZS5pZCA6IDA7 CisJZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5kZWdhbW1hX2x1dF9wcm9wZXJ0eSkKKwkJ KnZhbCA9IChzdGF0ZS0+ZGVnYW1tYV9sdXQpID8gc3RhdGUtPmRlZ2FtbWFfbHV0LT5iYXNlLmlk IDogMDsKKwllbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmN0bV9wcm9wZXJ0eSkKKwkJKnZh bCA9IChzdGF0ZS0+Y3RtKSA/IHN0YXRlLT5jdG0tPmJhc2UuaWQgOiAwOworCWVsc2UgaWYgKHBy b3BlcnR5ID09IGNvbmZpZy0+Z2FtbWFfbHV0X3Byb3BlcnR5KQorCQkqdmFsID0gKHN0YXRlLT5n YW1tYV9sdXQpID8gc3RhdGUtPmdhbW1hX2x1dC0+YmFzZS5pZCA6IDA7CiAJZWxzZSBpZiAoY3J0 Yy0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkpCiAJCXJldHVybiBjcnRjLT5mdW5jcy0+YXRv bWljX2dldF9wcm9wZXJ0eShjcnRjLCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7CiAJZWxzZQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCA0ZGE0ZjJhLi43YWI4MDQwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAtMjUxMywxMCArMjUxMywxNyBAQCB2b2lkIF9f ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpj cnRjLAogCiAJaWYgKHN0YXRlLT5tb2RlX2Jsb2IpCiAJCWRybV9wcm9wZXJ0eV9yZWZlcmVuY2Vf YmxvYihzdGF0ZS0+bW9kZV9ibG9iKTsKKwlpZiAoc3RhdGUtPmRlZ2FtbWFfbHV0KQorCQlkcm1f cHJvcGVydHlfcmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPmRlZ2FtbWFfbHV0KTsKKwlpZiAoc3RhdGUt PmN0bSkKKwkJZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0YXRlLT5jdG0pOworCWlmIChz dGF0ZS0+Z2FtbWFfbHV0KQorCQlkcm1fcHJvcGVydHlfcmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPmdh bW1hX2x1dCk7CiAJc3RhdGUtPm1vZGVfY2hhbmdlZCA9IGZhbHNlOwogCXN0YXRlLT5hY3RpdmVf Y2hhbmdlZCA9IGZhbHNlOwogCXN0YXRlLT5wbGFuZXNfY2hhbmdlZCA9IGZhbHNlOwogCXN0YXRl LT5jb25uZWN0b3JzX2NoYW5nZWQgPSBmYWxzZTsKKwlzdGF0ZS0+Y29sb3JfbWdtdF9jaGFuZ2Vk ID0gZmFsc2U7CiAJc3RhdGUtPmV2ZW50ID0gTlVMTDsKIH0KIEVYUE9SVF9TWU1CT0woX19kcm1f YXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSk7CkBAIC0yNTU3LDYgKzI1NjQsOSBA QCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKIAkJCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCiB7CiAJ ZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPm1vZGVfYmxvYik7CisJZHJtX3By b3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RhdGUtPmRlZ2FtbWFfbHV0KTsKKwlkcm1fcHJvcGVy dHlfdW5yZWZlcmVuY2VfYmxvYihzdGF0ZS0+Y3RtKTsKKwlkcm1fcHJvcGVydHlfdW5yZWZlcmVu Y2VfYmxvYihzdGF0ZS0+Z2FtbWFfbHV0KTsKIH0KIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWlj X2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUpOwogCkBAIC0yODcwLDMgKzI4ODAsOTYgQEAgdm9p ZCBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogCWtmcmVlKHN0YXRlKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUpOworCisvKioKKyAqIGRybV9h dG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQgLSBzZXQgdGhlIGxlZ2FjeSBnYW1tYSBjb3Jy ZWN0aW9uIHRhYmxlCisgKiBAY3J0YzogQ1JUQyBvYmplY3QKKyAqIEByZWQ6IHJlZCBjb3JyZWN0 aW9uIHRhYmxlCisgKiBAZ3JlZW46IGdyZWVuIGNvcnJlY3Rpb24gdGFibGUKKyAqIEBibHVlOiBn cmVlbiBjb3JyZWN0aW9uIHRhYmxlCisgKiBAc3RhcnQ6CisgKiBAc2l6ZTogc2l6ZSBvZiB0aGUg dGFibGVzCisgKgorICogSW1wbGVtZW50cyBzdXBwb3J0IGZvciBsZWdhY3kgZ2FtbWEgY29ycmVj dGlvbiB0YWJsZSBmb3IgZHJpdmVycworICogdGhhdCBzdXBwb3J0IGNvbG9yIG1hbmFnZW1lbnQg dGhyb3VnaCB0aGUgREVHQU1NQV9MVVQvR0FNTUFfTFVUCisgKiBwcm9wZXJ0aWVzLgorICovCit2 b2lkIGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpj cnRjLAorCQkJCQl1MTYgKnJlZCwgdTE2ICpncmVlbiwgdTE2ICpibHVlLAorCQkJCQl1aW50MzJf dCBzdGFydCwgdWludDMyX3Qgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Yy0+ZGV2OworCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29u ZmlnOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGU7CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gTlVM TDsKKwlzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqYmxvYl9kYXRhOworCWludCBpLCByZXQgPSAwOwor CisJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGNydGMtPmRldik7CisJaWYgKCFzdGF0 ZSkKKwkJcmV0dXJuOworCisJYmxvYiA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfYmxvYihkZXYsCisJ CQkJCXNpemVvZihzdHJ1Y3QgZHJtX2NvbG9yX2x1dCkgKiBzaXplLAorCQkJCQlOVUxMKTsKKwor CXN0YXRlLT5hY3F1aXJlX2N0eCA9IGNydGMtPmRldi0+bW9kZV9jb25maWcuYWNxdWlyZV9jdHg7 CityZXRyeToKKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwg Y3J0Yyk7CisJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgeworCQlyZXQgPSBQVFJfRVJSKGNydGNf c3RhdGUpOworCQlnb3RvIGZhaWw7CisJfQorCisJLyogUmVzZXQgREVHQU1NQV9MVVQgYW5kIENU TSBwcm9wZXJ0aWVzLiAqLworCXJldCA9IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoY3J0 YywgY3J0Y19zdGF0ZSwKKwkJCWNvbmZpZy0+ZGVnYW1tYV9sdXRfcHJvcGVydHksIDApOworCWlm IChyZXQpCisJCWdvdG8gZmFpbDsKKwlyZXQgPSBkcm1fYXRvbWljX2NydGNfc2V0X3Byb3BlcnR5 KGNydGMsIGNydGNfc3RhdGUsCisJCQljb25maWctPmN0bV9wcm9wZXJ0eSwgMCk7CisJaWYgKHJl dCkKKwkJZ290byBmYWlsOworCisJLyogU2V0IEdBTU1BX0xVVCB3aXRoIGxlZ2FjeSB2YWx1ZXMu ICovCisJaWYgKGJsb2IgPT0gTlVMTCkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGZhaWw7 CisJfQorCisJYmxvYl9kYXRhID0gKHN0cnVjdCBkcm1fY29sb3JfbHV0ICopIGJsb2ItPmRhdGE7 CisJZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgeworCQlibG9iX2RhdGFbaV0ucmVkID0gcmVk W2ldOworCQlibG9iX2RhdGFbaV0uZ3JlZW4gPSBncmVlbltpXTsKKwkJYmxvYl9kYXRhW2ldLmJs dWUgPSBibHVlW2ldOworCX0KKworCXJldCA9IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHko Y3J0YywgY3J0Y19zdGF0ZSwKKwkJCWNvbmZpZy0+Z2FtbWFfbHV0X3Byb3BlcnR5LCBibG9iLT5i YXNlLmlkKTsKKwlpZiAocmV0KQorCQlnb3RvIGZhaWw7CisKKwlyZXQgPSBkcm1fYXRvbWljX2Nv bW1pdChzdGF0ZSk7CisJaWYgKHJldCAhPSAwKQorCQlnb3RvIGZhaWw7CisKKwlkcm1fcHJvcGVy dHlfdW5yZWZlcmVuY2VfYmxvYihibG9iKTsKKworCS8qIERyaXZlciB0YWtlcyBvd25lcnNoaXAg b2Ygc3RhdGUgb24gc3VjY2Vzc2Z1bCBjb21taXQuICovCisJcmV0dXJuOworZmFpbDoKKwlpZiAo cmV0ID09IC1FREVBRExLKQorCQlnb3RvIGJhY2tvZmY7CisKKwlkcm1fYXRvbWljX3N0YXRlX2Zy ZWUoc3RhdGUpOworCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKGJsb2IpOworCisJcmV0 dXJuOworYmFja29mZjoKKwlkcm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKKwlkcm1fYXRv bWljX2xlZ2FjeV9iYWNrb2ZmKHN0YXRlKTsKKworCWdvdG8gcmV0cnk7Cit9CitFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwppbmRl eCA4NDUxNDAwLi41MDA2NmQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwpAQCAtMTU1NCw2ICsxNTU0LDQxIEBA IHN0YXRpYyBpbnQgZHJtX21vZGVfY3JlYXRlX3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJcmV0dXJuIC1FTk9NRU07CiAJZGV2LT5tb2RlX2NvbmZpZy5wcm9w X21vZGVfaWQgPSBwcm9wOwogCisJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LAorCQkJ RFJNX01PREVfUFJPUF9CTE9CLAorCQkJIkRFR0FNTUFfTFVUIiwgMCk7CisJaWYgKCFwcm9wKQor CQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmlnLmRlZ2FtbWFfbHV0X3Byb3BlcnR5 ID0gcHJvcDsKKworCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKGRldiwKKwkJCURS TV9NT0RFX1BST1BfSU1NVVRBQkxFLAorCQkJIkRFR0FNTUFfTFVUX1NJWkUiLCAwLCBVSU5UX01B WCk7CisJaWYgKCFwcm9wKQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmlnLmRl Z2FtbWFfbHV0X3NpemVfcHJvcGVydHkgPSBwcm9wOworCisJcHJvcCA9IGRybV9wcm9wZXJ0eV9j cmVhdGUoZGV2LAorCQkJRFJNX01PREVfUFJPUF9CTE9CLAorCQkJIkNUTSIsIDApOworCWlmICgh cHJvcCkKKwkJcmV0dXJuIC1FTk9NRU07CisJZGV2LT5tb2RlX2NvbmZpZy5jdG1fcHJvcGVydHkg PSBwcm9wOworCisJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGUoZGV2LAorCQkJRFJNX01PREVf UFJPUF9CTE9CLAorCQkJIkdBTU1BX0xVVCIsIDApOworCWlmICghcHJvcCkKKwkJcmV0dXJuIC1F Tk9NRU07CisJZGV2LT5tb2RlX2NvbmZpZy5nYW1tYV9sdXRfcHJvcGVydHkgPSBwcm9wOworCisJ cHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UoZGV2LAorCQkJRFJNX01PREVfUFJPUF9J TU1VVEFCTEUsCisJCQkiR0FNTUFfTFVUX1NJWkUiLCAwLCBVSU5UX01BWCk7CisJaWYgKCFwcm9w KQorCQlyZXR1cm4gLUVOT01FTTsKKwlkZXYtPm1vZGVfY29uZmlnLmdhbW1hX2x1dF9zaXplX3By b3BlcnR5ID0gcHJvcDsKKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVy LmMKaW5kZXggNzUzOWVlYS4uNzk1NTVkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxwZXIuYwpA QCAtMTA3NSwzICsxMDc1LDM2IEBAIGludCBkcm1faGVscGVyX2NydGNfbW9kZV9zZXRfYmFzZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSwKIAlyZXR1cm4gZHJtX3BsYW5lX2hl bHBlcl9jb21taXQocGxhbmUsIHBsYW5lX3N0YXRlLCBvbGRfZmIpOwogfQogRVhQT1JUX1NZTUJP TChkcm1faGVscGVyX2NydGNfbW9kZV9zZXRfYmFzZSk7CisKKy8qKgorICogZHJtX2hlbHBlcl9j cnRjX2VuYWJsZV9jb2xvcl9tZ210IC0gZW5hYmxlIGNvbG9yIG1hbmFnZW1lbnQgcHJvcGVydGll cworICogQGNydGM6IERSTSBDUlRDCisgKiBAZGVnYW1tYV9sdXRfc2l6ZTogdGhlIHNpemUgb2Yg dGhlIGRlZ2FtbWEgbHV0IChiZWZvcmUgQ1NDKQorICogQGdhbW1hX2x1dF9zaXplOiB0aGUgc2l6 ZSBvZiB0aGUgZ2FtbWEgbHV0IChhZnRlciBDU0MpCisgKgorICogVGhpcyBmdW5jdGlvbiBsZXRz IHRoZSBkcml2ZXIgZW5hYmxlIHRoZSBjb2xvciBjb3JyZWN0aW9uIHByb3BlcnRpZXMgb24gYQor ICogQ1JUQy4gVGhpcyBpbmNsdWRlcyAzIGRlZ2FtbWEsIGNzYyBhbmQgZ2FtbWEgcHJvcGVydGll cyB0aGF0IHVzZXJzcGFjZSBjYW4KKyAqIHNldCBhbmQgMiBzaXplIHByb3BlcnRpZXMgdG8gaW5m b3JtIHRoZSB1c2Vyc3BhY2Ugb2YgdGhlIGx1dCBzaXplcy4KKyAqLwordm9pZCBkcm1faGVscGVy X2NydGNfZW5hYmxlX2NvbG9yX21nbXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgICAg ICBpbnQgZGVnYW1tYV9sdXRfc2l6ZSwKKwkJCQkgICAgICAgaW50IGdhbW1hX2x1dF9zaXplKQor eworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IGRybV9tb2Rl X2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7CisKKwlkcm1fb2JqZWN0X2F0dGFj aF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwKKwkJCQkgICBjb25maWctPmRlZ2FtbWFfbHV0X3Byb3Bl cnR5LCAwKTsKKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwKKwkJCQkg ICBjb25maWctPmN0bV9wcm9wZXJ0eSwgMCk7CisJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHko JmNydGMtPmJhc2UsCisJCQkJICAgY29uZmlnLT5nYW1tYV9sdXRfcHJvcGVydHksIDApOworCisJ ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNydGMtPmJhc2UsCisJCQkJICAgY29uZmlnLT5k ZWdhbW1hX2x1dF9zaXplX3Byb3BlcnR5LAorCQkJCSAgIGRlZ2FtbWFfbHV0X3NpemUpOworCWRy bV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjcnRjLT5iYXNlLAorCQkJCSAgIGNvbmZpZy0+Z2Ft bWFfbHV0X3NpemVfcHJvcGVydHksCisJCQkJICAgZ2FtbWFfbHV0X3NpemUpOworfQorRVhQT1JU X1NZTUJPTChkcm1faGVscGVyX2NydGNfZW5hYmxlX2NvbG9yX21nbXQpOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNf aGVscGVyLmgKaW5kZXggZmU1ZWZhZC4uOTA1NDU5OGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJt L2RybV9hdG9taWNfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIu aApAQCAtMTQ2LDYgKzE0Niw5IEBAIF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ry b3lfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCQkJICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSk7CiB2b2lkIGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJ CQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlKTsKK3ZvaWQgZHJtX2F0b21p Y19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJCXUx NiAqcmVkLCB1MTYgKmdyZWVuLCB1MTYgKmJsdWUsCisJCQkJCXVpbnQzMl90IHN0YXJ0LCB1aW50 MzJfdCBzaXplKTsKIAogLyoqCiAgKiBkcm1fYXRvbWljX2NydGNfZm9yX2VhY2hfcGxhbmUgLSBp dGVyYXRlIG92ZXIgcGxhbmVzIGN1cnJlbnRseSBhdHRhY2hlZCB0byBDUlRDCmRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAppbmRleCA3 ZmFkMTkzLi5mNjE4ODAzIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCisrKyBi L2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKQEAgLTMwNSw2ICszMDUsOCBAQCBzdHJ1Y3QgZHJtX3Bs YW5lX2hlbHBlcl9mdW5jczsKICAqIEBtb2RlX2NoYW5nZWQ6IGNydGNfc3RhdGUtPm1vZGUgb3Ig Y3J0Y19zdGF0ZS0+ZW5hYmxlIGhhcyBiZWVuIGNoYW5nZWQKICAqIEBhY3RpdmVfY2hhbmdlZDog Y3J0Y19zdGF0ZS0+YWN0aXZlIGhhcyBiZWVuIHRvZ2dsZWQuCiAgKiBAY29ubmVjdG9yc19jaGFu Z2VkOiBjb25uZWN0b3JzIHRvIHRoaXMgY3J0YyBoYXZlIGJlZW4gdXBkYXRlZAorICogQGNvbG9y X21nbXRfY2hhbmdlZDogY29sb3IgbWFuYWdlbWVudCBwcm9wZXJ0aWVzIGhhdmUgY2hhbmdlZCAo ZGVnYW1tYSBvcgorICoJZ2FtbWEgTFVUIG9yIENTQyBtYXRyaXgpCiAgKiBAcGxhbmVfbWFzazog Yml0bWFzayBvZiAoMSA8PCBkcm1fcGxhbmVfaW5kZXgocGxhbmUpKSBvZiBhdHRhY2hlZCBwbGFu ZXMKICAqIEBjb25uZWN0b3JfbWFzazogYml0bWFzayBvZiAoMSA8PCBkcm1fY29ubmVjdG9yX2lu ZGV4KGNvbm5lY3RvcikpIG9mIGF0dGFjaGVkIGNvbm5lY3RvcnMKICAqIEBlbmNvZGVyX21hc2s6 IGJpdG1hc2sgb2YgKDEgPDwgZHJtX2VuY29kZXJfaW5kZXgoZW5jb2RlcikpIG9mIGF0dGFjaGVk IGVuY29kZXJzCkBAIC0zMTIsNiArMzE0LDExIEBAIHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1 bmNzOwogICogCXVwZGF0ZSB0byBlbnN1cmUgZnJhbWVidWZmZXIgY2xlYW51cCBpc24ndCBkb25l IHRvbyBlYXJseQogICogQGFkanVzdGVkX21vZGU6IGZvciB1c2UgYnkgaGVscGVycyBhbmQgZHJp dmVycyB0byBjb21wdXRlIGFkanVzdGVkIG1vZGUgdGltaW5ncwogICogQG1vZGU6IGN1cnJlbnQg bW9kZSB0aW1pbmdzCisgKiBAZGVnYW1tYV9sdXQ6IExvb2t1cCB0YWJsZSBmb3IgY29udmVydGlu ZyBmcmFtZWJ1ZmZlciBwaXhlbCBkYXRhCisgKgliZWZvcmUgYXBwbHkgdGhlIGNvbnZlcnNpb24g bWF0cml4CisgKiBAY3RtOiBUcmFuc2Zvcm1hdGlvbiBtYXRyaXgKKyAqIEBnYW1tYV9sdXQ6IExv b2t1cCB0YWJsZSBmb3IgY29udmVydGluZyBwaXhlbCBkYXRhIGFmdGVyIHRoZQorICoJY29udmVy c2lvbiBtYXRyaXgKICAqIEBldmVudDogb3B0aW9uYWwgcG9pbnRlciB0byBhIERSTSBldmVudCB0 byBzaWduYWwgdXBvbiBjb21wbGV0aW9uIG9mIHRoZQogICogCXN0YXRlIHVwZGF0ZQogICogQHN0 YXRlOiBiYWNrcG9pbnRlciB0byBnbG9iYWwgZHJtX2F0b21pY19zdGF0ZQpAQCAtMzMzLDYgKzM0 MCw3IEBAIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB7CiAJYm9vbCBtb2RlX2NoYW5nZWQgOiAxOwog CWJvb2wgYWN0aXZlX2NoYW5nZWQgOiAxOwogCWJvb2wgY29ubmVjdG9yc19jaGFuZ2VkIDogMTsK Kwlib29sIGNvbG9yX21nbXRfY2hhbmdlZCA6IDE7CiAKIAkvKiBhdHRhY2hlZCBwbGFuZXMgYml0 bWFzazoKIAkgKiBXQVJOSU5HOiB0cmFuc2l0aW9uYWwgaGVscGVycyBkbyBub3QgbWFpbnRhaW4g cGxhbmVfbWFzayBzbwpAQCAtMzU1LDYgKzM2MywxMSBAQCBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg ewogCS8qIGJsb2IgcHJvcGVydHkgdG8gZXhwb3NlIGN1cnJlbnQgbW9kZSB0byBhdG9taWMgdXNl cnNwYWNlICovCiAJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICptb2RlX2Jsb2I7CiAKKwkvKiBi bG9iIHByb3BlcnR5IHRvIGV4cG9zZSBjb2xvciBtYW5hZ2VtZW50IHRvIHVzZXJzcGFjZSAqLwor CXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQ7CisJc3RydWN0IGRybV9wcm9w ZXJ0eV9ibG9iICpjdG07CisJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQ7CisK IAlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKIAogCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZTsKQEAgLTc1Nyw3ICs3NzAsNyBAQCBzdHJ1Y3QgZHJtX2NydGMg ewogCWludCB4LCB5OwogCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyAqZnVuY3M7CiAKLQkv KiBDUlRDIGdhbW1hIHNpemUgZm9yIHJlcG9ydGluZyB0byB1c2Vyc3BhY2UgKi8KKwkvKiBMZWdh Y3kgRkIgQ1JUQyBnYW1tYSBzaXplIGZvciByZXBvcnRpbmcgdG8gdXNlcnNwYWNlICovCiAJdWlu dDMyX3QgZ2FtbWFfc2l6ZTsKIAl1aW50MTZfdCAqZ2FtbWFfc3RvcmU7CiAKQEAgLTIwMjYsNiAr MjAzOSwxNSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIHsKICAqIEBwcm9wZXJ0eV9i bG9iX2xpc3Q6IGxpc3Qgb2YgYWxsIHRoZSBibG9iIHByb3BlcnR5IG9iamVjdHMKICAqIEBibG9i X2xvY2s6IG11dGV4IGZvciBibG9iIHByb3BlcnR5IGFsbG9jYXRpb24gYW5kIG1hbmFnZW1lbnQK ICAqIEAqX3Byb3BlcnR5OiBjb3JlIHByb3BlcnR5IHRyYWNraW5nCisgKiBAZGVnYW1tYV9sdXRf cHJvcGVydHk6IExVVCB1c2VkIHRvIGNvbnZlcnQgdGhlIGZyYW1lYnVmZmVyJ3MgY29sb3JzIHRv IGxpbmVhcgorICoJZ2FtbWEKKyAqIEBkZWdhbW1hX2x1dF9zaXplX3Byb3BlcnR5OiBzaXplIG9m IHRoZSBkZWdhbW1hIExVVCBhcyBzdXBwb3J0ZWQgYnkgdGhlCisgKglkcml2ZXIgKHJlYWQtb25s eSkKKyAqIEBjdG1fcHJvcGVydHk6IE1hdHJpeCB1c2VkIHRvIGNvbnZlcnQgY29sb3JzIGFmdGVy IHRoZSBsb29rdXAgaW4gdGhlCisgKglkZWdhbW1hIExVVAorICogQGdhbW1hX2x1dF9wcm9wZXJ0 eTogTFVUIHVzZWQgdG8gY29udmVydCB0aGUgY29sb3JzLCBhZnRlciB0aGUgQ1NDIG1hdHJpeCwg dG8KKyAqCXRoZSBnYW1tYSBzcGFjZSBvZiB0aGUgY29ubmVjdGVkIHNjcmVlbiAocmVhZC1vbmx5 KQorICogQGdhbW1hX2x1dF9zaXplX3Byb3BlcnR5OiBzaXplIG9mIHRoZSBnYW1tYSBMVVQgYXMg c3VwcG9ydGVkIGJ5IHRoZSBkcml2ZXIKICAqIEBwcmVmZXJyZWRfZGVwdGg6IHByZWZlcnJlZCBS QkcgcGl4ZWwgZGVwdGgsIHVzZWQgYnkgZmIgaGVscGVycwogICogQHByZWZlcl9zaGFkb3c6IGhp bnQgdG8gdXNlcnNwYWNlIHRvIHByZWZlciBzaGFkb3ctZmIgcmVuZGVyaW5nCiAgKiBAYXN5bmNf cGFnZV9mbGlwOiBkb2VzIHRoaXMgZGV2aWNlIHN1cHBvcnQgYXN5bmMgZmxpcHMgb24gdGhlIHBy aW1hcnkgcGxhbmU/CkBAIC0yMTI4LDYgKzIxNTAsMTMgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZp ZyB7CiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqYXNwZWN0X3JhdGlvX3Byb3BlcnR5OwogCXN0cnVj dCBkcm1fcHJvcGVydHkgKmRpcnR5X2luZm9fcHJvcGVydHk7CiAKKwkvKiBPcHRpb25hbCBjb2xv ciBjb3JyZWN0aW9uIHByb3BlcnRpZXMgKi8KKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkZWdhbW1h X2x1dF9wcm9wZXJ0eTsKKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkZWdhbW1hX2x1dF9zaXplX3By b3BlcnR5OworCXN0cnVjdCBkcm1fcHJvcGVydHkgKmN0bV9wcm9wZXJ0eTsKKwlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpnYW1tYV9sdXRfcHJvcGVydHk7CisJc3RydWN0IGRybV9wcm9wZXJ0eSAqZ2Ft bWFfbHV0X3NpemVfcHJvcGVydHk7CisKIAkvKiBwcm9wZXJ0aWVzIGZvciB2aXJ0dWFsIG1hY2hp bmUgbGF5b3V0ICovCiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqc3VnZ2VzdGVkX3hfcHJvcGVydHk7 CiAJc3RydWN0IGRybV9wcm9wZXJ0eSAqc3VnZ2VzdGVkX3lfcHJvcGVydHk7CkBAIC0yNTU0LDYg KzI1ODMsMjEgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkcm1fcHJvcGVy dHlfZmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiBtbyA/IG9ial90b19wcm9w ZXJ0eShtbykgOiBOVUxMOwogfQogCisvKgorICogRXh0cmFjdCBhIGRlZ2FtbWEvZ2FtbWEgTFVU IHZhbHVlIHByb3ZpZGVkIGJ5IHVzZXIgYW5kIHJvdW5kIGl0IHRvIHRoZQorICogcHJlY2lzaW9u IHN1cHBvcnRlZCBieSB0aGUgaGFyZHdhcmUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdWludDMyX3Qg ZHJtX2NvbG9yX2x1dF9leHRyYWN0KHVpbnQzMl90IHVzZXJfaW5wdXQsCisJCQkJCSAgICAgdWlu dDMyX3QgYml0X3ByZWNpc2lvbikKK3sKKwl1aW50MzJfdCB2YWwgPSB1c2VyX2lucHV0ICsgKDEg PDwgKDE2IC0gYml0X3ByZWNpc2lvbiAtIDEpKTsKKwl1aW50MzJfdCBtYXggPSAweGZmZmYgPj4g KDE2IC0gYml0X3ByZWNpc2lvbik7CisKKwl2YWwgPj49IDE2IC0gYml0X3ByZWNpc2lvbjsKKwor CXJldHVybiBjbGFtcF92YWwodmFsLCAwLCBtYXgpOworfQorCiAvKiBQbGFuZSBsaXN0IGl0ZXJh dG9yIGZvciBsZWdhY3kgKG92ZXJsYXkgb25seSkgcGxhbmVzLiAqLwogI2RlZmluZSBkcm1fZm9y X2VhY2hfbGVnYWN5X3BsYW5lKHBsYW5lLCBkZXYpIFwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBs YW5lLCAmKGRldiktPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QsIGhlYWQpIFwKZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jcnRjX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGNfaGVs cGVyLmgKaW5kZXggNGIzN2FmYS4uOTdmYTg5NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJt X2NydGNfaGVscGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2NydGNfaGVscGVyLmgKQEAgLTQ4 LDYgKzQ4LDkgQEAgZXh0ZXJuIGJvb2wgZHJtX2NydGNfaGVscGVyX3NldF9tb2RlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAkJCQkgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAog CQkJCSAgICAgaW50IHgsIGludCB5LAogCQkJCSAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq b2xkX2ZiKTsKK2V4dGVybiB2b2lkIGRybV9oZWxwZXJfY3J0Y19lbmFibGVfY29sb3JfbWdtdChz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJCSAgICAgIGludCBkZWdhbW1hX2x1dF9zaXplLAor CQkJCQkgICAgICBpbnQgZ2FtbWFfbHV0X3NpemUpOwogZXh0ZXJuIGJvb2wgZHJtX2hlbHBlcl9j cnRjX2luX3VzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogZXh0ZXJuIGJvb2wgZHJtX2hlbHBl cl9lbmNvZGVyX2luX3VzZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwogCmRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9t b2RlLmgKaW5kZXggNTBhZGI0Ni4uYzAyMTc0MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2Ry bS9kcm1fbW9kZS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaApAQCAtNDg3LDYg KzQ4NywyMSBAQCBzdHJ1Y3QgZHJtX21vZGVfY3J0Y19sdXQgewogCV9fdTY0IGJsdWU7CiB9Owog CitzdHJ1Y3QgZHJtX2NvbG9yX2N0bSB7CisJLyogQ29udmVyc2lvbiBtYXRyaXggaW4gUzMxLjMy IGZvcm1hdC4gKi8KKwlfX3M2NCBtYXRyaXhbOV07Cit9OworCitzdHJ1Y3QgZHJtX2NvbG9yX2x1 dCB7CisJLyoKKwkgKiBEYXRhIGlzIFUwLjE2IGZpeGVkIHBvaW50IGZvcm1hdC4KKwkgKi8KKwlf X3UxNiByZWQ7CisJX191MTYgZ3JlZW47CisJX191MTYgYmx1ZTsKKwlfX3UxNiByZXNlcnZlZDsK K307CisKICNkZWZpbmUgRFJNX01PREVfUEFHRV9GTElQX0VWRU5UIDB4MDEKICNkZWZpbmUgRFJN X01PREVfUEFHRV9GTElQX0FTWU5DIDB4MDIKICNkZWZpbmUgRFJNX01PREVfUEFHRV9GTElQX0ZM QUdTIChEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlR8RFJNX01PREVfUEFHRV9GTElQX0FTWU5DKQot LSAKMi43LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=