From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH 3/5] drm/i915: remove intel_crtc_cursor_set_obj() (v5) Date: Mon, 17 Nov 2014 18:10:37 -0800 Message-ID: <1416276639-30297-4-git-send-email-matthew.d.roper@intel.com> References: <1416276639-30297-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 3AD656E275 for ; Mon, 17 Nov 2014 18:11:48 -0800 (PST) In-Reply-To: <1416276639-30297-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 OTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBhOTY3NjIzLi44ZGJjMGU5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC04MzY0LDEwOSArODM2NCw2IEBAIHN0YXRpYyBib29s IGN1cnNvcl9zaXplX29rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIHRydWU7CiB9 CiAKLXN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jdXJzb3Jfc2V0X29iaihzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCi0JCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAotCQkJCSAg ICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCkKLXsKLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2OwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwotCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKLQl1 bnNpZ25lZCBvbGRfd2lkdGg7Ci0JdWludDMyX3QgYWRkcjsKLQlpbnQgcmV0OwotCi0JLyogaWYg d2Ugd2FudCB0byB0dXJuIG9mZiB0aGUgY3Vyc29yIGlnbm9yZSB3aWR0aCBhbmQgaGVpZ2h0ICov Ci0JaWYgKCFvYmopIHsKLQkJRFJNX0RFQlVHX0tNUygiY3Vyc29yIG9mZlxuIik7Ci0JCWFkZHIg PSAwOwotCQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCWdvdG8gZmluaXNoOwot CX0KLQotCS8qIHdlIG9ubHkgbmVlZCB0byBwaW4gaW5zaWRlIEdUVCBpZiBjdXJzb3IgaXMgbm9u LXBoeSAqLwotCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlpZiAoIUlOVEVMX0lO Rk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSB7Ci0JCXVuc2lnbmVkIGFsaWdubWVudDsK LQotCQkvKgotCQkgKiBHbG9iYWwgZ3R0IHB0ZSByZWdpc3RlcnMgYXJlIHNwZWNpYWwgcmVnaXN0 ZXJzIHdoaWNoIGFjdHVhbGx5Ci0JCSAqIGZvcndhcmQgd3JpdGVzIHRvIGEgY2h1bmsgb2Ygc3lz dGVtIG1lbW9yeS4gV2hpY2ggbWVhbnMgdGhhdAotCQkgKiB0aGVyZSBpcyBubyByaXNrIHRoYXQg dGhlIHJlZ2lzdGVyIHZhbHVlcyBkaXNhcHBlYXIgYXMgc29vbgotCQkgKiBhcyB3ZSBjYWxsIGlu dGVsX3J1bnRpbWVfcG1fcHV0KCksIHNvIGl0IGlzIGNvcnJlY3QgdG8gd3JhcAotCQkgKiBvbmx5 IHRoZSBwaW4vdW5waW4vZmVuY2UgYW5kIG5vdCBtb3JlLgotCQkgKi8KLQkJaW50ZWxfcnVudGlt ZV9wbV9nZXQoZGV2X3ByaXYpOwotCi0JCS8qIE5vdGUgdGhhdCB0aGUgdy9hIGFsc28gcmVxdWly ZXMgMiBQVEUgb2YgcGFkZGluZyBmb2xsb3dpbmcKLQkJICogdGhlIGJvLiBXZSBjdXJyZW50bHkg ZmlsbCBhbGwgdW51c2VkIFBURSB3aXRoIHRoZSBzaGFkb3cKLQkJICogcGFnZSBhbmQgc28gd2Ug c2hvdWxkIGFsd2F5cyBoYXZlIHZhbGlkIFBURSBmb2xsb3dpbmcgdGhlCi0JCSAqIGN1cnNvciBw cmV2ZW50aW5nIHRoZSBWVC1kIHdhcm5pbmcuCi0JCSAqLwotCQlhbGlnbm1lbnQgPSAwOwotCQlp ZiAobmVlZF92dGRfd2EoZGV2KSkKLQkJCWFsaWdubWVudCA9IDY0KjEwMjQ7Ci0KLQkJcmV0ID0g aTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKG9iaiwgYWxpZ25tZW50LCBOVUxM KTsKLQkJaWYgKHJldCkgewotCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIG1vdmUgY3Vyc29y IGJvIGludG8gdGhlIEdUVFxuIik7Ci0JCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7 Ci0JCQlnb3RvIGZhaWxfbG9ja2VkOwotCQl9Ci0KLQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3B1 dF9mZW5jZShvYmopOwotCQlpZiAocmV0KSB7Ci0JCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8g cmVsZWFzZSBmZW5jZSBmb3IgY3Vyc29yIik7Ci0JCQlpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZf cHJpdik7Ci0JCQlnb3RvIGZhaWxfdW5waW47Ci0JCX0KLQotCQlhZGRyID0gaTkxNV9nZW1fb2Jq X2dndHRfb2Zmc2V0KG9iaik7Ci0KLQkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwot CX0gZWxzZSB7Ci0JCWludCBhbGlnbiA9IElTX0k4MzAoZGV2KSA/IDE2ICogMTAyNCA6IDI1NjsK LQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2F0dGFjaF9waHlzKG9iaiwgYWxpZ24pOwotCQlpZiAo cmV0KSB7Ci0JCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYXR0YWNoIHBoeXMgb2JqZWN0XG4i KTsKLQkJCWdvdG8gZmFpbF9sb2NrZWQ7Ci0JCX0KLQkJYWRkciA9IG9iai0+cGh5c19oYW5kbGUt PmJ1c2FkZHI7Ci0JfQotCi0gZmluaXNoOgotCWlmIChpbnRlbF9jcnRjLT5jdXJzb3JfYm8pIHsK LQkJaWYgKCFJTlRFTF9JTkZPKGRldiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkKLQkJCWk5MTVf Z2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUoaW50ZWxfY3J0Yy0+Y3Vyc29yX2Jv KTsKLQl9Ci0KLQlpOTE1X2dlbV90cmFja19mYihpbnRlbF9jcnRjLT5jdXJzb3JfYm8sIG9iaiwK LQkJCSAgSU5URUxfRlJPTlRCVUZGRVJfQ1VSU09SKHBpcGUpKTsKLQltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKLQotCW9sZF93aWR0aCA9IGludGVsX2NydGMtPmN1cnNvcl93aWR0 aDsKLQotCWludGVsX2NydGMtPmN1cnNvcl9hZGRyID0gYWRkcjsKLQlpbnRlbF9jcnRjLT5jdXJz b3JfYm8gPSBvYmo7Ci0JaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRoID0gd2lkdGg7Ci0JaW50ZWxf Y3J0Yy0+Y3Vyc29yX2hlaWdodCA9IGhlaWdodDsKLQotCWlmIChpbnRlbF9jcnRjLT5hY3RpdmUp IHsKLQkJaWYgKG9sZF93aWR0aCAhPSB3aWR0aCkKLQkJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtz KGNydGMpOwotCQlpbnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0YywgaW50ZWxfY3J0Yy0+Y3Vy c29yX2JvICE9IE5VTEwpOwotCi0JCWludGVsX2Zyb250YnVmZmVyX2ZsaXAoZGV2LCBJTlRFTF9G Uk9OVEJVRkZFUl9DVVJTT1IocGlwZSkpOwotCX0KLQotCXJldHVybiAwOwotZmFpbF91bnBpbjoK LQlpOTE1X2dlbV9vYmplY3RfdW5waW5fZnJvbV9kaXNwbGF5X3BsYW5lKG9iaik7Ci1mYWlsX2xv Y2tlZDoKLQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlyZXR1cm4gcmV0Owot fQotCiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsIHUxNiAqcmVkLCB1MTYgKmdyZWVuLAogCQkJCSB1MTYgKmJsdWUsIHVpbnQzMl90IHN0YXJ0 LCB1aW50MzJfdCBzaXplKQogewpAQCAtMTE5NjUsNyArMTE4NjIsOCBAQCBpbnRlbF9jdXJzb3Jf cGxhbmVfZGlzYWJsZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKIAogCUJVR19PTighcGxhbmUt PmNydGMpOwogCi0JcmV0dXJuIGludGVsX2NydGNfY3Vyc29yX3NldF9vYmoocGxhbmUtPmNydGMs IE5VTEwsIDAsIDApOworCXJldHVybiBwbGFuZS0+ZnVuY3MtPnVwZGF0ZV9wbGFuZShwbGFuZSwg cGxhbmUtPmNydGMsIE5VTEwsCisJCQkJCSAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7CiB9CiAK IHN0YXRpYyBpbnQKQEAgLTEyMDI5LDEyICsxMTkyNywxNSBAQCBpbnRlbF9jb21taXRfY3Vyc29y X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5jcnRjOwot CXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmZiOworCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Yyk7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKLQlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2Zi ID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSBpbnRlbF9mYi0+b2JqOwotCWludCBjcnRjX3csIGNydGNfaDsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKHN0YXRlLT5mYik7CisJZW51bSBw aXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOworCXVuc2lnbmVkIG9sZF93aWR0aDsKKwl1aW50 MzJfdCBhZGRyOworCWludCByZXQ7CiAKIAljcnRjLT5jdXJzb3JfeCA9IHN0YXRlLT5vcmlnX2Rz dC54MTsKIAljcnRjLT5jdXJzb3JfeSA9IHN0YXRlLT5vcmlnX2RzdC55MTsKQEAgLTEyMDQ5LDE4 ICsxMTk1MCwxMDAgQEAgaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKIAlpbnRlbF9wbGFuZS0+c3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5v cmlnX3NyYyk7CiAJaW50ZWxfcGxhbmUtPm9iaiA9IG9iajsKIAotCWlmIChmYiAhPSBjcnRjLT5j dXJzb3ItPmZiKSB7Ci0JCWNydGNfdyA9IGRybV9yZWN0X3dpZHRoKCZzdGF0ZS0+b3JpZ19kc3Qp OwotCQljcnRjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5vcmlnX2RzdCk7Ci0JCXJldHVy biBpbnRlbF9jcnRjX2N1cnNvcl9zZXRfb2JqKGNydGMsIG9iaiwgY3J0Y193LCBjcnRjX2gpOwor CWlmIChpbnRlbF9jcnRjLT5jdXJzb3JfYm8gPT0gb2JqKQorCQlnb3RvIHVwZGF0ZTsKKworCS8q IGlmIHdlIHdhbnQgdG8gdHVybiBvZmYgdGhlIGN1cnNvciBpZ25vcmUgd2lkdGggYW5kIGhlaWdo dCAqLworCWlmICghb2JqKSB7CisJCURSTV9ERUJVR19LTVMoImN1cnNvciBvZmZcbiIpOworCQlh ZGRyID0gMDsKKwkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlnb3RvIGZpbmlz aDsKKwl9CisKKwkvKiB3ZSBvbmx5IG5lZWQgdG8gcGluIGluc2lkZSBHVFQgaWYgY3Vyc29yIGlz IG5vbi1waHkgKi8KKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJaWYgKCFJTlRF TF9JTkZPKGRldiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkgeworCQl1bnNpZ25lZCBhbGlnbm1l bnQ7CisKKwkJLyoKKwkJICogR2xvYmFsIGd0dCBwdGUgcmVnaXN0ZXJzIGFyZSBzcGVjaWFsIHJl Z2lzdGVycyB3aGljaCBhY3R1YWxseQorCQkgKiBmb3J3YXJkIHdyaXRlcyB0byBhIGNodW5rIG9m IHN5c3RlbSBtZW1vcnkuIFdoaWNoIG1lYW5zIHRoYXQKKwkJICogdGhlcmUgaXMgbm8gcmlzayB0 aGF0IHRoZSByZWdpc3RlciB2YWx1ZXMgZGlzYXBwZWFyIGFzIHNvb24KKwkJICogYXMgd2UgY2Fs bCBpbnRlbF9ydW50aW1lX3BtX3B1dCgpLCBzbyBpdCBpcyBjb3JyZWN0IHRvIHdyYXAKKwkJICog b25seSB0aGUgcGluL3VucGluL2ZlbmNlIGFuZCBub3QgbW9yZS4KKwkJICovCisJCWludGVsX3J1 bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKKworCQkvKiBOb3RlIHRoYXQgdGhlIHcvYSBhbHNvIHJl cXVpcmVzIDIgUFRFIG9mIHBhZGRpbmcgZm9sbG93aW5nCisJCSAqIHRoZSBiby4gV2UgY3VycmVu dGx5IGZpbGwgYWxsIHVudXNlZCBQVEUgd2l0aCB0aGUgc2hhZG93CisJCSAqIHBhZ2UgYW5kIHNv IHdlIHNob3VsZCBhbHdheXMgaGF2ZSB2YWxpZCBQVEUgZm9sbG93aW5nIHRoZQorCQkgKiBjdXJz b3IgcHJldmVudGluZyB0aGUgVlQtZCB3YXJuaW5nLgorCQkgKi8KKwkJYWxpZ25tZW50ID0gMDsK KwkJaWYgKG5lZWRfdnRkX3dhKGRldikpCisJCQlhbGlnbm1lbnQgPSA2NCoxMDI0OworCisJCXJl dCA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShvYmosIGFsaWdubWVudCwg TlVMTCk7CisJCWlmIChyZXQpIHsKKwkJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBtb3ZlIGN1 cnNvciBibyBpbnRvIHRoZSBHVFRcbiIpOworCQkJaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3By aXYpOworCQkJZ290byBmYWlsX2xvY2tlZDsKKwkJfQorCisJCXJldCA9IGk5MTVfZ2VtX29iamVj dF9wdXRfZmVuY2Uob2JqKTsKKwkJaWYgKHJldCkgeworCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVk IHRvIHJlbGVhc2UgZmVuY2UgZm9yIGN1cnNvciIpOworCQkJaW50ZWxfcnVudGltZV9wbV9wdXQo ZGV2X3ByaXYpOworCQkJZ290byBmYWlsX3VucGluOworCQl9CisKKwkJYWRkciA9IGk5MTVfZ2Vt X29ial9nZ3R0X29mZnNldChvYmopOworCisJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2 KTsKKwogCX0gZWxzZSB7Ci0JCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRjLCBzdGF0ZS0+ dmlzaWJsZSk7CisJCWludCBhbGlnbiA9IElTX0k4MzAoZGV2KSA/IDE2ICogMTAyNCA6IDI1NjsK KwkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2F0dGFjaF9waHlzKG9iaiwgYWxpZ24pOworCQlpZiAo cmV0KSB7CisJCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gYXR0YWNoIHBoeXMgb2JqZWN0XG4i KTsKKwkJCWdvdG8gZmFpbF9sb2NrZWQ7CisJCX0KKwkJYWRkciA9IG9iai0+cGh5c19oYW5kbGUt PmJ1c2FkZHI7CisJfQogCi0JCWludGVsX2Zyb250YnVmZmVyX2ZsaXAoY3J0Yy0+ZGV2LAotCQkJ CSAgICAgICBJTlRFTF9GUk9OVEJVRkZFUl9DVVJTT1IoaW50ZWxfY3J0Yy0+cGlwZSkpOworZmlu aXNoOgorCWlmIChpbnRlbF9jcnRjLT5jdXJzb3JfYm8pIHsKKwkJaWYgKCFJTlRFTF9JTkZPKGRl diktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkKKwkJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9mcm9t X2Rpc3BsYXlfcGxhbmUoaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvKTsKKwl9CiAKLQkJcmV0dXJuIDA7 CisJaTkxNV9nZW1fdHJhY2tfZmIoaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvLCBvYmosCisJCQkgIElO VEVMX0ZST05UQlVGRkVSX0NVUlNPUihwaXBlKSk7CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7CisKKwlpbnRlbF9jcnRjLT5jdXJzb3JfYWRkciA9IGFkZHI7CisJaW50ZWxfY3J0 Yy0+Y3Vyc29yX2JvID0gb2JqOwordXBkYXRlOgorCW9sZF93aWR0aCA9IGludGVsX2NydGMtPmN1 cnNvcl93aWR0aDsKKworCWludGVsX2NydGMtPmN1cnNvcl93aWR0aCA9IGRybV9yZWN0X3dpZHRo KCZzdGF0ZS0+b3JpZ19kc3QpOworCWludGVsX2NydGMtPmN1cnNvcl9oZWlnaHQgPSBkcm1fcmVj dF9oZWlnaHQoJnN0YXRlLT5vcmlnX2RzdCk7CisKKwlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKSB7 CisJCWlmIChvbGRfd2lkdGggIT0gaW50ZWxfY3J0Yy0+Y3Vyc29yX3dpZHRoKQorCQkJaW50ZWxf dXBkYXRlX3dhdGVybWFya3MoY3J0Yyk7CisJCWludGVsX2NydGNfdXBkYXRlX2N1cnNvcihjcnRj LCBzdGF0ZS0+dmlzaWJsZSk7CisKKwkJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChkZXYsIElOVEVM X0ZST05UQlVGRkVSX0NVUlNPUihwaXBlKSk7CiAJfQorCisJcmV0dXJuIDA7CitmYWlsX3VucGlu OgorCWk5MTVfZ2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUob2JqKTsKK2ZhaWxf bG9ja2VkOgorCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCXJldHVybiByZXQ7 CiB9CiAKIHN0YXRpYyBpbnQKLS0gCjEuOC41LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==