From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 2/9] drm/i915: remove intel_crtc_cursor_set_obj() (v5) Date: Mon, 24 Nov 2014 11:52:59 -0800 Message-ID: <1416858786-25376-3-git-send-email-matthew.d.roper@intel.com> References: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id EF9CC6ED68 for ; Mon, 24 Nov 2014 11:55:12 -0800 (PST) In-Reply-To: <1416858786-25376-1-git-send-email-matthew.d.roper@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 Cc: Gustavo Padovan List-Id: intel-gfx@lists.freedesktop.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgoK TWVyZ2UgaXQgaW50byB0aGUgcGxhbmUgdXBkYXRlX3BsYW5lKCkgY2FsbGJhY2sgYW5kIG1ha2Ug b3RoZXIKdXNlcnMgdXNlIHRoZSB1cGRhdGVfcGxhbmUoKSBmdW5jdGlvbnMgaW5zdGVhZC4KClRo ZSBmYiAhPSBjcnRjLT5jdXJzb3ItPmZiIHdhcyBhbHJlYWR5IGluc2lkZSBpbnRlbF9jcnRjX2N1 cnNvcl9zZXRfb2JqKCkKc28gd2UgZm9sZCBpbnRlbF9jcnRjX2N1cnNvcl9zZXRfb2JqKCkgaW5z aWRlIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUoKQphbmQgbWVyZ2UgYm90aCBwYXRocyBpbnRv IG9uZS4KCnY1IChieSBNYXR0KToKIC0gUmViYXNlIG9udG8gbGF0ZXN0IGRpLW5pZ2h0bHkgY29k ZWJhc2UKIC0gRHJvcCBleHRyYSB1bnJlZmVyZW5jZSBjYWxsIHdoZW4gd2UgZmFpbCB0byBwaW4g KFZpbGxlKQoKUmV2aWV3ZWQtYnkodjQpOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8u cGFkb3ZhbkBjb2xsYWJvcmEuY28udWs+ClNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRo ZXcuZC5yb3BlckBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgMjE1ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgMTE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBiODdhZWFiLi44MTg5NGJlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC04MzUzLDEwOSArODM1Myw2IEBAIHN0YXRpYyBib29s IGN1cnNvcl9zaXplX29rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jdXJzb3Jfc2V0X29iaihzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCSAg ICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCkKLXsKLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7Ci0JZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwotCXVuc2ln bmVkIG9sZF93aWR0aDsKLQl1aW50MzJfdCBhZGRyOwotCWludCByZXQ7Ci0KLQkvKiBpZiB3ZSB3 YW50IHRvIHR1cm4gb2ZmIHRoZSBjdXJzb3IgaWdub3JlIHdpZHRoIGFuZCBoZWlnaHQgKi8KLQlp ZiAoIW9iaikgewotCQlEUk1fREVCVUdfS01TKCJjdXJzb3Igb2ZmXG4iKTsKLQkJYWRkciA9IDA7 Ci0JCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQkJZ290byBmaW5pc2g7Ci0JfQot Ci0JLyogd2Ugb25seSBuZWVkIHRvIHBpbiBpbnNpZGUgR1RUIGlmIGN1cnNvciBpcyBub24tcGh5 ICovCi0JbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCWlmICghSU5URUxfSU5GTyhk ZXYpLT5jdXJzb3JfbmVlZHNfcGh5c2ljYWwpIHsKLQkJdW5zaWduZWQgYWxpZ25tZW50OwotCi0J CS8qCi0JCSAqIEdsb2JhbCBndHQgcHRlIHJlZ2lzdGVycyBhcmUgc3BlY2lhbCByZWdpc3RlcnMg d2hpY2ggYWN0dWFsbHkKLQkJICogZm9yd2FyZCB3cml0ZXMgdG8gYSBjaHVuayBvZiBzeXN0ZW0g bWVtb3J5LiBXaGljaCBtZWFucyB0aGF0Ci0JCSAqIHRoZXJlIGlzIG5vIHJpc2sgdGhhdCB0aGUg cmVnaXN0ZXIgdmFsdWVzIGRpc2FwcGVhciBhcyBzb29uCi0JCSAqIGFzIHdlIGNhbGwgaW50ZWxf cnVudGltZV9wbV9wdXQoKSwgc28gaXQgaXMgY29ycmVjdCB0byB3cmFwCi0JCSAqIG9ubHkgdGhl IHBpbi91bnBpbi9mZW5jZSBhbmQgbm90IG1vcmUuCi0JCSAqLwotCQlpbnRlbF9ydW50aW1lX3Bt X2dldChkZXZfcHJpdik7Ci0KLQkJLyogTm90ZSB0aGF0IHRoZSB3L2EgYWxzbyByZXF1aXJlcyAy IFBURSBvZiBwYWRkaW5nIGZvbGxvd2luZwotCQkgKiB0aGUgYm8uIFdlIGN1cnJlbnRseSBmaWxs IGFsbCB1bnVzZWQgUFRFIHdpdGggdGhlIHNoYWRvdwotCQkgKiBwYWdlIGFuZCBzbyB3ZSBzaG91 bGQgYWx3YXlzIGhhdmUgdmFsaWQgUFRFIGZvbGxvd2luZyB0aGUKLQkJICogY3Vyc29yIHByZXZl bnRpbmcgdGhlIFZULWQgd2FybmluZy4KLQkJICovCi0JCWFsaWdubWVudCA9IDA7Ci0JCWlmIChu ZWVkX3Z0ZF93YShkZXYpKQotCQkJYWxpZ25tZW50ID0gNjQqMTAyNDsKLQotCQlyZXQgPSBpOTE1 X2dlbV9vYmplY3RfcGluX3RvX2Rpc3BsYXlfcGxhbmUob2JqLCBhbGlnbm1lbnQsIE5VTEwpOwot CQlpZiAocmV0KSB7Ci0JCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gbW92ZSBjdXJzb3IgYm8g aW50byB0aGUgR1RUXG4iKTsKLQkJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKLQkJ CWdvdG8gZmFpbF9sb2NrZWQ7Ci0JCX0KLQotCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcHV0X2Zl bmNlKG9iaik7Ci0JCWlmIChyZXQpIHsKLQkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byByZWxl YXNlIGZlbmNlIGZvciBjdXJzb3IiKTsKLQkJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2 KTsKLQkJCWdvdG8gZmFpbF91bnBpbjsKLQkJfQotCi0JCWFkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQob2JqKTsKLQotCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7Ci0JfSBl bHNlIHsKLQkJaW50IGFsaWduID0gSVNfSTgzMChkZXYpID8gMTYgKiAxMDI0IDogMjU2OwotCQly ZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0YWNoX3BoeXMob2JqLCBhbGlnbik7Ci0JCWlmIChyZXQp IHsKLQkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhdHRhY2ggcGh5cyBvYmplY3RcbiIpOwot CQkJZ290byBmYWlsX2xvY2tlZDsKLQkJfQotCQlhZGRyID0gb2JqLT5waHlzX2hhbmRsZS0+YnVz YWRkcjsKLQl9Ci0KLSBmaW5pc2g6Ci0JaWYgKGludGVsX2NydGMtPmN1cnNvcl9ibykgewotCQlp ZiAoIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQotCQkJaTkxNV9nZW1f b2JqZWN0X3VucGluX2Zyb21fZGlzcGxheV9wbGFuZShpbnRlbF9jcnRjLT5jdXJzb3JfYm8pOwot CX0KLQotCWk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2NydGMtPmN1cnNvcl9ibywgb2JqLAotCQkJ ICBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IocGlwZSkpOwotCW11dGV4X3VubG9jaygmZGV2LT5z dHJ1Y3RfbXV0ZXgpOwotCi0Jb2xkX3dpZHRoID0gaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRoOwot Ci0JaW50ZWxfY3J0Yy0+Y3Vyc29yX2FkZHIgPSBhZGRyOwotCWludGVsX2NydGMtPmN1cnNvcl9i byA9IG9iajsKLQlpbnRlbF9jcnRjLT5jdXJzb3Jfd2lkdGggPSB3aWR0aDsKLQlpbnRlbF9jcnRj LT5jdXJzb3JfaGVpZ2h0ID0gaGVpZ2h0OwotCi0JaWYgKGludGVsX2NydGMtPmFjdGl2ZSkgewot CQlpZiAob2xkX3dpZHRoICE9IHdpZHRoKQotCQkJaW50ZWxfdXBkYXRlX3dhdGVybWFya3MoY3J0 Yyk7Ci0JCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBpbnRlbF9jcnRjLT5jdXJzb3Jf Ym8gIT0gTlVMTCk7Ci0KLQkJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChkZXYsIElOVEVMX0ZST05U QlVGRkVSX0NVUlNPUihwaXBlKSk7Ci0JfQotCi0JcmV0dXJuIDA7Ci1mYWlsX3VucGluOgotCWk5 MTVfZ2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUob2JqKTsKLWZhaWxfbG9ja2Vk OgotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCXJldHVybiByZXQ7Ci19Ci0K IHN0YXRpYyB2b2lkIGludGVsX2NydGNfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg dTE2ICpyZWQsIHUxNiAqZ3JlZW4sCiAJCQkJIHUxNiAqYmx1ZSwgdWludDMyX3Qgc3RhcnQsIHVp bnQzMl90IHNpemUpCiB7CkBAIC0xMjAxNCw3ICsxMTkxMSw4IEBAIGludGVsX2N1cnNvcl9wbGFu ZV9kaXNhYmxlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQogCiAJQlVHX09OKCFwbGFuZS0+Y3J0 Yyk7CiAKLQlyZXR1cm4gaW50ZWxfY3J0Y19jdXJzb3Jfc2V0X29iaihwbGFuZS0+Y3J0YywgTlVM TCwgMCwgMCk7CisJcmV0dXJuIHBsYW5lLT5mdW5jcy0+dXBkYXRlX3BsYW5lKHBsYW5lLCBwbGFu ZS0+Y3J0YywgTlVMTCwKKwkJCQkJICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKIH0KIAogc3Rh dGljIGludApAQCAtMTIwNzgsMTIgKzExOTc2LDE1IEBAIGludGVsX2NvbW1pdF9jdXJzb3JfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJCQkgIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqc3RhdGUpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc3RhdGUtPmNydGM7Ci0Jc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+ZmI7CisJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50 ZWxfcGxhbmUocGxhbmUpOwotCXN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciAqaW50ZWxfZmIgPSB0 b19pbnRlbF9mcmFtZWJ1ZmZlcihmYik7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiA9IGludGVsX2ZiLT5vYmo7Ci0JaW50IGNydGNfdywgY3J0Y19oOworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooc3RhdGUtPmZiKTsKKwllbnVtIHBpcGUg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7CisJdW5zaWduZWQgb2xkX3dpZHRoOworCXVpbnQzMl90 IGFkZHI7CisJaW50IHJldDsKIAogCWNydGMtPmN1cnNvcl94ID0gc3RhdGUtPm9yaWdfZHN0Lngx OwogCWNydGMtPmN1cnNvcl95ID0gc3RhdGUtPm9yaWdfZHN0LnkxOwpAQCAtMTIwOTgsMTggKzEx OTk5LDEwMCBAQCBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCWludGVsX3BsYW5lLT5zcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmc3RhdGUtPm9yaWdf c3JjKTsKIAlpbnRlbF9wbGFuZS0+b2JqID0gb2JqOwogCi0JaWYgKGZiICE9IGNydGMtPmN1cnNv ci0+ZmIpIHsKLQkJY3J0Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX2RzdCk7Ci0J CWNydGNfaCA9IGRybV9yZWN0X2hlaWdodCgmc3RhdGUtPm9yaWdfZHN0KTsKLQkJcmV0dXJuIGlu dGVsX2NydGNfY3Vyc29yX3NldF9vYmooY3J0Yywgb2JqLCBjcnRjX3csIGNydGNfaCk7CisJaWYg KGludGVsX2NydGMtPmN1cnNvcl9ibyA9PSBvYmopCisJCWdvdG8gdXBkYXRlOworCisJLyogaWYg d2Ugd2FudCB0byB0dXJuIG9mZiB0aGUgY3Vyc29yIGlnbm9yZSB3aWR0aCBhbmQgaGVpZ2h0ICov CisJaWYgKCFvYmopIHsKKwkJRFJNX0RFQlVHX0tNUygiY3Vyc29yIG9mZlxuIik7CisJCWFkZHIg PSAwOworCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCWdvdG8gZmluaXNoOwor CX0KKworCS8qIHdlIG9ubHkgbmVlZCB0byBwaW4gaW5zaWRlIEdUVCBpZiBjdXJzb3IgaXMgbm9u LXBoeSAqLworCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwlpZiAoIUlOVEVMX0lO Rk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSB7CisJCXVuc2lnbmVkIGFsaWdubWVudDsK KworCQkvKgorCQkgKiBHbG9iYWwgZ3R0IHB0ZSByZWdpc3RlcnMgYXJlIHNwZWNpYWwgcmVnaXN0 ZXJzIHdoaWNoIGFjdHVhbGx5CisJCSAqIGZvcndhcmQgd3JpdGVzIHRvIGEgY2h1bmsgb2Ygc3lz dGVtIG1lbW9yeS4gV2hpY2ggbWVhbnMgdGhhdAorCQkgKiB0aGVyZSBpcyBubyByaXNrIHRoYXQg dGhlIHJlZ2lzdGVyIHZhbHVlcyBkaXNhcHBlYXIgYXMgc29vbgorCQkgKiBhcyB3ZSBjYWxsIGlu dGVsX3J1bnRpbWVfcG1fcHV0KCksIHNvIGl0IGlzIGNvcnJlY3QgdG8gd3JhcAorCQkgKiBvbmx5 IHRoZSBwaW4vdW5waW4vZmVuY2UgYW5kIG5vdCBtb3JlLgorCQkgKi8KKwkJaW50ZWxfcnVudGlt ZV9wbV9nZXQoZGV2X3ByaXYpOworCisJCS8qIE5vdGUgdGhhdCB0aGUgdy9hIGFsc28gcmVxdWly ZXMgMiBQVEUgb2YgcGFkZGluZyBmb2xsb3dpbmcKKwkJICogdGhlIGJvLiBXZSBjdXJyZW50bHkg ZmlsbCBhbGwgdW51c2VkIFBURSB3aXRoIHRoZSBzaGFkb3cKKwkJICogcGFnZSBhbmQgc28gd2Ug c2hvdWxkIGFsd2F5cyBoYXZlIHZhbGlkIFBURSBmb2xsb3dpbmcgdGhlCisJCSAqIGN1cnNvciBw cmV2ZW50aW5nIHRoZSBWVC1kIHdhcm5pbmcuCisJCSAqLworCQlhbGlnbm1lbnQgPSAwOworCQlp ZiAobmVlZF92dGRfd2EoZGV2KSkKKwkJCWFsaWdubWVudCA9IDY0KjEwMjQ7CisKKwkJcmV0ID0g aTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKG9iaiwgYWxpZ25tZW50LCBOVUxM KTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIG1vdmUgY3Vyc29y IGJvIGludG8gdGhlIEdUVFxuIik7CisJCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7 CisJCQlnb3RvIGZhaWxfbG9ja2VkOworCQl9CisKKwkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3B1 dF9mZW5jZShvYmopOworCQlpZiAocmV0KSB7CisJCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8g cmVsZWFzZSBmZW5jZSBmb3IgY3Vyc29yIik7CisJCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZf cHJpdik7CisJCQlnb3RvIGZhaWxfdW5waW47CisJCX0KKworCQlhZGRyID0gaTkxNV9nZW1fb2Jq X2dndHRfb2Zmc2V0KG9iaik7CisKKwkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwor CiAJfSBlbHNlIHsKLQkJaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKGNydGMsIHN0YXRlLT52aXNp YmxlKTsKKwkJaW50IGFsaWduID0gSVNfSTgzMChkZXYpID8gMTYgKiAxMDI0IDogMjU2OworCQly ZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0YWNoX3BoeXMob2JqLCBhbGlnbik7CisJCWlmIChyZXQp IHsKKwkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhdHRhY2ggcGh5cyBvYmplY3RcbiIpOwor CQkJZ290byBmYWlsX2xvY2tlZDsKKwkJfQorCQlhZGRyID0gb2JqLT5waHlzX2hhbmRsZS0+YnVz YWRkcjsKKwl9CiAKLQkJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChjcnRjLT5kZXYsCi0JCQkJICAg ICAgIElOVEVMX0ZST05UQlVGRkVSX0NVUlNPUihpbnRlbF9jcnRjLT5waXBlKSk7CitmaW5pc2g6 CisJaWYgKGludGVsX2NydGMtPmN1cnNvcl9ibykgeworCQlpZiAoIUlOVEVMX0lORk8oZGV2KS0+ Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQorCQkJaTkxNV9nZW1fb2JqZWN0X3VucGluX2Zyb21fZGlz cGxheV9wbGFuZShpbnRlbF9jcnRjLT5jdXJzb3JfYm8pOworCX0KIAotCQlyZXR1cm4gMDsKKwlp OTE1X2dlbV90cmFja19mYihpbnRlbF9jcnRjLT5jdXJzb3JfYm8sIG9iaiwKKwkJCSAgSU5URUxf RlJPTlRCVUZGRVJfQ1VSU09SKHBpcGUpKTsKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKKworCWludGVsX2NydGMtPmN1cnNvcl9hZGRyID0gYWRkcjsKKwlpbnRlbF9jcnRjLT5j dXJzb3JfYm8gPSBvYmo7Cit1cGRhdGU6CisJb2xkX3dpZHRoID0gaW50ZWxfY3J0Yy0+Y3Vyc29y X3dpZHRoOworCisJaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJnN0 YXRlLT5vcmlnX2RzdCk7CisJaW50ZWxfY3J0Yy0+Y3Vyc29yX2hlaWdodCA9IGRybV9yZWN0X2hl aWdodCgmc3RhdGUtPm9yaWdfZHN0KTsKKworCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUpIHsKKwkJ aWYgKG9sZF93aWR0aCAhPSBpbnRlbF9jcnRjLT5jdXJzb3Jfd2lkdGgpCisJCQlpbnRlbF91cGRh dGVfd2F0ZXJtYXJrcyhjcnRjKTsKKwkJaW50ZWxfY3J0Y191cGRhdGVfY3Vyc29yKGNydGMsIHN0 YXRlLT52aXNpYmxlKTsKKworCQlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKGRldiwgSU5URUxfRlJP TlRCVUZGRVJfQ1VSU09SKHBpcGUpKTsKIAl9CisKKwlyZXR1cm4gMDsKK2ZhaWxfdW5waW46CisJ aTkxNV9nZW1fb2JqZWN0X3VucGluX2Zyb21fZGlzcGxheV9wbGFuZShvYmopOworZmFpbF9sb2Nr ZWQ6CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJcmV0dXJuIHJldDsKIH0K IAogc3RhdGljIGludAotLSAKMS44LjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK