From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: [RFC PATCH v2 8/9] drm: writeback: Add out-fences for writeback connectors Date: Wed, 26 Oct 2016 09:55:07 +0100 Message-ID: <1477472108-27222-9-git-send-email-brian.starkey@arm.com> References: <1477472108-27222-1-git-send-email-brian.starkey@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by gabe.freedesktop.org (Postfix) with ESMTP id 8F8F66E81D for ; Wed, 26 Oct 2016 08:55:37 +0000 (UTC) In-Reply-To: <1477472108-27222-1-git-send-email-brian.starkey@arm.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: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org QWRkIHRoZSBPVVRfRkVOQ0VfUFRSIHByb3BlcnR5IHRvIHdyaXRlYmFjayBjb25uZWN0b3JzLCB0 byBlbmFibGUKdXNlcnNwYWNlIHRvIGdldCBhIGZlbmNlIHdoaWNoIHdpbGwgc2lnbmFsIG9uY2Ug dGhlIHdyaXRlYmFjayBpcwpjb21wbGV0ZS4KCkEgdGltZWxpbmUgaXMgYWRkZWQgdG8gZHJtX2Nv bm5lY3RvciBmb3IgdXNlIGJ5IHRoZSB3cml0ZWJhY2sKb3V0LWZlbmNlcy4gSXQgaXMgdXAgdG8g ZHJpdmVycyB0byBjaGVjayBmb3IgYSBmZW5jZSBpbiB0aGUKY29ubmVjdG9yX3N0YXRlIGFuZCBz aWduYWwgdGhlIGl0IGFwcHJvcHJpYXRlbHkgd2hlbiB0aGVpciB3cml0ZWJhY2sgaGFzCmZpbmlz aGVkLgoKSXQgaXMgbm90IGFsbG93ZWQgdG8gcmVxdWVzdCBhbiBvdXQtZmVuY2Ugd2l0aG91dCBh IGZyYW1lYnVmZmVyIGF0dGFjaGVkCnRvIHRoZSBjb25uZWN0b3IuCgpTaWduZWQtb2ZmLWJ5OiBC cmlhbiBTdGFya2V5IDxicmlhbi5zdGFya2V5QGFybS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyAgICAgICAgfCAgIDYwICsrKysrKysrKysrKysrKysrKysrKysrLS0tCiBk cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8ICAgIDUgKystCiBkcml2ZXJzL2dw dS9kcm0vZHJtX3dyaXRlYmFjay5jICAgICB8ICAgODAgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgIHwgICAxNCAr KysrKysKIGluY2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaCAgICAgICAgIHwgICAgMiArCiA1IGZp bGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCmluZGV4IDNmOGZjOTcuLjA2MWVhMTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwpAQCAtMzAs NiArMzAsNyBAQAogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljLmg+CiAjaW5jbHVkZSA8ZHJtL2Ry bV9tb2RlLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wbGFuZV9oZWxwZXIuaD4KKyNpbmNsdWRlIDxk cm0vZHJtX3dyaXRlYmFjay5oPgogI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPgogCiAjaW5j bHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKQEAgLTY0Niw2ICs2NDcsMTIgQEAgc3RhdGljIGlu dCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKKwlpZiAoc3RhdGUtPm91dF9mZW5jZSAmJiAh c3RhdGUtPmZiKSB7CisJCURSTV9ERUJVR19BVE9NSUMoIltDT05ORUNUT1I6JWQ6JXNdIHJlcXVl c3Rpbmcgb3V0LWZlbmNlIHdpdGhvdXQgZnJhbWVidWZmZXJcbiIsCisJCQkJIGNvbm5lY3Rvci0+ YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCiAJcmV0 dXJuIDA7CiB9CiAKQEAgLTEwNDcsNiArMTA1NCw4IEBAIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rv cl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJZHJtX2F0 b21pY19zZXRfZmJfZm9yX2Nvbm5lY3RvcihzdGF0ZSwgZmIpOwogCQlpZiAoZmIpCiAJCQlkcm1f ZnJhbWVidWZmZXJfdW5yZWZlcmVuY2UoZmIpOworCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29u ZmlnLT5wcm9wX291dF9mZW5jZV9wdHIpIHsKKwkJc3RhdGUtPm91dF9mZW5jZV9wdHIgPSB1NjRf dG9fdXNlcl9wdHIodmFsKTsKIAl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19z ZXRfcHJvcGVydHkpIHsKIAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19zZXRfcHJv cGVydHkoY29ubmVjdG9yLAogCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKQEAgLTEwODgsNiAr MTA5Nyw4IEBAIGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0 ZWJhY2tfZmJfaWRfcHJvcGVydHkpIHsKIAkJLyogV3JpdGViYWNrIGZyYW1lYnVmZmVyIGlzIG9u ZS1zaG90LCB3cml0ZSBhbmQgZm9yZ2V0ICovCiAJCSp2YWwgPSAwOworCX0gZWxzZSBpZiAocHJv cGVydHkgPT0gY29uZmlnLT5wcm9wX291dF9mZW5jZV9wdHIpIHsKKwkJKnZhbCA9IDA7CiAJfSBl bHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7CiAJCXJldHVy biBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKIAkJCQlz dGF0ZSwgcHJvcGVydHksIHZhbCk7CkBAIC0xNzM2LDYgKzE3NDcsMzkgQEAgc3RhdGljIGludCBz ZXR1cF9vdXRfZmVuY2Uoc3RydWN0IGRybV9vdXRfZmVuY2Vfc3RhdGUgKmZlbmNlX3N0YXRlLAog CXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHNldHVwX2Nvbm5lY3Rvcl9vdXRfZmVuY2VzKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgICAgICBzdHJ1Y3QgZHJtX291dF9m ZW5jZV9zdGF0ZSAqZmVuY2Vfc3RhdGUsCisJCQkJICAgICAgaW50ICpmZW5jZV9pZHgpCit7CisJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGU7CisJaW50IGksIHJldDsKKworCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0 ZShzdGF0ZSwgY29ubiwgY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgZmVuY2UgKmZlbmNlOwor CisJCWlmICghY29ubl9zdGF0ZS0+b3V0X2ZlbmNlX3B0cikKKwkJCWNvbnRpbnVlOworCisJCWZl bmNlID0gZHJtX3dyaXRlYmFja19nZXRfb3V0X2ZlbmNlKGNvbm4sIGNvbm5fc3RhdGUpOworCQlp ZiAoIWZlbmNlKQorCQkJcmV0dXJuIC1FTk9NRU07CisKKwkJcmV0ID0gc2V0dXBfb3V0X2ZlbmNl KCZmZW5jZV9zdGF0ZVsoKmZlbmNlX2lkeCkrK10sCisJCQkJICAgICAgY29ubl9zdGF0ZS0+b3V0 X2ZlbmNlX3B0ciwKKwkJCQkgICAgICBmZW5jZSk7CisJCWlmIChyZXQpIHsKKwkJCWZlbmNlX3B1 dChmZW5jZSk7CisJCQlyZXR1cm4gcmV0OworCQl9CisKKwkJLyogT25lLXRpbWUgdXNhZ2Ugb25s eSAqLworCQljb25uX3N0YXRlLT5vdXRfZmVuY2VfcHRyID0gTlVMTDsKKwl9CisKKwlyZXR1cm4g MDsKK30KKwogaW50IGRybV9tb2RlX2F0b21pY19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKQEAgLTE4 NjgsOCArMTkxMiw4IEBAIHJldHJ5OgogCQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2Jq KTsKIAl9CiAKLQlmZW5jZV9zdGF0ZSA9IGtjYWxsb2MoZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0 Yywgc2l6ZW9mKCpmZW5jZV9zdGF0ZSksCi0JCQkgICAgICBHRlBfS0VSTkVMKTsKKwlmZW5jZV9z dGF0ZSA9IGtjYWxsb2MoZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0YyArIHN0YXRlLT5udW1fY29u bmVjdG9yLAorCQkJICAgICAgc2l6ZW9mKCpmZW5jZV9zdGF0ZSksIEdGUF9LRVJORUwpOwogCWlm ICghZmVuY2Vfc3RhdGUpIHsKIAkJcmV0ID0gLUVOT01FTTsKIAkJZ290byBvdXQ7CkBAIC0xOTI5 LDEwICsxOTczLDE2IEBAIHJldHJ5OgogCQkgKiBCZWxvdyB3ZSBjYWxsIGRybV9hdG9taWNfc3Rh dGVfZnJlZSBmb3IgaXQuCiAJCSAqLwogCQlyZXQgPSBkcm1fYXRvbWljX2NoZWNrX29ubHkoc3Rh dGUpOwotCX0gZWxzZSBpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RFX0FUT01JQ19OT05CTE9DSykg ewotCQlyZXQgPSBkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdChzdGF0ZSk7CiAJfSBlbHNl IHsKLQkJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOworCQlyZXQgPSBzZXR1cF9jb25u ZWN0b3Jfb3V0X2ZlbmNlcyhzdGF0ZSwgZmVuY2Vfc3RhdGUsCisJCQkJCQkgJmZlbmNlX2lkeCk7 CisJCWlmIChyZXQpCisJCQlnb3RvIG91dDsKKworCQlpZiAoYXJnLT5mbGFncyAmIERSTV9NT0RF X0FUT01JQ19OT05CTE9DSykKKwkJCXJldCA9IGRybV9hdG9taWNfbm9uYmxvY2tpbmdfY29tbWl0 KHN0YXRlKTsKKwkJZWxzZQorCQkJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOwogCX0K IAogCWlmICghcmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCBiYmE4Njcy Li44OGRhMjk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAtMzIzNCw4ICsz MjM0LDkgQEAgX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJaWYgKHN0YXRlLT5jcnRjKQogCQlkcm1f Y29ubmVjdG9yX3JlZmVyZW5jZShjb25uZWN0b3IpOwogCi0JLyogRG9uJ3QgY29weSBvdmVyIGZy YW1lYnVmZmVycywgdGhleSBhcmUgdXNlZCBvbmx5IG9uY2UgKi8KKwkvKiBEb24ndCBjb3B5IG92 ZXIgZnJhbWVidWZmZXJzIG9yIGZlbmNlcywgdGhleSBhcmUgdXNlZCBvbmx5IG9uY2UgKi8KIAlz dGF0ZS0+ZmIgPSBOVUxMOworCXN0YXRlLT5vdXRfZmVuY2UgPSBOVUxMOwogfQogRVhQT1JUX1NZ TUJPTChfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUpOwogCkBA IC0zMzY1LDYgKzMzNjYsOCBAQCBfX2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95 X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSkKIAkJZHJtX2Nvbm5lY3Rv cl91bnJlZmVyZW5jZShzdGF0ZS0+Y29ubmVjdG9yKTsKIAlpZiAoc3RhdGUtPmZiKQogCQlkcm1f ZnJhbWVidWZmZXJfdW5yZWZlcmVuY2Uoc3RhdGUtPmZiKTsKKworCWZlbmNlX3B1dChzdGF0ZS0+ b3V0X2ZlbmNlKTsKIH0KIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0 b3JfZGVzdHJveV9zdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fd3Jp dGViYWNrLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCmluZGV4IDVhNmUwYWQu LjRhNmVmMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fd3JpdGViYWNrLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYwpAQCAtMTEsNiArMTEsNyBAQAogI2lu Y2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgogI2luY2x1ZGUgPGRybS9kcm1fcHJvcGVydHkuaD4KICNp bmNsdWRlIDxkcm0vZHJtUC5oPgorI2luY2x1ZGUgPGxpbnV4L2ZlbmNlLmg+CiAKIC8qKgogICog RE9DOiBvdmVydmlldwpAQCAtMzIsNiArMzMsMTYgQEAKICAqIGV4cGxpY2l0bHkgY2xlYXJlZCBp biBvcmRlciB0byBtYWtlIGEgc3Vic2VxdWVudCBjb21taXQgd2hpY2ggZG9lc24ndCB1c2UKICAq IHdyaXRlYmFjay4KICAqCisgKiBVbmxpa2Ugd2l0aCBwbGFuZXMsIHdoZW4gYSB3cml0ZWJhY2sg ZnJhbWVidWZmZXIgaXMgcmVtb3ZlZCBieSB1c2Vyc3BhY2UgRFJNCisgKiBtYWtlcyBubyBhdHRl bXB0IHRvIHJlbW92ZSBpdCBmcm9tIGFjdGl2ZSB1c2UgYnkgdGhlIGNvbm5lY3Rvci4gVGhpcyBp cworICogYmVjYXVzZSBubyBtZXRob2QgaXMgcHJvdmlkZWQgdG8gYWJvcnQgYSB3cml0ZWJhY2sg b3BlcmF0aW9uLCBhbmQgaW4gYW55CisgKiBjYXNlIG1ha2luZyBhIG5ldyBjb21taXQgd2hpbHN0 IGEgd3JpdGViYWNrIGlzIG9uZ29pbmcgaXMgdW5kZWZpbmVkIChzZWUKKyAqIE9VVF9GRU5DRV9Q VFIgYmVsb3cpLiBBcyBzb29uIGFzIHRoZSBjdXJyZW50IHdyaXRlYmFjayBpcyBmaW5pc2hlZCwg dGhlCisgKiBmcmFtZWJ1ZmZlciB3aWxsIGF1dG9tYXRpY2FsbHkgbm8gbG9uZ2VyIGJlIGluIGFj dGl2ZSB1c2UuIEFzIGl0IHdpbGwgYWxzbworICogaGF2ZSBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBm cm9tIHRoZSBmcmFtZWJ1ZmZlciBsaXN0LCB0aGVyZSB3aWxsIGJlIG5vIHdheSBmb3IKKyAqIGFu eSB1c2Vyc3BhY2UgYXBwbGljYXRpb24gdG8gcmV0cmlldmUgYSByZWZlcmVuY2UgdG8gaXQgaW4g dGhlIGludGVydmVuaW5nCisgKiBwZXJpb2QuCisgKgogICogV3JpdGViYWNrIGNvbm5lY3RvcnMg aGF2ZSBzZXZlcmFsIGFkZGl0aW9uYWwgcHJvcGVydGllcywgd2hpY2ggdXNlcnNwYWNlCiAgKiBj YW4gdXNlIHRvIHF1ZXJ5IGFuZCBjb250cm9sIHRoZW06CiAgKgpAQCAtNTIsOCArNjMsNDggQEAK ICAqICAiUElYRUxfRk9STUFUU19TSVpFIjoKICAqCUltbXV0YWJsZSB1bnNpZ25lZCByYW5nZSBw cm9wZXJ0eSBzdG9yaW5nIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUKICAqCVBJWEVMX0ZP Uk1BVFMgYXJyYXkuCisgKgorICogICJPVVRfRkVOQ0VfUFRSIjoKKyAqCVVzZXJzcGFjZSBjYW4g cHJvdmlkZSB0aGUgYWRkcmVzcyBvZiBhIDY0LWJpdCBpbnRlZ2VyIGluIHRoaXMgcHJvcGVydHks CisgKgl3aGljaCB3aWxsIGJlIGZpbGxlZCB3aXRoIGEgc3luY19maWxlIGZpbGUgZGVzY3JpcHRv ciBieSB0aGUga2VybmVsLgorICoJVGhlIHN5bmNfZmlsZSB3aWxsIHNpZ25hbCB3aGVuIHRoZSBh c3NvY2lhdGVkIHdyaXRlYmFjayBoYXMgZmluaXNoZWQuCisgKglVc2Vyc3BhY2Ugc2hvdWxkIHdh aXQgZm9yIHRoaXMgZmVuY2UgdG8gc2lnbmFsIGJlZm9yZSBtYWtpbmcgYW5vdGhlcgorICoJY29t bWl0IGFmZmVjdGluZyBhbnkgb2YgdGhlIHNhbWUgQ1JUQ3MsIFBsYW5lcyBvciBDb25uZWN0b3Jz LgorICoJKipGYWlsdXJlIHRvIGRvIHNvIHdpbGwgcmVzdWx0IGluIHVuZGVmaW5lZCBiZWhhdmlv dXIuKioKKyAqCUZvciB0aGlzIHJlYXNvbiBpdCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCB0aGF0 IGFsbCB1c2Vyc3BhY2UKKyAqCWFwcGxpY2F0aW9ucyBtYWtpbmcgdXNlIG9mIHdyaXRlYmFjayBj b25uZWN0b3JzICphbHdheXMqIHJldHJpZXZlIGFuCisgKglvdXQtZmVuY2UgZm9yIHRoZSBjb21t aXQgYW5kIHVzZSBpdCBhcHByb3ByaWF0ZWx5LgorICoJRnJvbSB1c2Vyc3BhY2UsIHRoaXMgcHJv cGVydHkgd2lsbCBhbHdheXMgcmVhZCBhcyB6ZXJvLgogICovCiAKKyNkZWZpbmUgZmVuY2VfdG9f Y29ubmVjdG9yKHgpIGNvbnRhaW5lcl9vZih4LT5sb2NrLCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvciwg ZmVuY2VfbG9jaykKKworc3RhdGljIGNvbnN0IGNoYXIgKmRybV93cml0ZWJhY2tfZmVuY2VfZ2V0 X2RyaXZlcl9uYW1lKHN0cnVjdCBmZW5jZSAqZmVuY2UpCit7CisJc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9IGZlbmNlX3RvX2Nvbm5lY3RvcihmZW5jZSk7CisKKwlyZXR1cm4gY29u bmVjdG9yLT5kZXYtPmRyaXZlci0+bmFtZTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmRybV93 cml0ZWJhY2tfZmVuY2VfZ2V0X3RpbWVsaW5lX25hbWUoc3RydWN0IGZlbmNlICpmZW5jZSkKK3sK KwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gZmVuY2VfdG9fY29ubmVjdG9yKGZl bmNlKTsKKworCXJldHVybiBjb25uZWN0b3ItPnRpbWVsaW5lX25hbWU7Cit9CisKK3N0YXRpYyBi b29sIGRybV93cml0ZWJhY2tfZmVuY2VfZW5hYmxlX3NpZ25hbGluZyhzdHJ1Y3QgZmVuY2UgKmZl bmNlKQoreworCXJldHVybiB0cnVlOworfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IGZlbmNlX29w cyBkcm1fd3JpdGViYWNrX2ZlbmNlX29wcyA9IHsKKwkuZ2V0X2RyaXZlcl9uYW1lID0gZHJtX3dy aXRlYmFja19mZW5jZV9nZXRfZHJpdmVyX25hbWUsCisJLmdldF90aW1lbGluZV9uYW1lID0gZHJt X3dyaXRlYmFja19mZW5jZV9nZXRfdGltZWxpbmVfbmFtZSwKKwkuZW5hYmxlX3NpZ25hbGluZyA9 IGRybV93cml0ZWJhY2tfZmVuY2VfZW5hYmxlX3NpZ25hbGluZywKKwkud2FpdCA9IGZlbmNlX2Rl ZmF1bHRfd2FpdCwKK307CisKIC8qKgogICogY3JlYXRlX3dyaXRlYmFja19wcm9wZXJ0aWVzIC0g Q3JlYXRlIHdyaXRlYmFjayBjb25uZWN0b3Itc3BlY2lmaWMgcHJvcGVydGllcwogICogQGRldjog RFJNIGRldmljZQpAQCAtMTM2LDYgKzE4NywxNCBAQCBpbnQgZHJtX3dyaXRlYmFja19jb25uZWN0 b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChyZXQpCiAJCWdvdG8gZmFpbDsK IAorCWNvbm5lY3Rvci0+ZmVuY2VfY29udGV4dCA9IGZlbmNlX2NvbnRleHRfYWxsb2MoMSk7CisJ c3Bpbl9sb2NrX2luaXQoJmNvbm5lY3Rvci0+ZmVuY2VfbG9jayk7CisJc25wcmludGYoY29ubmVj dG9yLT50aW1lbGluZV9uYW1lLCBzaXplb2YoY29ubmVjdG9yLT50aW1lbGluZV9uYW1lKSwKKwkJ ICJDT05ORUNUT1I6JWQiLCBjb25uZWN0b3ItPmJhc2UuaWQpOworCisJZHJtX29iamVjdF9hdHRh Y2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKKwkJCQkgICBjb25maWctPnByb3Bfb3V0X2Zl bmNlX3B0ciwgMCk7CisKIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5i YXNlLAogCQkJCSAgIGNvbmZpZy0+d3JpdGViYWNrX2ZiX2lkX3Byb3BlcnR5LCAwKTsKIApAQCAt MTU1LDMgKzIxNCwyNCBAQCBmYWlsOgogCXJldHVybiByZXQ7CiB9CiBFWFBPUlRfU1lNQk9MKGRy bV93cml0ZWJhY2tfY29ubmVjdG9yX2luaXQpOworCitzdHJ1Y3QgZmVuY2UgKmRybV93cml0ZWJh Y2tfZ2V0X291dF9mZW5jZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAorCQkJCQkg IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQoreworCXN0cnVjdCBmZW5j ZSAqZmVuY2U7CisKKwlpZiAoV0FSTl9PTihjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9IERS TV9NT0RFX0NPTk5FQ1RPUl9XUklURUJBQ0spKQorCQlyZXR1cm4gTlVMTDsKKworCWZlbmNlID0g a3phbGxvYyhzaXplb2YoKmZlbmNlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmZW5jZSkKKwkJcmV0 dXJuIE5VTEw7CisKKwlmZW5jZV9pbml0KGZlbmNlLCAmZHJtX3dyaXRlYmFja19mZW5jZV9vcHMs ICZjb25uZWN0b3ItPmZlbmNlX2xvY2ssCisJCSAgIGNvbm5lY3Rvci0+ZmVuY2VfY29udGV4dCwg Kytjb25uZWN0b3ItPmZlbmNlX3NlcW5vKTsKKworCWNvbm5fc3RhdGUtPm91dF9mZW5jZSA9IGZl bmNlX2dldChmZW5jZSk7CisKKwlyZXR1cm4gZmVuY2U7Cit9CitFWFBPUlRfU1lNQk9MKGRybV93 cml0ZWJhY2tfZ2V0X291dF9mZW5jZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29u bmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKaW5kZXggYTVlMzc3OC4uN2Q0 MDUzNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaApAQCAtMTk5LDYgKzE5OSw3IEBAIGludCBkcm1fZGlzcGxh eV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbywKICAq IEBiZXN0X2VuY29kZXI6IGNhbiBiZSB1c2VkIGJ5IGhlbHBlcnMgYW5kIGRyaXZlcnMgdG8gc2Vs ZWN0IHRoZSBlbmNvZGVyCiAgKiBAc3RhdGU6IGJhY2twb2ludGVyIHRvIGdsb2JhbCBkcm1fYXRv bWljX3N0YXRlCiAgKiBAZmI6IFdyaXRlYmFjayBmcmFtZWJ1ZmZlciwgZm9yIERSTV9NT0RFX0NP Tk5FQ1RPUl9XUklURUJBQ0sKKyAqIEBvdXRfZmVuY2U6IEZlbmNlIHdoaWNoIHdpbGwgY2xlYXIg d2hlbiB0aGUgZnJhbWVidWZmZXIgd3JpdGUgaGFzIGZpbmlzaGVkCiAgKi8KIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwpAQCAt MjE2LDYgKzIxNyw5IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKIAlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGU7CiAKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsgIC8q IGRvIG5vdCB3cml0ZSBkaXJlY3RseSwgdXNlIGRybV9hdG9taWNfc2V0X2ZiX2Zvcl9jb25uZWN0 b3IoKSAqLworCisJc3RydWN0IGZlbmNlICpvdXRfZmVuY2U7CisJdTY0IF9fdXNlciAqb3V0X2Zl bmNlX3B0cjsKIH07CiAKIC8qKgpAQCAtNTQ2LDYgKzU1MCwxMCBAQCBzdHJ1Y3QgZHJtX2NtZGxp bmVfbW9kZSB7CiAgKiBAdGlsZV92X2xvYzogdmVydGljYWwgbG9jYXRpb24gb2YgdGhpcyB0aWxl CiAgKiBAdGlsZV9oX3NpemU6IGhvcml6b250YWwgc2l6ZSBvZiB0aGlzIHRpbGUuCiAgKiBAdGls ZV92X3NpemU6IHZlcnRpY2FsIHNpemUgb2YgdGhpcyB0aWxlLgorICogQGZlbmNlX2NvbnRleHQ6 IGNvbnRleHQgZm9yIGZlbmNlIHNpZ25hbGxpbmcKKyAqIEBmZW5jZV9sb2NrOiBmZW5jZSBsb2Nr IGZvciB0aGUgZmVuY2UgY29udGV4dAorICogQGZlbmNlX3NlcW5vOiBzZXFubyB2YXJpYWJsZSB0 byBjcmVhdGUgZmVuY2VzCisgKiBAdGltZWxpbmVfbmFtZTogZmVuY2UgdGltZWxpbmUgbmFtZQog ICoKICAqIEVhY2ggY29ubmVjdG9yIG1heSBiZSBjb25uZWN0ZWQgdG8gb25lIG9yIG1vcmUgQ1JU Q3MsIG9yIG1heSBiZSBjbG9uYWJsZSBieQogICogYW5vdGhlciBjb25uZWN0b3IgaWYgdGhleSBj YW4gc2hhcmUgYSBDUlRDLiAgRWFjaCBjb25uZWN0b3IgYWxzbyBoYXMgYSBzcGVjaWZpYwpAQCAt Njk0LDYgKzcwMiwxMiBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciB7CiAJdWludDhfdCBudW1faF90 aWxlLCBudW1fdl90aWxlOwogCXVpbnQ4X3QgdGlsZV9oX2xvYywgdGlsZV92X2xvYzsKIAl1aW50 MTZfdCB0aWxlX2hfc2l6ZSwgdGlsZV92X3NpemU7CisKKwkvKiBmZW5jZSB0aW1lbGluZXMgaW5m byBmb3IgRFJNIG91dC1mZW5jZXMgKi8KKwl1bnNpZ25lZCBpbnQgZmVuY2VfY29udGV4dDsKKwlz cGlubG9ja190IGZlbmNlX2xvY2s7CisJdW5zaWduZWQgbG9uZyBmZW5jZV9zZXFubzsKKwljaGFy IHRpbWVsaW5lX25hbWVbMzJdOwogfTsKIAogI2RlZmluZSBvYmpfdG9fY29ubmVjdG9yKHgpIGNv bnRhaW5lcl9vZih4LCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciwgYmFzZSkKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaCBiL2luY2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaApp bmRleCBhZmRjMjc0Mi4uMDFmMzNiYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3dyaXRl YmFjay5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaApAQCAtMTYsNCArMTYsNiBA QCBpbnQgZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyAqZnVuY3MsCiAJCQkJIHUz MiAqZm9ybWF0cywgaW50IG5fZm9ybWF0cyk7CiAKK3N0cnVjdCBmZW5jZSAqZHJtX3dyaXRlYmFj a19nZXRfb3V0X2ZlbmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCQkJCSAg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwogI2VuZGlmCi0tIAoxLjcu OS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK