From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [PATCH v3 01/11] drm/i915: Merge of visible and !visible paths for primary planes Date: Wed, 24 Sep 2014 14:20:22 -0300 Message-ID: <1411579232-8668-1-git-send-email-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org Cc: Gustavo Padovan , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgoK Rm9sZCBpbnRlbF9waXBlX3NldF9iYXNlKCkgaW4gdGhlIHVwZGF0ZSBwcmltYXJ5IHBsYW5lIHBh dGggbWVyZ2luZwpwaWVjZXMgb2YgY29kZSB0aGF0IGFyZSBjb21tb24gdG8gYm90aCBwYXRocy4K CkJhc2ljYWxseSB0aGUgdGhlIHBpbi91bnBpbiBwcm9jZWR1cmVzIGFyZSB0aGUgc2FtZSBmb3Ig Ym90aCBwYXRocwphbmQgc29tZSBjaGVja3MgY2FuIGFsc28gYmUgc2hhcmVkIChzb21lIG9mIHRo ZSB3ZXJlIG1vdmVkIHRvIHRoZQpjaGVjaygpIHN0YWdlKQoKdjI6IHRha2UgVmlsbGUncyBjb21t ZW50czoKCS0gcmVtb3ZlIHVubmVjZXNzYXJ5IHBsYW5lIGNoZWNrCgktIG1vdmUgbXV0ZXggbG9j ayB0byBpbnNpZGUgdGhlIGNvbmRpdGlvbmFsCgktIG1ha2UgdGhlIHBpbiBmYWlsIG1lc3NhZ2Ug YSBkZWJ1ZyBvbmUKCS0gYWRkIGEgZml4bWUgZm9yIHRoZSBmYXN0Ym9vdCBoYWNrCgktIGNhbGwg aW50ZWxfZnJvbnRidWZmZXJfZmxpcCgpIGFmdGVyIEZCQyB1cGRhdGUKCnYzOiB0YWtlIG1vcmUg VmlsbGUncyBjb21tZW50czoKCS0gZm9sZCB1cGRhdGUgY29kZSB1bmRlciBpZiAoaW50ZWxfY3J0 Yy0+YWN0aXZlKSwgYW5kIGRvIHRoZQoJdmlzaWJsZS8hdmlzaWJsZSBzcGxpdCBpbnNpZGUuCgkt IGNoZWNrIHJldCBpbnNpZGUgdGhlIHNhbWUgY29uZGl0aW9uYWwgd2UgYXNzaWduIGl0Cgp2NDog ZG9uJ3QgdXNlIGludGVsX2VuYWJsZV9wcmltYXJ5X2h3X3BsYW5lKCksIHRoZSBwcmltYXJ5X2Vu YWJsZWQKY2hlY2sgaW5zaWRlIHdpbGwgYnJlYWsgcGFnZSBmbGlwcwoKdjU6IHRha2UgbW9yZSBW aWxsZSdzIGNvbW1lbnRzOgoJLSBzZXQgcHJpbWFyeV9lbmFibGVkIHRvIHRydWUgYW5kIGFkZCBC RFcgaGFjawoJLSB1bmlmeSBpZiAob2xkX2ZiKSBhbmQgaWYgKG9sZF9mYiAhPSBmYikKCnY2OiB0 YWtlIG1vcmUgVmlsbGUncyBjb21tZW50czoKCS0gbWFrZSB3YXNfcHJpbWFyeSBib29sIGFuZCBm aXggaXRzIGNoZWNrCgktIGFkZCB0aGUgQkRXIHZibGFuayB3YWl0IGNvbW1lbnQKClN1Z2dlc3Rl ZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KU2ln bmVkLW9mZi1ieTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNv LnVrPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KCmZpeHVwISBkcm0vaTkxNTogTWVyZ2Ugb2YgdmlzaWJsZSBhbmQgIXZpc2libGUg cGF0aHMgZm9yIHByaW1hcnkgcGxhbmVzCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgOTIgaW5zZXJ0aW9ucygrKSwgNTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGI4NDg4YTguLjk2NmI5YWYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExNjc2LDEyICsxMTY3NiwyMyBAQCBpbnRlbF9j aGVja19wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBkcm1f cmVjdCAqZGVzdCA9ICZzdGF0ZS0+ZHN0OwogCXN0cnVjdCBkcm1fcmVjdCAqc3JjID0gJnN0YXRl LT5zcmM7CiAJY29uc3Qgc3RydWN0IGRybV9yZWN0ICpjbGlwID0gJnN0YXRlLT5jbGlwOworCWlu dCByZXQ7CiAKLQlyZXR1cm4gZHJtX3BsYW5lX2hlbHBlcl9jaGVja191cGRhdGUocGxhbmUsIGNy dGMsIGZiLAorCXJldCA9IGRybV9wbGFuZV9oZWxwZXJfY2hlY2tfdXBkYXRlKHBsYW5lLCBjcnRj LCBmYiwKIAkJCQkJICAgIHNyYywgZGVzdCwgY2xpcCwKIAkJCQkJICAgIERSTV9QTEFORV9IRUxQ RVJfTk9fU0NBTElORywKIAkJCQkJICAgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJ CQkJICAgIGZhbHNlLCB0cnVlLCAmc3RhdGUtPnZpc2libGUpOworCWlmIChyZXQpCisJCXJldHVy biByZXQ7CisKKwkvKiBubyBmYiBib3VuZCAqLworCWlmIChzdGF0ZS0+dmlzaWJsZSAmJiAhZmIp IHsKKwkJRFJNX0VSUk9SKCJObyBGQiBib3VuZFxuIik7CisJCXJldHVybiAtRUlOVkFMOworCX0K KworCXJldHVybiAwOwogfQogCiBzdGF0aWMgaW50CkBAIC0xMTY5Myw2ICsxMTcwNCw4IEBAIGlu dGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOworCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKm9sZF9mYiA9IHBsYW5lLT5mYjsKIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2xkX29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+ZmIp OwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZSk7CkBAIC0xMTcwMSw3NiArMTE3MTQsMTAwIEBAIGludGVsX2NvbW1pdF9wcmltYXJ5X3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCiAJaW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5n X2ZsaXBzKGNydGMpOwogCi0JLyoKLQkgKiBJZiBjbGlwcGluZyByZXN1bHRzIGluIGEgbm9uLXZp c2libGUgcHJpbWFyeSBwbGFuZSwgd2UnbGwgZGlzYWJsZQotCSAqIHRoZSBwcmltYXJ5IHBsYW5l LiAgTm90ZSB0aGF0IHRoaXMgaXMgYSBiaXQgZGlmZmVyZW50IHRoYW4gd2hhdAotCSAqIGhhcHBl bnMgaWYgdXNlcnNwYWNlIGV4cGxpY2l0bHkgZGlzYWJsZXMgdGhlIHBsYW5lIGJ5IHBhc3Npbmcg ZmI9MAotCSAqIGJlY2F1c2UgcGxhbmUtPmZiIHN0aWxsIGdldHMgc2V0IGFuZCBwaW5uZWQuCi0J ICovCi0JaWYgKCFzdGF0ZS0+dmlzaWJsZSkgeworCWlmIChpbnRlbF9jcnRjX2hhc19wZW5kaW5n X2ZsaXAoY3J0YykpIHsKKwkJRFJNX0VSUk9SKCJwaXBlIGlzIHN0aWxsIGJ1c3kgd2l0aCBhbiBv bGQgcGFnZWZsaXBcbiIpOworCQlyZXR1cm4gLUVCVVNZOworCX0KKworCWlmIChwbGFuZS0+ZmIg IT0gZmIpIHsKIAkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlyZXQgPSBpbnRl bF9waW5fYW5kX2ZlbmNlX2ZiX29iaihkZXYsIG9iaiwgTlVMTCk7CisJCWlmIChyZXQgPT0gMCkK KwkJCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwKKwkJCQkJICBJTlRFTF9GUk9OVEJV RkZFUl9QUklNQVJZKHBpcGUpKTsKKwkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CisJCWlmIChyZXQgIT0gMCkgeworCQkJRFJNX0RFQlVHX0tNUygicGluICYgZmVuY2UgZmFpbGVk XG4iKTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9CisKKwljcnRjLT5wcmltYXJ5LT5mYiA9IGZi OworCWNydGMtPnggPSBzcmMtPngxOworCWNydGMtPnkgPSBzcmMtPnkxOworCisJaW50ZWxfcGxh bmUtPmNydGNfeCA9IHN0YXRlLT5vcmlnX2RzdC54MTsKKwlpbnRlbF9wbGFuZS0+Y3J0Y195ID0g c3RhdGUtPm9yaWdfZHN0LnkxOworCWludGVsX3BsYW5lLT5jcnRjX3cgPSBkcm1fcmVjdF93aWR0 aCgmc3RhdGUtPm9yaWdfZHN0KTsKKwlpbnRlbF9wbGFuZS0+Y3J0Y19oID0gZHJtX3JlY3RfaGVp Z2h0KCZzdGF0ZS0+b3JpZ19kc3QpOworCWludGVsX3BsYW5lLT5zcmNfeCA9IHN0YXRlLT5vcmln X3NyYy54MTsKKwlpbnRlbF9wbGFuZS0+c3JjX3kgPSBzdGF0ZS0+b3JpZ19zcmMueTE7CisJaW50 ZWxfcGxhbmUtPnNyY193ID0gZHJtX3JlY3Rfd2lkdGgoJnN0YXRlLT5vcmlnX3NyYyk7CisJaW50 ZWxfcGxhbmUtPnNyY19oID0gZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+b3JpZ19zcmMpOworCWlu dGVsX3BsYW5lLT5vYmogPSBvYmo7CiAKKwlpZiAoaW50ZWxfY3J0Yy0+YWN0aXZlKSB7CiAJCS8q Ci0JCSAqIFRyeSB0byBwaW4gdGhlIG5ldyBmYiBmaXJzdCBzbyB0aGF0IHdlIGNhbiBiYWlsIG91 dCBpZiB3ZQotCQkgKiBmYWlsLgorCQkgKiBGQkMgZG9lcyBub3Qgd29yayBvbiBzb21lIHBsYXRm b3JtcyBmb3Igcm90YXRlZAorCQkgKiBwbGFuZXMsIHNvIGRpc2FibGUgaXQgd2hlbiByb3RhdGlv biBpcyBub3QgMCBhbmQKKwkJICogdXBkYXRlIGl0IHdoZW4gcm90YXRpb24gaXMgc2V0IGJhY2sg dG8gMC4KKwkJICoKKwkJICogRklYTUU6IFRoaXMgaXMgcmVkdW5kYW50IHdpdGggdGhlIGZiYyB1 cGRhdGUgZG9uZSBpbgorCQkgKiB0aGUgcHJpbWFyeSBwbGFuZSBlbmFibGUgZnVuY3Rpb24gZXhj ZXB0IHRoYXQgdGhhdAorCQkgKiBvbmUgaXMgZG9uZSB0b28gbGF0ZS4gV2UgZXZlbnR1YWxseSBu ZWVkIHRvIHVuaWZ5CisJCSAqIHRoaXMuCiAJCSAqLwotCQlpZiAocGxhbmUtPmZiICE9IGZiKSB7 Ci0JCQlyZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNlX2ZiX29iaihkZXYsIG9iaiwgTlVMTCk7Ci0J CQlpZiAocmV0KSB7Ci0JCQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Ci0JCQkJ cmV0dXJuIHJldDsKLQkJCX0KKwkJaWYgKGludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCAmJgor CQkgICAgSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYKKwkJICAg IGRldl9wcml2LT5mYmMucGxhbmUgPT0gaW50ZWxfY3J0Yy0+cGxhbmUgJiYKKwkJICAgIGludGVs X3BsYW5lLT5yb3RhdGlvbiAhPSBCSVQoRFJNX1JPVEFURV8wKSkgeworCQkJaW50ZWxfZGlzYWJs ZV9mYmMoZGV2KTsKIAkJfQogCi0JCWk5MTVfZ2VtX3RyYWNrX2ZiKG9sZF9vYmosIG9iaiwKLQkJ CQkgIElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkoaW50ZWxfY3J0Yy0+cGlwZSkpOwotCi0JCWlm IChpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQpCi0JCQlpbnRlbF9kaXNhYmxlX3ByaW1hcnlf aHdfcGxhbmUocGxhbmUsIGNydGMpOworCQlpZiAoc3RhdGUtPnZpc2libGUpIHsKKwkJCWJvb2wg d2FzX2VuYWJsZWQgPSBpbnRlbF9jcnRjLT5wcmltYXJ5X2VuYWJsZWQ7CiAKKwkJCS8qIEZJWE1F OiBraWxsIHRoaXMgZmFzdGJvb3QgaGFjayAqLworCQkJaW50ZWxfdXBkYXRlX3BpcGVfc2l6ZShp bnRlbF9jcnRjKTsKIAotCQlpZiAocGxhbmUtPmZiICE9IGZiKQotCQkJaWYgKHBsYW5lLT5mYikK LQkJCQlpbnRlbF91bnBpbl9mYl9vYmoob2xkX29iaik7CisJCQlpbnRlbF9jcnRjLT5wcmltYXJ5 X2VuYWJsZWQgPSB0cnVlOwogCi0JCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwor CQkJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3ByaW1hcnlfcGxhbmUoY3J0YywgcGxhbmUtPmZi LAorCQkJCQljcnRjLT54LCBjcnRjLT55KTsKIAotCX0gZWxzZSB7Ci0JCWlmIChpbnRlbF9jcnRj ICYmIGludGVsX2NydGMtPmFjdGl2ZSAmJgotCQkgICAgaW50ZWxfY3J0Yy0+cHJpbWFyeV9lbmFi bGVkKSB7CiAJCQkvKgotCQkJICogRkJDIGRvZXMgbm90IHdvcmsgb24gc29tZSBwbGF0Zm9ybXMg Zm9yIHJvdGF0ZWQKLQkJCSAqIHBsYW5lcywgc28gZGlzYWJsZSBpdCB3aGVuIHJvdGF0aW9uIGlz IG5vdCAwIGFuZAotCQkJICogdXBkYXRlIGl0IHdoZW4gcm90YXRpb24gaXMgc2V0IGJhY2sgdG8g MC4KLQkJCSAqCi0JCQkgKiBGSVhNRTogVGhpcyBpcyByZWR1bmRhbnQgd2l0aCB0aGUgZmJjIHVw ZGF0ZSBkb25lIGluCi0JCQkgKiB0aGUgcHJpbWFyeSBwbGFuZSBlbmFibGUgZnVuY3Rpb24gZXhj ZXB0IHRoYXQgdGhhdAotCQkJICogb25lIGlzIGRvbmUgdG9vIGxhdGUuIFdlIGV2ZW50dWFsbHkg bmVlZCB0byB1bmlmeQotCQkJICogdGhpcy4KKwkJCSAqIEJEVyBzaWduYWxzIGZsaXAgZG9uZSBp bW1lZGlhdGVseSBpZiB0aGUgcGxhbmUKKwkJCSAqIGlzIGRpc2FibGVkLCBldmVuIGlmIHRoZSBw bGFuZSBlbmFibGUgaXMgYWxyZWFkeQorCQkJICogYXJtZWQgdG8gb2NjdXIgYXQgdGhlIG5leHQg dmJsYW5rIDooCiAJCQkgKi8KLQkJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA0ICYmICFJ U19HNFgoZGV2KSAmJgotCQkJICAgIGRldl9wcml2LT5mYmMucGxhbmUgPT0gaW50ZWxfY3J0Yy0+ cGxhbmUgJiYKLQkJCSAgICBpbnRlbF9wbGFuZS0+cm90YXRpb24gIT0gQklUKERSTV9ST1RBVEVf MCkpIHsKLQkJCQlpbnRlbF9kaXNhYmxlX2ZiYyhkZXYpOwotCQkJfQorCQkJaWYgKElTX0JST0FE V0VMTChkZXYpICYmICF3YXNfZW5hYmxlZCkKKwkJCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2 LCBpbnRlbF9jcnRjLT5waXBlKTsKKwkJfSBlbHNlIHsKKwkJCS8qCisJCQkgKiBJZiBjbGlwcGlu ZyByZXN1bHRzIGluIGEgbm9uLXZpc2libGUgcHJpbWFyeSBwbGFuZSwKKwkJCSAqIHdlJ2xsIGRp c2FibGUgdGhlIHByaW1hcnkgcGxhbmUuICBOb3RlIHRoYXQgdGhpcyBpcworCQkJICogYSBiaXQg ZGlmZmVyZW50IHRoYW4gd2hhdCBoYXBwZW5zIGlmIHVzZXJzcGFjZQorCQkJICogZXhwbGljaXRs eSBkaXNhYmxlcyB0aGUgcGxhbmUgYnkgcGFzc2luZyBmYj0wCisJCQkgKiBiZWNhdXNlIHBsYW5l LT5mYiBzdGlsbCBnZXRzIHNldCBhbmQgcGlubmVkLgorCQkJICovCisJCQlpbnRlbF9kaXNhYmxl X3ByaW1hcnlfaHdfcGxhbmUocGxhbmUsIGNydGMpOwogCQl9Ci0JCXJldCA9IGludGVsX3BpcGVf c2V0X2Jhc2UoY3J0Yywgc3JjLT54MSwgc3JjLT55MSwgZmIpOwotCQlpZiAocmV0KQotCQkJcmV0 dXJuIHJldDsKIAotCQlpZiAoIWludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCkKLQkJCWludGVs X2VuYWJsZV9wcmltYXJ5X2h3X3BsYW5lKHBsYW5lLCBjcnRjKTsKKwkJaW50ZWxfZnJvbnRidWZm ZXJfZmxpcChkZXYsIElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSkpOworCisJCW11dGV4 X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwkJaW50ZWxfdXBkYXRlX2ZiYyhkZXYpOworCQlt dXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAl9CiAKLQlpbnRlbF9wbGFuZS0+Y3J0 Y194ID0gc3RhdGUtPm9yaWdfZHN0LngxOwotCWludGVsX3BsYW5lLT5jcnRjX3kgPSBzdGF0ZS0+ b3JpZ19kc3QueTE7Ci0JaW50ZWxfcGxhbmUtPmNydGNfdyA9IGRybV9yZWN0X3dpZHRoKCZzdGF0 ZS0+b3JpZ19kc3QpOwotCWludGVsX3BsYW5lLT5jcnRjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnN0 YXRlLT5vcmlnX2RzdCk7Ci0JaW50ZWxfcGxhbmUtPnNyY194ID0gc3RhdGUtPm9yaWdfc3JjLngx OwotCWludGVsX3BsYW5lLT5zcmNfeSA9IHN0YXRlLT5vcmlnX3NyYy55MTsKLQlpbnRlbF9wbGFu ZS0+c3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPm9yaWdfc3JjKTsKLQlpbnRlbF9wbGFu ZS0+c3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnN0YXRlLT5vcmlnX3NyYyk7Ci0JaW50ZWxfcGxh bmUtPm9iaiA9IG9iajsKKwlpZiAob2xkX2ZiICYmIG9sZF9mYiAhPSBmYikgeworCQlpZiAoaW50 ZWxfY3J0Yy0+YWN0aXZlKQorCQkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgaW50ZWxfY3J0 Yy0+cGlwZSk7CisKKwkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCQlpbnRlbF91 bnBpbl9mYl9vYmoob2xkX29iaik7CisJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OworCX0KIAogCXJldHVybiAwOwogfQotLSAKMS45LjMKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==