From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 09/18] drm/i915: Convert suspend/resume to atomic. Date: Thu, 2 Jul 2015 16:36:53 +0200 Message-ID: <1435847822-5318-10-git-send-email-maarten.lankhorst@linux.intel.com> References: <1435847822-5318-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id B75216EC9F for ; Thu, 2 Jul 2015 07:37:25 -0700 (PDT) In-Reply-To: <1435847822-5318-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SW5zdGVhZCBvZiBhbGwgdGhlIGFkLWhvYyB1cGRhdGluZywgZHVwbGljYXRlIHRoZSBvbGQgc3Rh dGUgZmlyc3QgYmVmb3JlCnJlYWRpbmcgb3V0IHRoZSBodyBzdGF0ZSwgdGhlbiByZXN0b3JlIGl0 LgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAg fCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgMyArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTUzICsrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAg ICAgfCAgMTIgLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgICAgfCAgIDIg Ky0KIDUgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgOTYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggZTQ0ZGMwZDY2NTZmLi5kYjQ4YWVlN2YxNDAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNzQxLDcgKzc0MSw3IEBAIHN0YXRpYyBpbnQgaTkx NV9kcm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJc3Bpbl91bmxvY2tfaXJxKCZk ZXZfcHJpdi0+aXJxX2xvY2spOwogCiAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKLQlpbnRl bF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldiwgdHJ1ZSk7CisJaW50ZWxfZGlzcGxheV9yZXN1 bWUoZGV2KTsKIAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CiAKIAlpbnRlbF9kcF9tc3Rf cmVzdW1lKGRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA2YWE4MDgzYmJkYjYuLmQ3 Y2QwNWEwYWJjZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0zMjY4LDggKzMyNjgsNyBA QCBleHRlcm4gdm9pZCBpbnRlbF9tb2Rlc2V0X2dlbV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOwogZXh0ZXJuIHZvaWQgaW50ZWxfbW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwogZXh0ZXJuIHZvaWQgaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqKTsKIGV4dGVybiBpbnQgaW50ZWxfbW9kZXNldF92Z2Ffc2V0X3N0YXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgc3RhdGUpOwotZXh0ZXJuIHZvaWQgaW50ZWxf bW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJCQkgYm9v bCBmb3JjZV9yZXN0b3JlKTsKK2V4dGVybiB2b2lkIGludGVsX2Rpc3BsYXlfcmVzdW1lKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2Vy X29uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogZXh0ZXJuIGJvb2wgaXJvbmxha2Vfc2V0X2Ry cHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTggdmFsKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCA2OWFhZmFhOGVkNzMuLjY0NWZhY2VmNDM1YSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTEwLDYgKzExMCw3IEBAIHN0YXRpYyB2b2lkIHNr bF9pbml0X3NjYWxlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2NydGMg KmludGVsX2NyCiBzdGF0aWMgaW50IGk5eHhfZ2V0X3JlZmNsayhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgIGludCBudW1fY29ubmVjdG9ycyk7CiBzdGF0 aWMgdm9pZCBpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7 CitzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpOwogCiBzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2ZpbmRfZW5j b2RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIGludCBwaXBlKQogewpAQCAt MzI0Nyw3ICszMjQ4LDcgQEAgdm9pZCBpbnRlbF9maW5pc2hfcmVzZXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXYpOwogCXNwaW5f dW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKIAotCWludGVsX21vZGVzZXRfc2V0dXBf aHdfc3RhdGUoZGV2LCB0cnVlKTsKKwlpbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYpOwogCiAJaW50 ZWxfaHBkX2luaXQoZGV2X3ByaXYpOwogCkBAIC0xMDI0Nyw3ICsxMDI0OCw3IEBAIGJvb2wgaW50 ZWxfZ2V0X2xvYWRfZGV0ZWN0X3BpcGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK IHJldHJ5OgogCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNvbmZpZy0+Y29ubmVjdGlvbl9tdXRl eCwgY3R4KTsKIAlpZiAocmV0KQotCQlnb3RvIGZhaWxfdW5sb2NrOworCQlnb3RvIGZhaWw7CiAK IAkvKgogCSAqIEFsZ29yaXRobSBnZXRzIGEgbGl0dGxlIG1lc3N5OgpAQCAtMTAyNjUsMTAgKzEw MjY2LDEwIEBAIHJldHJ5OgogCiAJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4 LCBjdHgpOwogCQlpZiAocmV0KQotCQkJZ290byBmYWlsX3VubG9jazsKKwkJCWdvdG8gZmFpbDsK IAkJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+cHJpbWFyeS0+bXV0ZXgsIGN0eCk7CiAJ CWlmIChyZXQpCi0JCQlnb3RvIGZhaWxfdW5sb2NrOworCQkJZ290byBmYWlsOwogCiAJCW9sZC0+ ZHBtc19tb2RlID0gY29ubmVjdG9yLT5kcG1zOwogCQlvbGQtPmxvYWRfZGV0ZWN0X3RlbXAgPSBm YWxzZTsKQEAgLTEwMjg3LDkgKzEwMjg4LDYgQEAgcmV0cnk6CiAJCQljb250aW51ZTsKIAkJaWYg KHBvc3NpYmxlX2NydGMtPnN0YXRlLT5lbmFibGUpCiAJCQljb250aW51ZTsKLQkJLyogVGhpcyBj YW4gb2NjdXIgd2hlbiBhcHBseWluZyB0aGUgcGlwZSBBIHF1aXJrIG9uIHJlc3VtZS4gKi8KLQkJ aWYgKHRvX2ludGVsX2NydGMocG9zc2libGVfY3J0YyktPm5ld19lbmFibGVkKQotCQkJY29udGlu dWU7CiAKIAkJY3J0YyA9IHBvc3NpYmxlX2NydGM7CiAJCWJyZWFrOwpAQCAtMTAzMDAsMjAgKzEw Mjk4LDE3IEBAIHJldHJ5OgogCSAqLwogCWlmICghY3J0YykgewogCQlEUk1fREVCVUdfS01TKCJu byBwaXBlIGF2YWlsYWJsZSBmb3IgbG9hZC1kZXRlY3RcbiIpOwotCQlnb3RvIGZhaWxfdW5sb2Nr OworCQlnb3RvIGZhaWw7CiAJfQogCiAJcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+bXV0 ZXgsIGN0eCk7CiAJaWYgKHJldCkKLQkJZ290byBmYWlsX3VubG9jazsKKwkJZ290byBmYWlsOwog CXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPnByaW1hcnktPm11dGV4LCBjdHgpOwogCWlm IChyZXQpCi0JCWdvdG8gZmFpbF91bmxvY2s7Ci0JaW50ZWxfZW5jb2Rlci0+bmV3X2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwotCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpLT5uZXdf ZW5jb2RlciA9IGludGVsX2VuY29kZXI7CisJCWdvdG8gZmFpbDsKIAogCWludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwotCWludGVsX2NydGMtPm5ld19lbmFibGVkID0gdHJ1ZTsKIAlv bGQtPmRwbXNfbW9kZSA9IGNvbm5lY3Rvci0+ZHBtczsKIAlvbGQtPmxvYWRfZGV0ZWN0X3RlbXAg PSB0cnVlOwogCW9sZC0+cmVsZWFzZV9mYiA9IE5VTEw7CkBAIC0xMDM4MSw5ICsxMDM3Niw3IEBA IHJldHJ5OgogCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIGludGVsX2NydGMtPnBpcGUpOwog CXJldHVybiB0cnVlOwogCi0gZmFpbDoKLQlpbnRlbF9jcnRjLT5uZXdfZW5hYmxlZCA9IGNydGMt PnN0YXRlLT5lbmFibGU7Ci1mYWlsX3VubG9jazoKK2ZhaWw6CiAJZHJtX2F0b21pY19zdGF0ZV9m cmVlKHN0YXRlKTsKIAlzdGF0ZSA9IE5VTEw7CiAKQEAgLTEwNDI5LDEwICsxMDQyMiw2IEBAIHZv aWQgaW50ZWxfcmVsZWFzZV9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCiAJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpCiAJCQlnb3RvIGZhaWw7CiAKLQkJ dG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvciktPm5ld19lbmNvZGVyID0gTlVMTDsKLQkJaW50 ZWxfZW5jb2Rlci0+bmV3X2NydGMgPSBOVUxMOwotCQlpbnRlbF9jcnRjLT5uZXdfZW5hYmxlZCA9 IGZhbHNlOwotCiAJCWNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVyID0gTlVMTDsKIAkJY29u bmVjdG9yX3N0YXRlLT5jcnRjID0gTlVMTDsKIApAQCAtMTE4MzUsMzcgKzExODI0LDYgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgaW50ZWxfaGVscGVyX2Z1bmNz ID0gewogCS5hdG9taWNfY2hlY2sgPSBpbnRlbF9jcnRjX2F0b21pY19jaGVjaywKIH07CiAKLS8q KgotICogaW50ZWxfbW9kZXNldF91cGRhdGVfc3RhZ2VkX291dHB1dF9zdGF0ZQotICoKLSAqIFVw ZGF0ZXMgdGhlIHN0YWdlZCBvdXRwdXQgY29uZmlndXJhdGlvbiBzdGF0ZSwgZS5nLiBhZnRlciB3 ZSd2ZSByZWFkIG91dCB0aGUKLSAqIGN1cnJlbnQgaHcgc3RhdGUuCi0gKi8KLXN0YXRpYyB2b2lk IGludGVsX21vZGVzZXRfdXBkYXRlX3N0YWdlZF9vdXRwdXRfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKLXsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKLQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcjsKLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Ci0KLQlm b3JfZWFjaF9pbnRlbF9jb25uZWN0b3IoZGV2LCBjb25uZWN0b3IpIHsKLQkJY29ubmVjdG9yLT5u ZXdfZW5jb2RlciA9Ci0JCQl0b19pbnRlbF9lbmNvZGVyKGNvbm5lY3Rvci0+YmFzZS5lbmNvZGVy KTsKLQl9Ci0KLQlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRldiwgZW5jb2RlcikgewotCQllbmNv ZGVyLT5uZXdfY3J0YyA9Ci0JCQl0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Ci0J fQotCi0JZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpIHsKLQkJY3J0Yy0+bmV3X2VuYWJs ZWQgPSBjcnRjLT5iYXNlLnN0YXRlLT5lbmFibGU7Ci0JfQotfQotCi0vKiBUcmFuc2l0aW9uYWwg aGVscGVyIHRvIGNvcHkgY3VycmVudCBjb25uZWN0b3IvZW5jb2RlciBzdGF0ZSB0bwotICogY29u bmVjdG9yLT5zdGF0ZS4gVGhpcyBpcyBuZWVkZWQgc28gdGhhdCBjb2RlIHRoYXQgaXMgcGFydGlh bGx5Ci0gKiBjb252ZXJ0ZWQgdG8gYXRvbWljIGRvZXMgdGhlIHJpZ2h0IHRoaW5nLgotICovCiBz dGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3VwZGF0ZV9jb25uZWN0b3JfYXRvbWljX3N0YXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yOwpAQCAtMTIzMDUsNyArMTIyNjMsNiBAQCBpbnRlbF9tb2Rlc2V0X3VwZGF0ZV9zdGF0ZShz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJfQogCiAJZHJtX2F0b21pY19oZWxwZXJf dXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKHN0YXRlLT5kZXYsIHN0YXRlKTsKLQlpbnRlbF9t b2Rlc2V0X3VwZGF0ZV9zdGFnZWRfb3V0cHV0X3N0YXRlKHN0YXRlLT5kZXYpOwogCiAJLyogRG91 YmxlIGNoZWNrIHN0YXRlLiAqLwogCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7CkBAIC0xMjY5 NiwxMSArMTI2NTMsMTQgQEAgY2hlY2tfY29ubmVjdG9yX3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCiAJZm9yX2VhY2hf aW50ZWxfY29ubmVjdG9yKGRldiwgY29ubmVjdG9yKSB7CisJCXN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciA9IGNvbm5lY3Rvci0+YmFzZS5lbmNvZGVyOworCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqc3RhdGUgPSBjb25uZWN0b3ItPmJhc2Uuc3RhdGU7CisKIAkJLyogVGhpcyBhbHNv IGNoZWNrcyB0aGUgZW5jb2Rlci9jb25uZWN0b3IgaHcgc3RhdGUgd2l0aCB0aGUKIAkJICogLT5n ZXRfaHdfc3RhdGUgY2FsbGJhY2tzLiAqLwogCQlpbnRlbF9jb25uZWN0b3JfY2hlY2tfc3RhdGUo Y29ubmVjdG9yKTsKIAotCQlJOTE1X1NUQVRFX1dBUk4oJmNvbm5lY3Rvci0+bmV3X2VuY29kZXIt PmJhc2UgIT0gY29ubmVjdG9yLT5iYXNlLmVuY29kZXIsCisJCUk5MTVfU1RBVEVfV0FSTihzdGF0 ZS0+YmVzdF9lbmNvZGVyICE9IGVuY29kZXIsCiAJCSAgICAgImNvbm5lY3RvcidzIHN0YWdlZCBl bmNvZGVyIGRvZXNuJ3QgbWF0Y2ggY3VycmVudCBlbmNvZGVyXG4iKTsKIAl9CiB9CkBAIC0xMjcy MCw4ICsxMjY4MCw2IEBAIGNoZWNrX2VuY29kZXJfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKIAkJCSAgICAgIGVuY29kZXItPmJhc2UuYmFzZS5pZCwKIAkJCSAgICAgIGVuY29kZXItPmJh c2UubmFtZSk7CiAKLQkJSTkxNV9TVEFURV9XQVJOKCZlbmNvZGVyLT5uZXdfY3J0Yy0+YmFzZSAh PSBlbmNvZGVyLT5iYXNlLmNydGMsCi0JCSAgICAgImVuY29kZXIncyBzdGFnZSBjcnRjIGRvZXNu J3QgbWF0Y2ggY3VycmVudCBjcnRjXG4iKTsKIAkJSTkxNV9TVEFURV9XQVJOKGVuY29kZXItPmNv bm5lY3RvcnNfYWN0aXZlICYmICFlbmNvZGVyLT5iYXNlLmNydGMsCiAJCSAgICAgImVuY29kZXIn cyBhY3RpdmVfY29ubmVjdG9ycyBzZXQsIGJ1dCBubyBjcnRjXG4iKTsKIApAQCAtMTI3MzEsNiAr MTI2ODksMTAgQEAgY2hlY2tfZW5jb2Rlcl9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQkJZW5hYmxlZCA9IHRydWU7CiAJCQlpZiAoY29ubmVjdG9yLT5iYXNlLmRwbXMgIT0gRFJNX01P REVfRFBNU19PRkYpCiAJCQkJYWN0aXZlID0gdHJ1ZTsKKworCQkJSTkxNV9TVEFURV9XQVJOKGNv bm5lY3Rvci0+YmFzZS5zdGF0ZS0+Y3J0YyAhPQorCQkJCQllbmNvZGVyLT5iYXNlLmNydGMsCisJ CQkgICAgICJlbmNvZGVyJ3Mgc3RhZ2UgY3J0YyBkb2Vzbid0IG1hdGNoIGN1cnJlbnQgY3J0Y1xu Iik7CiAJCX0KIAkJLyoKIAkJICogZm9yIE1TVCBjb25uZWN0b3JzIGlmIHdlIHVucGx1ZyB0aGUg Y29ubmVjdG9yIGlzIGdvbmUKQEAgLTEzMjkyLDExICsxMzI1NCwxMiBAQCB2b2lkIGludGVsX2Ny dGNfcmVzdG9yZV9tb2RlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAkgKiBuZWVkIHRvIGNvcHkg dGhlIHN0YWdlZCBjb25maWcgdG8gdGhlIGF0b21pYyBzdGF0ZSwgb3RoZXJ3aXNlIHRoZQogCSAq IG1vZGUgc2V0IHdpbGwganVzdCByZWFwcGx5IHRoZSBzdGF0ZSB0aGUgSFcgaXMgYWxyZWFkeSBp bi4gKi8KIAlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRldiwgZW5jb2RlcikgewotCQlpZiAoJmVu Y29kZXItPm5ld19jcnRjLT5iYXNlICE9IGNydGMpCisJCWlmIChlbmNvZGVyLT5iYXNlLmNydGMg IT0gY3J0YykKIAkJCWNvbnRpbnVlOwogCiAJCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3RvcihkZXYs IGNvbm5lY3RvcikgewotCQkJaWYgKGNvbm5lY3Rvci0+bmV3X2VuY29kZXIgIT0gZW5jb2RlcikK KwkJCWlmIChjb25uZWN0b3ItPmJhc2Uuc3RhdGUtPmJlc3RfZW5jb2RlciAhPQorCQkJICAgICZl bmNvZGVyLT5iYXNlKQogCQkJCWNvbnRpbnVlOwogCiAJCQljb25uZWN0b3Jfc3RhdGUgPSBkcm1f YXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsICZjb25uZWN0b3ItPmJhc2UpOwpAQCAt MTMzMDksNyArMTMyNzIsNiBAQCB2b2lkIGludGVsX2NydGNfcmVzdG9yZV9tb2RlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIAkJCX0KIAogCQkJY29ubmVjdG9yX3N0YXRlLT5jcnRjID0gY3J0YzsK LQkJCWNvbm5lY3Rvcl9zdGF0ZS0+YmVzdF9lbmNvZGVyID0gJmVuY29kZXItPmJhc2U7CiAJCX0K IAl9CiAKQEAgLTEzMzIxLDkgKzEzMjgzLDYgQEAgdm9pZCBpbnRlbF9jcnRjX3Jlc3RvcmVfbW9k ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCXJldHVybjsKIAl9CiAKLQljcnRjX3N0YXRlLT5i YXNlLmFjdGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlID0KLQkJdG9faW50ZWxfY3J0Yyhj cnRjKS0+bmV3X2VuYWJsZWQ7Ci0KIAlkcm1fbW9kZV9jb3B5KCZjcnRjX3N0YXRlLT5iYXNlLm1v ZGUsICZjcnRjLT5tb2RlKTsKIAogCWludGVsX21vZGVzZXRfc2V0dXBfcGxhbmVfc3RhdGUoc3Rh dGUsIGNydGMsICZjcnRjLT5tb2RlLApAQCAtMTUxMjIsNyArMTUwODEsNyBAQCB2b2lkIGludGVs X21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWludGVsX2ZiY19kaXNhYmxl KGRldik7CiAKIAlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwotCWludGVsX21vZGVzZXRfc2V0 dXBfaHdfc3RhdGUoZGV2LCBmYWxzZSk7CisJaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShk ZXYpOwogCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIAogCWZvcl9lYWNoX2ludGVsX2Ny dGMoZGV2LCBjcnRjKSB7CkBAIC0xNTUwOCwxMCArMTU0NjcsMTEgQEAgc3RhdGljIHZvaWQgaW50 ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQog fQogCi0vKiBTY2FuIG91dCB0aGUgY3VycmVudCBodyBtb2Rlc2V0IHN0YXRlLCBzYW5pdGl6ZXMg aXQgYW5kIG1hcHMgaXQgaW50byB0aGUgZHJtCi0gKiBhbmQgaTkxNSBzdGF0ZSB0cmFja2luZyBz dHJ1Y3R1cmVzLiAqLwotdm9pZCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCi0JCQkJICBib29sIGZvcmNlX3Jlc3RvcmUpCisvKiBTY2FuIG91dCB0 aGUgY3VycmVudCBodyBtb2Rlc2V0IHN0YXRlLAorICogYW5kIHNhbml0aXplcyBpdCB0byB0aGUg Y3VycmVudCBzdGF0ZQorICovCitzdGF0aWMgdm9pZAoraW50ZWxfbW9kZXNldF9zZXR1cF9od19z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJZW51bSBwaXBlIHBpcGU7CkBAIC0xNTU1 MywyNSArMTU1MTMsNTggQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJCXNrbF93bV9nZXRfaHdfc3RhdGUoZGV2KTsKIAllbHNlIGlm IChIQVNfUENIX1NQTElUKGRldikpCiAJCWlsa193bV9nZXRfaHdfc3RhdGUoZGV2KTsKK30KIAot CWlmIChmb3JjZV9yZXN0b3JlKSB7Ci0JCWk5MTVfcmVkaXNhYmxlX3ZnYShkZXYpOwordm9pZCBp bnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKKwlz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uOworCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7 CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCWludCByZXQ7CiAKLQkJLyoKLQkJICogV2UgbmVl ZCB0byB1c2UgcmF3IGludGVyZmFjZXMgZm9yIHJlc3RvcmluZyBzdGF0ZSB0byBhdm9pZAotCQkg KiBjaGVja2luZyAoYm9ndXMpIGludGVybWVkaWF0ZSBzdGF0ZXMuCi0JCSAqLwotCQlmb3JfZWFj aF9waXBlKGRldl9wcml2LCBwaXBlKSB7Ci0JCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPQotCQkJ CWRldl9wcml2LT5waXBlX3RvX2NydGNfbWFwcGluZ1twaXBlXTsKKwlpZiAoIXN0YXRlKQorCQly ZXR1cm47CiAKLQkJCWludGVsX2NydGNfcmVzdG9yZV9tb2RlKGNydGMpOwotCQl9Ci0JfSBlbHNl IHsKLQkJaW50ZWxfbW9kZXNldF91cGRhdGVfc3RhZ2VkX291dHB1dF9zdGF0ZShkZXYpOworCXN0 YXRlLT5hY3F1aXJlX2N0eCA9IGRldi0+bW9kZV9jb25maWcuYWNxdWlyZV9jdHg7CisKKwkvKiBw cmVzZXJ2ZSBjb21wbGV0ZSBvbGQgc3RhdGUsIGluY2x1ZGluZyBkcGxsICovCisJaW50ZWxfYXRv bWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShzdGF0ZSk7CisKKwlmb3JfZWFjaF9jcnRjKGRldiwg Y3J0YykgeworCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQorCQkJZHJtX2F0 b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CisKKwkJcmV0ID0gUFRSX0VSUl9PUl9a RVJPKGNydGNfc3RhdGUpOworCQlpZiAocmV0KQorCQkJZ290byBlcnI7CisKKwkJLyogZm9yY2Ug YSByZXN0b3JlICovCisJCWNydGNfc3RhdGUtPm1vZGVfY2hhbmdlZCA9IHRydWU7CisJfQorCisJ Zm9yX2VhY2hfaW50ZWxfcGxhbmUoZGV2LCBwbGFuZSkgeworCQlyZXQgPSBQVFJfRVJSX09SX1pF Uk8oZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsICZwbGFuZS0+YmFzZSkpOworCQlp ZiAocmV0KQorCQkJZ290byBlcnI7CisJfQorCisJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRl diwgY29ubikgeworCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0b21pY19nZXRfY29ubmVj dG9yX3N0YXRlKHN0YXRlLCAmY29ubi0+YmFzZSkpOworCQlpZiAocmV0KQorCQkJZ290byBlcnI7 CiAJfQogCi0JaW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShkZXYpOworCWludGVsX21vZGVzZXRf c2V0dXBfaHdfc3RhdGUoZGV2KTsKKworCWk5MTVfcmVkaXNhYmxlX3ZnYShkZXYpOworCXJldCA9 IGludGVsX3NldF9tb2RlKHN0YXRlKTsKKwlpZiAoIXJldCkKKwkJcmV0dXJuOworCitlcnI6CisJ RFJNX0VSUk9SKCJSZXN0b3Jpbmcgb2xkIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4iLCByZXQpOwor CWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CiB9CiAKIHZvaWQgaW50ZWxfbW9kZXNldF9n ZW1faW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApp bmRleCA4OTg2MWZiZjAzMWUuLjU0OWZjNDMzM2Q4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKQEAgLTEzMCwxMSArMTMwLDYgQEAgc3RydWN0IGludGVsX2ZiZGV2IHsKIAogc3RydWN0IGlu dGVsX2VuY29kZXIgewogCXN0cnVjdCBkcm1fZW5jb2RlciBiYXNlOwotCS8qCi0JICogVGhlIG5l dyBjcnRjIHRoaXMgZW5jb2RlciB3aWxsIGJlIGRyaXZlbiBmcm9tLiBPbmx5IGRpZmZlcnMgZnJv bQotCSAqIGJhc2UtPmNydGMgd2hpbGUgYSBtb2Rlc2V0IGlzIGluIHByb2dyZXNzLgotCSAqLwot CXN0cnVjdCBpbnRlbF9jcnRjICpuZXdfY3J0YzsKIAogCWVudW0gaW50ZWxfb3V0cHV0X3R5cGUg dHlwZTsKIAl1bnNpZ25lZCBpbnQgY2xvbmVhYmxlOwpAQCAtMTk1LDEyICsxOTAsNiBAQCBzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yIHsKIAkgKi8KIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cjsKIAotCS8qCi0JICogVGhlIG5ldyBlbmNvZGVyIHRoaXMgY29ubmVjdG9yIHdpbGwgYmUgZHJp dmVuLiBPbmx5IGRpZmZlcnMgZnJvbQotCSAqIGVuY29kZXIgd2hpbGUgYSBtb2Rlc2V0IGlzIGlu IHByb2dyZXNzLgotCSAqLwotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpuZXdfZW5jb2RlcjsKLQog CS8qIFJlYWRzIG91dCB0aGUgY3VycmVudCBodywgcmV0dXJuaW5nIHRydWUgaWYgdGhlIGNvbm5l Y3RvciBpcyBlbmFibGVkCiAJICogYW5kIGFjdGl2ZSAoaS5lLiBkcG1zIE9OIHN0YXRlKS4gKi8K IAlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICopOwpAQCAtNTUw LDcgKzUzOSw2IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsKIAl1aW50MzJfdCBjdXJzb3JfYmFzZTsK IAogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWc7Ci0JYm9vbCBuZXdfZW5hYmxlZDsK IAogCS8qIHJlc2V0IGNvdW50ZXIgdmFsdWUgd2hlbiB0aGUgbGFzdCBmbGlwIHdhcyBzdWJtaXR0 ZWQgKi8KIAl1bnNpZ25lZCBpbnQgcmVzZXRfY291bnRlcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2 ZHMuYwppbmRleCBlYTg1NTQ3NjExYTUuLmE2M2QxODY4MDYyMyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2x2ZHMuYwpAQCAtNDUyLDcgKzQ1Miw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbGlkX25vdGlm eShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIHZhbCwKIAkgKi8KIAlp ZiAoIUhBU19QQ0hfU1BMSVQoZGV2KSkgewogCQlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwot CQlpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldiwgdHJ1ZSk7CisJCWludGVsX2Rpc3Bs YXlfcmVzdW1lKGRldik7CiAJCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIAl9CiAKLS0g CjIuMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=