From mboxrd@z Thu Jan 1 00:00:00 1970 From: Varad Gautam Subject: [PATCH 08/12] drm/cirrus: use atomic transition helpers for plane and crtc Date: Fri, 8 Sep 2017 19:05:13 +0530 Message-ID: <20170908133517.18715-9-varadgautam@gmail.com> References: <20170908133517.18715-1-varadgautam@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pf0-x243.google.com (mail-pf0-x243.google.com [IPv6:2607:f8b0:400e:c00::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1C1586EB89 for ; Fri, 8 Sep 2017 13:36:35 +0000 (UTC) Received: by mail-pf0-x243.google.com with SMTP id f84so1440649pfj.3 for ; Fri, 08 Sep 2017 06:36:35 -0700 (PDT) In-Reply-To: <20170908133517.18715-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 IGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfZHJ2LmgKaW5kZXggOGM0M2NjOTYzMDI3 Li4xZGIwODQ5YjRiY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVz X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oCkBAIC0xNjcs NiArMTY3LDcgQEAgc3RydWN0IGNpcnJ1c19ibyB7CiAJc3RydWN0IGRybV9nZW1fb2JqZWN0IGdl bTsKIAlzdHJ1Y3QgdHRtX3BsYWNlIHBsYWNlbWVudHNbM107CiAJaW50IHBpbl9jb3VudDsKKwl1 NjQgZ3B1X2FkZHI7CiB9OwogI2RlZmluZSBnZW1fdG9fY2lycnVzX2JvKGdvYmopIGNvbnRhaW5l cl9vZigoZ29iaiksIHN0cnVjdCBjaXJydXNfYm8sIGdlbSkKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9j aXJydXNfbWFpbi5jCmluZGV4IDMzMmJiMjE2OTUwOC4uZjE0NmE0MTI5NzQyIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tYWluLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2NpcnJ1cy9jaXJydXNfbWFpbi5jCkBAIC05LDYgKzksNyBAQAogICogICAgICAgICAgRGF2 ZSBBaXJsaWUKICAqLwogI2luY2x1ZGUgPGRybS9kcm1QLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9h dG9taWNfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjX2hlbHBlci5oPgogCiAjaW5j bHVkZSAiY2lycnVzX2Rydi5oIgpAQCAtODIsNiArODMsOCBAQCBjaXJydXNfdXNlcl9mcmFtZWJ1 ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fbW9kZV9jb25maWdfZnVuY3MgY2lycnVzX21vZGVfZnVuY3MgPSB7CiAJLmZiX2NyZWF0 ZSA9IGNpcnJ1c191c2VyX2ZyYW1lYnVmZmVyX2NyZWF0ZSwKKwkuYXRvbWljX2NoZWNrID0gZHJt X2F0b21pY19oZWxwZXJfY2hlY2ssCisJLmF0b21pY19jb21taXQgPSBkcm1fYXRvbWljX2hlbHBl cl9jb21taXQsCiB9OwogCiAvKiBVbm1hcCB0aGUgZnJhbWVidWZmZXIgZnJvbSB0aGUgY29yZSBh bmQgcmVsZWFzZSB0aGUgbWVtb3J5ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vY2ly cnVzL2NpcnJ1c19tb2RlLmMgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c19tb2RlLmMK aW5kZXggZDEyMzk5OTg2YzgxLi5lZTAyM2M4NjUxNjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9jaXJydXMvY2lycnVzX21vZGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2Np cnJ1c19tb2RlLmMKQEAgLTE1LDYgKzE1LDggQEAKICAqIENvcHlyaWdodCAxOTk5LTIwMDEgSmVm ZiBHYXJ6aWsgPGpnYXJ6aWtAcG9ib3guY29tPgogICovCiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgorI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hl bHBlci5oPgogI2luY2x1ZGUgPGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0v ZHJtX3BsYW5lX2hlbHBlci5oPgogCkBAIC03Miw5NSArNzQsMjAgQEAgc3RhdGljIHZvaWQgY2ly 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 MjI1LDU0ICsxNTIsMTEgQEAgc3RhdGljIGludCBjaXJydXNfY3J0Y19tb2RlX3NldChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsCiAJLyogRGlzYWJsZSBIZXJjdWxlcy9DR0EgY29tcGF0aWJpbGl0eSAq LwogCVdSRUdfQ1JUKFZHQV9DUlRDX01PREUsIDB4MDMpOwogCi0JV1JFRzgoU0VRX0lOREVYLCAw eDcpOwotCXNyMDcgPSBSUkVHOChTRVFfREFUQSk7Ci0Jc3IwNyAmPSAweGUwOwotCWhkciA9IDA7 Ci0Jc3dpdGNoIChmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4KSB7Ci0JY2FzZSA4OgotCQlzcjA3IHw9 IDB4MTE7Ci0JCWJyZWFrOwotCWNhc2UgMTY6Ci0JCXNyMDcgfD0gMHgxNzsKLQkJaGRyID0gMHhj MTsKLQkJYnJlYWs7Ci0JY2FzZSAyNDoKLQkJc3IwNyB8PSAweDE1OwotCQloZHIgPSAweGM1Owot CQlicmVhazsKLQljYXNlIDMyOgotCQlzcjA3IHw9IDB4MTk7Ci0JCWhkciA9IDB4YzU7Ci0JCWJy ZWFrOwotCWRlZmF1bHQ6Ci0JCXJldHVybiAtMTsKLQl9Ci0KLQlXUkVHX1NFUSgweDcsIHNyMDcp OwotCi0JLyogUHJvZ3JhbSB0aGUgcGl0Y2ggKi8KLQl0bXAgPSBmYi0+cGl0Y2hlc1swXSAvIDg7 Ci0JV1JFR19DUlQoVkdBX0NSVENfT0ZGU0VULCB0bXApOwotCi0JLyogRW5hYmxlIGV4dGVuZGVk IGJsYW5raW5nIGFuZCBwaXRjaCBiaXRzLCBhbmQgZW5hYmxlIGZ1bGwgbWVtb3J5ICovCi0JdG1w ID0gMHgyMjsKLQl0bXAgfD0gKGZiLT5waXRjaGVzWzBdID4+IDcpICYgMHgxMDsKLQl0bXAgfD0g KGZiLT5waXRjaGVzWzBdID4+IDYpICYgMHg0MDsKLQlXUkVHX0NSVCgweDFiLCB0bXApOwotCiAJ LyogRW5hYmxlIGhpZ2gtY29sb3VyIG1vZGVzICovCiAJV1JFR19HRlgoVkdBX0dGWF9NT0RFLCAw eDQwKTsKIAogCS8qIEFuZCBzZXQgZ3JhcGhpY3MgbW9kZSAqLwogCVdSRUdfR0ZYKFZHQV9HRlhf TUlTQywgMHgwMSk7Ci0KLQlXUkVHX0hEUihoZHIpOwotCWNpcnJ1c19jcnRjX2RvX3NldF9iYXNl KGNydGMsIG9sZF9mYiwgeCwgeSwgMCk7Ci0KLQkvKiBVbmJsYW5rIChuZWVkZWQgb24gUzMgcmVz dW1lLCB2Z2FiaW9zIGRvZXNuJ3QgZG8gaXQgdGhlbikgKi8KLQlvdXRiKDB4MjAsIDB4M2MwKTsK LQlyZXR1cm4gMDsKIH0KIAogLyoKQEAgLTMzOCwxNiArMjIyLDMzIEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2NydGNfZnVuY3MgY2lycnVzX2NydGNfZnVuY3MgPSB7CiAJLmdhbW1hX3NldCA9 IGNpcnJ1c19jcnRjX2dhbW1hX3NldCwKIAkuc2V0X2NvbmZpZyA9IGRybV9jcnRjX2hlbHBlcl9z ZXRfY29uZmlnLAogCS5kZXN0cm95ID0gY2lycnVzX2NydGNfZGVzdHJveSwKKwkucmVzZXQgPSBk cm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0LAorCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0g ZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUsCisJLmF0b21pY19kZXN0cm95 X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlLAogfTsKIAogc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgY2lycnVzX2hlbHBlcl9mdW5j cyA9IHsKIAkuZHBtcyA9IGNpcnJ1c19jcnRjX2RwbXMsCi0JLm1vZGVfc2V0ID0gY2lycnVzX2Ny dGNfbW9kZV9zZXQsCi0JLm1vZGVfc2V0X2Jhc2UgPSBjaXJydXNfY3J0Y19tb2RlX3NldF9iYXNl LAorCS5tb2RlX3NldCA9IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldCwKKwkubW9kZV9zZXRfYmFz ZSA9IGRybV9oZWxwZXJfY3J0Y19tb2RlX3NldF9iYXNlLAorCS5tb2RlX3NldF9ub2ZiID0gY2ly cnVzX21vZGVfc2V0X25vZmIsCiAJLnByZXBhcmUgPSBjaXJydXNfY3J0Y19wcmVwYXJlLAogCS5j b21taXQgPSBjaXJydXNfY3J0Y19jb21taXQsCiB9OwogCitzdGF0aWMgaW50IGNpcnJ1c19wbGFu ZV91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICAgICAgc3RydWN0IGRybV9j cnRjICpjcnRjLAorCQkJICAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgY3J0 Y194LAorCQkJICAgICAgIGludCBjcnRjX3ksIHVuc2lnbmVkIGludCBjcnRjX3csCisJCQkgICAg ICAgdW5zaWduZWQgaW50IGNydGNfaCwgdWludDMyX3Qgc3JjX3gsCisJCQkgICAgICAgdWludDMy X3Qgc3JjX3ksIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKKwkJCSAgICAgICBzdHJ1 Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCkKK3sKKwlyZXR1cm4gZHJtX3BsYW5lX2hl bHBlcl91cGRhdGUocGxhbmUsIGNydGMsIGZiLAorCQkJCSAgICAgICBjcnRjX3gsIGNydGNfeSwg Y3J0Y193LAorCQkJCSAgICAgICBjcnRjX2gsIHNyY194LCBzcmNfeSwgc3JjX3csIHNyY19oKTsK K30KKwogc3RhdGljIGNvbnN0IHVpbnQzMl90IGNpcnJ1c19wbGFuZV9mb3JtYXRzW10gPSB7CiAJ RFJNX0ZPUk1BVF9YUkdCODg4OCwKIAlEUk1fRk9STUFUX0FSR0I4ODg4LApAQCAtMzU2LDEyICsy NTcsMjAyIEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBjaXJydXNfcGxhbmVfZm9ybWF0c1tdID0g ewogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgY2lycnVzX3BsYW5l X2Z1bmNzID0gewotCS51cGRhdGVfcGxhbmUJPSBkcm1fcHJpbWFyeV9oZWxwZXJfdXBkYXRlLAor CS51cGRhdGVfcGxhbmUJPSBjaXJydXNfcGxhbmVfdXBkYXRlLAogCS5kaXNhYmxlX3BsYW5lCT0g ZHJtX3ByaW1hcnlfaGVscGVyX2Rpc2FibGUsCiAJLmRlc3Ryb3kJPSBkcm1fcHJpbWFyeV9oZWxw ZXJfZGVzdHJveSwKKwkucmVzZXQJPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldCwKKwku YXRvbWljX2R1cGxpY2F0ZV9zdGF0ZQk9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0 ZV9zdGF0ZSwKKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUJPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFu ZV9kZXN0cm95X3N0YXRlLAogfTsKIAorc3RhdGljIGludCBjaXJydXNfcGxhbmVfcHJlcGFyZV9m YihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpuZXdfc3RhdGUpCit7CisJc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNkZXYgPSBwbGFuZS0+ZGV2 LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3QgY2ly cnVzX2ZyYW1lYnVmZmVyICpjaXJydXNfZmI7CisJc3RydWN0IGNpcnJ1c19ibyAqYm87CisJaW50 IHJldDsKKworCWlmICghbmV3X3N0YXRlLT5mYikKKwkJcmV0dXJuIDA7CisKKwlpZiAocGxhbmUt Pm9sZF9mYikgeworCQljaXJydXNfZmIgPSB0b19jaXJydXNfZnJhbWVidWZmZXIocGxhbmUtPm9s ZF9mYik7CisJCW9iaiA9IGNpcnJ1c19mYi0+b2JqOworCQlibyA9IGdlbV90b19jaXJydXNfYm8o b2JqKTsKKwkJY2lycnVzX2JvX3B1c2hfc3lzcmFtKGJvKTsKKwl9CisKKwljaXJydXNfZmIgPSB0 b19jaXJydXNfZnJhbWVidWZmZXIobmV3X3N0YXRlLT5mYik7CisJb2JqID0gY2lycnVzX2ZiLT5v Ymo7CisJYm8gPSBnZW1fdG9fY2lycnVzX2JvKG9iaik7CisKKwlyZXQgPSBjaXJydXNfYm9fcGlu KGJvLCBUVE1fUExfRkxBR19WUkFNLCAmYm8tPmdwdV9hZGRyKTsKKwlpZiAocmV0KQorCQlyZXR1 cm4gcmV0OworCisJaWYgKCZjZGV2LT5tb2RlX2luZm8uZ2ZiZGV2LT5nZmIgPT0gY2lycnVzX2Zi KSB7CisJCS8qIGlmIHB1c2hpbmcgY29uc29sZSBpbiBrbWFwIGl0ICovCisJCXJldCA9IHR0bV9i b19rbWFwKCZiby0+Ym8sIDAsIGJvLT5iby5udW1fcGFnZXMsICZiby0+a21hcCk7CisJCWlmIChy ZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBj aXJydXNfcGxhbmVfY2xlYW51cF9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkgICAg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqOworCXN0cnVjdCBjaXJydXNfYm8gKmJvOworCisJaWYgKCFwbGFuZS0+c3RhdGUt PmZiKSB7CisJCS8qIHdlIG5ldmVyIGV4ZWN1dGVkIHByZXBhcmVfZmIsIHNvIHRoZXJlJ3Mgbm90 aGluZyB0bworCQkgKiB1bnBpbi4KKwkJICovCisJCXJldHVybjsKKwl9CisKKwlvYmogPSB0b19j aXJydXNfZnJhbWVidWZmZXIocGxhbmUtPnN0YXRlLT5mYiktPm9iajsKKwlibyA9IGdlbV90b19j aXJydXNfYm8ob2JqKTsKKworCWNpcnJ1c19ib191bnBpbihibyk7Cit9CisKK3N0YXRpYyBpbnQg Y2lycnVzX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkg ICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQoreworCXN0cnVjdCBjaXJydXNfZGV2 aWNlICpjZGV2ID0gcGxhbmUtPmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBzdGF0ZS0+ZmI7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmNy dGMgPyBzdGF0ZS0+Y3J0YyA6IHBsYW5lLT5jcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX3JlY3QgY2xpcCA9IHsgMCB9OworCWludCByZXQ7CisK KwlpZiAoIWNydGMgfHwgIWZiKQorCQlyZXR1cm4gMDsKKworCWlmICghY2lycnVzX2NoZWNrX2Zy YW1lYnVmZmVyKGNkZXYsIGZiLT53aWR0aCwgZmItPmhlaWdodCwKKwkJCQkgICAgICBmYi0+Zm9y bWF0LT5jcHBbMF0sIGZiLT5waXRjaGVzWzBdKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZShzdGF0ZS0+c3RhdGUs IGNydGMpOworCWlmICghY3J0Y19zdGF0ZSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljbGlwLngy ID0gY3J0Y19zdGF0ZS0+YWRqdXN0ZWRfbW9kZS5oZGlzcGxheTsKKwljbGlwLnkyID0gY3J0Y19z dGF0ZS0+YWRqdXN0ZWRfbW9kZS52ZGlzcGxheTsKKworCXJldCA9IGRybV9wbGFuZV9oZWxwZXJf Y2hlY2tfc3RhdGUoc3RhdGUsICZjbGlwLAorCQkJCQkgICBEUk1fUExBTkVfSEVMUEVSX05PX1ND QUxJTkcsCisJCQkJCSAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKKwkJCQkJICAgZmFs c2UsIHRydWUpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKwor c3RhdGljIHZvaWQgY2lycnVzX3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAorCQkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpCit7CisJcmV0 dXJuOworfQorCitzdGF0aWMgdm9pZCBjaXJydXNfc2V0X2ZyYW1lYnVmZmVyX3JlZ3Moc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUpCit7CisJc3RydWN0IGNpcnJ1c19kZXZpY2UgKmNkZXYgPSBwbGFu ZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l LT5zdGF0ZS0+ZmI7CisJaW50IHNyMDcgPSAwLCBoZHIgPSAwLCB0bXA7CisKKwlXUkVHOChTRVFf SU5ERVgsIDB4Nyk7CisJc3IwNyA9IFJSRUc4KFNFUV9EQVRBKTsKKwlzcjA3ICY9IDB4ZTA7CisJ c3dpdGNoIChmYi0+Zm9ybWF0LT5jcHBbMF0gKiA4KSB7CisJY2FzZSA4OgorCQlzcjA3IHw9IDB4 MTE7CisJCWJyZWFrOworCWNhc2UgMTY6CisJCXNyMDcgfD0gMHgxNzsKKwkJaGRyID0gMHhjMTsK KwkJYnJlYWs7CisJY2FzZSAyNDoKKwkJc3IwNyB8PSAweDE1OworCQloZHIgPSAweGM1OworCQli cmVhazsKKwljYXNlIDMyOgorCQlzcjA3IHw9IDB4MTk7CisJCWhkciA9IDB4YzU7CisJCWJyZWFr OworCWRlZmF1bHQ6CisJCS8qIFNob3VsZCBuZXZlciByZWFjaCBoZXJlLiAqLworCQlicmVhazsK Kwl9CisKKwlXUkVHX1NFUSgweDcsIHNyMDcpOworCisJLyogUHJvZ3JhbSB0aGUgcGl0Y2ggKi8K Kwl0bXAgPSBmYi0+cGl0Y2hlc1swXSAvIDg7CisJV1JFR19DUlQoVkdBX0NSVENfT0ZGU0VULCB0 bXApOworCisJLyogRW5hYmxlIGV4dGVuZGVkIGJsYW5raW5nIGFuZCBwaXRjaCBiaXRzLCBhbmQg ZW5hYmxlIGZ1bGwgbWVtb3J5ICovCisJdG1wID0gMHgyMjsKKwl0bXAgfD0gKGZiLT5waXRjaGVz WzBdID4+IDcpICYgMHgxMDsKKwl0bXAgfD0gKGZiLT5waXRjaGVzWzBdID4+IDYpICYgMHg0MDsK KwlXUkVHX0NSVCgweDFiLCB0bXApOworCisJV1JFR19IRFIoaGRyKTsKK30KKworc3RhdGljIHZv aWQgY2lycnVzX3NldF9zdGFydF9hZGRyZXNzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWdu ZWQgb2Zmc2V0KQoreworCXN0cnVjdCBjaXJydXNfZGV2aWNlICpjZGV2ID0gY3J0Yy0+ZGV2LT5k ZXZfcHJpdmF0ZTsKKwl1MzIgYWRkcjsKKwl1OCB0bXA7CisKKwlhZGRyID0gb2Zmc2V0ID4+IDI7 CisJV1JFR19DUlQoMHgwYywgKHU4KSgoYWRkciA+PiA4KSAmIDB4ZmYpKTsKKwlXUkVHX0NSVCgw eDBkLCAodTgpKGFkZHIgJiAweGZmKSk7CisKKwlXUkVHOChDUlRfSU5ERVgsIDB4MWIpOworCXRt cCA9IFJSRUc4KENSVF9EQVRBKTsKKwl0bXAgJj0gMHhmMjsKKwl0bXAgfD0gKGFkZHIgPj4gMTYp ICYgMHgwMTsKKwl0bXAgfD0gKGFkZHIgPj4gMTUpICYgMHgwYzsKKwlXUkVHX0NSVCgweDFiLCB0 bXApOworCVdSRUc4KENSVF9JTkRFWCwgMHgxZCk7CisJdG1wID0gUlJFRzgoQ1JUX0RBVEEpOwor CXRtcCAmPSAweDdmOworCXRtcCB8PSAoYWRkciA+PiAxMikgJiAweDgwOworCVdSRUdfQ1JUKDB4 MWQsIHRtcCk7Cit9CisKK3N0YXRpYyB2b2lkIGNpcnJ1c19wbGFuZV9hdG9taWNfdXBkYXRlKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpvbGRfc3RhdGUpCit7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBwbGFuZS0+ c3RhdGU7CisJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmo7CisJc3RydWN0IGNpcnJ1c19ibyAq Ym87CisKKwljaXJydXNfc2V0X2ZyYW1lYnVmZmVyX3JlZ3MocGxhbmUpOworCisJb2JqID0gdG9f Y2lycnVzX2ZyYW1lYnVmZmVyKHN0YXRlLT5mYiktPm9iajsKKwlibyA9IGdlbV90b19jaXJydXNf Ym8ob2JqKTsKKwljaXJydXNfc2V0X3N0YXJ0X2FkZHJlc3Moc3RhdGUtPmNydGMsICh1MzIpYm8t PmdwdV9hZGRyKTsKKworCS8qIFVuYmxhbmsgKG5lZWRlZCBvbiBTMyByZXN1bWUsIHZnYWJpb3Mg ZG9lc24ndCBkbyBpdCB0aGVuKSAqLworCW91dGIoMHgyMCwgMHgzYzApOworfQorCisKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBjaXJydXNfcGxhbmVfaGVscGVy X2Z1bmNzID0geworCS5wcmVwYXJlX2ZiID0gY2lycnVzX3BsYW5lX3ByZXBhcmVfZmIsCisJLmNs ZWFudXBfZmIgPSBjaXJydXNfcGxhbmVfY2xlYW51cF9mYiwKKwkuYXRvbWljX2NoZWNrID0gY2ly cnVzX3BsYW5lX2F0b21pY19jaGVjaywKKwkuYXRvbWljX2Rpc2FibGUgPSBjaXJydXNfcGxhbmVf YXRvbWljX2Rpc2FibGUsCisJLmF0b21pY191cGRhdGUgPSBjaXJydXNfcGxhbmVfYXRvbWljX3Vw ZGF0ZSwKIH07CiAKIC8qIENSVEMgc2V0dXAgKi8KQEAgLTUwOSw2ICs2MDAsOSBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgY2lycnVzX3ZnYV9jb25uZWN0b3JfZnVu Y3MgPSB7CiAJLmRwbXMgPSBkcm1faGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAogCS5maWxsX21vZGVz ID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzLAogCS5kZXN0cm95ID0g Y2lycnVzX2Nvbm5lY3Rvcl9kZXN0cm95LAorCS5yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Nv bm5lY3Rvcl9yZXNldCwKKwkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCisJLmF0b21pY19kZXN0cm95X3N0YXRlID0g ZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCiB9OwogCiBzdGF0aWMg c3RydWN0IGRybV9jb25uZWN0b3IgKmNpcnJ1c192Z2FfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQpAQCAtNTY1LDYgKzY1OSw4IEBAIGludCBjaXJydXNfbW9kZXNldF9pbml0KHN0cnVjdCBj aXJydXNfZGV2aWNlICpjZGV2KQogCiAJZHJtX21vZGVfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVy KGNvbm5lY3RvciwgZW5jb2Rlcik7CiAKKwlkcm1fbW9kZV9jb25maWdfcmVzZXQoY2Rldi0+ZGV2 KTsKKwogCXJldCA9IGNpcnJ1c19mYmRldl9pbml0KGNkZXYpOwogCWlmIChyZXQpIHsKIAkJRFJN X0VSUk9SKCJjaXJydXNfZmJkZXZfaW5pdCBmYWlsZWRcbiIpOwotLSAKMi4xMy4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK