From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Subject: [PATCH 2/6] drm/amdgpu: Provide page_flip_target hook Date: Thu, 4 Aug 2016 12:39:37 +0900 Message-ID: <1470281981-18172-3-git-send-email-michel@daenzer.net> References: <1470281981-18172-1-git-send-email-michel@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1470281981-18172-1-git-send-email-michel-otUistvHUpPR7s880joybQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Mario Kleiner , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogTWljaGVsIETDpG56ZXIgPG1pY2hlbC5kYWVuemVyQGFtZC5jb20+CgpOb3cgd2UgY2Fu IHByb2dyYW0gYSBmbGlwIGR1cmluZyBhIHZlcnRpY2FsIGJsYW5rIHBlcmlvZCwgaWYgaXQncyB0 aGUKb25lIHRhcmdldGVkIGJ5IHRoZSBmbGlwIChvciBhIGxhdGVyIG9uZSkuIFRoaXMgYWxsb3dz IHNpbXBsaWZ5aW5nCmFtZGdwdV9mbGlwX3dvcmtfZnVuYyBjb25zaWRlcmFibHkuCgpTaWduZWQt b2ZmLWJ5OiBNaWNoZWwgRMOkbnplciA8bWljaGVsLmRhZW56ZXJAYW1kLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgIHwgIDMgKy0KIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kaXNwbGF5LmMgfCA5OCArKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaCAg ICB8ICA4ICstLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMgICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYyAgICAgIHwgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMgICAgICAgfCAgMiArLQog NiBmaWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCmluZGV4IGViMDkwMzcuLjcxZjRhNGMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCkBAIC03MTgsMTAgKzcxOCwxMSBAQCB2b2lkIGFtZGdw dV9kb29yYmVsbF9nZXRfa2ZkX2luZm8oc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAgKi8K IAogc3RydWN0IGFtZGdwdV9mbGlwX3dvcmsgewotCXN0cnVjdCB3b3JrX3N0cnVjdAkJZmxpcF93 b3JrOworCXN0cnVjdCBkZWxheWVkX3dvcmsJCWZsaXBfd29yazsKIAlzdHJ1Y3Qgd29ya19zdHJ1 Y3QJCXVucGluX3dvcms7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UJCSphZGV2OwogCWludAkJCQlj cnRjX2lkOworCXUzMgkJCQl0YXJnZXRfdmJsYW5rOwogCXVpbnQ2NF90CQkJYmFzZTsKIAlzdHJ1 Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsKIAlzdHJ1Y3QgYW1kZ3B1X2JvCQkq b2xkX3JibzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGlzcGxheS5jCmlu ZGV4IDdkYmU4ZDAuLmNlMWYyYmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2Rpc3BsYXkuYwpAQCAtNDEsNyArNDEsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZmxpcF9j YWxsYmFjayhzdHJ1Y3QgZmVuY2UgKmYsIHN0cnVjdCBmZW5jZV9jYiAqY2IpCiAJCWNvbnRhaW5l cl9vZihjYiwgc3RydWN0IGFtZGdwdV9mbGlwX3dvcmssIGNiKTsKIAogCWZlbmNlX3B1dChmKTsK LQlzY2hlZHVsZV93b3JrKCZ3b3JrLT5mbGlwX3dvcmspOworCXNjaGVkdWxlX3dvcmsoJndvcmst PmZsaXBfd29yay53b3JrKTsKIH0KIAogc3RhdGljIGJvb2wgYW1kZ3B1X2ZsaXBfaGFuZGxlX2Zl bmNlKHN0cnVjdCBhbWRncHVfZmxpcF93b3JrICp3b3JrLApAQCAtNjMsMTYgKzYzLDE3IEBAIHN0 YXRpYyBib29sIGFtZGdwdV9mbGlwX2hhbmRsZV9mZW5jZShzdHJ1Y3QgYW1kZ3B1X2ZsaXBfd29y ayAqd29yaywKIAogc3RhdGljIHZvaWQgYW1kZ3B1X2ZsaXBfd29ya19mdW5jKHN0cnVjdCB3b3Jr X3N0cnVjdCAqX193b3JrKQogeworCXN0cnVjdCBkZWxheWVkX3dvcmsgKmRlbGF5ZWRfd29yayA9 CisJCWNvbnRhaW5lcl9vZihfX3dvcmssIHN0cnVjdCBkZWxheWVkX3dvcmssIHdvcmspOwogCXN0 cnVjdCBhbWRncHVfZmxpcF93b3JrICp3b3JrID0KLQkJY29udGFpbmVyX29mKF9fd29yaywgc3Ry dWN0IGFtZGdwdV9mbGlwX3dvcmssIGZsaXBfd29yayk7CisJCWNvbnRhaW5lcl9vZihkZWxheWVk X3dvcmssIHN0cnVjdCBhbWRncHVfZmxpcF93b3JrLCBmbGlwX3dvcmspOwogCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gd29yay0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2NydGMgKmFtZGdw dUNydGMgPSBhZGV2LT5tb2RlX2luZm8uY3J0Y3Nbd29yay0+Y3J0Y19pZF07CiAKIAlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSAmYW1kZ3B1Q3J0Yy0+YmFzZTsKIAl1bnNpZ25lZCBsb25nIGZsYWdz OwotCXVuc2lnbmVkIGksIHJlcGNudCA9IDQ7Ci0JaW50IHZwb3MsIGhwb3MsIHN0YXQsIG1pbl91 ZGVsYXkgPSAwOwotCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZjcnRjLT5kZXYt PnZibGFua1t3b3JrLT5jcnRjX2lkXTsKKwl1bnNpZ25lZCBpOworCWludCB2cG9zLCBocG9zOwog CiAJaWYgKGFtZGdwdV9mbGlwX2hhbmRsZV9mZW5jZSh3b3JrLCAmd29yay0+ZXhjbCkpCiAJCXJl dHVybjsKQEAgLTgxLDU1ICs4MiwyMyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZmxpcF93b3JrX2Z1 bmMoc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiAJCWlmIChhbWRncHVfZmxpcF9oYW5kbGVf ZmVuY2Uod29yaywgJndvcmstPnNoYXJlZFtpXSkpCiAJCQlyZXR1cm47CiAKLQkvKiBXZSBib3Jy b3cgdGhlIGV2ZW50IHNwaW4gbG9jayBmb3IgcHJvdGVjdGluZyBmbGlwX3N0YXR1cyAqLwotCXNw aW5fbG9ja19pcnFzYXZlKCZjcnRjLT5kZXYtPmV2ZW50X2xvY2ssIGZsYWdzKTsKLQotCS8qIElm IHRoaXMgaGFwcGVucyB0byBleGVjdXRlIHdpdGhpbiB0aGUgInZpcnR1YWxseSBleHRlbmRlZCIg dmJsYW5rCi0JICogaW50ZXJ2YWwgYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgcmVhbCB2Ymxhbmsg aW50ZXJ2YWwgdGhlbiBpdCBuZWVkcwotCSAqIHRvIGRlbGF5IHByb2dyYW1taW5nIHRoZSBtbWlv IGZsaXAgdW50aWwgdGhlIHJlYWwgdmJsYW5rIGlzIGVudGVyZWQuCi0JICogVGhpcyBwcmV2ZW50 cyBjb21wbGV0aW5nIGEgZmxpcCB0b28gZWFybHkgZHVlIHRvIHRoZSB3YXkgd2UgZnVkZ2UKLQkg KiBvdXIgdmJsYW5rIGNvdW50ZXIgYW5kIHZibGFuayB0aW1lc3RhbXBzIGluIG9yZGVyIHRvIHdv cmsgYXJvdW5kIHRoZQotCSAqIHByb2JsZW0gdGhhdCB0aGUgaHcgZmlyZXMgdmJsYW5rIGludGVy cnVwdHMgYmVmb3JlIGFjdHVhbCBzdGFydCBvZgotCSAqIHZibGFuayAod2hlbiBsaW5lIGJ1ZmZl ciByZWZpbGxpbmcgaXMgZG9uZSBmb3IgYSBmcmFtZSkuIEl0Ci0JICogY29tcGxlbWVudHMgdGhl IGZ1ZGdpbmcgbG9naWMgaW4gYW1kZ3B1X2dldF9jcnRjX3NjYW5vdXRwb3MoKSBmb3IKLQkgKiB0 aW1lc3RhbXBpbmcgYW5kIGFtZGdwdV9nZXRfdmJsYW5rX2NvdW50ZXJfa21zKCkgZm9yIHZibGFu ayBjb3VudHMuCi0JICoKLQkgKiBJbiBwcmFjdGljZSB0aGlzIHdvbid0IGV4ZWN1dGUgdmVyeSBv ZnRlbiB1bmxlc3Mgb24gdmVyeSBmYXN0Ci0JICogbWFjaGluZXMgYmVjYXVzZSB0aGUgdGltZSB3 aW5kb3cgZm9yIHRoaXMgdG8gaGFwcGVuIGlzIHZlcnkgc21hbGwuCisJLyogV2FpdCB1bnRpbCB3 ZSdyZSBvdXQgb2YgdGhlIHZlcnRpY2FsIGJsYW5rIHBlcmlvZCBiZWZvcmUgdGhlIG9uZQorCSAq IHRhcmdldGVkIGJ5IHRoZSBmbGlwCiAJICovCi0Jd2hpbGUgKGFtZGdwdUNydGMtPmVuYWJsZWQg JiYgLS1yZXBjbnQpIHsKLQkJLyogR0VUX0RJU1RBTkNFX1RPX1ZCTEFOS1NUQVJUIHJldHVybnMg ZGlzdGFuY2UgdG8gcmVhbCB2YmxhbmsKLQkJICogc3RhcnQgaW4gaHBvcywgYW5kIHRvIHRoZSAi ZnVkZ2VkIGVhcmxpZXIiIHZibGFuayBzdGFydCBpbgotCQkgKiB2cG9zLgotCQkgKi8KLQkJc3Rh dCA9IGFtZGdwdV9nZXRfY3J0Y19zY2Fub3V0cG9zKGFkZXYtPmRkZXYsIHdvcmstPmNydGNfaWQs Ci0JCQkJCQkgIEdFVF9ESVNUQU5DRV9UT19WQkxBTktTVEFSVCwKLQkJCQkJCSAgJnZwb3MsICZo cG9zLCBOVUxMLCBOVUxMLAotCQkJCQkJICAmY3J0Yy0+aHdtb2RlKTsKLQotCQlpZiAoKHN0YXQg JiAoRFJNX1NDQU5PVVRQT1NfVkFMSUQgfCBEUk1fU0NBTk9VVFBPU19BQ0NVUkFURSkpICE9Ci0J CSAgICAoRFJNX1NDQU5PVVRQT1NfVkFMSUQgfCBEUk1fU0NBTk9VVFBPU19BQ0NVUkFURSkgfHwK LQkJICAgICEodnBvcyA+PSAwICYmIGhwb3MgPD0gMCkpCi0JCQlicmVhazsKLQotCQkvKiBTbGVl cCBhdCBsZWFzdCB1bnRpbCBlc3RpbWF0ZWQgcmVhbCBzdGFydCBvZiBodyB2YmxhbmsgKi8KLQkJ bWluX3VkZWxheSA9ICgtaHBvcyArIDEpICogbWF4KHZibGFuay0+bGluZWR1cl9ucyAvIDEwMDAs IDUpOwotCQlpZiAobWluX3VkZWxheSA+IHZibGFuay0+ZnJhbWVkdXJfbnMgLyAyMDAwKSB7Ci0J CQkvKiBEb24ndCB3YWl0IHJpZGljdWxvdXNseSBsb25nIC0gc29tZXRoaW5nIGlzIHdyb25nICov Ci0JCQlyZXBjbnQgPSAwOwotCQkJYnJlYWs7Ci0JCX0KLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Ci0JCXVzbGVlcF9yYW5nZShtaW5fdWRl bGF5LCAyICogbWluX3VkZWxheSk7Ci0JCXNwaW5fbG9ja19pcnFzYXZlKCZjcnRjLT5kZXYtPmV2 ZW50X2xvY2ssIGZsYWdzKTsKLQl9OworCWlmIChhbWRncHVDcnRjLT5lbmFibGVkICYmCisJICAg IChhbWRncHVfZ2V0X2NydGNfc2Nhbm91dHBvcyhhZGV2LT5kZGV2LCB3b3JrLT5jcnRjX2lkLCAw LAorCQkJCQkmdnBvcywgJmhwb3MsIE5VTEwsIE5VTEwsCisJCQkJCSZjcnRjLT5od21vZGUpCisJ ICAgICAmIChEUk1fU0NBTk9VVFBPU19WQUxJRCB8IERSTV9TQ0FOT1VUUE9TX0lOX1ZCTEFOSykp ID09CisJICAgIChEUk1fU0NBTk9VVFBPU19WQUxJRCB8IERSTV9TQ0FOT1VUUE9TX0lOX1ZCTEFO SykgJiYKKwkgICAgKGludCkod29yay0+dGFyZ2V0X3ZibGFuayAtCisJCSAgYW1kZ3B1X2dldF92 YmxhbmtfY291bnRlcl9rbXMoYWRldi0+ZGRldiwgYW1kZ3B1Q3J0Yy0+Y3J0Y19pZCkpID4gMCkg eworCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJndvcmstPmZsaXBfd29yaywgdXNlY3NfdG9famlm ZmllcygxMDAwKSk7CisJCXJldHVybjsKKwl9CiAKLQlpZiAoIXJlcGNudCkKLQkJRFJNX0RFQlVH X0RSSVZFUigiRGVsYXkgcHJvYmxlbSBvbiBjcnRjICVkOiBtaW5fdWRlbGF5ICVkLCAiCi0JCQkJ ICJmcmFtZWR1ciAlZCwgbGluZWR1ciAlZCwgc3RhdCAlZCwgdnBvcyAlZCwgIgotCQkJCSAiaHBv cyAlZFxuIiwgd29yay0+Y3J0Y19pZCwgbWluX3VkZWxheSwKLQkJCQkgdmJsYW5rLT5mcmFtZWR1 cl9ucyAvIDEwMDAsCi0JCQkJIHZibGFuay0+bGluZWR1cl9ucyAvIDEwMDAsIHN0YXQsIHZwb3Ms IGhwb3MpOworCS8qIFdlIGJvcnJvdyB0aGUgZXZlbnQgc3BpbiBsb2NrIGZvciBwcm90ZWN0aW5n IGZsaXBfc3RhdHVzICovCisJc3Bpbl9sb2NrX2lycXNhdmUoJmNydGMtPmRldi0+ZXZlbnRfbG9j aywgZmxhZ3MpOwogCiAJLyogRG8gdGhlIGZsaXAgKG1taW8pICovCiAJYWRldi0+bW9kZV9pbmZv LmZ1bmNzLT5wYWdlX2ZsaXAoYWRldiwgd29yay0+Y3J0Y19pZCwgd29yay0+YmFzZSwgd29yay0+ YXN5bmMpOwpAQCAtMTY5LDEwICsxMzgsMTAgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3VucGluX3dv cmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykKIAlrZnJlZSh3b3JrKTsKIH0KIAot aW50IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkgIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkJICBzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5r X2V2ZW50ICpldmVudCwKLQkJCSAgdWludDMyX3QgcGFnZV9mbGlwX2ZsYWdzKQoraW50IGFtZGdw dV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJCQkgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19l dmVudCAqZXZlbnQsCisJCQkJIHVpbnQzMl90IHBhZ2VfZmxpcF9mbGFncywgdWludDMyX3QgdGFy Z2V0KQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAtMTkxLDcgKzE2MCw3IEBA IGludCBhbWRncHVfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCWlmICh3 b3JrID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JSU5JVF9XT1JLKCZ3b3JrLT5mbGlw X3dvcmssIGFtZGdwdV9mbGlwX3dvcmtfZnVuYyk7CisJSU5JVF9ERUxBWUVEX1dPUksoJndvcmst PmZsaXBfd29yaywgYW1kZ3B1X2ZsaXBfd29ya19mdW5jKTsKIAlJTklUX1dPUksoJndvcmstPnVu cGluX3dvcmssIGFtZGdwdV91bnBpbl93b3JrX2Z1bmMpOwogCiAJd29yay0+ZXZlbnQgPSBldmVu dDsKQEAgLTIzNywxMiArMjA2LDggQEAgaW50IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCiAJYW1kZ3B1X2JvX3VucmVzZXJ2ZShuZXdfcmJvKTsKIAogCXdvcmst PmJhc2UgPSBiYXNlOwotCi0JciA9IGRybV9jcnRjX3ZibGFua19nZXQoY3J0Yyk7Ci0JaWYgKHIp IHsKLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0IHZibGFuayBiZWZvcmUgZmxpcFxuIik7Ci0J CWdvdG8gcGZsaXBfY2xlYW51cDsKLQl9CisJd29yay0+dGFyZ2V0X3ZibGFuayA9IHRhcmdldCAt IGRybV9jcnRjX3ZibGFua19jb3VudChjcnRjKSArCisJCWFtZGdwdV9nZXRfdmJsYW5rX2NvdW50 ZXJfa21zKGRldiwgd29yay0+Y3J0Y19pZCk7CiAKIAkvKiB3ZSBib3Jyb3cgdGhlIGV2ZW50IHNw aW4gbG9jayBmb3IgcHJvdGVjdGluZyBmbGlwX3dyb2sgKi8KIAlzcGluX2xvY2tfaXJxc2F2ZSgm Y3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7CkBAIC0yNTAsNyArMjE1LDcgQEAgaW50IGFt ZGdwdV9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCURSTV9ERUJVR19E UklWRVIoImZsaXAgcXVldWU6IGNydGMgYWxyZWFkeSBidXN5XG4iKTsKIAkJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmY3J0Yy0+ZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7CiAJCXIgPSAtRUJVU1k7 Ci0JCWdvdG8gdmJsYW5rX2NsZWFudXA7CisJCWdvdG8gcGZsaXBfY2xlYW51cDsKIAl9CiAKIAlh bWRncHVfY3J0Yy0+cGZsaXBfc3RhdHVzID0gQU1ER1BVX0ZMSVBfUEVORElORzsKQEAgLTI2Miwx MiArMjI3LDkgQEAgaW50IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCiAJLyogdXBkYXRlIGNydGMgZmIgKi8KIAljcnRjLT5wcmltYXJ5LT5mYiA9IGZiOwogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmNydGMtPmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOwotCWFt ZGdwdV9mbGlwX3dvcmtfZnVuYygmd29yay0+ZmxpcF93b3JrKTsKKwlhbWRncHVfZmxpcF93b3Jr X2Z1bmMoJndvcmstPmZsaXBfd29yay53b3JrKTsKIAlyZXR1cm4gMDsKIAotdmJsYW5rX2NsZWFu dXA6Ci0JZHJtX2NydGNfdmJsYW5rX3B1dChjcnRjKTsKLQogcGZsaXBfY2xlYW51cDoKIAlpZiAo dW5saWtlbHkoYW1kZ3B1X2JvX3Jlc2VydmUobmV3X3JibywgZmFsc2UpICE9IDApKSB7CiAJCURS TV9FUlJPUigiZmFpbGVkIHRvIHJlc2VydmUgbmV3IHJibyBpbiBlcnJvciBwYXRoXG4iKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW9kZS5oCmluZGV4IDZiMWQ3ZDMuLjQ1NTJk ODAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tb2RlLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21vZGUuaApAQCAtNTg3LDEw ICs1ODcsMTAgQEAgaW50IGFtZGdwdV9hbGlnbl9waXRjaChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwgaW50IHdpZHRoLCBpbnQgYnBwLCBib29sIHRpbGUKIHZvaWQgYW1kZ3B1X3ByaW50X2Rp c3BsYXlfc2V0dXAoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgYW1kZ3B1X21vZGVzZXRf Y3JlYXRlX3Byb3BzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIGludCBhbWRncHVfY3J0 Y19zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCk7Ci1pbnQgYW1kZ3B1X2NydGNf cGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKLQkJCSAgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsCi0JCQkgIHN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmV2ZW50LAot CQkJICB1aW50MzJfdCBwYWdlX2ZsaXBfZmxhZ3MpOworaW50IGFtZGdwdV9jcnRjX3BhZ2VfZmxp cF90YXJnZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKKwkJCQkgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZXZlbnQsCisJ CQkJIHVpbnQzMl90IHBhZ2VfZmxpcF9mbGFncywgdWludDMyX3QgdGFyZ2V0KTsKIGV4dGVybiBj b25zdCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2Z1bmNzIGFtZGdwdV9tb2RlX2Z1bmNzOwogCiAj ZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKaW5kZXggYzFiMDRlOS4u YTE1ODk0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8w LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKQEAgLTI2OTgs NyArMjY5OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgZGNlX3YxMF8w X2NydGNfZnVuY3MgPSB7CiAJLmdhbW1hX3NldCA9IGRjZV92MTBfMF9jcnRjX2dhbW1hX3NldCwK IAkuc2V0X2NvbmZpZyA9IGFtZGdwdV9jcnRjX3NldF9jb25maWcsCiAJLmRlc3Ryb3kgPSBkY2Vf djEwXzBfY3J0Y19kZXN0cm95LAotCS5wYWdlX2ZsaXAgPSBhbWRncHVfY3J0Y19wYWdlX2ZsaXAs CisJLnBhZ2VfZmxpcF90YXJnZXQgPSBhbWRncHVfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0LAogfTsK IAogc3RhdGljIHZvaWQgZGNlX3YxMF8wX2NydGNfZHBtcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGludCBtb2RlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Yx MV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwppbmRleCBkNGJm MTMzLi40NDU1ZDYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf djExXzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwpAQCAt MjcwOCw3ICsyNzA4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBkY2Vf djExXzBfY3J0Y19mdW5jcyA9IHsKIAkuZ2FtbWFfc2V0ID0gZGNlX3YxMV8wX2NydGNfZ2FtbWFf c2V0LAogCS5zZXRfY29uZmlnID0gYW1kZ3B1X2NydGNfc2V0X2NvbmZpZywKIAkuZGVzdHJveSA9 IGRjZV92MTFfMF9jcnRjX2Rlc3Ryb3ksCi0JLnBhZ2VfZmxpcCA9IGFtZGdwdV9jcnRjX3BhZ2Vf ZmxpcCwKKwkucGFnZV9mbGlwX3RhcmdldCA9IGFtZGdwdV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQs CiB9OwogCiBzdGF0aWMgdm9pZCBkY2VfdjExXzBfY3J0Y19kcG1zKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywgaW50IG1vZGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYwppbmRleCA0 ZmRmYWIxLi5hZDQ4ODRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdjhfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKQEAg LTI1NTIsNyArMjU1Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgZGNl X3Y4XzBfY3J0Y19mdW5jcyA9IHsKIAkuZ2FtbWFfc2V0ID0gZGNlX3Y4XzBfY3J0Y19nYW1tYV9z ZXQsCiAJLnNldF9jb25maWcgPSBhbWRncHVfY3J0Y19zZXRfY29uZmlnLAogCS5kZXN0cm95ID0g ZGNlX3Y4XzBfY3J0Y19kZXN0cm95LAotCS5wYWdlX2ZsaXAgPSBhbWRncHVfY3J0Y19wYWdlX2Zs aXAsCisJLnBhZ2VfZmxpcF90YXJnZXQgPSBhbWRncHVfY3J0Y19wYWdlX2ZsaXBfdGFyZ2V0LAog fTsKIAogc3RhdGljIHZvaWQgZGNlX3Y4XzBfY3J0Y19kcG1zKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywgaW50IG1vZGUpCi0tIAoyLjguMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4Cg==