From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [RFC] drm: add a mechanism for drivers to schedule vblank callbacks Date: Wed, 19 Nov 2014 17:47:08 -0200 Message-ID: <1416426435-2237-2-git-send-email-przanoni@gmail.com> References: <1416426435-2237-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1416426435-2237-1-git-send-email-przanoni@gmail.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: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpUaGUgZHJpdmVy cyBuZWVkIGEgd2F5IHRvIHNjaGVkdWxlIGZ1bmN0aW9ucyB0byBiZSByYW4gYWZ0ZXIgYSBjZXJ0 YWluCm51bWJlciBvZiB2YmxhbmtzLiBUaGUgaTkxNS5rbyBkcml2ZXIgaGFzIHBsZW50eSBvZiBl eGFtcGxlcyB3aGVyZQp0aGlzIGNvdWxkIGJlIHVzZWQsIHN1Y2ggYXMgZm9yIHVucGlubmluZyBi dWZmZXJzIGFmdGVyIGEgbW9kZXNldC4KU2luY2UgdGhlIHZibGFuayB3YWl0IElPQ1RMIGRvZXMg YmFzaWNhbGx5IHdoYXQgd2Ugd2FudCwgYnV0IGZvciB0aGUKdXNlciBzcGFjZSwgaW4gdGhpcyBw YXRjaCB3ZSBhZGQgYSBuZXcgbGlzdCBvZiB2YmxhbmsgZXZlbnRzCihkZXYtPnZibGFua19rZXJu ZWxfbGlzdCkgYW5kIGhhbmRsZSBpdCBleGFjdGx5IGxpa2Ugd2UgaGFuZGxlIHRoZQp1c2VyIHNw YWNlIGV2ZW50cy4KClNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlA aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgICAgICAgICAgIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMgICAgICAgICAgIHwgMTA2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgfCAgODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9kcm1Q LmggICAgICAgICAgICAgICAgICB8ICAyMiArKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAyMDYg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwppbmRleCAyZTVjN2Q5Li5i NWFlNmM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZHJ2LmMKQEAgLTU1Nyw2ICs1NTcsNyBAQCBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZHJtX2Rldl9hbGxvYyhzdHJ1Y3QgZHJtX2RyaXZlciAqZHJpdmVyLAogCUlOSVRfTElTVF9I RUFEKCZkZXYtPnZtYWxpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZkZXYtPm1hcGxpc3QpOwogCUlO SVRfTElTVF9IRUFEKCZkZXYtPnZibGFua19ldmVudF9saXN0KTsKKwlJTklUX0xJU1RfSEVBRCgm ZGV2LT52Ymxhbmtfa2VybmVsX2xpc3QpOwogCiAJc3Bpbl9sb2NrX2luaXQoJmRldi0+YnVmX2xv Y2spOwogCXNwaW5fbG9ja19pbml0KCZkZXYtPmV2ZW50X2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKaW5kZXgg MGU0N2RmNC4uNmUwNDAzNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCkBAIC0xMTA3LDYgKzExMDcsMTMgQEAgdm9p ZCBkcm1fY3J0Y193YWl0X29uZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQogfQogRVhQ T1JUX1NZTUJPTChkcm1fY3J0Y193YWl0X29uZV92YmxhbmspOwogCitzdGF0aWMgdm9pZCBzZW5k X2tlcm5lbF92YmxhbmtfZXZlbnQoc3RydWN0IGRybV9rZXJuZWxfdmJsYW5rX2l0ZW0gKml0ZW0p Cit7CisJaWYgKGl0ZW0tPmNhbGxiYWNrX2Zyb21fd29yaykKKwkJc2NoZWR1bGVfd29yaygmaXRl bS0+d29yayk7CisJZWxzZQorCQlpdGVtLT5jYWxsYmFjayhpdGVtKTsKK30KIC8qKgogICogZHJt X3ZibGFua19vZmYgLSBkaXNhYmxlIHZibGFuayBldmVudHMgb24gYSBDUlRDCiAgKiBAZGV2OiBE Uk0gZGV2aWNlCkBAIC0xMTI0LDcgKzExMzEsOCBAQCBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX3dh aXRfb25lX3ZibGFuayk7CiB2b2lkIGRybV92Ymxhbmtfb2ZmKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBjcnRjKQogewogCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXYt PnZibGFua1tjcnRjXTsKLQlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplLCAqdDsK KwlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplLCAqZXQ7CisJc3RydWN0IGRybV9r ZXJuZWxfdmJsYW5rX2l0ZW0gKmksICppdDsKIAlzdHJ1Y3QgdGltZXZhbCBub3c7CiAJdW5zaWdu ZWQgbG9uZyBpcnFmbGFnczsKIAl1bnNpZ25lZCBpbnQgc2VxOwpAQCAtMTE1MSw3ICsxMTU5LDcg QEAgdm9pZCBkcm1fdmJsYW5rX29mZihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykK IAkvKiBTZW5kIGFueSBxdWV1ZWQgdmJsYW5rIGV2ZW50cywgbGVzdCB0aGUgbmF0aXZlcyBncm93 IGRpc3F1aWV0ICovCiAJc2VxID0gZHJtX3ZibGFua19jb3VudF9hbmRfdGltZShkZXYsIGNydGMs ICZub3cpOwogCi0JbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGUsIHQsICZkZXYtPnZibGFua19l dmVudF9saXN0LCBiYXNlLmxpbmspIHsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZSwgZXQs ICZkZXYtPnZibGFua19ldmVudF9saXN0LCBiYXNlLmxpbmspIHsKIAkJaWYgKGUtPnBpcGUgIT0g Y3J0YykKIAkJCWNvbnRpbnVlOwogCQlEUk1fREVCVUcoIlNlbmRpbmcgcHJlbWF0dXJlIHZibGFu ayBldmVudCBvbiBkaXNhYmxlOiBcCkBAIC0xMTYxLDYgKzExNjksMjEgQEAgdm9pZCBkcm1fdmJs YW5rX29mZihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKIAkJZHJtX3ZibGFua19w dXQoZGV2LCBlLT5waXBlKTsKIAkJc2VuZF92YmxhbmtfZXZlbnQoZGV2LCBlLCBzZXEsICZub3cp OwogCX0KKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShpLCBpdCwgJmRldi0+dmJsYW5rX2tl cm5lbF9saXN0LCBsaW5rKSB7CisJCWludCBwaXBlID0gZHJtX2NydGNfaW5kZXgoaS0+Y3J0Yyk7 CisKKwkJaWYgKHBpcGUgIT0gY3J0YykKKwkJCWNvbnRpbnVlOworCisJCURSTV9ERUJVRygiU2Vu ZGluZyBwcmVtYXR1cmUga2VybmVsIHZibGFuayBldmVudCBvbiBkaXNhYmxlOiBcCisJCQkgIHdh bnRlZCAlZCwgY3VycmVudCAlZFxuIiwKKwkJCSAgaS0+dGFyZ2V0X3NlcSwgc2VxKTsKKwkJaS0+ cHJlbWF0dXJlID0gdHJ1ZTsKKwkJbGlzdF9kZWwoJmktPmxpbmspOworCQlkcm1fdmJsYW5rX3B1 dChkZXYsIHBpcGUpOworCQlzZW5kX2tlcm5lbF92YmxhbmtfZXZlbnQoaSk7CisJfQogCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgaXJxZmxhZ3MpOwogfQogRVhQT1JU X1NZTUJPTChkcm1fdmJsYW5rX29mZik7CkBAIC0xNTYwLDkgKzE1ODMsNjggQEAgZG9uZToKIAly ZXR1cm4gcmV0OwogfQogCitzdGF0aWMgdm9pZCBkcm1fa2VybmVsX3ZibGFua193b3JrX2Z1bmMo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBkcm1fa2VybmVsX3ZibGFua19p dGVtICppdGVtID0KKwkJY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1fa2VybmVsX3ZibGFu a19pdGVtLCB3b3JrKTsKKworCWl0ZW0tPmNhbGxiYWNrKGl0ZW0pOworfQorCitpbnQgZHJtX3dh aXRfdmJsYW5rX2tlcm5lbChzdHJ1Y3QgZHJtX2tlcm5lbF92YmxhbmtfaXRlbSAqaXRlbSkKK3sK KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBpdGVtLT5jcnRjOworCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5kZXY7CisJaW50IHBpcGUgPSBkcm1fY3J0Y19pbmRleChjcnRjKTsKKwlz dHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlwZV07CisJdW5z aWduZWQgaW50IHNlcTsKKwl1bnNpZ25lZCBsb25nIGlycWZsYWdzOworCWludCByZXQgPSAwOwor CisJaWYgKCFkZXYtPmlycV9lbmFibGVkKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWlmIChpdGVt LT5jYWxsYmFja19mcm9tX3dvcmspCisJCUlOSVRfV09SSygmaXRlbS0+d29yaywgZHJtX2tlcm5l bF92Ymxhbmtfd29ya19mdW5jKTsKKworCXJldCA9IGRybV92YmxhbmtfZ2V0KGRldiwgcGlwZSk7 CisJaWYgKHJldCkgeworCQlEUk1fREVCVUcoImZhaWxlZCB0byBhY3F1aXJlIHZibGFuayBjb3Vu dGVyLCAlZFxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9CisKKwlzZXEgPSBkcm1fdmJsYW5r X2NvdW50KGRldiwgcGlwZSk7CisJaWYgKCFpdGVtLT5hYnNvbHV0ZSkKKwkJaXRlbS0+dGFyZ2V0 X3NlcSArPSBzZXE7CisKKwlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBpcnFm bGFncyk7CisKKwlpZiAoIXZibGFuay0+ZW5hYmxlZCkgeworCQlyZXQgPSAtRUlOVkFMOworCQln b3RvIG91dDsKKwl9CisKKwlpZiAoc2VxIC0gaXRlbS0+dGFyZ2V0X3NlcSA8PSAoMSA8PCAyMykp IHsKKwkJZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTsKKwkJc2VuZF9rZXJuZWxfdmJsYW5rX2V2 ZW50KGl0ZW0pOworCX0gZWxzZSB7CisJCWxpc3RfYWRkX3RhaWwoJml0ZW0tPmxpbmssICZkZXYt PnZibGFua19rZXJuZWxfbGlzdCk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2 LT5ldmVudF9sb2NrLCBpcnFmbGFncyk7CisJcmV0dXJuIDA7CisKK291dDoKKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXYtPmV2ZW50X2xvY2ssIGlycWZsYWdzKTsKKwlkcm1fdmJsYW5rX3B1 dChkZXYsIHBpcGUpOworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MKGRybV93YWl0X3Zi bGFua19rZXJuZWwpOworCiBzdGF0aWMgdm9pZCBkcm1faGFuZGxlX3ZibGFua19ldmVudHMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCiB7Ci0Jc3RydWN0IGRybV9wZW5kaW5nX3Zi bGFua19ldmVudCAqZSwgKnQ7CisJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSwg KmV0OworCXN0cnVjdCBkcm1fa2VybmVsX3ZibGFua19pdGVtICppLCAqaXQ7CiAJc3RydWN0IHRp bWV2YWwgbm93OwogCXVuc2lnbmVkIGludCBzZXE7CiAKQEAgLTE1NzAsNyArMTY1Miw3IEBAIHN0 YXRpYyB2b2lkIGRybV9oYW5kbGVfdmJsYW5rX2V2ZW50cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBpbnQgY3J0YykKIAogCXNlcSA9IGRybV92YmxhbmtfY291bnRfYW5kX3RpbWUoZGV2LCBjcnRj LCAmbm93KTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlLCB0LCAmZGV2LT52Ymxhbmtf ZXZlbnRfbGlzdCwgYmFzZS5saW5rKSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGUsIGV0 LCAmZGV2LT52YmxhbmtfZXZlbnRfbGlzdCwgYmFzZS5saW5rKSB7CiAJCWlmIChlLT5waXBlICE9 IGNydGMpCiAJCQljb250aW51ZTsKIAkJaWYgKChzZXEgLSBlLT5ldmVudC5zZXF1ZW5jZSkgPiAo MTw8MjMpKQpAQCAtMTU4NCw2ICsxNjY2LDIyIEBAIHN0YXRpYyB2b2lkIGRybV9oYW5kbGVfdmJs YW5rX2V2ZW50cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0YykKIAkJc2VuZF92Ymxh bmtfZXZlbnQoZGV2LCBlLCBzZXEsICZub3cpOwogCX0KIAorCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShpLCBpdCwgJmRldi0+dmJsYW5rX2tlcm5lbF9saXN0LCBsaW5rKSB7CisJCWludCBwaXBl ID0gZHJtX2NydGNfaW5kZXgoaS0+Y3J0Yyk7CisKKwkJaWYgKHBpcGUgIT0gY3J0YykKKwkJCWNv bnRpbnVlOworCQlpZiAoKHNlcSAtIGktPnRhcmdldF9zZXEpID4gKDE8PDIzKSkKKwkJCWNvbnRp bnVlOworCisJCURSTV9ERUJVRygia2VybmVsIHZibGFuayBldmVudCBvbiAlZCwgY3VycmVudCAl ZFxuIiwKKwkJCSAgaS0+dGFyZ2V0X3NlcSwgc2VxKTsKKworCQlsaXN0X2RlbCgmaS0+bGluayk7 CisJCWRybV92YmxhbmtfcHV0KGRldiwgcGlwZSk7CisJCXNlbmRfa2VybmVsX3ZibGFua19ldmVu dChpKTsKKwl9CisKIAl0cmFjZV9kcm1fdmJsYW5rX2V2ZW50KGNydGMsIHNlcSk7CiB9CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMzE5ZGE2MS4uZTcwNTk3NiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTI3MTUsNiArMjcxNSw4NiBAQCBzdGF0aWMg aW50IGk5MTVfZGRiX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJcmV0 dXJuIDA7CiB9CiAKK3N0cnVjdCB2YmxhbmtfZGF0YSB7CisJaW50IGVpZ2h0OworCWNvbnN0IGNo YXIgKm1lc3NhZ2U7CisJc3RydWN0IGRybV9rZXJuZWxfdmJsYW5rX2l0ZW0gaXRlbTsKK307CisK K3N0YXRpYyB2b2lkIHZibGFua19jYWxsYmFjayhzdHJ1Y3QgZHJtX2tlcm5lbF92YmxhbmtfaXRl bSAqaXRlbSkKK3sKKwlzdHJ1Y3QgdmJsYW5rX2RhdGEgKmRhdGEgPSBjb250YWluZXJfb2YoaXRl bSwgc3RydWN0IHZibGFua19kYXRhLCBpdGVtKTsKKworCVdBUk5fT04oZGF0YS0+ZWlnaHQgIT0g OCk7CisJV0FSTl9PTihpdGVtLT5jYWxsYmFja19mcm9tX3dvcmsgIT0gZHJtX2Nhbl9zbGVlcCgp KTsKKwlEUk1fREVCVUdfS01TKCJ2YmxhbmsgY2FsbGJhY2ssIHByZW1hdHVyZTogJXMsIG1lc3Nh Z2U6ICVzXG4iLAorCQkgICAgICB5ZXNubyhpdGVtLT5wcmVtYXR1cmUpLCBkYXRhLT5tZXNzYWdl KTsKKworCWtmcmVlKGRhdGEpOworfQorCitzdGF0aWMgaW50IGk5MTVfdmJsYW5rX3F1ZXVlX3Rl c3RfbmV3KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQoreworCXN0cnVjdCBkcm1f aW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g bm9kZS0+bWlub3ItPmRldjsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IE5VTEw7CisJaW50 IHJldCA9IDA7CisJc3RydWN0IHZibGFua19kYXRhICpkYXRhMSwgKmRhdGEyOworCisJZm9yX2Vh Y2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpCisJCWlmIChjcnRjLT5waXBlID09IFBJUEVfQSkKKwkJ CWJyZWFrOworCWlmIChXQVJOX09OKCFjcnRjKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkYXRh MSA9IGt6YWxsb2Moc2l6ZW9mICpkYXRhMSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFkYXRhMSkKKwkJ cmV0dXJuIC1FTk9NRU07CisKKwlkYXRhMiA9IGt6YWxsb2Moc2l6ZW9mICpkYXRhMiwgR0ZQX0tF Uk5FTCk7CisJaWYgKCFkYXRhMikgeworCQlrZnJlZShkYXRhMSk7CisJCXJldHVybiAtRU5PTUVN OworCX0KKworCWRhdGExLT5tZXNzYWdlID0gImhlbGxvIHdvcmxkIChhdG9taWMpIjsKKwlkYXRh MS0+ZWlnaHQgPSA4OworCWRhdGExLT5pdGVtLmNydGMgPSAmY3J0Yy0+YmFzZTsKKwlkYXRhMS0+ aXRlbS50YXJnZXRfc2VxID0gNjA7CisJZGF0YTEtPml0ZW0uYWJzb2x1dGUgPSBmYWxzZTsKKwlk YXRhMS0+aXRlbS5jYWxsYmFjayA9IHZibGFua19jYWxsYmFjazsKKwlkYXRhMS0+aXRlbS5jYWxs YmFja19mcm9tX3dvcmsgPSBmYWxzZTsKKworCWRhdGEyLT5tZXNzYWdlID0gImhlbGxvIHdvcmxk ICh3b3JrKSI7CisJZGF0YTItPmVpZ2h0ID0gODsKKwlkYXRhMi0+aXRlbS5jcnRjID0gJmNydGMt PmJhc2U7CisJZGF0YTItPml0ZW0udGFyZ2V0X3NlcSA9IDYwOworCWRhdGEyLT5pdGVtLmFic29s dXRlID0gZmFsc2U7CisJZGF0YTItPml0ZW0uY2FsbGJhY2sgPSB2YmxhbmtfY2FsbGJhY2s7CisJ ZGF0YTItPml0ZW0uY2FsbGJhY2tfZnJvbV93b3JrID0gdHJ1ZTsKKworCURSTV9ERUJVR19LTVMo InNjaGVkdWxpbmcgNjAgdmJsYW5rcyAobm8gd29yaylcbiIpOworCXJldCA9IGRybV93YWl0X3Zi bGFua19rZXJuZWwoJmRhdGExLT5pdGVtKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERUJVR19LTVMo InZibGFuayBzY2hlZHVsZSBlcnJvcjogJWRcbiIsIHJldCk7CisJCWtmcmVlKGRhdGExKTsKKwkJ a2ZyZWUoZGF0YTIpOworCQlyZXR1cm4gcmV0OworCX0KKwlEUk1fREVCVUdfS01TKCJ2Ymxhbmtz IHNjaGVkdWxlZFxuIik7CisKKwlEUk1fREVCVUdfS01TKCJzY2hlZHVsaW5nIDYwIHZibGFua3Mg KHdpdGggd29yaylcbiIpOworCXJldCA9IGRybV93YWl0X3ZibGFua19rZXJuZWwoJmRhdGEyLT5p dGVtKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERUJVR19LTVMoInZibGFuayBzY2hlZHVsZSBlcnJv cjogJWRcbiIsIHJldCk7CisJCWtmcmVlKGRhdGEyKTsKKwkJcmV0dXJuIHJldDsKKwl9CisJRFJN X0RFQlVHX0tNUygidmJsYW5rcyBzY2hlZHVsZWRcbiIpOworCisJcmV0dXJuIDA7Cit9CisKIHN0 cnVjdCBwaXBlX2NyY19pbmZvIHsKIAljb25zdCBjaGFyICpuYW1lOwogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXY7CkBAIC00Mjg5LDYgKzQzNjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9p bmZvX2xpc3QgaTkxNV9kZWJ1Z2ZzX2xpc3RbXSA9IHsKIAl7Imk5MTVfZHBfbXN0X2luZm8iLCBp OTE1X2RwX21zdF9pbmZvLCAwfSwKIAl7Imk5MTVfd2FfcmVnaXN0ZXJzIiwgaTkxNV93YV9yZWdp c3RlcnMsIDB9LAogCXsiaTkxNV9kZGJfaW5mbyIsIGk5MTVfZGRiX2luZm8sIDB9LAorCXsiaTkx NV92YmxhbmtfcXVldWVfdGVzdF9uZXciLCBpOTE1X3ZibGFua19xdWV1ZV90ZXN0X25ldywgMH0s CiB9OwogI2RlZmluZSBJOTE1X0RFQlVHRlNfRU5UUklFUyBBUlJBWV9TSVpFKGk5MTVfZGVidWdm c19saXN0KQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9k cm1QLmgKaW5kZXggYmU3NzZmYi4uMjk1ZDBlMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vZHJt UC5oCisrKyBiL2luY2x1ZGUvZHJtL2RybVAuaApAQCAtNjY3LDYgKzY2NywyNiBAQCBzdHJ1Y3Qg ZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50IHsKIAlzdHJ1Y3QgZHJtX2V2ZW50X3ZibGFuayBldmVu dDsKIH07CiAKK3N0cnVjdCBkcm1fa2VybmVsX3ZibGFua19pdGVtIHsKKwkvKiBJbnRlcm5hbCBt ZW1iZXJzLCBzZXQgYnkgZHJtLmtvLiAqLworCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKKwlzdHJ1 Y3Qgd29ya19zdHJ1Y3Qgd29yazsKKworCS8qIFBhcmFtZXRlcnM6IHNldCBieSB0aGUgY2FsbGVy IG9mIGRybV93YWl0X3ZibGFua19rZXJuZWwoKS4gKi8KKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7 CisKKwlpbnQgdGFyZ2V0X3NlcTsKKwlib29sIGFic29sdXRlOyAvKiBUZWxscyBpZiB0YXJnZXRf c2VxIGlzIGEgcmVsYXRpdmUgb2Zmc2V0IHRvIHRoZQorCQkJKiBjdXJyZW50IHZibGFuayBjb3Vu dCwgb3IganVzdCBhbiBhYnNvbHV0ZSB2YWx1ZS4gKi8KKworCXZvaWQgKCpjYWxsYmFjaykoc3Ry dWN0IGRybV9rZXJuZWxfdmJsYW5rX2l0ZW0gKml0ZW0pOworCisJYm9vbCBjYWxsYmFja19mcm9t X3dvcms7CisKKwkvKiBPdXRwdXQ6IHRvIGJlIHVzZWQgYnkgdGhlIGNhbGxiYWNrIGZ1bmN0aW9u LiAqLworCWJvb2wgcHJlbWF0dXJlOworfTsKKwogc3RydWN0IGRybV92YmxhbmtfY3J0YyB7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldjsJCS8qIHBvaW50ZXIgdG8gdGhlIGRybV9kZXZpY2UgKi8K IAl3YWl0X3F1ZXVlX2hlYWRfdCBxdWV1ZTsJLyoqPCBWQkxBTksgd2FpdCBxdWV1ZSAqLwpAQCAt Nzg0LDYgKzgwNCw3IEBAIHN0cnVjdCBkcm1fZGV2aWNlIHsKIAkgKiBMaXN0IG9mIGV2ZW50cwog CSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgdmJsYW5rX2V2ZW50X2xpc3Q7CisJc3RydWN0IGxpc3Rf aGVhZCB2Ymxhbmtfa2VybmVsX2xpc3Q7CiAJc3BpbmxvY2tfdCBldmVudF9sb2NrOwogCiAJLypA fSAqLwpAQCAtOTAwLDYgKzkyMSw3IEBAIGV4dGVybiBpbnQgZHJtX2lycV91bmluc3RhbGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CiBleHRlcm4gaW50IGRybV92YmxhbmtfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgbnVtX2NydGNzKTsKIGV4dGVybiBpbnQgZHJtX3dhaXRfdmJs YW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCQkgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbHApOworZXh0ZXJuIGludCBkcm1fd2FpdF92Ymxhbmtfa2VybmVsKHN0cnVjdCBk cm1fa2VybmVsX3ZibGFua19pdGVtICppdGVtKTsKIGV4dGVybiB1MzIgZHJtX3ZibGFua19jb3Vu dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY3J0Yyk7CiBleHRlcm4gdTMyIGRybV92Ymxh bmtfY291bnRfYW5kX3RpbWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMsCiAJCQkJ ICAgICBzdHJ1Y3QgdGltZXZhbCAqdmJsYW5rdGltZSk7Ci0tIAoyLjEuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK