From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 1/3] drm/i915: Convert intel_tv connector properties to atomic, v3. Date: Wed, 15 Mar 2017 11:08:56 +0100 Message-ID: <21a8348b-aca9-3c19-3a3d-9ed766053eb9@linux.intel.com> References: <1489064777-5460-1-git-send-email-maarten.lankhorst@linux.intel.com> <1489064777-5460-2-git-send-email-maarten.lankhorst@linux.intel.com> <20170309173602.GU31595@intel.com> <20170313092905.GZ31595@intel.com> <20170313105531.GH31595@intel.com> <55c80a55-c155-afa8-f244-20d1c4775231@linux.intel.com> <20170314183625.GQ31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 727346E867 for ; Wed, 15 Mar 2017 10:08:58 +0000 (UTC) In-Reply-To: <20170314183625.GQ31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QXMgYSBwcm9vZiBvZiBjb25jZXB0LCBmaXJzdCB0cnkgdG8gY29udmVydCBpbnRlbF90diwgd2hp Y2ggaXMgYSByYXJlbHkKdXNlZCBjb25uZWN0b3IuIEl0IGhhcyA1IHByb3BlcnRpZXMsIHR2IGZv cm1hdCBhbmQgNCBtYXJnaW5zLgoKSSdtIGxlc3MgY2VydGFpbiBhYm91dCB0aGUgc3RhdGUgYmVo YXZpb3IgaXRzZWxmLCBzaG91bGQgd2UgcGFzcyBhIHNpemUKcGFyYW1ldGVyIHRvIGludGVsX2Nv bm5lY3Rvcl9hbGxvYyBpbnN0ZWFkLCBzbyBkdXBsaWNhdGVfc3RhdGUKY2FuIGJlIGRvbmUgZ2xv YmFsbHkgaWYgaXQgY2FuIGJlIGJsaW5kbHkgY29waWVkPwoKQ2FuIHdlIGFsc28gaGF2ZSBhIGF0 b21pY19jaGVjayBmdW5jdGlvbiBmb3IgY29ubmVjdG9ycywgc28gdGhlCmNydGNfc3RhdGUtPmNv bm5lY3RvcnNfY2hhbmdlZCBjYW4gYmUgc2V0IHRoZXJlPyBJdCB3b3VsZCBiZSBjbGVhbmVyCmFu ZCBtb3JlIGF0b21pYy1saWtlLgoKVG8gbWF0Y2ggdGhlIGxlZ2FjeSBiZWhhdmlvciwgZm9ybWF0 IGNhbiBiZSBjaGFuZ2VkIGJ5IHByb2JpbmcganVzdCBsaWtlCmluIGxlZ2FjeSBtb2RlLgoKQ2hh bmdlcyBzaW5jZSB2MToKLSBBZGQgaW50ZWxfZW5jb2Rlci0+c3dhcF9zdGF0ZSB0byBhbGxvdyB1 cGRhdGluZyBjb25uZWN0b3Igc3RhdGUuCi0gQWRkIGludGVsX3R2LT5mb3JtYXQgZm9yIGRldGVj dF9tb2RlIGFuZCBtb2RlX3ZhbGlkLCB1cGRhdGVkIG9uIGF0b21pYyBjb21taXQuCkNoYW5nZXMg c2luY2UgdjI6Ci0gRml4IHR5cG8gaW4gdHZfY2hvb3NlX3ByZWZlcnJlZCBtb2RlcyBmdW5jdGlv biBuYW1lLgotIEFzc2lnbm1lbnQgb2YgdHYgcHJvcGVydGllcyBpcyBkb25lIGluIGNvcmUsIHNv IGludGVsX3R2IG9ubHkgbmVlZHMKICBhIGF0b21pY19jaGVjayBmdW5jdGlvbi4gVGhhbmtzIFZp bGxlIQoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0 QGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgfCAgMTUgKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDQg KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyAgICAgIHwgMjAwICsrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25z KCspLCAxMDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmlu ZGV4IGFjMjVjOWJjOGI4MS4uMThiN2U3NTQ2ZWUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCkBAIC0xMjk1NCw2ICsxMjk1NCwyMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9t aWNfdHJhY2tfZmJzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCQkgIHRvX2lu dGVsX3BsYW5lKHBsYW5lKS0+ZnJvbnRidWZmZXJfYml0KTsKIH0KIAorc3RhdGljIHZvaWQgc3dh cF9jb25uZWN0b3Jfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQoreworCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKm5ld19jb25uX3N0YXRlOworCWludCBpOworCisJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9p bl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7CisK KwkJaWYgKGNvbm4tPnN3YXBfc3RhdGUpCisJCQljb25uLT5zd2FwX3N0YXRlKGNvbm4sIG5ld19j b25uX3N0YXRlKTsKKwl9Cit9CisKIC8qKgogICogaW50ZWxfYXRvbWljX2NvbW1pdCAtIGNvbW1p dCB2YWxpZGF0ZWQgc3RhdGUgb2JqZWN0CiAgKiBAZGV2OiBEUk0gZGV2aWNlCkBAIC0xMzAxMiw2 ICsxMzAyNiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQlkZXZfcHJpdi0+Y2RjbGsubG9naWNhbCA9IGludGVsX3N0YXRlLT5jZGNs ay5sb2dpY2FsOwogCQlkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsID0gaW50ZWxfc3RhdGUtPmNkY2xr LmFjdHVhbDsKIAl9CisJc3dhcF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUpOwogCiAJZHJtX2F0b21p Y19zdGF0ZV9nZXQoc3RhdGUpOwogCUlOSVRfV09SSygmc3RhdGUtPmNvbW1pdF93b3JrLApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA5Mzc2MjNmZjZkN2MuLmI3YjkzNzk5ZDI4OCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTMwNyw2ICszMDcsMTAgQEAgc3RydWN0IGludGVs X2Nvbm5lY3RvciB7CiAJICogYW5kIGFjdGl2ZSAoaS5lLiBkcG1zIE9OIHN0YXRlKS4gKi8KIAli b29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICopOwogCisJLyogVXBk YXRlIGRldmljZSBzdGF0ZSB3aXRoIHRoZSBuZXcgYXRvbWljIHN0YXRlLiAqLworCXZvaWQgKCpz d2FwX3N0YXRlKShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICosCisJCQkgICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICopOworCiAJLyogUGFuZWwgaW5mbyBmb3IgZURQIGFuZCBMVkRTICov CiAJc3RydWN0IGludGVsX3BhbmVsIHBhbmVsOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwppbmRl eCA2ZWQxYTNjZTQ3YjcuLmVlZWQxN2U2NzQxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdHYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCkBA IC00OCw4ICs0OCw2IEBAIHN0cnVjdCBpbnRlbF90diB7CiAJc3RydWN0IGludGVsX2VuY29kZXIg YmFzZTsKIAogCWludCB0eXBlOwotCWNvbnN0IGNoYXIgKnR2X2Zvcm1hdDsKLQlpbnQgbWFyZ2lu WzRdOwogCXUzMiBzYXZlX1RWX0hfQ1RMXzE7CiAJdTMyIHNhdmVfVFZfSF9DVExfMjsKIAl1MzIg c2F2ZV9UVl9IX0NUTF8zOwpAQCAtODMsNiArODEsOCBAQCBzdHJ1Y3QgaW50ZWxfdHYgewogCiAJ dTMyIHNhdmVfVFZfREFDOwogCXUzMiBzYXZlX1RWX0NUTDsKKworCWludCBmb3JtYXQ7CiB9Owog CiBzdHJ1Y3QgdmlkZW9fbGV2ZWxzIHsKQEAgLTg0OCw2ICs4NDgsMTUgQEAgaW50ZWxfdHZfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBlbnVtIHBpcGUgKnBpcGUp CiB9CiAKIHN0YXRpYyB2b2lkCitpbnRlbF90dl9zd2FwX3N0YXRlKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwKKwkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlKQoreworCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRlbF9hdHRhY2hlZF90 digmY29ubmVjdG9yLT5iYXNlKTsKKworCWludGVsX3R2LT5mb3JtYXQgPSBjb25uX3N0YXRlLT50 di5tb2RlOworfQorCitzdGF0aWMgdm9pZAogaW50ZWxfZW5hYmxlX3R2KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcs CiAJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQpAQCAtODczLDMyICs4 ODIsMjUgQEAgaW50ZWxfZGlzYWJsZV90dihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAlJOTE1X1dSSVRFKFRWX0NUTCwgSTkxNV9SRUFEKFRWX0NUTCkgJiB+VFZfRU5DX0VOQUJMRSk7 CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgdHZfbW9kZSAqCi1pbnRlbF90dl9tb2RlX2xvb2t1 cChjb25zdCBjaGFyICp0dl9mb3JtYXQpCitzdGF0aWMgY29uc3Qgc3RydWN0IHR2X21vZGUgKmlu dGVsX3R2X21vZGVfZmluZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK IHsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHR2X21vZGVzKTsgaSsr KSB7Ci0JCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gJnR2X21vZGVzW2ldOworCWlu dCBmb3JtYXQgPSBjb25uX3N0YXRlLT50di5tb2RlOwogCi0JCWlmICghc3RyY21wKHR2X2Zvcm1h dCwgdHZfbW9kZS0+bmFtZSkpCi0JCQlyZXR1cm4gdHZfbW9kZTsKLQl9Ci0JcmV0dXJuIE5VTEw7 CisJcmV0dXJuICZ0dl9tb2Rlc1tmb3JtYXRdOwogfQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IHR2 X21vZGUgKgotaW50ZWxfdHZfbW9kZV9maW5kKHN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYpCitz dGF0aWMgY29uc3Qgc3RydWN0IHR2X21vZGUgKmludGVsX3R2X21vZGVfZmluZF9jb21taXR0ZWQo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlyZXR1cm4gaW50ZWxfdHZfbW9k ZV9sb29rdXAoaW50ZWxfdHYtPnR2X2Zvcm1hdCk7CisJaW50IGZvcm1hdCA9IGludGVsX2F0dGFj aGVkX3R2KGNvbm5lY3RvciktPmZvcm1hdDsKKworCXJldHVybiAmdHZfbW9kZXNbZm9ybWF0XTsK IH0KIAogc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCiBpbnRlbF90dl9tb2RlX3ZhbGlkKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCSAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNo ZWRfdHYoY29ubmVjdG9yKTsKLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVs X3R2X21vZGVfZmluZChpbnRlbF90dik7CisJY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUg PSBpbnRlbF90dl9tb2RlX2ZpbmRfY29tbWl0dGVkKGNvbm5lY3Rvcik7CiAJaW50IG1heF9kb3Rj bGsgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KS0+bWF4X2RvdGNsa19mcmVxOwogCiAJaWYgKG1v ZGUtPmNsb2NrID4gbWF4X2RvdGNsaykKQEAgLTkyNSw4ICs5MjcsNyBAQCBpbnRlbF90dl9jb21w dXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYo ZW5jb2Rlcik7Ci0JY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2Rl X2ZpbmQoaW50ZWxfdHYpOworCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxf dHZfbW9kZV9maW5kKGNvbm5fc3RhdGUpOwogCiAJaWYgKCF0dl9tb2RlKQogCQlyZXR1cm4gZmFs c2U7CkBAIC0xMDMyLDcgKzEwMzMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9wcmVfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwogCXN0 cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYoZW5jb2Rlcik7Ci0JY29uc3Qgc3Ry dWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90dl9tb2RlX2ZpbmQoaW50ZWxfdHYpOworCWNv bnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5fc3Rh dGUpOwogCXUzMiB0dl9jdGw7CiAJdTMyIHNjY3RsMSwgc2NjdGwyLCBzY2N0bDM7CiAJaW50IGks IGo7CkBAIC0xMTM1LDEyICsxMTM2LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX3R2X3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZWxzZQogCQl5c2l6ZSA9IDIqdHZf bW9kZS0+bmJyX2VuZCArIDE7CiAKLQl4cG9zICs9IGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lO X0xFRlRdOwotCXlwb3MgKz0gaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fVE9QXTsKLQl4c2l6 ZSAtPSAoaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF0gKwotCQkgIGludGVsX3R2LT5t YXJnaW5bVFZfTUFSR0lOX1JJR0hUXSk7Ci0JeXNpemUgLT0gKGludGVsX3R2LT5tYXJnaW5bVFZf TUFSR0lOX1RPUF0gKwotCQkgIGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0JPVFRPTV0pOwor CXhwb3MgKz0gY29ubl9zdGF0ZS0+dHYubWFyZ2lucy5sZWZ0OworCXlwb3MgKz0gY29ubl9zdGF0 ZS0+dHYubWFyZ2lucy50b3A7CisJeHNpemUgLT0gKGNvbm5fc3RhdGUtPnR2Lm1hcmdpbnMubGVm dCArCisJCSAgY29ubl9zdGF0ZS0+dHYubWFyZ2lucy5yaWdodCk7CisJeXNpemUgLT0gKGNvbm5f c3RhdGUtPnR2Lm1hcmdpbnMudG9wICsKKwkJICBjb25uX3N0YXRlLT50di5tYXJnaW5zLmJvdHRv bSk7CiAJSTkxNV9XUklURShUVl9XSU5fUE9TLCAoeHBvczw8MTYpfHlwb3MpOwogCUk5MTVfV1JJ VEUoVFZfV0lOX1NJWkUsICh4c2l6ZTw8MTYpfHlzaXplKTsKIApAQCAtMTI4OCw3ICsxMjg5LDcg QEAgaW50ZWxfdHZfZGV0ZWN0X3R5cGUoc3RydWN0IGludGVsX3R2ICppbnRlbF90diwKIHN0YXRp YyB2b2lkIGludGVsX3R2X2ZpbmRfYmV0dGVyX2Zvcm1hdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogewogCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRlbF9hdHRhY2hl ZF90dihjb25uZWN0b3IpOwotCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxf dHZfbW9kZV9maW5kKGludGVsX3R2KTsKKwljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9 IGludGVsX3R2X21vZGVfZmluZChjb25uZWN0b3ItPnN0YXRlKTsKIAlpbnQgaTsKIAogCWlmICgo aW50ZWxfdHYtPnR5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0NvbXBvbmVudCkgPT0KQEAgLTEz MDQsOSArMTMwNSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3R2X2ZpbmRfYmV0dGVyX2Zvcm1hdChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQkJYnJlYWs7CiAJfQogCi0JaW50ZWxf dHYtPnR2X2Zvcm1hdCA9IHR2X21vZGUtPm5hbWU7Ci0JZHJtX29iamVjdF9wcm9wZXJ0eV9zZXRf dmFsdWUoJmNvbm5lY3Rvci0+YmFzZSwKLQkJY29ubmVjdG9yLT5kZXYtPm1vZGVfY29uZmlnLnR2 X21vZGVfcHJvcGVydHksIGkpOworCWNvbm5lY3Rvci0+c3RhdGUtPnR2Lm1vZGUgPSBpOworCWlu dGVsX2F0dGFjaGVkX3R2KGNvbm5lY3RvciktPmZvcm1hdCA9IGk7CiB9CiAKIC8qKgpAQCAtMTM0 NCwxOCArMTM0NCwxNyBAQCBpbnRlbF90dl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwgYm9vbCBmb3JjZSkKIAkJfSBlbHNlCiAJCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3Rh dHVzX3Vua25vd247CiAKKwkJaWYgKHN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3Rl ZCkgeworCQkJaW50ZWxfdHYtPnR5cGUgPSB0eXBlOworCQkJaW50ZWxfdHZfZmluZF9iZXR0ZXJf Zm9ybWF0KGNvbm5lY3Rvcik7CisJCX0KKwogCQlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgp OwogCQlkcm1fbW9kZXNldF9hY3F1aXJlX2ZpbmkoJmN0eCk7Ci0JfSBlbHNlCi0JCXJldHVybiBj b25uZWN0b3ItPnN0YXR1czsKIAotCWlmIChzdGF0dXMgIT0gY29ubmVjdG9yX3N0YXR1c19jb25u ZWN0ZWQpCiAJCXJldHVybiBzdGF0dXM7Ci0KLQlpbnRlbF90di0+dHlwZSA9IHR5cGU7Ci0JaW50 ZWxfdHZfZmluZF9iZXR0ZXJfZm9ybWF0KGNvbm5lY3Rvcik7Ci0KLQlyZXR1cm4gY29ubmVjdG9y X3N0YXR1c19jb25uZWN0ZWQ7CisJfSBlbHNlCisJCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsK IH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBpbnB1dF9yZXMgewpAQCAtMTM3NSwxMiArMTM3NCw5 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5wdXRfcmVzIHsKICAqIENob3NlIHByZWZlcnJlZCBt b2RlICBhY2NvcmRpbmcgdG8gbGluZSBudW1iZXIgb2YgVFYgZm9ybWF0CiAgKi8KIHN0YXRpYyB2 b2lkCi1pbnRlbF90dl9jaG9zZV9wcmVmZXJyZWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwKK2ludGVsX3R2X2Nob29zZV9wcmVmZXJyZWRfbW9kZXMoY29uc3Qgc3RydWN0 IHR2X21vZGUgKnR2X21vZGUsCiAJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGVfcHRyKQogewotCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBpbnRlbF9hdHRhY2hlZF90 dihjb25uZWN0b3IpOwotCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxfdHZf bW9kZV9maW5kKGludGVsX3R2KTsKLQogCWlmICh0dl9tb2RlLT5uYnJfZW5kIDwgNDgwICYmIG1v ZGVfcHRyLT52ZGlzcGxheSA9PSA0ODApCiAJCW1vZGVfcHRyLT50eXBlIHw9IERSTV9NT0RFX1RZ UEVfUFJFRkVSUkVEOwogCWVsc2UgaWYgKHR2X21vZGUtPm5icl9lbmQgPiA0ODApIHsKQEAgLTE0 MDMsOCArMTM5OSw3IEBAIHN0YXRpYyBpbnQKIGludGVsX3R2X2dldF9tb2RlcyhzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl X3B0cjsKLQlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gaW50ZWxfYXR0YWNoZWRfdHYoY29u bmVjdG9yKTsKLQljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVf ZmluZChpbnRlbF90dik7CisJY29uc3Qgc3RydWN0IHR2X21vZGUgKnR2X21vZGUgPSBpbnRlbF90 dl9tb2RlX2ZpbmRfY29tbWl0dGVkKGNvbm5lY3Rvcik7CiAJaW50IGosIGNvdW50ID0gMDsKIAl1 NjQgdG1wOwogCkBAIC0xNDQ3LDcgKzE0NDIsNyBAQCBpbnRlbF90dl9nZXRfbW9kZXMoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJbW9kZV9wdHItPmNsb2NrID0gKGludCkgdG1w OwogCiAJCW1vZGVfcHRyLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVI7Ci0JCWludGVsX3R2 X2Nob3NlX3ByZWZlcnJlZF9tb2Rlcyhjb25uZWN0b3IsIG1vZGVfcHRyKTsKKwkJaW50ZWxfdHZf Y2hvb3NlX3ByZWZlcnJlZF9tb2Rlcyh0dl9tb2RlLCBtb2RlX3B0cik7CiAJCWRybV9tb2RlX3By b2JlZF9hZGQoY29ubmVjdG9yLCBtb2RlX3B0cik7CiAJCWNvdW50Kys7CiAJfQpAQCAtMTQ2Miw2 NiArMTQ1NywxMyBAQCBpbnRlbF90dl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IpCiAJa2ZyZWUoY29ubmVjdG9yKTsKIH0KIAotCi1zdGF0aWMgaW50Ci1pbnRlbF90dl9z ZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGRybV9w cm9wZXJ0eSAqcHJvcGVydHksCi0JCSAgICAgIHVpbnQ2NF90IHZhbCkKLXsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Ci0Jc3RydWN0IGludGVsX3R2ICppbnRlbF90 diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRj ID0gaW50ZWxfdHYtPmJhc2UuYmFzZS5jcnRjOwotCWludCByZXQgPSAwOwotCWJvb2wgY2hhbmdl ZCA9IGZhbHNlOwotCi0JcmV0ID0gZHJtX29iamVjdF9wcm9wZXJ0eV9zZXRfdmFsdWUoJmNvbm5l Y3Rvci0+YmFzZSwgcHJvcGVydHksIHZhbCk7Ci0JaWYgKHJldCA8IDApCi0JCWdvdG8gb3V0Owot Ci0JaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfbGVmdF9tYXJnaW5fcHJvcGVy dHkgJiYKLQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF0gIT0gdmFsKSB7Ci0JCWlu dGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX0xFRlRdID0gdmFsOwotCQljaGFuZ2VkID0gdHJ1ZTsK LQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfcmlnaHRfbWFyZ2lu X3Byb3BlcnR5ICYmCi0JCWludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1JJR0hUXSAhPSB2YWwp IHsKLQkJaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fUklHSFRdID0gdmFsOwotCQljaGFuZ2Vk ID0gdHJ1ZTsKLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZfdG9w X21hcmdpbl9wcm9wZXJ0eSAmJgotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdICE9 IHZhbCkgewotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdID0gdmFsOwotCQljaGFu Z2VkID0gdHJ1ZTsKLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9kZV9jb25maWcudHZf Ym90dG9tX21hcmdpbl9wcm9wZXJ0eSAmJgotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9C T1RUT01dICE9IHZhbCkgewotCQlpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9CT1RUT01dID0g dmFsOwotCQljaGFuZ2VkID0gdHJ1ZTsKLQl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGRldi0+bW9k ZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSkgewotCQlpZiAodmFsID49IEFSUkFZX1NJWkUodHZf bW9kZXMpKSB7Ci0JCQlyZXQgPSAtRUlOVkFMOwotCQkJZ290byBvdXQ7Ci0JCX0KLQkJaWYgKCFz dHJjbXAoaW50ZWxfdHYtPnR2X2Zvcm1hdCwgdHZfbW9kZXNbdmFsXS5uYW1lKSkKLQkJCWdvdG8g b3V0OwotCi0JCWludGVsX3R2LT50dl9mb3JtYXQgPSB0dl9tb2Rlc1t2YWxdLm5hbWU7Ci0JCWNo YW5nZWQgPSB0cnVlOwotCX0gZWxzZSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gb3V0Owot CX0KLQotCWlmIChjaGFuZ2VkICYmIGNydGMpCi0JCWludGVsX2NydGNfcmVzdG9yZV9tb2RlKGNy dGMpOwotb3V0OgotCXJldHVybiByZXQ7Ci19Ci0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfZnVuY3MgPSB7CiAJLmRwbXMgPSBkcm1f YXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKIAkuZGV0ZWN0ID0gaW50ZWxfdHZfZGV0ZWN0 LAogCS5sYXRlX3JlZ2lzdGVyID0gaW50ZWxfY29ubmVjdG9yX3JlZ2lzdGVyLAogCS5lYXJseV91 bnJlZ2lzdGVyID0gaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIsCiAJLmRlc3Ryb3kgPSBpbnRl bF90dl9kZXN0cm95LAotCS5zZXRfcHJvcGVydHkgPSBpbnRlbF90dl9zZXRfcHJvcGVydHksCi0J LmF0b21pY19nZXRfcHJvcGVydHkgPSBpbnRlbF9jb25uZWN0b3JfYXRvbWljX2dldF9wcm9wZXJ0 eSwKKwkuc2V0X3Byb3BlcnR5ID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3NldF9wcm9w ZXJ0eSwKIAkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9t b2RlcywKIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0 b3JfZGVzdHJveV9zdGF0ZSwKIAkuYXRvbWljX2R1cGxpY2F0ZV9zdGF0ZSA9IGRybV9hdG9taWNf aGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUsCkBAIC0xNTMyLDYgKzE0NzQsNDEgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBpbnRlbF90dl9j b25uZWN0b3JfaGVscGVyX2Z1bmNzID0KIAkuZ2V0X21vZGVzID0gaW50ZWxfdHZfZ2V0X21vZGVz LAogfTsKIAorc3RhdGljIGludCBpbnRlbF90dl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAorCQkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJ CQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUpCit7CisJc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9zdGF0ZSA9IG5ld19zdGF0ZS0+Y29ubmVjdG9yLT5zdGF0 ZTsKKworCWlmIChvbGRfc3RhdGUtPnR2Lm1vZGUgIT0gbmV3X3N0YXRlLT50di5tb2RlIHx8CisJ ICAgIG9sZF9zdGF0ZS0+dHYubWFyZ2lucy5sZWZ0ICE9IG5ld19zdGF0ZS0+dHYubWFyZ2lucy5s ZWZ0IHx8CisJICAgIG9sZF9zdGF0ZS0+dHYubWFyZ2lucy5yaWdodCAhPSBuZXdfc3RhdGUtPnR2 Lm1hcmdpbnMucmlnaHQgfHwKKwkgICAgb2xkX3N0YXRlLT50di5tYXJnaW5zLnRvcCAhPSBuZXdf c3RhdGUtPnR2Lm1hcmdpbnMudG9wIHx8CisJICAgIG9sZF9zdGF0ZS0+dHYubWFyZ2lucy5ib3R0 b20gIT0gbmV3X3N0YXRlLT50di5tYXJnaW5zLmJvdHRvbSkgeworCQlpbnQgcmV0OworCisJCWNy dGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRydWU7CisKKwkJLyoKKwkJICogVGhpcyBp cyBjYWxsZWQgYWZ0ZXIgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldCBhZGRzCisJCSAq IGFmZmVjdGVkIHBsYW5lcy9jb25uZWN0b3JzLCBzbyB3ZSBoYXZlIHRvIGFkZCB0aGVtIG1hbnVh bGx5LgorCQkgKi8KKwkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhu ZXdfc3RhdGUtPnN0YXRlLCBjcnRjX3N0YXRlLT5jcnRjKTsKKwkJaWYgKHJldCkKKwkJCXJldHVy biByZXQ7CisKKwkJcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfcGxhbmVzKG5ld19zdGF0 ZS0+c3RhdGUsIGNydGNfc3RhdGUtPmNydGMpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsK Kwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9o ZWxwZXJfZnVuY3MgaW50ZWxfdHZfZW5jX2hlbHBlcl9mdW5jcyA9IHsKKwkuYXRvbWljX2NoZWNr ID0gaW50ZWxfdHZfYXRvbWljX2NoZWNrLAorfTsKKwogc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f ZW5jb2Rlcl9mdW5jcyBpbnRlbF90dl9lbmNfZnVuY3MgPSB7CiAJLmRlc3Ryb3kgPSBpbnRlbF9l bmNvZGVyX2Rlc3Ryb3ksCiB9OwpAQCAtMTU0Nyw2ICsxNTI0LDcgQEAgaW50ZWxfdHZfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJdTMyIHR2X2RhY19vbiwgdHZfZGFj X29mZiwgc2F2ZV90dl9kYWM7CiAJY29uc3QgY2hhciAqdHZfZm9ybWF0X25hbWVzW0FSUkFZX1NJ WkUodHZfbW9kZXMpXTsKIAlpbnQgaSwgaW5pdGlhbF9tb2RlID0gMDsKKwlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqc3RhdGU7CiAKIAlpZiAoKEk5MTVfUkVBRChUVl9DVEwpICYgVFZfRlVT RV9TVEFURV9NQVNLKSA9PSBUVl9GVVNFX1NUQVRFX0RJU0FCTEVEKQogCQlyZXR1cm47CkBAIC0x NTkyLDYgKzE1NzAsNyBAQCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIAogCWludGVsX2VuY29kZXIgPSAmaW50ZWxfdHYtPmJhc2U7CiAJY29ubmVjdG9y ID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKKwlzdGF0ZSA9IGNvbm5lY3Rvci0+c3RhdGU7CiAK IAkvKiBUaGUgZG9jdW1lbnRhdGlvbiwgZm9yIHRoZSBvbGRlciBjaGlwc2V0cyBhdCBsZWFzdCwg cmVjb21tZW5kCiAJICogdXNpbmcgYSBwb2xsaW5nIG1ldGhvZCByYXRoZXIgdGhhbiBob3RwbHVn IGRldGVjdGlvbiBmb3IgVFZzLgpAQCAtMTYxNyw2ICsxNTk2LDcgQEAgaW50ZWxfdHZfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50ZWxfZW5jb2Rlci0+ZGlzYWJs ZSA9IGludGVsX2Rpc2FibGVfdHY7CiAJaW50ZWxfZW5jb2Rlci0+Z2V0X2h3X3N0YXRlID0gaW50 ZWxfdHZfZ2V0X2h3X3N0YXRlOwogCWludGVsX2Nvbm5lY3Rvci0+Z2V0X2h3X3N0YXRlID0gaW50 ZWxfY29ubmVjdG9yX2dldF9od19zdGF0ZTsKKwlpbnRlbF9jb25uZWN0b3ItPnN3YXBfc3RhdGUg PSBpbnRlbF90dl9zd2FwX3N0YXRlOwogCiAJaW50ZWxfY29ubmVjdG9yX2F0dGFjaF9lbmNvZGVy KGludGVsX2Nvbm5lY3RvciwgaW50ZWxfZW5jb2Rlcik7CiAKQEAgLTE2MjcsMTQgKzE2MDcsMTYg QEAgaW50ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaW50 ZWxfZW5jb2Rlci0+Y2xvbmVhYmxlID0gMDsKIAlpbnRlbF9lbmNvZGVyLT5iYXNlLnBvc3NpYmxl X2NydGNzID0gKCgxIDw8IDApIHwgKDEgPDwgMSkpOwogCWludGVsX3R2LT50eXBlID0gRFJNX01P REVfQ09OTkVDVE9SX1Vua25vd247CisJZHJtX2VuY29kZXJfaGVscGVyX2FkZCgmaW50ZWxfZW5j b2Rlci0+YmFzZSwgJmludGVsX3R2X2VuY19oZWxwZXJfZnVuY3MpOwogCiAJLyogQklPUyBtYXJn aW4gdmFsdWVzICovCi0JaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVGVF0gPSA1NDsKLQlp bnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9UT1BdID0gMzY7Ci0JaW50ZWxfdHYtPm1hcmdpbltU Vl9NQVJHSU5fUklHSFRdID0gNDY7Ci0JaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fQk9UVE9N XSA9IDM3OworCXN0YXRlLT50di5tYXJnaW5zLmxlZnQgPSA1NDsKKwlzdGF0ZS0+dHYubWFyZ2lu cy50b3AgPSAzNjsKKwlzdGF0ZS0+dHYubWFyZ2lucy5yaWdodCA9IDQ2OworCXN0YXRlLT50di5t YXJnaW5zLmJvdHRvbSA9IDM3OwogCi0JaW50ZWxfdHYtPnR2X2Zvcm1hdCA9IHR2X21vZGVzW2lu aXRpYWxfbW9kZV0ubmFtZTsKKwlzdGF0ZS0+dHYubW9kZSA9IGluaXRpYWxfbW9kZTsKKwlpbnRl bF90di0+Zm9ybWF0ID0gaW5pdGlhbF9tb2RlOwogCiAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRk KGNvbm5lY3RvciwgJmludGVsX3R2X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwogCWNvbm5lY3Rv ci0+aW50ZXJsYWNlX2FsbG93ZWQgPSBmYWxzZTsKQEAgLTE2NDgsMTcgKzE2MzAsMTcgQEAgaW50 ZWxfdHZfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQkJICAgICAg dHZfZm9ybWF0X25hbWVzKTsKIAogCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0 b3ItPmJhc2UsIGRldi0+bW9kZV9jb25maWcudHZfbW9kZV9wcm9wZXJ0eSwKLQkJCQkgICBpbml0 aWFsX21vZGUpOworCQkJCSAgIHN0YXRlLT50di5tb2RlKTsKIAlkcm1fb2JqZWN0X2F0dGFjaF9w cm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAogCQkJCSAgIGRldi0+bW9kZV9jb25maWcudHZfbGVm dF9tYXJnaW5fcHJvcGVydHksCi0JCQkJICAgaW50ZWxfdHYtPm1hcmdpbltUVl9NQVJHSU5fTEVG VF0pOworCQkJCSAgIHN0YXRlLT50di5tYXJnaW5zLmxlZnQpOwogCWRybV9vYmplY3RfYXR0YWNo X3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCiAJCQkJICAgZGV2LT5tb2RlX2NvbmZpZy50dl90 b3BfbWFyZ2luX3Byb3BlcnR5LAotCQkJCSAgIGludGVsX3R2LT5tYXJnaW5bVFZfTUFSR0lOX1RP UF0pOworCQkJCSAgIHN0YXRlLT50di5tYXJnaW5zLnRvcCk7CiAJZHJtX29iamVjdF9hdHRhY2hf cHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKIAkJCQkgICBkZXYtPm1vZGVfY29uZmlnLnR2X3Jp Z2h0X21hcmdpbl9wcm9wZXJ0eSwKLQkJCQkgICBpbnRlbF90di0+bWFyZ2luW1RWX01BUkdJTl9S SUdIVF0pOworCQkJCSAgIHN0YXRlLT50di5tYXJnaW5zLnJpZ2h0KTsKIAlkcm1fb2JqZWN0X2F0 dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAogCQkJCSAgIGRldi0+bW9kZV9jb25maWcu dHZfYm90dG9tX21hcmdpbl9wcm9wZXJ0eSwKLQkJCQkgICBpbnRlbF90di0+bWFyZ2luW1RWX01B UkdJTl9CT1RUT01dKTsKKwkJCQkgICBzdGF0ZS0+dHYubWFyZ2lucy5ib3R0b20pOwogfQotLSAK Mi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK