From mboxrd@z Thu Jan 1 00:00:00 1970 From: Varad Gautam Subject: [PATCH 10/14] drm/cirrus: use atomic transition helpers for plane and crtc Date: Fri, 18 Aug 2017 21:19:15 +0530 Message-ID: <20170818154919.18607-11-varadgautam@gmail.com> References: <20170818154919.18607-1-varadgautam@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x244.google.com (mail-pg0-x244.google.com [IPv6:2607:f8b0:400e:c05::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D3C86E04D for ; Fri, 18 Aug 2017 15:50:49 +0000 (UTC) Received: by mail-pg0-x244.google.com with SMTP id n4so748781pgn.0 for ; Fri, 18 Aug 2017 08:50:49 -0700 (PDT) In-Reply-To: <20170818154919.18607-1-varadgautam@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: Varad Gautam List-Id: dri-devel@lists.freedesktop.org RnJvbTogVmFyYWQgR2F1dGFtIDx2YXJhZC5nYXV0YW1AY29sbGFib3JhLmNvbT4KCnNwbGl0IHRo ZSBkcml2ZXIgdG8gZml0IGludG8gYXRvbWljIHNlbWFudGljcywgYW5kIHN3aXRjaCB0byB1c2lu Zwp0aGUgYXRvbWljIHRyYW5zaXRpb24gbGF5ZXIgaGVscGVycyBmb3IgbGVnYWN5IG1vZGVzZXR0 aW5nLgoKU2lnbmVkLW9mZi1ieTogVmFyYWQgR2F1dGFtIDx2YXJhZC5nYXV0YW1AY29sbGFib3Jh LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19kcnYuaCAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbWFpbi5jIHwgICAzICsKIGRyaXZlcnMvZ3B1 L2RybS9jaXJydXMvY2lycnVzX21vZGUuYyB8IDM1MCArKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyMjcgaW5zZXJ0aW9ucygrKSwgMTI3IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfZHJ2LmgKaW5kZXggMjlkZTRmMGRiZDAx Li5kNjgwODE1ZjIzZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVz X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oCkBAIC0xNjgs NiArMTY4LDcgQEAgc3RydWN0IGNpcnJ1c19ibyB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0IGdl bTsKIAlzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlbWVudHNbM107CiAJaW50IHBpbl9jb3VudDsKKwl1 NjQgZ3B1X2FkZHI7CiB9OwogI2RlZmluZSBnZW1fdG9fY2lycnVzX2JvKGdvYmopIGNvbnRhaW5l cl9vZigoZ29iaiksIHN0cnVjdCBjaXJydXNfYm8sIGdlbSkKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9j aXJydXNfbWFpbi5jCmluZGV4IGM5MmNjYjAwZGI2Mi4uN2QwNDMxYmJjNmUzIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tYWluLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2NpcnJ1cy9jaXJydXNfbWFpbi5jCkBAIC05LDYgKzksNyBAQAogICogICAgICAgICAgRGF2 ZSBBaXJsaWUKICAqLwogI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9h dG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogCiAjaW5j bHVkZSAiY2lycnVzX2Rydi5oIgpAQCAtODIsNiArODMsOCBAQCBjaXJydXNfdXNlcl9mcmFtZWJ1 ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fbW9kZV9jb25maWdfZnVuY3MgY2lycnVzX21vZGVfZnVuY3MgPSB7CiAJLmZiX2NyZWF0 ZSA9IGNpcnJ1c191c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZSwKKwkuYXRvbWljX2NoZWNrID0gZHJt X2F0b21pY19oZWxwZXJfY2hlY2ssCisJLmF0b21pY19jb21taXQgPSBkcm1fYXRvbWljX2hlbHBl cl9jb21taXQsCiB9OwogCiAvKiBVbm1hcCB0aGUgZnJhbWVidWZmZXIgZnJvbSB0aGUgY29yZSBh bmQgcmVsZWFzZSB0aGUgbWVtb3J5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2ly cnVzL2NpcnJ1c19tb2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tb2RlLmMK aW5kZXggMjk5NGRkMzkxODUwLi5lZGEzYzRkMThiMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9jaXJydXMvY2lycnVzX21vZGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2Np cnJ1c19tb2RlLmMKQEAgLTE1LDYgKzE1LDggQEAKICAqIENvcHlyaWdodCAxOTk5LTIwMDEgSmVm ZiBHYXJ6aWsgPGpnYXJ6aWtAcG9ib3guY29tPgogICovCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hl bHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0v ZHJtX3BsYW5lX2hlbHBlci5oPgogCkBAIC05MSw5NSArOTMsMjAgQEAgc3RhdGljIHZvaWQgY2ly cnVzX2NydGNfZHBtcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCBtb2RlKQogCVdSRUdfR0ZY KDB4ZSwgZ3IwZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGNpcnJ1c19zZXRfc3RhcnRfYWRkcmVzcyhz dHJ1Y3QgZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIG9mZnNldCkKLXsKLQlzdHJ1Y3QgY2lycnVz X2RldmljZSAqY2RldiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7Ci0JdTMyIGFkZHI7Ci0JdTgg dG1wOwotCi0JYWRkciA9IG9mZnNldCA+PiAyOwotCVdSRUdfQ1JUKDB4MGMsICh1OCkoKGFkZHIg Pj4gOCkgJiAweGZmKSk7Ci0JV1JFR19DUlQoMHgwZCwgKHU4KShhZGRyICYgMHhmZikpOwotCi0J V1JFRzgoQ1JUX0lOREVYLCAweDFiKTsKLQl0bXAgPSBSUkVHOChDUlRfREFUQSk7Ci0JdG1wICY9 IDB4ZjI7Ci0JdG1wIHw9IChhZGRyID4+IDE2KSAmIDB4MDE7Ci0JdG1wIHw9IChhZGRyID4+IDE1 KSAmIDB4MGM7Ci0JV1JFR19DUlQoMHgxYiwgdG1wKTsKLQlXUkVHOChDUlRfSU5ERVgsIDB4MWQp OwotCXRtcCA9IFJSRUc4KENSVF9EQVRBKTsKLQl0bXAgJj0gMHg3ZjsKLQl0bXAgfD0gKGFkZHIg Pj4gMTIpICYgMHg4MDsKLQlXUkVHX0NSVCgweDFkLCB0bXApOwotfQotCi0vKiBjaXJydXMgaXMg ZGlmZmVyZW50IC0gd2Ugd2lsbCBmb3JjZSBtb3ZlIGJ1ZmZlcnMgb3V0IG9mIFZSQU0gKi8KLXN0 YXRpYyBpbnQgY2lycnVzX2NydGNfZG9fc2V0X2Jhc2Uoc3RydWN0IGRybV9jcnRjICpjcnRjLAot CQkJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkJCWludCB4LCBpbnQgeSwgaW50IGF0 b21pYykKLXsKLQlzdHJ1Y3QgY2lycnVzX2RldmljZSAqY2RldiA9IGNydGMtPmRldi0+ZGV2X3By aXZhdGU7Ci0Jc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7Ci0Jc3RydWN0IGNpcnJ1c19mcmFt ZWJ1ZmZlciAqY2lycnVzX2ZiOwotCXN0cnVjdCBjaXJydXNfYm8gKmJvOwotCWludCByZXQ7Ci0J dTY0IGdwdV9hZGRyOwotCi0JLyogcHVzaCB0aGUgcHJldmlvdXMgZmIgdG8gc3lzdGVtIHJhbSAq LwotCWlmICghYXRvbWljICYmIGZiKSB7Ci0JCWNpcnJ1c19mYiA9IHRvX2NpcnJ1c19mcmFtZWJ1 ZmZlcihmYik7Ci0JCW9iaiA9IGNpcnJ1c19mYi0+b2JqOwotCQlibyA9IGdlbV90b19jaXJydXNf Ym8ob2JqKTsKLQkJY2lycnVzX2JvX3VucGluKGJvKTsKLQkJY2lycnVzX2JvX3B1c2hfc3lzcmFt KGJvKTsKLQl9Ci0KLQljaXJydXNfZmIgPSB0b19jaXJydXNfZnJhbWVidWZmZXIoY3J0Yy0+cHJp bWFyeS0+ZmIpOwotCW9iaiA9IGNpcnJ1c19mYi0+b2JqOwotCWJvID0gZ2VtX3RvX2NpcnJ1c19i byhvYmopOwotCi0JcmV0ID0gY2lycnVzX2JvX3BpbihibywgVFRNX1BMX0ZMQUdfVlJBTSwgJmdw dV9hZGRyKTsKLQlpZiAocmV0KQotCQlyZXR1cm4gcmV0OwotCi0JaWYgKCZjZGV2LT5tb2RlX2lu Zm8uZ2ZiZGV2LT5nZmIgPT0gY2lycnVzX2ZiKSB7Ci0JCS8qIGlmIHB1c2hpbmcgY29uc29sZSBp biBrbWFwIGl0ICovCi0JCXJldCA9IHR0bV9ib19rbWFwKCZiby0+Ym8sIDAsIGJvLT5iby5udW1f cGFnZXMsICZiby0+a21hcCk7Ci0JCWlmIChyZXQpCi0JCQlEUk1fRVJST1IoImZhaWxlZCB0byBr bWFwIGZiY29uXG4iKTsKLQl9Ci0KLQljaXJydXNfc2V0X3N0YXJ0X2FkZHJlc3MoY3J0YywgKHUz MilncHVfYWRkcik7Ci0JcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQgY2lycnVzX2NydGNfbW9k ZV9zZXRfYmFzZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSwKLQkJCSAgICAg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqb2xkX2ZiKQotewotCXJldHVybiBjaXJydXNfY3J0Y19k b19zZXRfYmFzZShjcnRjLCBvbGRfZmIsIHgsIHksIDApOwotfQotCiAvKgotICogVGhlIG1lYXQg b2YgdGhpcyBkcml2ZXIuIFRoZSBjb3JlIHBhc3NlcyB1cyBhIG1vZGUgYW5kIHdlIGhhdmUgdG8g cHJvZ3JhbQotICogaXQuIFRoZSBtb2Rlc2V0dGluZyBoZXJlIGlzIHRoZSBiYXJlIG1pbmltdW0g cmVxdWlyZWQgdG8gc2F0aXNmeSB0aGUgcWVtdQotICogZW11bGF0aW9uIG9mIHRoaXMgaGFyZHdh cmUsIGFuZCBydW5uaW5nIHRoaXMgYWdhaW5zdCBhIHJlYWwgZGV2aWNlIGlzCi0gKiBsaWtlbHkg dG8gcmVzdWx0IGluIGFuIGluYWRlcXVhdGVseSBwcm9ncmFtbWVkIG1vZGUuIFdlJ3ZlIGFscmVh ZHkgaGFkCi0gKiB0aGUgb3Bwb3J0dW5pdHkgdG8gbW9kaWZ5IHRoZSBtb2RlLCBzbyB3aGF0ZXZl ciB3ZSByZWNlaXZlIGhlcmUgc2hvdWxkCi0gKiBiZSBzb21ldGhpbmcgdGhhdCBjYW4gYmUgY29y cmVjdGx5IHByb2dyYW1tZWQgYW5kIGRpc3BsYXllZAorICogVGhlIGNvcmUgcGFzc2VzIHVzIGEg bW9kZSBhbmQgd2UgaGF2ZSB0byBwcm9ncmFtIGl0LiBUaGUgbW9kZXNldHRpbmcgaGVyZQorICog aXMgdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBzYXRpc2Z5IHRoZSBxZW11IGVtdWxhdGlv biBvZiB0aGlzCisgKiBoYXJkd2FyZSwgYW5kIHJ1bm5pbmcgdGhpcyBhZ2FpbnN0IGEgcmVhbCBk ZXZpY2UgaXMgbGlrZWx5IHRvIHJlc3VsdCBpbgorICogYW4gaW5hZGVxdWF0ZWx5IHByb2dyYW1t ZWQgbW9kZS4KICAqLwotc3RhdGljIGludCBjaXJydXNfY3J0Y19tb2RlX3NldChzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCi0JCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCi0JCQkJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsCi0JCQkJaW50IHgsIGludCB5LCBz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIpCitzdGF0aWMgdm9pZCBjaXJydXNfbW9kZV9z ZXRfbm9mYihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgY2lycnVzX2RldmljZSAqY2RldiA9IGRldi0+ZGV2X3By aXZhdGU7Ci0JY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5wcmltYXJ5 LT5mYjsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjLT5tb2RlOwogCWlu dCBoc3luY3N0YXJ0LCBoc3luY2VuZCwgaHRvdGFsLCBoZGlzcGVuZDsKIAlpbnQgdnRvdGFsLCB2 ZGlzcGVuZDsKIAlpbnQgdG1wOwotCWludCBzcjA3ID0gMCwgaGRyID0gMDsKIAogCWh0b3RhbCA9 IG1vZGUtPmh0b3RhbCAvIDg7CiAJaHN5bmNlbmQgPSBtb2RlLT5oc3luY19lbmQgLyA4OwpAQCAt MjQ0LDU0ICsxNzEsMTEgQEAgc3RhdGljIGludCBjaXJydXNfY3J0Y19tb2RlX3NldChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCiAJLyogRGlzYWJsZSBIZXJjdWxlcy9DR0EgY29tcGF0aWJpbGl0eSAq LwogCVdSRUdfQ1JUKFZHQV9DUlRDX01PREUsIDB4MDMpOwogCi0JV1JFRzgoU0VRX0lOREVYLCAw eDcpOwotCXNyMDcgPSBSUkVHOChTRVFfREFUQSk7Ci0Jc3IwNyAmPSAweGUwOwotCWhkciA9IDA7 Ci0Jc3dpdGNoIChmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4KSB7Ci0JY2FzZSA4OgotCQlzcjA3IHw9 IDB4MTE7Ci0JCWJyZWFrOwotCWNhc2UgMTY6Ci0JCXNyMDcgfD0gMHgxNzsKLQkJaGRyID0gMHhj MTsKLQkJYnJlYWs7Ci0JY2FzZSAyNDoKLQkJc3IwNyB8PSAweDE1OwotCQloZHIgPSAweGM1Owot CQlicmVhazsKLQljYXNlIDMyOgotCQlzcjA3IHw9IDB4MTk7Ci0JCWhkciA9IDB4YzU7Ci0JCWJy ZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQlXUkVHX1NFUSgweDcsIHNyMDcp OwotCi0JLyogUHJvZ3JhbSB0aGUgcGl0Y2ggKi8KLQl0bXAgPSBmYi0+cGl0Y2hlc1swXSAvIDg7 Ci0JV1JFR19DUlQoVkdBX0NSVENfT0ZGU0VULCB0bXApOwotCi0JLyogRW5hYmxlIGV4dGVuZGVk IGJsYW5raW5nIGFuZCBwaXRjaCBiaXRzLCBhbmQgZW5hYmxlIGZ1bGwgbWVtb3J5ICovCi0JdG1w ID0gMHgyMjsKLQl0bXAgfD0gKGZiLT5waXRjaGVzWzBdID4+IDcpICYgMHgxMDsKLQl0bXAgfD0g KGZiLT5waXRjaGVzWzBdID4+IDYpICYgMHg0MDsKLQlXUkVHX0NSVCgweDFiLCB0bXApOwotCiAJ LyogRW5hYmxlIGhpZ2gtY29sb3VyIG1vZGVzICovCiAJV1JFR19HRlgoVkdBX0dGWF9NT0RFLCAw eDQwKTsKIAogCS8qIEFuZCBzZXQgZ3JhcGhpY3MgbW9kZSAqLwogCVdSRUdfR0ZYKFZHQV9HRlhf TUlTQywgMHgwMSk7Ci0KLQlXUkVHX0hEUihoZHIpOwotCWNpcnJ1c19jcnRjX2RvX3NldF9iYXNl KGNydGMsIG9sZF9mYiwgeCwgeSwgMCk7Ci0KLQkvKiBVbmJsYW5rIChuZWVkZWQgb24gUzMgcmVz dW1lLCB2Z2FiaW9zIGRvZXNuJ3QgZG8gaXQgdGhlbikgKi8KLQlvdXRiKDB4MjAsIDB4M2MwKTsK LQlyZXR1cm4gMDsKIH0KIAogLyoKQEAgLTM0NywxNyArMjMxLDM0IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2NydGNfZnVuY3MgY2lycnVzX2NydGNfZnVuY3MgPSB7CiAJLmdhbW1hX3NldCA9 IGNpcnJ1c19jcnRjX2dhbW1hX3NldCwKIAkuc2V0X2NvbmZpZyA9IGRybV9jcnRjX2hlbHBlcl9z ZXRfY29uZmlnLAogCS5kZXN0cm95ID0gY2lycnVzX2NydGNfZGVzdHJveSwKKwkucmVzZXQgPSBk cm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0LAorCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0g ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUsCisJLmF0b21pY19kZXN0cm95 X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlLAogfTsKIAogc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgY2lycnVzX2hlbHBlcl9mdW5j cyA9IHsKIAkuZHBtcyA9IGNpcnJ1c19jcnRjX2RwbXMsCi0JLm1vZGVfc2V0ID0gY2lycnVzX2Ny dGNfbW9kZV9zZXQsCi0JLm1vZGVfc2V0X2Jhc2UgPSBjaXJydXNfY3J0Y19tb2RlX3NldF9iYXNl LAorCS5tb2RlX3NldCA9IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldCwKKwkubW9kZV9zZXRfYmFz ZSA9IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNlLAorCS5tb2RlX3NldF9ub2ZiID0gY2ly cnVzX21vZGVfc2V0X25vZmIsCiAJLnByZXBhcmUgPSBjaXJydXNfY3J0Y19wcmVwYXJlLAogCS5j b21taXQgPSBjaXJydXNfY3J0Y19jb21taXQsCiAJLmxvYWRfbHV0ID0gY2lycnVzX2NydGNfbG9h ZF9sdXQsCiB9OwogCitzdGF0aWMgaW50IGNpcnJ1c19wbGFuZV91cGRhdGUoc3RydWN0IGRybV9w bGFuZSAqcGxhbmUsCisJCQkgICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJICAgICAg IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY3J0Y194LAorCQkJICAgICAgIGludCBj cnRjX3ksIHVuc2lnbmVkIGludCBjcnRjX3csCisJCQkgICAgICAgdW5zaWduZWQgaW50IGNydGNf aCwgdWludDMyX3Qgc3JjX3gsCisJCQkgICAgICAgdWludDMyX3Qgc3JjX3ksIHVpbnQzMl90IHNy Y193LCB1aW50MzJfdCBzcmNfaCwKKwkJCSAgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWly ZV9jdHggKmN0eCkKK3sKKwlyZXR1cm4gZHJtX3BsYW5lX2hlbHBlcl91cGRhdGUocGxhbmUsIGNy dGMsIGZiLAorCQkJCSAgICAgICBjcnRjX3gsIGNydGNfeSwgY3J0Y193LAorCQkJCSAgICAgICBj cnRjX2gsIHNyY194LCBzcmNfeSwgc3JjX3csIHNyY19oKTsKK30KKwogc3RhdGljIGNvbnN0IHVp bnQzMl90IGNpcnJ1c19wbGFuZV9mb3JtYXRzW10gPSB7CiAJRFJNX0ZPUk1BVF9YUkdCODg4OCwK IAlEUk1fRk9STUFUX0FSR0I4ODg4LApAQCAtMzY2LDEyICsyNjcsMjAyIEBAIHN0YXRpYyBjb25z dCB1aW50MzJfdCBjaXJydXNfcGxhbmVfZm9ybWF0c1tdID0gewogfTsKIAogc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgY2lycnVzX3BsYW5lX2Z1bmNzID0gewotCS51cGRhdGVf cGxhbmUJPSBkcm1fcHJpbWFyeV9oZWxwZXJfdXBkYXRlLAorCS51cGRhdGVfcGxhbmUJPSBjaXJy dXNfcGxhbmVfdXBkYXRlLAogCS5kaXNhYmxlX3BsYW5lCT0gZHJtX3ByaW1hcnlfaGVscGVyX2Rp c2FibGUsCiAJLmRlc3Ryb3kJPSBkcm1fcHJpbWFyeV9oZWxwZXJfZGVzdHJveSwKKwkucmVzZXQJ PSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldCwKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0 ZQk9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSwKKwkuYXRvbWljX2Rl c3Ryb3lfc3RhdGUJPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9kZXN0cm95X3N0YXRlLAogfTsK IAorc3RhdGljIGludCBjaXJydXNfcGxhbmVfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKKwkJCQkgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3RhdGUpCit7CisJc3Ry dWN0IGNpcnJ1c19kZXZpY2UgKmNkZXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgY2lycnVzX2ZyYW1lYnVmZmVyICpjaXJy dXNfZmI7CisJc3RydWN0IGNpcnJ1c19ibyAqYm87CisJaW50IHJldDsKKworCWlmICghbmV3X3N0 YXRlLT5mYikKKwkJcmV0dXJuIDA7CisKKwlpZiAocGxhbmUtPm9sZF9mYikgeworCQljaXJydXNf ZmIgPSB0b19jaXJydXNfZnJhbWVidWZmZXIocGxhbmUtPm9sZF9mYik7CisJCW9iaiA9IGNpcnJ1 c19mYi0+b2JqOworCQlibyA9IGdlbV90b19jaXJydXNfYm8ob2JqKTsKKwkJY2lycnVzX2JvX3B1 c2hfc3lzcmFtKGJvKTsKKwl9CisKKwljaXJydXNfZmIgPSB0b19jaXJydXNfZnJhbWVidWZmZXIo bmV3X3N0YXRlLT5mYik7CisJb2JqID0gY2lycnVzX2ZiLT5vYmo7CisJYm8gPSBnZW1fdG9fY2ly cnVzX2JvKG9iaik7CisKKwlyZXQgPSBjaXJydXNfYm9fcGluKGJvLCBUVE1fUExfRkxBR19WUkFN LCAmYm8tPmdwdV9hZGRyKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaWYgKCZjZGV2 LT5tb2RlX2luZm8uZ2ZiZGV2LT5nZmIgPT0gY2lycnVzX2ZiKSB7CisJCS8qIGlmIHB1c2hpbmcg Y29uc29sZSBpbiBrbWFwIGl0ICovCisJCXJldCA9IHR0bV9ib19rbWFwKCZiby0+Ym8sIDAsIGJv LT5iby5udW1fcGFnZXMsICZiby0+a21hcCk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0Owor CX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBjaXJydXNfcGxhbmVfY2xlYW51cF9m YihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBj aXJydXNfYm8gKmJvOworCisJaWYgKCFwbGFuZS0+c3RhdGUtPmZiKSB7CisJCS8qIHdlIG5ldmVy IGV4ZWN1dGVkIHByZXBhcmVfZmIsIHNvIHRoZXJlJ3Mgbm90aGluZyB0bworCQkgKiB1bnBpbi4K KwkJICovCisJCXJldHVybjsKKwl9CisKKwlvYmogPSB0b19jaXJydXNfZnJhbWVidWZmZXIocGxh bmUtPnN0YXRlLT5mYiktPm9iajsKKwlibyA9IGdlbV90b19jaXJydXNfYm8ob2JqKTsKKworCWNp cnJ1c19ib191bnBpbihibyk7Cit9CisKK3N0YXRpYyBpbnQgY2lycnVzX3BsYW5lX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAgIHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBjaXJydXNfZGV2aWNlICpjZGV2ID0gcGxhbmUtPmRl di0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+ZmI7 CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmNydGMgPyBzdGF0ZS0+Y3J0YyA6IHBs YW5lLT5jcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3Qg ZHJtX3JlY3QgY2xpcCA9IHsgMCB9OworCWludCByZXQ7CisKKwlpZiAoIWNydGMgfHwgIWZiKQor CQlyZXR1cm4gMDsKKworCWlmICghY2lycnVzX2NoZWNrX2ZyYW1lYnVmZmVyKGNkZXYsIGZiLT53 aWR0aCwgZmItPmhlaWdodCwKKwkJCQkgICAgICBmYi0+Zm9ybWF0LT5jcHBbMF0sIGZiLT5waXRj aGVzWzBdKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZS0+c3RhdGUsIGNydGMpOworCWlmICghY3J0Y19z dGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljbGlwLngyID0gY3J0Y19zdGF0ZS0+YWRqdXN0 ZWRfbW9kZS5oZGlzcGxheTsKKwljbGlwLnkyID0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZS52 ZGlzcGxheTsKKworCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfc3RhdGUoc3RhdGUsICZj bGlwLAorCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCisJCQkJCSAgIERSTV9Q TEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJICAgZmFsc2UsIHRydWUpOworCWlmIChyZXQp CisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgY2lycnVzX3Bs YW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCQlzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCit7CisJcmV0dXJuOworfQorCitzdGF0aWMgdm9p ZCBjaXJydXNfc2V0X2ZyYW1lYnVmZmVyX3JlZ3Moc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCit7 CisJc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNkZXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0ZTsK KwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lLT5zdGF0ZS0+ZmI7CisJaW50IHNy MDcgPSAwLCBoZHIgPSAwLCB0bXA7CisKKwlXUkVHOChTRVFfSU5ERVgsIDB4Nyk7CisJc3IwNyA9 IFJSRUc4KFNFUV9EQVRBKTsKKwlzcjA3ICY9IDB4ZTA7CisJc3dpdGNoIChmYi0+Zm9ybWF0LT5j cHBbMF0gKiA4KSB7CisJY2FzZSA4OgorCQlzcjA3IHw9IDB4MTE7CisJCWJyZWFrOworCWNhc2Ug MTY6CisJCXNyMDcgfD0gMHgxNzsKKwkJaGRyID0gMHhjMTsKKwkJYnJlYWs7CisJY2FzZSAyNDoK KwkJc3IwNyB8PSAweDE1OworCQloZHIgPSAweGM1OworCQlicmVhazsKKwljYXNlIDMyOgorCQlz cjA3IHw9IDB4MTk7CisJCWhkciA9IDB4YzU7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCS8qIFNo b3VsZCBuZXZlciByZWFjaCBoZXJlLiAqLworCQlicmVhazsKKwl9CisKKwlXUkVHX1NFUSgweDcs IHNyMDcpOworCisJLyogUHJvZ3JhbSB0aGUgcGl0Y2ggKi8KKwl0bXAgPSBmYi0+cGl0Y2hlc1sw XSAvIDg7CisJV1JFR19DUlQoVkdBX0NSVENfT0ZGU0VULCB0bXApOworCisJLyogRW5hYmxlIGV4 dGVuZGVkIGJsYW5raW5nIGFuZCBwaXRjaCBiaXRzLCBhbmQgZW5hYmxlIGZ1bGwgbWVtb3J5ICov CisJdG1wID0gMHgyMjsKKwl0bXAgfD0gKGZiLT5waXRjaGVzWzBdID4+IDcpICYgMHgxMDsKKwl0 bXAgfD0gKGZiLT5waXRjaGVzWzBdID4+IDYpICYgMHg0MDsKKwlXUkVHX0NSVCgweDFiLCB0bXAp OworCisJV1JFR19IRFIoaGRyKTsKK30KKworc3RhdGljIHZvaWQgY2lycnVzX3NldF9zdGFydF9h ZGRyZXNzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVj dCBjaXJydXNfZGV2aWNlICpjZGV2ID0gY3J0Yy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwl1MzIgYWRk cjsKKwl1OCB0bXA7CisKKwlhZGRyID0gb2Zmc2V0ID4+IDI7CisJV1JFR19DUlQoMHgwYywgKHU4 KSgoYWRkciA+PiA4KSAmIDB4ZmYpKTsKKwlXUkVHX0NSVCgweDBkLCAodTgpKGFkZHIgJiAweGZm KSk7CisKKwlXUkVHOChDUlRfSU5ERVgsIDB4MWIpOworCXRtcCA9IFJSRUc4KENSVF9EQVRBKTsK Kwl0bXAgJj0gMHhmMjsKKwl0bXAgfD0gKGFkZHIgPj4gMTYpICYgMHgwMTsKKwl0bXAgfD0gKGFk ZHIgPj4gMTUpICYgMHgwYzsKKwlXUkVHX0NSVCgweDFiLCB0bXApOworCVdSRUc4KENSVF9JTkRF WCwgMHgxZCk7CisJdG1wID0gUlJFRzgoQ1JUX0RBVEEpOworCXRtcCAmPSAweDdmOworCXRtcCB8 PSAoYWRkciA+PiAxMikgJiAweDgwOworCVdSRUdfQ1JUKDB4MWQsIHRtcCk7Cit9CisKK3N0YXRp YyB2b2lkIGNpcnJ1c19wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCit7CisJc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+c3RhdGU7CisJc3RydWN0IGRybV9n ZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGNpcnJ1c19ibyAqYm87CisKKwljaXJydXNfc2V0X2Zy YW1lYnVmZmVyX3JlZ3MocGxhbmUpOworCisJb2JqID0gdG9fY2lycnVzX2ZyYW1lYnVmZmVyKHN0 YXRlLT5mYiktPm9iajsKKwlibyA9IGdlbV90b19jaXJydXNfYm8ob2JqKTsKKwljaXJydXNfc2V0 X3N0YXJ0X2FkZHJlc3Moc3RhdGUtPmNydGMsICh1MzIpYm8tPmdwdV9hZGRyKTsKKworCS8qIFVu YmxhbmsgKG5lZWRlZCBvbiBTMyByZXN1bWUsIHZnYWJpb3MgZG9lc24ndCBkbyBpdCB0aGVuKSAq LworCW91dGIoMHgyMCwgMHgzYzApOworfQorCisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Bs YW5lX2hlbHBlcl9mdW5jcyBjaXJydXNfcGxhbmVfaGVscGVyX2Z1bmNzID0geworCS5wcmVwYXJl X2ZiID0gY2lycnVzX3BsYW5lX3ByZXBhcmVfZmIsCisJLmNsZWFudXBfZmIgPSBjaXJydXNfcGxh bmVfY2xlYW51cF9mYiwKKwkuYXRvbWljX2NoZWNrID0gY2lycnVzX3BsYW5lX2F0b21pY19jaGVj aywKKwkuYXRvbWljX2Rpc2FibGUgPSBjaXJydXNfcGxhbmVfYXRvbWljX2Rpc2FibGUsCisJLmF0 b21pY191cGRhdGUgPSBjaXJydXNfcGxhbmVfYXRvbWljX3VwZGF0ZSwKIH07CiAKIC8qIENSVEMg c2V0dXAgKi8KQEAgLTU0Niw2ICs2MzcsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25u ZWN0b3JfZnVuY3MgY2lycnVzX3ZnYV9jb25uZWN0b3JfZnVuY3MgPSB7CiAJLmRwbXMgPSBkcm1f aGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAogCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9z aW5nbGVfY29ubmVjdG9yX21vZGVzLAogCS5kZXN0cm95ID0gY2lycnVzX2Nvbm5lY3Rvcl9kZXN0 cm95LAorCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9yZXNldCwKKwkuYXRv bWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNh dGVfc3RhdGUsCisJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29u bmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCiB9OwogCiBzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0b3Ig KmNpcnJ1c192Z2FfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpAQCAtNjAyLDYgKzY5Niw4 IEBAIGludCBjaXJydXNfbW9kZXNldF9pbml0KHN0cnVjdCBjaXJydXNfZGV2aWNlICpjZGV2KQog CiAJZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGNvbm5lY3RvciwgZW5jb2Rlcik7 CiAKKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoY2Rldi0+ZGV2KTsKKwogCXJldCA9IGNpcnJ1c19m YmRldl9pbml0KGNkZXYpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJjaXJydXNfZmJkZXZf aW5pdCBmYWlsZWRcbiIpOwotLSAKMi4xMy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK