From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH v5 03/11] drm: Add atomic variants for bridge enable/disable Date: Tue, 11 Jun 2019 12:08:17 -0400 Message-ID: <20190611160844.257498-4-sean@poorly.run> References: <20190611160844.257498-1-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk1-x744.google.com (mail-qk1-x744.google.com [IPv6:2607:f8b0:4864:20::744]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8F2BF8922E for ; Tue, 11 Jun 2019 16:09:08 +0000 (UTC) Received: by mail-qk1-x744.google.com with SMTP id w187so7971292qkb.11 for ; Tue, 11 Jun 2019 09:09:08 -0700 (PDT) In-Reply-To: <20190611160844.257498-1-sean@poorly.run> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Maxime Ripard , Daniel Vetter , David Airlie , Sean Paul , Sean Paul List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpUaGlzIHBhdGNoIGFkZHMg YXRvbWljIHZhcmlhbnRzIGZvciBhbGwgb2YKcHJlX2VuYWJsZS9lbmFibGUvZGlzYWJsZS9wb3N0 X2Rpc2FibGUgYnJpZGdlIGZ1bmN0aW9ucy4gVGhlc2Ugd2lsbCBiZQpjYWxsZWQgZnJvbSB0aGUg YXBwcm9wcmlhdGUgYXRvbWljIGhlbHBlciBmdW5jdGlvbnMuIElmIHRoZSBicmlkZ2UKZHJpdmVy IGRvZXNuJ3QgaW1wbGVtZW50IHRoZSBhdG9taWMgdmVyc2lvbiBvZiB0aGUgZnVuY3Rpb24sIHdl IHdpbGwKZmFsbCBiYWNrIHRvIHRoZSB2YW5pbGxhIGltcGxlbWVudGF0aW9uLgoKTm90ZSB0aGF0 IHNvbWUgZHJpdmVycyBjYWxsIGRybV9icmlkZ2VfZGlzYWJsZSBkaXJlY3RseSwgYW5kIHRoZXNl IGNhc2VzCmFyZSBub3QgY292ZXJlZC4gSXQncyB1cCB0byB0aGUgZHJpdmVyIHRvIGRlY2lkZSB3 aGV0aGVyIHRvIGltcGxlbWVudApib3RoIGF0b21pY19kaXNhYmxlIGFuZCBkaXNhYmxlLCBvciBp ZiBpdCdzIG5vdCBuZWNlc3NhcnkuCgpDaGFuZ2VzIGluIHYzOgotIEFkZGVkIHRvIHRoZSBwYXRj aHNldApDaGFuZ2VzIGluIHY0OgotIEZpeCB1cCBkb2Nib29rIHJlZmVyZW5jZXMgKERhbmllbCkK Q2hhbmdlcyBpbiB2NToKLSBOb25lCgpMaW5rIHRvIHYzOiBodHRwczovL3BhdGNod29yay5mcmVl ZGVza3RvcC5vcmcvcGF0Y2gvbXNnaWQvMjAxOTA1MDIxOTQ5NTYuMjE4NDQxLTQtc2VhbkBwb29y bHkucnVuCkxpbmsgdG8gdjQ6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRj aC9tc2dpZC8yMDE5MDUwODE2MDkyMC4xNDQ3MzktNC1zZWFuQHBvb3JseS5ydW4KCkNjOiBEYW5p ZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgpUZXN0ZWQtYnk6IEhlaWtvIFN0dWVibmVyIDxoZWlrb0Bz bnRlY2guZGU+ClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xs LmNoPgpSZXZpZXdlZC1ieTogQW5kcnplaiBIYWpkYSA8YS5oYWpkYUBzYW1zdW5nLmNvbT4KU2ln bmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9k cm1fYnJpZGdlLmMgICAgICAgIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGlu Y2x1ZGUvZHJtL2RybV9icmlkZ2UuaCAgICAgICAgICAgIHwgMTA2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyMjAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDYyZTI5YjVlYmI2ZTMu LjIxMzNmNjI1MzkxNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hl bHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC05OTgs NyArOTk4LDcgQEAgZGlzYWJsZV9vdXRwdXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiAJCSAqIEVhY2ggZW5jb2RlciBoYXMgYXQg bW9zdCBvbmUgY29ubmVjdG9yIChzaW5jZSB3ZSBhbHdheXMgc3RlYWwKIAkJICogaXQgYXdheSks IHNvIHdlIHdvbid0IGNhbGwgZGlzYWJsZSBob29rcyB0d2ljZS4KIAkJICovCi0JCWRybV9icmlk Z2VfZGlzYWJsZShlbmNvZGVyLT5icmlkZ2UpOworCQlkcm1fYXRvbWljX2JyaWRnZV9kaXNhYmxl KGVuY29kZXItPmJyaWRnZSwgb2xkX3N0YXRlKTsKIAogCQkvKiBSaWdodCBmdW5jdGlvbiBkZXBl bmRzIHVwb24gdGFyZ2V0IHN0YXRlLiAqLwogCQlpZiAoZnVuY3MpIHsKQEAgLTEwMTIsNyArMTAx Miw3IEBAIGRpc2FibGVfb3V0cHV0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQogCQkJCWZ1bmNzLT5kcG1zKGVuY29kZXIsIERSTV9N T0RFX0RQTVNfT0ZGKTsKIAkJfQogCi0JCWRybV9icmlkZ2VfcG9zdF9kaXNhYmxlKGVuY29kZXIt PmJyaWRnZSk7CisJCWRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlzYWJsZShlbmNvZGVyLT5icmlk Z2UsIG9sZF9zdGF0ZSk7CiAJfQogCiAJZm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUob2xk X3N0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpIHsKQEAgLTEz MTAsNyArMTMxMCw3IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5h YmxlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgKiBFYWNoIGVuY29kZXIgaGFzIGF0IG1v c3Qgb25lIGNvbm5lY3RvciAoc2luY2Ugd2UgYWx3YXlzIHN0ZWFsCiAJCSAqIGl0IGF3YXkpLCBz byB3ZSB3b24ndCBjYWxsIGVuYWJsZSBob29rcyB0d2ljZS4KIAkJICovCi0JCWRybV9icmlkZ2Vf cHJlX2VuYWJsZShlbmNvZGVyLT5icmlkZ2UpOworCQlkcm1fYXRvbWljX2JyaWRnZV9wcmVfZW5h YmxlKGVuY29kZXItPmJyaWRnZSwgb2xkX3N0YXRlKTsKIAogCQlpZiAoZnVuY3MpIHsKIAkJCWlm IChmdW5jcy0+YXRvbWljX2VuYWJsZSkKQEAgLTEzMjEsNyArMTMyMSw3IEBAIHZvaWQgZHJtX2F0 b21pY19oZWxwZXJfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJCWZ1bmNzLT5jb21taXQoZW5jb2Rlcik7CiAJCX0KIAotCQlkcm1fYnJpZGdlX2VuYWJs ZShlbmNvZGVyLT5icmlkZ2UpOworCQlkcm1fYXRvbWljX2JyaWRnZV9lbmFibGUoZW5jb2Rlci0+ YnJpZGdlLCBvbGRfc3RhdGUpOwogCX0KIAogCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF93cml0 ZWJhY2tzKGRldiwgb2xkX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f YnJpZGdlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jCmluZGV4IDEzOGIyNzExZDM4 OWUuLmNiYTUzN2M5OWU0MzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYnJpZGdl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYwpAQCAtMzUyLDYgKzM1MiwxMTYg QEAgdm9pZCBkcm1fYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQogfQog RVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX2VuYWJsZSk7CiAKKy8qKgorICogZHJtX2F0b21pY19i cmlkZ2VfZGlzYWJsZSAtIGRpc2FibGVzIGFsbCBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNoYWlu CisgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKKyAqIEBzdGF0ZTogYXRvbWlj IHN0YXRlIGJlaW5nIGNvbW1pdHRlZAorICoKKyAqIENhbGxzICZkcm1fYnJpZGdlX2Z1bmNzLmF0 b21pY19kaXNhYmxlIChmYWxscyBiYWNrIG9uCisgKiAmZHJtX2JyaWRnZV9mdW5jcy5kaXNhYmxl KSBvcCBmb3IgYWxsIHRoZSBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNoYWluLAorICogc3RhcnRp bmcgZnJvbSB0aGUgbGFzdCBicmlkZ2UgdG8gdGhlIGZpcnN0LiBUaGVzZSBhcmUgY2FsbGVkIGJl Zm9yZSBjYWxsaW5nCisgKiAmZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzLmF0b21pY19kaXNhYmxl CisgKgorICogTm90ZTogdGhlIGJyaWRnZSBwYXNzZWQgc2hvdWxkIGJlIHRoZSBvbmUgY2xvc2Vz dCB0byB0aGUgZW5jb2RlcgorICovCit2b2lkIGRybV9hdG9taWNfYnJpZGdlX2Rpc2FibGUoc3Ry dWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCit7CisJaWYgKCFicmlkZ2UpCisJCXJldHVybjsKKworCWRybV9hdG9taWNfYnJp ZGdlX2Rpc2FibGUoYnJpZGdlLT5uZXh0LCBzdGF0ZSk7CisKKwlpZiAoYnJpZGdlLT5mdW5jcy0+ YXRvbWljX2Rpc2FibGUpCisJCWJyaWRnZS0+ZnVuY3MtPmF0b21pY19kaXNhYmxlKGJyaWRnZSwg c3RhdGUpOworCWVsc2UgaWYgKGJyaWRnZS0+ZnVuY3MtPmRpc2FibGUpCisJCWJyaWRnZS0+ZnVu Y3MtPmRpc2FibGUoYnJpZGdlKTsKK30KK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19icmlkZ2Vf ZGlzYWJsZSk7CisKKy8qKgorICogZHJtX2F0b21pY19icmlkZ2VfcG9zdF9kaXNhYmxlIC0gY2xl YW5zIHVwIGFmdGVyIGRpc2FibGluZyBhbGwgYnJpZGdlcyBpbiB0aGUKKyAqCQkJCSAgICBlbmNv ZGVyIGNoYWluCisgKiBAYnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKKyAqIEBzdGF0 ZTogYXRvbWljIHN0YXRlIGJlaW5nIGNvbW1pdHRlZAorICoKKyAqIENhbGxzICZkcm1fYnJpZGdl X2Z1bmNzLmF0b21pY19wb3N0X2Rpc2FibGUgKGZhbGxzIGJhY2sgb24KKyAqICZkcm1fYnJpZGdl X2Z1bmNzLnBvc3RfZGlzYWJsZSkgb3AgZm9yIGFsbCB0aGUgYnJpZGdlcyBpbiB0aGUgZW5jb2Rl ciBjaGFpbiwKKyAqIHN0YXJ0aW5nIGZyb20gdGhlIGZpcnN0IGJyaWRnZSB0byB0aGUgbGFzdC4g VGhlc2UgYXJlIGNhbGxlZCBhZnRlciBjb21wbGV0aW5nCisgKiAmZHJtX2VuY29kZXJfaGVscGVy X2Z1bmNzLmF0b21pY19kaXNhYmxlCisgKgorICogTm90ZTogdGhlIGJyaWRnZSBwYXNzZWQgc2hv dWxkIGJlIHRoZSBvbmUgY2xvc2VzdCB0byB0aGUgZW5jb2RlcgorICovCit2b2lkIGRybV9hdG9t aWNfYnJpZGdlX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJCSAg ICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJaWYgKCFicmlkZ2UpCisJCXJl dHVybjsKKworCWlmIChicmlkZ2UtPmZ1bmNzLT5hdG9taWNfcG9zdF9kaXNhYmxlKQorCQlicmlk Z2UtPmZ1bmNzLT5hdG9taWNfcG9zdF9kaXNhYmxlKGJyaWRnZSwgc3RhdGUpOworCWVsc2UgaWYg KGJyaWRnZS0+ZnVuY3MtPnBvc3RfZGlzYWJsZSkKKwkJYnJpZGdlLT5mdW5jcy0+cG9zdF9kaXNh YmxlKGJyaWRnZSk7CisKKwlkcm1fYXRvbWljX2JyaWRnZV9wb3N0X2Rpc2FibGUoYnJpZGdlLT5u ZXh0LCBzdGF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX3Bvc3RfZGlz YWJsZSk7CisKKy8qKgorICogZHJtX2F0b21pY19icmlkZ2VfcHJlX2VuYWJsZSAtIHByZXBhcmVz IGZvciBlbmFibGluZyBhbGwgYnJpZGdlcyBpbiB0aGUKKyAqCQkJCSAgZW5jb2RlciBjaGFpbgor ICogQGJyaWRnZTogYnJpZGdlIGNvbnRyb2wgc3RydWN0dXJlCisgKiBAc3RhdGU6IGF0b21pYyBz dGF0ZSBiZWluZyBjb21taXR0ZWQKKyAqCisgKiBDYWxscyAmZHJtX2JyaWRnZV9mdW5jcy5hdG9t aWNfcHJlX2VuYWJsZSAoZmFsbHMgYmFjayBvbgorICogJmRybV9icmlkZ2VfZnVuY3MucHJlX2Vu YWJsZSkgb3AgZm9yIGFsbCB0aGUgYnJpZGdlcyBpbiB0aGUgZW5jb2RlciBjaGFpbiwKKyAqIHN0 YXJ0aW5nIGZyb20gdGhlIGxhc3QgYnJpZGdlIHRvIHRoZSBmaXJzdC4gVGhlc2UgYXJlIGNhbGxl ZCBiZWZvcmUgY2FsbGluZworICogJmRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcy5hdG9taWNfZW5h YmxlCisgKgorICogTm90ZTogdGhlIGJyaWRnZSBwYXNzZWQgc2hvdWxkIGJlIHRoZSBvbmUgY2xv c2VzdCB0byB0aGUgZW5jb2RlcgorICovCit2b2lkIGRybV9hdG9taWNfYnJpZGdlX3ByZV9lbmFi bGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKKwkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSkKK3sKKwlpZiAoIWJyaWRnZSkKKwkJcmV0dXJuOworCisJZHJtX2F0b21pY19i cmlkZ2VfcHJlX2VuYWJsZShicmlkZ2UtPm5leHQsIHN0YXRlKTsKKworCWlmIChicmlkZ2UtPmZ1 bmNzLT5hdG9taWNfcHJlX2VuYWJsZSkKKwkJYnJpZGdlLT5mdW5jcy0+YXRvbWljX3ByZV9lbmFi bGUoYnJpZGdlLCBzdGF0ZSk7CisJZWxzZSBpZiAoYnJpZGdlLT5mdW5jcy0+cHJlX2VuYWJsZSkK KwkJYnJpZGdlLT5mdW5jcy0+cHJlX2VuYWJsZShicmlkZ2UpOworfQorRVhQT1JUX1NZTUJPTChk cm1fYXRvbWljX2JyaWRnZV9wcmVfZW5hYmxlKTsKKworLyoqCisgKiBkcm1fYXRvbWljX2JyaWRn ZV9lbmFibGUgLSBlbmFibGVzIGFsbCBicmlkZ2VzIGluIHRoZSBlbmNvZGVyIGNoYWluCisgKiBA YnJpZGdlOiBicmlkZ2UgY29udHJvbCBzdHJ1Y3R1cmUKKyAqIEBzdGF0ZTogYXRvbWljIHN0YXRl IGJlaW5nIGNvbW1pdHRlZAorICoKKyAqIENhbGxzICZkcm1fYnJpZGdlX2Z1bmNzLmF0b21pY19l bmFibGUgKGZhbGxzIGJhY2sgb24KKyAqICZkcm1fYnJpZGdlX2Z1bmNzLmVuYWJsZSkgb3AgZm9y IGFsbCB0aGUgYnJpZGdlcyBpbiB0aGUgZW5jb2RlciBjaGFpbiwKKyAqIHN0YXJ0aW5nIGZyb20g dGhlIGZpcnN0IGJyaWRnZSB0byB0aGUgbGFzdC4gVGhlc2UgYXJlIGNhbGxlZCBhZnRlciBjb21w bGV0aW5nCisgKiAmZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzLmF0b21pY19lbmFibGUKKyAqCisg KiBOb3RlOiB0aGUgYnJpZGdlIHBhc3NlZCBzaG91bGQgYmUgdGhlIG9uZSBjbG9zZXN0IHRvIHRo ZSBlbmNvZGVyCisgKi8KK3ZvaWQgZHJtX2F0b21pY19icmlkZ2VfZW5hYmxlKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UsCisJCQkgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cit7CisJaWYgKCFicmlkZ2UpCisJCXJldHVybjsKKworCWlmIChicmlkZ2UtPmZ1bmNzLT5hdG9t aWNfZW5hYmxlKQorCQlicmlkZ2UtPmZ1bmNzLT5hdG9taWNfZW5hYmxlKGJyaWRnZSwgc3RhdGUp OworCWVsc2UgaWYgKGJyaWRnZS0+ZnVuY3MtPmVuYWJsZSkKKwkJYnJpZGdlLT5mdW5jcy0+ZW5h YmxlKGJyaWRnZSk7CisKKwlkcm1fYXRvbWljX2JyaWRnZV9lbmFibGUoYnJpZGdlLT5uZXh0LCBz dGF0ZSk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfYnJpZGdlX2VuYWJsZSk7CisKICNp ZmRlZiBDT05GSUdfT0YKIC8qKgogICogb2ZfZHJtX2ZpbmRfYnJpZGdlIC0gZmluZCB0aGUgYnJp ZGdlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGRldmljZSBub2RlIGluCmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fYnJpZGdlLmggYi9pbmNsdWRlL2RybS9kcm1fYnJpZGdlLmgKaW5kZXggZDQ0 Mjg5MTNhNGUxNC4uMzIyODAxODg0ODE0MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Jy aWRnZS5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9icmlkZ2UuaApAQCAtMjM3LDYgKzIzNywxMDMg QEAgc3RydWN0IGRybV9icmlkZ2VfZnVuY3MgewogCSAqIFRoZSBlbmFibGUgY2FsbGJhY2sgaXMg b3B0aW9uYWwuCiAJICovCiAJdm9pZCAoKmVuYWJsZSkoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSk7CisKKwkvKioKKwkgKiBAYXRvbWljX3ByZV9lbmFibGU6CisJICoKKwkgKiBUaGlzIGNhbGxi YWNrIHNob3VsZCBlbmFibGUgdGhlIGJyaWRnZS4gSXQgaXMgY2FsbGVkIHJpZ2h0IGJlZm9yZQor CSAqIHRoZSBwcmVjZWRpbmcgZWxlbWVudCBpbiB0aGUgZGlzcGxheSBwaXBlIGlzIGVuYWJsZWQu IElmIHRoZQorCSAqIHByZWNlZGluZyBlbGVtZW50IGlzIGEgYnJpZGdlIHRoaXMgbWVhbnMgaXQn cyBjYWxsZWQgYmVmb3JlIHRoYXQKKwkgKiBicmlkZ2UncyBAYXRvbWljX3ByZV9lbmFibGUgb3Ig QHByZV9lbmFibGUgZnVuY3Rpb24uIElmIHRoZSBwcmVjZWRpbmcKKwkgKiBlbGVtZW50IGlzIGEg JmRybV9lbmNvZGVyIGl0J3MgY2FsbGVkIHJpZ2h0IGJlZm9yZSB0aGUgZW5jb2RlcidzCisJICog JmRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcy5hdG9taWNfZW5hYmxlIGhvb2suCisJICoKKwkgKiBU aGUgZGlzcGxheSBwaXBlIChpLmUuIGNsb2NrcyBhbmQgdGltaW5nIHNpZ25hbHMpIGZlZWRpbmcg dGhpcyBicmlkZ2UKKwkgKiB3aWxsIG5vdCB5ZXQgYmUgcnVubmluZyB3aGVuIHRoaXMgY2FsbGJh Y2sgaXMgY2FsbGVkLiBUaGUgYnJpZGdlIG11c3QKKwkgKiBub3QgZW5hYmxlIHRoZSBkaXNwbGF5 IGxpbmsgZmVlZGluZyB0aGUgbmV4dCBicmlkZ2UgaW4gdGhlIGNoYWluIChpZgorCSAqIHRoZXJl IGlzIG9uZSkgd2hlbiB0aGlzIGNhbGxiYWNrIGlzIGNhbGxlZC4KKwkgKgorCSAqIE5vdGUgdGhh dCB0aGlzIGZ1bmN0aW9uIHdpbGwgb25seSBiZSBpbnZva2VkIGluIHRoZSBjb250ZXh0IG9mIGFu CisJICogYXRvbWljIGNvbW1pdC4gSXQgd2lsbCBub3QgYmUgaW52b2tlZCBmcm9tICZkcm1fYnJp ZGdlX3ByZV9lbmFibGUuIEl0CisJICogd291bGQgYmUgcHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUg YW4gaW1wbGVtZW50YXRpb24gb2YgQHByZV9lbmFibGUgaWYKKwkgKiB5b3UgYXJlIGV4cGVjdGlu ZyBkcml2ZXIgY2FsbHMgaW50byAmZHJtX2JyaWRnZV9wcmVfZW5hYmxlLgorCSAqCisJICogVGhl IEBhdG9taWNfcHJlX2VuYWJsZSBjYWxsYmFjayBpcyBvcHRpb25hbC4KKwkgKi8KKwl2b2lkICgq YXRvbWljX3ByZV9lbmFibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkJICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOworCisJLyoqCisJICogQGF0b21pY19lbmFibGU6 CisJICoKKwkgKiBUaGlzIGNhbGxiYWNrIHNob3VsZCBlbmFibGUgdGhlIGJyaWRnZS4gSXQgaXMg Y2FsbGVkIHJpZ2h0IGFmdGVyCisJICogdGhlIHByZWNlZGluZyBlbGVtZW50IGluIHRoZSBkaXNw bGF5IHBpcGUgaXMgZW5hYmxlZC4gSWYgdGhlCisJICogcHJlY2VkaW5nIGVsZW1lbnQgaXMgYSBi cmlkZ2UgdGhpcyBtZWFucyBpdCdzIGNhbGxlZCBhZnRlciB0aGF0CisJICogYnJpZGdlJ3MgQGF0 b21pY19lbmFibGUgb3IgQGVuYWJsZSBmdW5jdGlvbi4gSWYgdGhlIHByZWNlZGluZyBlbGVtZW50 CisJICogaXMgYSAmZHJtX2VuY29kZXIgaXQncyBjYWxsZWQgcmlnaHQgYWZ0ZXIgdGhlIGVuY29k ZXIncworCSAqICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuYXRvbWljX2VuYWJsZSBob29rLgor CSAqCisJICogVGhlIGJyaWRnZSBjYW4gYXNzdW1lIHRoYXQgdGhlIGRpc3BsYXkgcGlwZSAoaS5l LiBjbG9ja3MgYW5kIHRpbWluZworCSAqIHNpZ25hbHMpIGZlZWRpbmcgaXQgaXMgcnVubmluZyB3 aGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLiBUaGlzCisJICogY2FsbGJhY2sgbXVzdCBlbmFi bGUgdGhlIGRpc3BsYXkgbGluayBmZWVkaW5nIHRoZSBuZXh0IGJyaWRnZSBpbiB0aGUKKwkgKiBj aGFpbiBpZiB0aGVyZSBpcyBvbmUuCisJICoKKwkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3 aWxsIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUgY29udGV4dCBvZiBhbgorCSAqIGF0b21pYyBjb21t aXQuIEl0IHdpbGwgbm90IGJlIGludm9rZWQgZnJvbSAmZHJtX2JyaWRnZV9lbmFibGUuIEl0CisJ ICogd291bGQgYmUgcHJ1ZGVudCB0byBhbHNvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2Yg QGVuYWJsZSBpZgorCSAqIHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvICZkcm1f YnJpZGdlX2VuYWJsZS4KKwkgKgorCSAqIFRoZSBlbmFibGUgY2FsbGJhY2sgaXMgb3B0aW9uYWwu CisJICovCisJdm9pZCAoKmF0b21pY19lbmFibGUpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Us CisJCQkgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOworCS8qKgorCSAqIEBh dG9taWNfZGlzYWJsZToKKwkgKgorCSAqIFRoaXMgY2FsbGJhY2sgc2hvdWxkIGRpc2FibGUgdGhl IGJyaWRnZS4gSXQgaXMgY2FsbGVkIHJpZ2h0IGJlZm9yZQorCSAqIHRoZSBwcmVjZWRpbmcgZWxl bWVudCBpbiB0aGUgZGlzcGxheSBwaXBlIGlzIGRpc2FibGVkLiBJZiB0aGUKKwkgKiBwcmVjZWRp bmcgZWxlbWVudCBpcyBhIGJyaWRnZSB0aGlzIG1lYW5zIGl0J3MgY2FsbGVkIGJlZm9yZSB0aGF0 CisJICogYnJpZGdlJ3MgQGF0b21pY19kaXNhYmxlIG9yIEBkaXNhYmxlIHZmdW5jLiBJZiB0aGUg cHJlY2VkaW5nIGVsZW1lbnQKKwkgKiBpcyBhICZkcm1fZW5jb2RlciBpdCdzIGNhbGxlZCByaWdo dCBiZWZvcmUgdGhlCisJICogJmRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcy5hdG9taWNfZGlzYWJs ZSBob29rLgorCSAqCisJICogVGhlIGJyaWRnZSBjYW4gYXNzdW1lIHRoYXQgdGhlIGRpc3BsYXkg cGlwZSAoaS5lLiBjbG9ja3MgYW5kIHRpbWluZworCSAqIHNpZ25hbHMpIGZlZWRpbmcgaXQgaXMg c3RpbGwgcnVubmluZyB3aGVuIHRoaXMgY2FsbGJhY2sgaXMgY2FsbGVkLgorCSAqCisJICogTm90 ZSB0aGF0IHRoaXMgZnVuY3Rpb24gd2lsbCBvbmx5IGJlIGludm9rZWQgaW4gdGhlIGNvbnRleHQg b2YgYW4KKwkgKiBhdG9taWMgY29tbWl0LiBJdCB3aWxsIG5vdCBiZSBpbnZva2VkIGZyb20gJmRy bV9icmlkZ2VfZGlzYWJsZS4gSXQKKwkgKiB3b3VsZCBiZSBwcnVkZW50IHRvIGFsc28gcHJvdmlk ZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiBAZGlzYWJsZSBpZgorCSAqIHlvdSBhcmUgZXhwZWN0aW5n IGRyaXZlciBjYWxscyBpbnRvICZkcm1fYnJpZGdlX2Rpc2FibGUuCisJICoKKwkgKiBUaGUgZGlz YWJsZSBjYWxsYmFjayBpcyBvcHRpb25hbC4KKwkgKi8KKwl2b2lkICgqYXRvbWljX2Rpc2FibGUp KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCisJCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKTsKKworCS8qKgorCSAqIEBhdG9taWNfcG9zdF9kaXNhYmxlOgorCSAqCisJ ICogVGhpcyBjYWxsYmFjayBzaG91bGQgZGlzYWJsZSB0aGUgYnJpZGdlLiBJdCBpcyBjYWxsZWQg cmlnaHQgYWZ0ZXIgdGhlCisJICogcHJlY2VkaW5nIGVsZW1lbnQgaW4gdGhlIGRpc3BsYXkgcGlw ZSBpcyBkaXNhYmxlZC4gSWYgdGhlIHByZWNlZGluZworCSAqIGVsZW1lbnQgaXMgYSBicmlkZ2Ug dGhpcyBtZWFucyBpdCdzIGNhbGxlZCBhZnRlciB0aGF0IGJyaWRnZSdzCisJICogQGF0b21pY19w b3N0X2Rpc2FibGUgb3IgQHBvc3RfZGlzYWJsZSBmdW5jdGlvbi4gSWYgdGhlIHByZWNlZGluZwor CSAqIGVsZW1lbnQgaXMgYSAmZHJtX2VuY29kZXIgaXQncyBjYWxsZWQgcmlnaHQgYWZ0ZXIgdGhl IGVuY29kZXIncworCSAqICZkcm1fZW5jb2Rlcl9oZWxwZXJfZnVuY3MuYXRvbWljX2Rpc2FibGUg aG9vay4KKwkgKgorCSAqIFRoZSBicmlkZ2UgbXVzdCBhc3N1bWUgdGhhdCB0aGUgZGlzcGxheSBw aXBlIChpLmUuIGNsb2NrcyBhbmQgdGltaW5nCisJICogc2lnbmFscykgZmVlZGluZyBpdCBpcyBu byBsb25nZXIgcnVubmluZyB3aGVuIHRoaXMgY2FsbGJhY2sgaXMKKwkgKiBjYWxsZWQuCisJICoK KwkgKiBOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiB3aWxsIG9ubHkgYmUgaW52b2tlZCBpbiB0aGUg Y29udGV4dCBvZiBhbgorCSAqIGF0b21pYyBjb21taXQuIEl0IHdpbGwgbm90IGJlIGludm9rZWQg ZnJvbSAmZHJtX2JyaWRnZV9wb3N0X2Rpc2FibGUuCisJICogSXQgd291bGQgYmUgcHJ1ZGVudCB0 byBhbHNvIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gb2YKKwkgKiBAcG9zdF9kaXNhYmxlIGlm IHlvdSBhcmUgZXhwZWN0aW5nIGRyaXZlciBjYWxscyBpbnRvCisJICogJmRybV9icmlkZ2VfcG9z dF9kaXNhYmxlLgorCSAqCisJICogVGhlIHBvc3RfZGlzYWJsZSBjYWxsYmFjayBpcyBvcHRpb25h bC4KKwkgKi8KKwl2b2lkICgqYXRvbWljX3Bvc3RfZGlzYWJsZSkoc3RydWN0IGRybV9icmlkZ2Ug KmJyaWRnZSwKKwkJCQkgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIH07CiAK IC8qKgpAQCAtMzE0LDYgKzQxMSwxNSBAQCB2b2lkIGRybV9icmlkZ2VfbW9kZV9zZXQoc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSwKIHZvaWQgZHJtX2JyaWRnZV9wcmVfZW5hYmxlKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UpOwogdm9pZCBkcm1fYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2Jy aWRnZSAqYnJpZGdlKTsKIAordm9pZCBkcm1fYXRvbWljX2JyaWRnZV9kaXNhYmxlKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UsCisJCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKTsKK3ZvaWQgZHJtX2F0b21pY19icmlkZ2VfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UsCisJCQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cit2 b2lkIGRybV9hdG9taWNfYnJpZGdlX3ByZV9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRn ZSwKKwkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cit2b2lkIGRybV9hdG9t aWNfYnJpZGdlX2VuYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAorCQkJICAgICAgc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKKwogI2lmZGVmIENPTkZJR19EUk1fUEFORUxf QlJJREdFCiBzdHJ1Y3QgZHJtX2JyaWRnZSAqZHJtX3BhbmVsX2JyaWRnZV9hZGQoc3RydWN0IGRy bV9wYW5lbCAqcGFuZWwsCiAJCQkJCXUzMiBjb25uZWN0b3JfdHlwZSk7Ci0tIApTZWFuIFBhdWws IFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs