From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [RFC 1/7] drm: allow the drivers to call the vblank IOCTL internally Date: Wed, 19 Nov 2014 17:47:09 -0200 Message-ID: <1416426435-2237-3-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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpUaGUgaTkxNS5r byBkcml2ZXIgbmVlZHMgYSB3YXkgdG8gc2NoZWR1bGUgY2VydGFpbiBmdW5jdGlvbnMgdG8gcnVu CmFmdGVyIHNvbWUgYW1vdW50IG9mIHZibGFua3MuIFRoZXJlIGFyZSBtYW55IGRpZmZlcmVudCBw aWVjZXMgb2YgdGhlCmRyaXZlciB3aGljaCBjb3VsZCBiZW5lZml0IGZyb20gdGhhdC4KClNpbmNl IHdoYXQgd2Ugd2FudCBpcyBlc3NlbnRpYWxseSB0aGUgdmJsYW5rIGlvY3RsLCB0aGlzIHBhdGNo IGRvZXMKdGhlIG1pbmltdW0gY2hhbmdlIHJlcXVpcmVkIHRvIGFsbG93IHRoaXMgaW9jdGwgdG8g YmUgY2FsbGVkCmludGVybmFsbHkuICBUaGUgbm90aWNlYWJsZSB0aGluZyBoZXJlIGlzIHRoYXQg dGhlIGRyaXZlcnMgcGFzcyBhCmNhbGxiYWNrIGZ1bmN0aW9uLCB3aGljaCBpcyBjYWxsZWQgYnkg ZHJtLmtvIGFmdGVyIHRoZSBzcGVjaWZpZWQKYW1vdW50IG9mIHZibGFua3MgcGFzc2VzLgoKVGhl IGdyZWF0IGJlbmVmaXQgb2YgdGhpcyBtaW5pbWFsIGNoYW5nZSBpcyB0aGF0IGFsbCB0aGUgY29k ZQpyZXNwb25zaWJsZSBmb3IgdGFraW5nIGNhcmUgb2YgcHJvcGVybHkgZW1wdHlpbmcgdGhlIHF1 ZXVlcyAoZS5nLiwKd2hlbiB0aGUgQ1JUQyBpcyBkaXNhYmxlZCkgaXMgYWxyZWFkeSB0aGVyZSwg c28gd2UgZG9uJ3QgbmVlZCB0bwpyZXdyaXRlIGl0LgoKVGhlIGN1cnJlbnQgd2FpdCB2Ymxhbmsg SU9DVEwgaXMgbm93IGltcGxlbWVudGVkIG9uIHRvcCBvZiB0aGVzZQpjaGFuZ2VzLCBhbmQgaXQg cHJvdmlkZXMgaXRzIG93biBjYWxsYmFjazogc2VuZF92YmxhbmtfZXZlbnQoKS4KClNpZ25lZC1v ZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9k cm1faXJxLmMgICAgICAgICAgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCA2MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtUC5oICAgICAgICAgICAg ICAgICAgfCAxMyArKysrKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxMjUgaW5zZXJ0aW9ucygrKSwg MTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCmluZGV4IDAwNTg3YTEuLmZiMzUxNzMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2lvY3RsLmMKQEAgLTU3OCw3ICs1NzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRy bV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9T R19BTExPQywgZHJtX2xlZ2FjeV9zZ19hbGxvYywgRFJNX0FVVEh8RFJNX01BU1RFUnxEUk1fUk9P VF9PTkxZKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TR19GUkVFLCBkcm1fbGVnYWN5X3Nn X2ZyZWUsIERSTV9BVVRIfERSTV9NQVNURVJ8RFJNX1JPT1RfT05MWSksCiAKLQlEUk1fSU9DVExf REVGKERSTV9JT0NUTF9XQUlUX1ZCTEFOSywgZHJtX3dhaXRfdmJsYW5rLCBEUk1fVU5MT0NLRUQp LAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCBkcm1fd2FpdF92Ymxhbmtf aW9jdGwsIERSTV9VTkxPQ0tFRCksCiAKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFU0VU X0NUTCwgZHJtX21vZGVzZXRfY3RsLCAwKSwKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faXJxLmMKaW5kZXggMGU0N2RmNC4uZjAz MWY3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2lycS5jCkBAIC04ODIsNyArODgyLDggQEAgRVhQT1JUX1NZTUJPTChkcm1f dmJsYW5rX2NvdW50X2FuZF90aW1lKTsKIAogc3RhdGljIHZvaWQgc2VuZF92YmxhbmtfZXZlbnQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVu dCAqZSwKLQkJdW5zaWduZWQgbG9uZyBzZXEsIHN0cnVjdCB0aW1ldmFsICpub3cpCisJCXVuc2ln bmVkIGxvbmcgc2VxLCBzdHJ1Y3QgdGltZXZhbCAqbm93LAorCQlib29sIHByZW1hdHVyZSkKIHsK IAlXQVJOX09OX1NNUCghc3Bpbl9pc19sb2NrZWQoJmRldi0+ZXZlbnRfbG9jaykpOwogCWUtPmV2 ZW50LnNlcXVlbmNlID0gc2VxOwpAQCAtOTE4LDcgKzkxOSw3IEBAIHZvaWQgZHJtX3NlbmRfdmJs YW5rX2V2ZW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjLAogCQlub3cgPSBnZXRf ZHJtX3RpbWVzdGFtcCgpOwogCX0KIAllLT5waXBlID0gY3J0YzsKLQlzZW5kX3ZibGFua19ldmVu dChkZXYsIGUsIHNlcSwgJm5vdyk7CisJc2VuZF92YmxhbmtfZXZlbnQoZGV2LCBlLCBzZXEsICZu b3csIGZhbHNlKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3NlbmRfdmJsYW5rX2V2ZW50KTsKIApA QCAtMTE1OSw3ICsxMTYwLDcgQEAgdm9pZCBkcm1fdmJsYW5rX29mZihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBpbnQgY3J0YykKIAkJCSAgZS0+ZXZlbnQuc2VxdWVuY2UsIHNlcSk7CiAJCWxpc3Rf ZGVsKCZlLT5iYXNlLmxpbmspOwogCQlkcm1fdmJsYW5rX3B1dChkZXYsIGUtPnBpcGUpOwotCQlz ZW5kX3ZibGFua19ldmVudChkZXYsIGUsIHNlcSwgJm5vdyk7CisJCWUtPmNhbGxiYWNrKGRldiwg ZSwgc2VxLCAmbm93LCB0cnVlKTsKIAl9CiAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2LT5l dmVudF9sb2NrLCBpcnFmbGFncyk7CiB9CkBAIC0xMzczLDcgKzEzNzQsOCBAQCBpbnQgZHJtX21v ZGVzZXRfY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIHN0YXRpYyBp bnQgZHJtX3F1ZXVlX3ZibGFua19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgcGlw ZSwKIAkJCQkgIHVuaW9uIGRybV93YWl0X3ZibGFuayAqdmJsd2FpdCwKLQkJCQkgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KQorCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCisJ CQkJICBkcm1fdmJsYW5rX2NhbGxiYWNrX3QgY2FsbGJhY2spCiB7CiAJc3RydWN0IGRybV92Ymxh bmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJsYW5rW3BpcGVdOwogCXN0cnVjdCBkcm1fcGVuZGlu Z192YmxhbmtfZXZlbnQgKmU7CkBAIC0xMzk2LDYgKzEzOTgsNyBAQCBzdGF0aWMgaW50IGRybV9x dWV1ZV92YmxhbmtfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUsCiAJZS0+ YmFzZS5ldmVudCA9ICZlLT5ldmVudC5iYXNlOwogCWUtPmJhc2UuZmlsZV9wcml2ID0gZmlsZV9w cml2OwogCWUtPmJhc2UuZGVzdHJveSA9ICh2b2lkICgqKSAoc3RydWN0IGRybV9wZW5kaW5nX2V2 ZW50ICopKSBrZnJlZTsKKwllLT5jYWxsYmFjayA9IGNhbGxiYWNrOwogCiAJc3Bpbl9sb2NrX2ly cXNhdmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwogCkBAIC0xNDExLDEyICsxNDE0LDE1IEBA IHN0YXRpYyBpbnQgZHJtX3F1ZXVlX3ZibGFua19ldmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCBpbnQgcGlwZSwKIAkJZ290byBlcnJfdW5sb2NrOwogCX0KIAotCWlmIChmaWxlX3ByaXYtPmV2 ZW50X3NwYWNlIDwgc2l6ZW9mIGUtPmV2ZW50KSB7Ci0JCXJldCA9IC1FQlVTWTsKLQkJZ290byBl cnJfdW5sb2NrOworCWlmIChmaWxlX3ByaXYpIHsKKwkJaWYgKGZpbGVfcHJpdi0+ZXZlbnRfc3Bh Y2UgPCBzaXplb2YgZS0+ZXZlbnQpIHsKKwkJCXJldCA9IC1FQlVTWTsKKwkJCWdvdG8gZXJyX3Vu bG9jazsKKwkJfQorCisJCWZpbGVfcHJpdi0+ZXZlbnRfc3BhY2UgLT0gc2l6ZW9mIGUtPmV2ZW50 OwogCX0KIAotCWZpbGVfcHJpdi0+ZXZlbnRfc3BhY2UgLT0gc2l6ZW9mIGUtPmV2ZW50OwogCXNl cSA9IGRybV92YmxhbmtfY291bnRfYW5kX3RpbWUoZGV2LCBwaXBlLCAmbm93KTsKIAogCWlmICgo dmJsd2FpdC0+cmVxdWVzdC50eXBlICYgX0RSTV9WQkxBTktfTkVYVE9OTUlTUykgJiYKQEAgLTE0 MzQsNyArMTQ0MCw3IEBAIHN0YXRpYyBpbnQgZHJtX3F1ZXVlX3ZibGFua19ldmVudChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgcGlwZSwKIAllLT5ldmVudC5zZXF1ZW5jZSA9IHZibHdhaXQt PnJlcXVlc3Quc2VxdWVuY2U7CiAJaWYgKChzZXEgLSB2Ymx3YWl0LT5yZXF1ZXN0LnNlcXVlbmNl KSA8PSAoMSA8PCAyMykpIHsKIAkJZHJtX3ZibGFua19wdXQoZGV2LCBwaXBlKTsKLQkJc2VuZF92 YmxhbmtfZXZlbnQoZGV2LCBlLCBzZXEsICZub3cpOworCQllLT5jYWxsYmFjayhkZXYsIGUsIHNl cSwgJm5vdywgZmFsc2UpOwogCQl2Ymx3YWl0LT5yZXBseS5zZXF1ZW5jZSA9IHNlcTsKIAl9IGVs c2UgewogCQkvKiBkcm1faGFuZGxlX3ZibGFua19ldmVudHMgd2lsbCBjYWxsIGRybV92Ymxhbmtf cHV0ICovCkBAIC0xNDY4LDExICsxNDc0LDEyIEBAIGVycl9wdXQ6CiAgKiB0aGUgdmJsYW5rIGlu dGVycnVwdCByZWZjb3VudCBhZnRlcndhcmRzLiAodmJsYW5rIElSUSBkaXNhYmxlIGZvbGxvd3Mg dGhhdAogICogYWZ0ZXIgYSB0aW1lb3V0IHdpdGggbm8gZnVydGhlciB2Ymxhbmsgd2FpdHMgc2No ZWR1bGVkKS4KICAqLwotaW50IGRybV93YWl0X3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAotCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCitzdGF0aWMg aW50IF9fZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgIHVu aW9uIGRybV93YWl0X3ZibGFuayAqdmJsd2FpdCwKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYsCisJCQkgICAgIGRybV92YmxhbmtfY2FsbGJhY2tfdCBjYWxsYmFjaykKIHsKIAlz dHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2Ymxhbms7Ci0JdW5pb24gZHJtX3dhaXRfdmJsYW5rICp2 Ymx3YWl0ID0gZGF0YTsKIAlpbnQgcmV0OwogCXVuc2lnbmVkIGludCBmbGFncywgc2VxLCBjcnRj LCBoaWdoX2NydGM7CiAKQEAgLTE1MjUsNyArMTUzMiw4IEBAIGludCBkcm1fd2FpdF92Ymxhbmso c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJLyogbXVzdCBob2xkIG9uIHRv IHRoZSB2YmxhbmsgcmVmIHVudGlsIHRoZSBldmVudCBmaXJlcwogCQkgKiBkcm1fdmJsYW5rX3B1 dCB3aWxsIGJlIGNhbGxlZCBhc3luY2hyb25vdXNseQogCQkgKi8KLQkJcmV0dXJuIGRybV9xdWV1 ZV92YmxhbmtfZXZlbnQoZGV2LCBjcnRjLCB2Ymx3YWl0LCBmaWxlX3ByaXYpOworCQlyZXR1cm4g ZHJtX3F1ZXVlX3ZibGFua19ldmVudChkZXYsIGNydGMsIHZibHdhaXQsIGZpbGVfcHJpdiwKKwkJ CQkJICAgICAgY2FsbGJhY2spOwogCX0KIAogCWlmICgoZmxhZ3MgJiBfRFJNX1ZCTEFOS19ORVhU T05NSVNTKSAmJgpAQCAtMTU2MCw2ICsxNTY4LDM1IEBAIGRvbmU6CiAJcmV0dXJuIHJldDsKIH0K IAoraW50IGRybV93YWl0X3ZibGFua19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAorCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwl1bmlvbiBkcm1f d2FpdF92YmxhbmsgKnZibHdhaXQgPSBkYXRhOworCisJcmV0dXJuIF9fZHJtX3dhaXRfdmJsYW5r KGRldiwgdmJsd2FpdCwgZmlsZV9wcml2LCBzZW5kX3ZibGFua19ldmVudCk7Cit9CisKK2ludCBk cm1fd2FpdF92Ymxhbmtfa2VybmVsKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IGNvdW50LCBi b29sIGFic29sdXRlLAorCQkJICAgZHJtX3ZibGFua19jYWxsYmFja190IGNhbGxiYWNrLAorCQkJ ICAgdW5zaWduZWQgbG9uZyB1c2VyX2RhdGEpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKKwl1bmlvbiBkcm1fd2FpdF92YmxhbmsgdmJsd2FpdDsKKwlpbnQgdHlwZSA9 IDA7CisKKwl0eXBlIHw9IGFic29sdXRlID8gX0RSTV9WQkxBTktfQUJTT0xVVEUgOiBfRFJNX1ZC TEFOS19SRUxBVElWRTsKKwl0eXBlIHw9IGRybV9jcnRjX2luZGV4KGNydGMpIDw8IF9EUk1fVkJM QU5LX0hJR0hfQ1JUQ19TSElGVDsKKwlpZiAoY2FsbGJhY2spCisJCXR5cGUgfD0gX0RSTV9WQkxB TktfRVZFTlQ7CisKKwl2Ymx3YWl0LnJlcXVlc3QudHlwZSA9IHR5cGU7CisJdmJsd2FpdC5yZXF1 ZXN0LnNlcXVlbmNlID0gY291bnQ7CisJdmJsd2FpdC5yZXF1ZXN0LnNpZ25hbCA9IHVzZXJfZGF0 YTsKKworCXJldHVybiBfX2RybV93YWl0X3ZibGFuayhkZXYsICZ2Ymx3YWl0LCBOVUxMLCBjYWxs YmFjayk7Cit9CitFWFBPUlRfU1lNQk9MKGRybV93YWl0X3ZibGFua19rZXJuZWwpOworCiBzdGF0 aWMgdm9pZCBkcm1faGFuZGxlX3ZibGFua19ldmVudHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IGNydGMpCiB7CiAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSwgKnQ7CkBA IC0xNTgxLDcgKzE2MTgsNyBAQCBzdGF0aWMgdm9pZCBkcm1faGFuZGxlX3ZibGFua19ldmVudHMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCiAKIAkJbGlzdF9kZWwoJmUtPmJhc2Uu bGluayk7CiAJCWRybV92YmxhbmtfcHV0KGRldiwgZS0+cGlwZSk7Ci0JCXNlbmRfdmJsYW5rX2V2 ZW50KGRldiwgZSwgc2VxLCAmbm93KTsKKwkJZS0+Y2FsbGJhY2soZGV2LCBlLCBzZXEsICZub3cs IGZhbHNlKTsKIAl9CiAKIAl0cmFjZV9kcm1fdmJsYW5rX2V2ZW50KGNydGMsIHNlcSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDMxOWRhNjEuLmY5ODk1ODcgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0yNzE1LDYgKzI3MTUsNjcgQEAgc3RhdGljIGlu dCBpOTE1X2RkYl9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCXJldHVy biAwOwogfQogCitzdHJ1Y3QgdmJsYW5rX2RhdGEgeworCWludCBlaWdodDsKKwljb25zdCBjaGFy ICptZXNzYWdlOworfTsKKworc3RhdGljIHZvaWQgdmJsYW5rX2NhbGxiYWNrKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCisJCQkgICAgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSwK KwkJCSAgICB1bnNpZ25lZCBsb25nIHNlcSwgc3RydWN0IHRpbWV2YWwgKm5vdywKKwkJCSAgICBi b29sIHByZW1hdHVyZSkKK3sKKwlzdHJ1Y3QgdmJsYW5rX2RhdGEgKmRhdGEgPSAoc3RydWN0IHZi bGFua19kYXRhICopZS0+ZXZlbnQudXNlcl9kYXRhOworCisJV0FSTl9PTihkYXRhLT5laWdodCAh PSA4KTsKKwlEUk1fREVCVUdfS01TKCJ2YmxhbmsgY2FsbGJhY2ssIHNlcTogJWx1LCBwcmVtYXR1 cmU6ICVzIG1lc3NhZ2U6JXNcbiIsCisJCSAgICAgIHNlcSwgeWVzbm8ocHJlbWF0dXJlKSwgZGF0 YS0+bWVzc2FnZSk7CisKKwllLT5iYXNlLmRlc3Ryb3koJmUtPmJhc2UpOworCWtmcmVlKGRhdGEp OworfQorCitzdGF0aWMgaW50IGk5MTVfdmJsYW5rX3F1ZXVlX3Rlc3RfbmV3KHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQoreworCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0g bS0+cHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IE5VTEw7CisJaW50IHJldCA9IDA7CisJc3RydWN0 IHZibGFua19kYXRhICpkYXRhOworCisJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpCisJ CWlmIChjcnRjLT5waXBlID09IFBJUEVfQSkKKwkJCWJyZWFrOworCWlmIChXQVJOX09OKCFjcnRj KSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlkYXRhID0ga3phbGxvYyhzaXplb2YgKmRhdGEsIEdG UF9LRVJORUwpOworCWlmICghZGF0YSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlkYXRhLT5tZXNz YWdlID0gImhlbGxvIHdvcmxkIjsKKwlkYXRhLT5laWdodCA9IDg7CisKKwlEUk1fREVCVUdfS01T KCJ3YWl0aW5nIDYwIHZibGFua3MgKG5vIGNhbGxiYWNrKVxuIik7CisJcmV0ID0gZHJtX3dhaXRf dmJsYW5rX2tlcm5lbCgmY3J0Yy0+YmFzZSwgNjAsIGZhbHNlLCBOVUxMLCAwKTsKKwlpZiAocmV0 KSB7CisJCURSTV9ERUJVR19LTVMoInZibGFuayB3YWl0IGVycm9yOiAlZFxuIiwgcmV0KTsKKwkJ cmV0dXJuIHJldDsKKwl9CisJRFJNX0RFQlVHX0tNUygidmJsYW5rIHdhaXQgZG9uZVxuIik7CisK KwlEUk1fREVCVUdfS01TKCJzY2hlZHVsaW5nIDYwIHZibGFua3MgKHdpdGggY2FsbGJhY2spXG4i KTsKKwlyZXQgPSBkcm1fd2FpdF92Ymxhbmtfa2VybmVsKCZjcnRjLT5iYXNlLCA2MCwgZmFsc2Us IHZibGFua19jYWxsYmFjaywKKwkJCQkgICAgICh1bnNpZ25lZCBsb25nKSBkYXRhKTsKKwlpZiAo cmV0KSB7CisJCURSTV9ERUJVR19LTVMoInZibGFuayBzY2hlZHVsZSBlcnJvcjogJWRcbiIsIHJl dCk7CisJCXJldHVybiByZXQ7CisJfQorCURSTV9ERUJVR19LTVMoInZibGFua3Mgc2NoZWR1bGVk XG4iKTsKKworCXJldHVybiAwOworfQorCiBzdHJ1Y3QgcGlwZV9jcmNfaW5mbyB7CiAJY29uc3Qg Y2hhciAqbmFtZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2OwpAQCAtNDI4OSw2ICs0MzUwLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW5mb19saXN0IGk5MTVfZGVidWdmc19saXN0W10g PSB7CiAJeyJpOTE1X2RwX21zdF9pbmZvIiwgaTkxNV9kcF9tc3RfaW5mbywgMH0sCiAJeyJpOTE1 X3dhX3JlZ2lzdGVycyIsIGk5MTVfd2FfcmVnaXN0ZXJzLCAwfSwKIAl7Imk5MTVfZGRiX2luZm8i LCBpOTE1X2RkYl9pbmZvLCAwfSwKKwl7Imk5MTVfdmJsYW5rX3F1ZXVlX3Rlc3RfbmV3IiwgaTkx NV92YmxhbmtfcXVldWVfdGVzdF9uZXcsIDB9LAogfTsKICNkZWZpbmUgSTkxNV9ERUJVR0ZTX0VO VFJJRVMgQVJSQVlfU0laRShpOTE1X2RlYnVnZnNfbGlzdCkKIApkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCmluZGV4IGJlNzc2ZmIuLjM5ZDBkODcg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAorKysgYi9pbmNsdWRlL2RybS9kcm1QLmgK QEAgLTY2MCwxMSArNjYwLDE2IEBAIHN0cnVjdCBkcm1fbWlub3IgewogCXN0cnVjdCBkcm1fbW9k ZV9ncm91cCBtb2RlX2dyb3VwOwogfTsKIAordHlwZWRlZiB2b2lkICgqZHJtX3ZibGFua19jYWxs YmFja190KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICAgIHN0cnVjdCBkcm1fcGVu ZGluZ192YmxhbmtfZXZlbnQgKmUsCisJCQkJICAgICAgdW5zaWduZWQgbG9uZyBzZXEsIHN0cnVj dCB0aW1ldmFsICpub3csCisJCQkJICAgICAgYm9vbCBwcmVtYXR1cmUpOwogCiBzdHJ1Y3QgZHJt X3BlbmRpbmdfdmJsYW5rX2V2ZW50IHsKIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQgYmFzZTsK IAlpbnQgcGlwZTsKIAlzdHJ1Y3QgZHJtX2V2ZW50X3ZibGFuayBldmVudDsKKwlkcm1fdmJsYW5r X2NhbGxiYWNrX3QgY2FsbGJhY2s7CiB9OwogCiBzdHJ1Y3QgZHJtX3ZibGFua19jcnRjIHsKQEAg LTg5OCw4ICs5MDMsMTIgQEAgZXh0ZXJuIGludCBkcm1faXJxX2luc3RhbGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGlycSk7CiBleHRlcm4gaW50IGRybV9pcnFfdW5pbnN0YWxsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogCiBleHRlcm4gaW50IGRybV92YmxhbmtfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBpbnQgbnVtX2NydGNzKTsKLWV4dGVybiBpbnQgZHJtX3dhaXRfdmJs YW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCi0JCQkgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbHApOworZXh0ZXJuIGludCBkcm1fd2FpdF92YmxhbmtfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxlICpmaWxwKTsK K2V4dGVybiBpbnQgZHJtX3dhaXRfdmJsYW5rX2tlcm5lbChzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGludCBjb3VudCwKKwkJCQkgIGJvb2wgYWJzb2x1dGUsCisJCQkJICBkcm1fdmJsYW5rX2NhbGxi YWNrX3QgY2FsbGJhY2ssCisJCQkJICB1bnNpZ25lZCBsb25nIHVzZXJfZGF0YSk7CiBleHRlcm4g dTMyIGRybV92YmxhbmtfY291bnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpOwog ZXh0ZXJuIHUzMiBkcm1fdmJsYW5rX2NvdW50X2FuZF90aW1lKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIGludCBjcnRjLAogCQkJCSAgICAgc3RydWN0IHRpbWV2YWwgKnZibGFua3RpbWUpOwotLSAK Mi4xLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==