From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: [PATCH 3/3] drm/meson: use RDMA to reconfigure AFBC on vsync Date: Tue, 15 Oct 2019 13:33:17 +0200 Message-ID: <20191015113317.8870-4-narmstrong@baylibre.com> References: <20191015113317.8870-1-narmstrong@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6A3786E7AD for ; Tue, 15 Oct 2019 11:33:23 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id m18so19909333wmc.1 for ; Tue, 15 Oct 2019 04:33:23 -0700 (PDT) In-Reply-To: <20191015113317.8870-1-narmstrong@baylibre.com> 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: khilman@baylibre.com, linux-amlogic@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Neil Armstrong List-Id: dri-devel@lists.freedesktop.org VGhlIFZQVSBlbWJlZHMgYSAiUmVnaXN0ZXIgRE1BIiB0aGF0IGNhbiB3cml0ZSBhIHNlcXVlbmNl IG9mIHJlZ2lzdGVycwpvbiB0aGUgVlBVIEFIQiBidXMsIGVpdGhlciBtYW51YWxseSBvciB0cmln Z2VyZWQgYnkgYW4gaW50ZXJuYWwgSVJRCmV2ZW50IGxpa2UgVlNZTkMgb3IgYSBsaW5lIGlucHV0 IGNvdW50ZXIuCgpUaGUgUkRNQSBpcyB1c2VkIGhlcmUgdG8gcmVzZXQgYW5kIHByb2dyYW0gdGhl IEFGQkMgZGVjb2RlciB1bml0Cm9uIGVhY2ggdnN5bmMgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGlu dGVycnVwdCBoYW5kbGVyIHRoYXQgY2FuCmJlIG1hc2tlZCBmb3IgYSBsb25nIHBlcmlvZCBvZiB0 aW1lLCBwcm9kdWNpbmcgZGlzcGxheSBnbGl0Y2hlcy4KCkZvciB0aGlzIHdlIHVzZSB0aGUgbWVz b25fcmRtYV93cml0ZWxfc3luYygpIHdoaWNoIGFkZHMgdGhlIHJlZ2lzdGVyCndyaXRlIHR1cGxl IChWUFUgcmVnaXN0ZXIgb2Zmc2V0IGFuZCByZWdpc3RlciB2YWx1ZSkgdG8gdGhlIFJETUEgYnVm ZmVyCmFuZCB3cml0ZSB0aGUgdmFsdWUgdG8gdGhlIEhXLgoKV2hlbiBlbmFibGVkLCB0aGUgUkRN QSBpcyBlbmFibGVkIHRvIHJld3JpdHRlIHRoZSBzYW1lIHNlcXVlbmNlIGF0IHRoZQpuZXh0IFZT WU5DIGV2ZW50LCB1bnRpbCBhIG5ldyBidWZmZXIgaXMgY29tbWl0dGVkIHRvIHRoZSBPU0QgcGxh bmUuCgpUaGUgdGhlIEFtbG9naWMgRzEyQSBpcyBzd2l0Y2hlZCB0byBSRE1BLCB0aGUgQW1sb2dp YyBHWE0gRGVjb2Rlcgpkb2Vzbid0IG5lZWQgYSByZXNldC9yZXByb2dyYW0gYXQgZWFjaCB2c3lu Yy4KClNpZ25lZC1vZmYtYnk6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fY3J0Yy5jICAgICAgfCAgMjcgKyst LS0tLQogZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX29zZF9hZmJjZC5jIHwgMTAwICsrKysr KysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRpb25zKCspLCA2 MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25f Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21lc29uL21lc29uX2NydGMuYwppbmRleCBkMjhlZmQw ZGJmMTEuLjhlMGNmMDNlNDVlYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29uL21l c29uX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fY3J0Yy5jCkBAIC0y Myw2ICsyMyw3IEBACiAjaW5jbHVkZSAibWVzb25fcmVnaXN0ZXJzLmgiCiAjaW5jbHVkZSAibWVz b25fdmVuYy5oIgogI2luY2x1ZGUgIm1lc29uX3ZpdS5oIgorI2luY2x1ZGUgIm1lc29uX3JkbWEu aCIKICNpbmNsdWRlICJtZXNvbl92cHAuaCIKICNpbmNsdWRlICJtZXNvbl9vc2RfYWZiY2QuaCIK IApAQCAtMzksOCArNDAsNiBAQCBzdHJ1Y3QgbWVzb25fY3J0YyB7CiAJdm9pZCAoKmVuYWJsZV9v c2QxX2FmYmMpKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpOwogCXZvaWQgKCpkaXNhYmxlX29zZDFf YWZiYykoc3RydWN0IG1lc29uX2RybSAqcHJpdik7CiAJdW5zaWduZWQgaW50IHZpdV9vZmZzZXQ7 Ci0JYm9vbCB2c3luY19mb3JjZWQ7Ci0JYm9vbCB2c3luY19kaXNhYmxlZDsKIH07CiAjZGVmaW5l IHRvX21lc29uX2NydGMoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBtZXNvbl9jcnRjLCBiYXNl KQogCkBAIC01MSw3ICs1MCw2IEBAIHN0YXRpYyBpbnQgbWVzb25fY3J0Y19lbmFibGVfdmJsYW5r KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlzdHJ1Y3QgbWVzb25fY3J0YyAqbWVzb25fY3J0YyA9 IHRvX21lc29uX2NydGMoY3J0Yyk7CiAJc3RydWN0IG1lc29uX2RybSAqcHJpdiA9IG1lc29uX2Ny dGMtPnByaXY7CiAKLQltZXNvbl9jcnRjLT52c3luY19kaXNhYmxlZCA9IGZhbHNlOwogCW1lc29u X3ZlbmNfZW5hYmxlX3ZzeW5jKHByaXYpOwogCiAJcmV0dXJuIDA7CkBAIC02MiwxMCArNjAsNyBA QCBzdGF0aWMgdm9pZCBtZXNvbl9jcnRjX2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAlzdHJ1Y3QgbWVzb25fY3J0YyAqbWVzb25fY3J0YyA9IHRvX21lc29uX2NydGMoY3J0 Yyk7CiAJc3RydWN0IG1lc29uX2RybSAqcHJpdiA9IG1lc29uX2NydGMtPnByaXY7CiAKLQlpZiAo IW1lc29uX2NydGMtPnZzeW5jX2ZvcmNlZCkgewotCQltZXNvbl9jcnRjLT52c3luY19kaXNhYmxl ZCA9IHRydWU7Ci0JCW1lc29uX3ZlbmNfZGlzYWJsZV92c3luYyhwcml2KTsKLQl9CisJbWVzb25f dmVuY19kaXNhYmxlX3ZzeW5jKHByaXYpOwogfQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9j cnRjX2Z1bmNzIG1lc29uX2NydGNfZnVuY3MgPSB7CkBAIC0zNjgsMTAgKzM2MywxMSBAQCB2b2lk IG1lc29uX2NydGNfaXJxKHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiAJCWlmIChtZXNvbl9jcnRj LT5lbmFibGVfb3NkMSkKIAkJCW1lc29uX2NydGMtPmVuYWJsZV9vc2QxKHByaXYpOwogCi0JCWlm IChwcml2LT52aXUub3NkMV9hZmJjZCkKLQkJCW1lc29uX2NydGMtPnZzeW5jX2ZvcmNlZCA9IHRy dWU7Ci0JCWVsc2UKLQkJCW1lc29uX2NydGMtPnZzeW5jX2ZvcmNlZCA9IGZhbHNlOworCQlpZiAo cHJpdi0+dml1Lm9zZDFfYWZiY2QpIHsKKwkJCXByaXYtPmFmYmNkLm9wcy0+cmVzZXQocHJpdik7 CisJCQlwcml2LT5hZmJjZC5vcHMtPnNldHVwKHByaXYpOworCQkJcHJpdi0+YWZiY2Qub3BzLT5l bmFibGUocHJpdik7CisJCX0KIAogCQlwcml2LT52aXUub3NkMV9jb21taXQgPSBmYWxzZTsKIAl9 CkBAIC01OTUsMTUgKzU5MSw2IEBAIHZvaWQgbWVzb25fY3J0Y19pcnEoc3RydWN0IG1lc29uX2Ry bSAqcHJpdikKIAkJcHJpdi0+dml1LnZkMV9jb21taXQgPSBmYWxzZTsKIAl9CiAKLQlpZiAobWVz b25fY3J0Yy0+dnN5bmNfZm9yY2VkICYmIHByaXYtPnZpdS5vc2QxX2FmYmNkKSB7Ci0JCXByaXYt PmFmYmNkLm9wcy0+cmVzZXQocHJpdik7Ci0JCXByaXYtPmFmYmNkLm9wcy0+c2V0dXAocHJpdik7 Ci0JCXByaXYtPmFmYmNkLm9wcy0+ZW5hYmxlKHByaXYpOwotCX0KLQotCWlmIChtZXNvbl9jcnRj LT52c3luY19kaXNhYmxlZCkKLQkJcmV0dXJuOwotCiAJZHJtX2NydGNfaGFuZGxlX3ZibGFuayhw cml2LT5jcnRjKTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZwcml2LT5kcm0tPmV2ZW50X2xvY2ss IGZsYWdzKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9vc2RfYWZi Y2QuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9vc2RfYWZiY2QuYwppbmRleCBhYWU0 MzQxYmVkYWYuLjZkOTdiYjRiZTNjYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lc29u L21lc29uX29zZF9hZmJjZC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9vc2Rf YWZiY2QuYwpAQCAtMTIsNiArMTIsNyBAQAogI2luY2x1ZGUgIm1lc29uX2Rydi5oIgogI2luY2x1 ZGUgIm1lc29uX3JlZ2lzdGVycy5oIgogI2luY2x1ZGUgIm1lc29uX3ZpdS5oIgorI2luY2x1ZGUg Im1lc29uX3JkbWEuaCIKICNpbmNsdWRlICJtZXNvbl9vc2RfYWZiY2QuaCIKIAogLyoKQEAgLTI3 MCw2ICsyNzEsMTQgQEAgc3RhdGljIGJvb2wgbWVzb25fZzEyYV9hZmJjZF9zdXBwb3J0ZWRfZm10 KHU2NCBtb2RpZmllciwgdWludDMyX3QgZm9ybWF0KQogCiBzdGF0aWMgaW50IG1lc29uX2cxMmFf YWZiY2RfaW5pdChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogeworCWludCByZXQ7CisKKwlyZXQg PSBtZXNvbl9yZG1hX2luaXQocHJpdik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCW1l c29uX3JkbWFfc2V0dXAocHJpdik7CisKIAkvKiBIYW5kbGUgQUZCQyBEZWNvZGVyIHJlc2V0IG1h bnVhbGx5ICovCiAJd3JpdGVsX2JpdHNfcmVsYXhlZChNQUxJX0FGQkNEX01BTlVBTF9SRVNFVCwg TUFMSV9BRkJDRF9NQU5VQUxfUkVTRVQsCiAJCQkgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoTUFM SV9BRkJDRF9UT1BfQ1RSTCkpOwpAQCAtMjc5LDI3ICsyODgsMzIgQEAgc3RhdGljIGludCBtZXNv bl9nMTJhX2FmYmNkX2luaXQoc3RydWN0IG1lc29uX2RybSAqcHJpdikKIAogc3RhdGljIGludCBt ZXNvbl9nMTJhX2FmYmNkX3Jlc2V0KHN0cnVjdCBtZXNvbl9kcm0gKnByaXYpCiB7Ci0Jd3JpdGVs X3JlbGF4ZWQoVklVX1NXX1JFU0VUX0cxMkFfQUZCQ19BUkIgfAotCQkgICAgICAgVklVX1NXX1JF U0VUX0cxMkFfT1NEMV9BRkJDRCwKLQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZJVV9T V19SRVNFVCkpOwotCXdyaXRlbF9yZWxheGVkKDAsIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZJVV9T V19SRVNFVCkpOworCW1lc29uX3JkbWFfc3RvcChwcml2KTsKKworCW1lc29uX3JkbWFfd3JpdGVs X3N5bmMocHJpdiwgVklVX1NXX1JFU0VUX0cxMkFfQUZCQ19BUkIgfAorCQkJICAgICAgIFZJVV9T V19SRVNFVF9HMTJBX09TRDFfQUZCQ0QsCisJCQkgICAgICAgVklVX1NXX1JFU0VUKTsKKwltZXNv bl9yZG1hX3dyaXRlbF9zeW5jKHByaXYsIDAsIFZJVV9TV19SRVNFVCk7CiAKIAlyZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBtZXNvbl9nMTJhX2FmYmNkX2VuYWJsZShzdHJ1Y3QgbWVzb25fZHJt ICpwcml2KQogewotCXdyaXRlbF9yZWxheGVkKFZQVV9NQUZCQ19JUlFfU1VSRkFDRVNfQ09NUExF VEVEIHwKLQkJICAgICAgIFZQVV9NQUZCQ19JUlFfQ09ORklHVVJBVElPTl9TV0FQUEVEIHwKLQkJ ICAgICAgIFZQVV9NQUZCQ19JUlFfREVDT0RFX0VSUk9SIHwKLQkJICAgICAgIFZQVV9NQUZCQ19J UlFfREVUSUxJTkdfRVJST1IsCi0JCSAgICAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVfTUFG QkNfSVJRX01BU0spKTsKKwltZXNvbl9yZG1hX3dyaXRlbF9zeW5jKHByaXYsIFZQVV9NQUZCQ19J UlFfU1VSRkFDRVNfQ09NUExFVEVEIHwKKwkJCSAgICAgICBWUFVfTUFGQkNfSVJRX0NPTkZJR1VS QVRJT05fU1dBUFBFRCB8CisJCQkgICAgICAgVlBVX01BRkJDX0lSUV9ERUNPREVfRVJST1IgfAor CQkJICAgICAgIFZQVV9NQUZCQ19JUlFfREVUSUxJTkdfRVJST1IsCisJCQkgICAgICAgVlBVX01B RkJDX0lSUV9NQVNLKTsKIAotCXdyaXRlbF9iaXRzX3JlbGF4ZWQoVlBVX01BRkJDX1MwX0VOQUJM RSwgVlBVX01BRkJDX1MwX0VOQUJMRSwKLQkJCSAgICBwcml2LT5pb19iYXNlICsgX1JFRyhWUFVf TUFGQkNfU1VSRkFDRV9DRkcpKTsKKwltZXNvbl9yZG1hX3dyaXRlbF9zeW5jKHByaXYsIFZQVV9N QUZCQ19TMF9FTkFCTEUsCisJCQkgICAgICAgVlBVX01BRkJDX1NVUkZBQ0VfQ0ZHKTsKKworCW1l c29uX3JkbWFfd3JpdGVsX3N5bmMocHJpdiwgVlBVX01BRkJDX0RJUkVDVF9TV0FQLAorCQkJICAg ICAgIFZQVV9NQUZCQ19DT01NQU5EKTsKIAotCXdyaXRlbF9yZWxheGVkKFZQVV9NQUZCQ19ESVJF Q1RfU1dBUCwKLQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9NQUZCQ19DT01NQU5E KSk7CisJLyogVGhpcyB3aWxsIGVuYWJsZSB0aGUgUkRNQSByZXBsYXlpbmcgdGhlIHJlZ2lzdGVy IHdyaXRlcyBvbiB2c3luYyAqLworCW1lc29uX3JkbWFfZmx1c2gocHJpdik7CiAKIAlyZXR1cm4g MDsKIH0KQEAgLTMzMCwzNiArMzQ0LDM2IEBAIHN0YXRpYyBpbnQgbWVzb25fZzEyYV9hZmJjZF9z ZXR1cChzdHJ1Y3QgbWVzb25fZHJtICpwcml2KQogCQlBRkJDX0ZPUk1BVF9NT0RfQkxPQ0tfU0la RV8zMng4KQogCQlmb3JtYXQgfD0gRklFTERfUFJFUChWUFVfTUFGQkNfU1VQRVJfQkxPQ0tfQVNQ RUNULCAxKTsKIAotCXdyaXRlbF9yZWxheGVkKGZvcm1hdCwKLQkJICAgICAgIHByaXYtPmlvX2Jh c2UgKyBfUkVHKFZQVV9NQUZCQ19GT1JNQVRfU1BFQ0lGSUVSX1MwKSk7Ci0KLQl3cml0ZWxfcmVs YXhlZChwcml2LT52aXUub3NkMV9hZGRyLAotCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUco VlBVX01BRkJDX0hFQURFUl9CVUZfQUREUl9MT1dfUzApKTsKLQl3cml0ZWxfcmVsYXhlZCgwLAot CQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBVX01BRkJDX0hFQURFUl9CVUZfQUREUl9I SUdIX1MwKSk7Ci0KLQl3cml0ZWxfcmVsYXhlZChwcml2LT52aXUub3NkMV93aWR0aCwKLQkJICAg ICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9NQUZCQ19CVUZGRVJfV0lEVEhfUzApKTsKLQl3 cml0ZWxfcmVsYXhlZChBTElHTihwcml2LT52aXUub3NkMV9oZWlnaHQsIDMyKSwKLQkJICAgICAg IHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9NQUZCQ19CVUZGRVJfSEVJR0hUX1MwKSk7Ci0KLQl3 cml0ZWxfcmVsYXhlZCgwLAotCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBVX01BRkJD X0JPVU5ESU5HX0JPWF9YX1NUQVJUX1MwKSk7Ci0Jd3JpdGVsX3JlbGF4ZWQocHJpdi0+dml1Lm9z ZDFfd2lkdGggLSAxLAotCQkgICAgICAgcHJpdi0+aW9fYmFzZSArIF9SRUcoVlBVX01BRkJDX0JP VU5ESU5HX0JPWF9YX0VORF9TMCkpOwotCXdyaXRlbF9yZWxheGVkKDAsCi0JCSAgICAgICBwcml2 LT5pb19iYXNlICsgX1JFRyhWUFVfTUFGQkNfQk9VTkRJTkdfQk9YX1lfU1RBUlRfUzApKTsKLQl3 cml0ZWxfcmVsYXhlZChwcml2LT52aXUub3NkMV9oZWlnaHQgLSAxLAotCQkgICAgICAgcHJpdi0+ aW9fYmFzZSArIF9SRUcoVlBVX01BRkJDX0JPVU5ESU5HX0JPWF9ZX0VORF9TMCkpOwotCi0Jd3Jp dGVsX3JlbGF4ZWQoTUVTT05fRzEyQV9BRkJDRF9PVVRfQUREUiwKLQkJICAgICAgIHByaXYtPmlv X2Jhc2UgKyBfUkVHKFZQVV9NQUZCQ19PVVRQVVRfQlVGX0FERFJfTE9XX1MwKSk7Ci0Jd3JpdGVs X3JlbGF4ZWQoMCwKLQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9NQUZCQ19PVVRQ VVRfQlVGX0FERFJfSElHSF9TMCkpOwotCi0Jd3JpdGVsX3JlbGF4ZWQocHJpdi0+dml1Lm9zZDFf d2lkdGggKgotCQkgICAgICAgKG1lc29uX2cxMmFfYWZiY2RfYnBwKHByaXYtPmFmYmNkLmZvcm1h dCkgLyA4KSwKLQkJICAgICAgIHByaXYtPmlvX2Jhc2UgKyBfUkVHKFZQVV9NQUZCQ19PVVRQVVRf QlVGX1NUUklERV9TMCkpOworCW1lc29uX3JkbWFfd3JpdGVsX3N5bmMocHJpdiwgZm9ybWF0LAor CQkJICAgICAgIFZQVV9NQUZCQ19GT1JNQVRfU1BFQ0lGSUVSX1MwKTsKKworCW1lc29uX3JkbWFf d3JpdGVsX3N5bmMocHJpdiwgcHJpdi0+dml1Lm9zZDFfYWRkciwKKwkJCSAgICAgICBWUFVfTUFG QkNfSEVBREVSX0JVRl9BRERSX0xPV19TMCk7CisJbWVzb25fcmRtYV93cml0ZWxfc3luYyhwcml2 LCAwLAorCQkJICAgICAgIFZQVV9NQUZCQ19IRUFERVJfQlVGX0FERFJfSElHSF9TMCk7CisKKwlt ZXNvbl9yZG1hX3dyaXRlbF9zeW5jKHByaXYsIHByaXYtPnZpdS5vc2QxX3dpZHRoLAorCQkJICAg ICAgIFZQVV9NQUZCQ19CVUZGRVJfV0lEVEhfUzApOworCW1lc29uX3JkbWFfd3JpdGVsX3N5bmMo cHJpdiwgQUxJR04ocHJpdi0+dml1Lm9zZDFfaGVpZ2h0LCAzMiksCisJCQkgICAgICAgVlBVX01B RkJDX0JVRkZFUl9IRUlHSFRfUzApOworCisJbWVzb25fcmRtYV93cml0ZWxfc3luYyhwcml2LCAw LAorCQkJICAgICAgIFZQVV9NQUZCQ19CT1VORElOR19CT1hfWF9TVEFSVF9TMCk7CisJbWVzb25f cmRtYV93cml0ZWxfc3luYyhwcml2LCBwcml2LT52aXUub3NkMV93aWR0aCAtIDEsCisJCQkgICAg ICAgVlBVX01BRkJDX0JPVU5ESU5HX0JPWF9YX0VORF9TMCk7CisJbWVzb25fcmRtYV93cml0ZWxf c3luYyhwcml2LCAwLAorCQkJICAgICAgIFZQVV9NQUZCQ19CT1VORElOR19CT1hfWV9TVEFSVF9T MCk7CisJbWVzb25fcmRtYV93cml0ZWxfc3luYyhwcml2LCBwcml2LT52aXUub3NkMV9oZWlnaHQg LSAxLAorCQkJICAgICAgIFZQVV9NQUZCQ19CT1VORElOR19CT1hfWV9FTkRfUzApOworCisJbWVz b25fcmRtYV93cml0ZWxfc3luYyhwcml2LCBNRVNPTl9HMTJBX0FGQkNEX09VVF9BRERSLAorCQkJ ICAgICAgIFZQVV9NQUZCQ19PVVRQVVRfQlVGX0FERFJfTE9XX1MwKTsKKwltZXNvbl9yZG1hX3dy aXRlbF9zeW5jKHByaXYsIDAsCisJCQkgICAgICAgVlBVX01BRkJDX09VVFBVVF9CVUZfQUREUl9I SUdIX1MwKTsKKworCW1lc29uX3JkbWFfd3JpdGVsX3N5bmMocHJpdiwgcHJpdi0+dml1Lm9zZDFf d2lkdGggKgorCQkJICAgICAgIChtZXNvbl9nMTJhX2FmYmNkX2JwcChwcml2LT5hZmJjZC5mb3Jt YXQpIC8gOCksCisJCQkgICAgICAgVlBVX01BRkJDX09VVFBVVF9CVUZfU1RSSURFX1MwKTsKIAog CXJldHVybiAwOwogfQotLSAKMi4yMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=