From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 04/25] drm/i915/fbc: introduce struct intel_fbc_reg_params Date: Tue, 19 Jan 2016 11:35:37 -0200 Message-ID: <1453210558-7875-5-git-send-email-paulo.r.zanoni@intel.com> References: <1453210558-7875-1-git-send-email-paulo.r.zanoni@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 ESMTP id 0EB886E741 for ; Tue, 19 Jan 2016 05:36:26 -0800 (PST) In-Reply-To: <1453210558-7875-1-git-send-email-paulo.r.zanoni@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 VGhlIGVhcmx5IHJldHVybiBpbnNpZGUgX19pbnRlbF9mYmNfdXBkYXRlIGRvZXMgbm90IGNvbXBs ZXRlbHkgY2hlY2sKYWxsIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYWZmZWN0IHRoZSBGQkMgcmVnaXN0 ZXIgdmFsdWVzLiBGb3IgZXhhbXBsZSwKd2UgY3VycmVudGx5IGxhY2sgbG9va2luZyBhdCBjcnRj LT5hZGp1c3RlZF95IChmb3IgdGhlIGZlbmNlIFkgb2Zmc2V0KQphbmQgYWxsIHRoZSBwYXJhbWV0 ZXJzIHRoYXQgYWZmZWN0IHRoZSBDRkIgc2l6ZSAoZm9yIGk4eHgpLgoKSW5zdGVhZCBvZiBqdXN0 IGFkZGluZyB0aGUgbWlzc2luZyBwYXJhbWV0ZXJzIHRvIHRoZSBjaGVjayBhbmQgaG9waW5nCnRo YXQgYW55IGNoYW5nZXMgdG8gdGhlIGZiY19hY3RpdmF0ZSBmdW5jdGlvbnMgYWxzbyBjb21lIHdp dGggYQptYXRjaGluZyBjaGFuZ2UgdG8gdGhlIF9faW50ZWxfZmJjX3VwZGF0ZSBjaGVjaywgaW50 cm9kdWNlIGEgbmV3CnN0cnVjdHVyZSB3aGVyZSB3ZSBzdG9yZSB0aGVzZSBwYXJhbWV0ZXJzIGFu ZCB1c2UgdGhlIHN0cnVjdHVyZSBhdCB0aGUKZmJjX2FjdGl2YXRlIGZ1bmN0aW9uLiBPZiBjb3Vy c2UsIGl0J3Mgc3RpbGwgcG9zc2libGUgdG8gYWNjZXNzCmV2ZXJ5dGhpbmcgZnJvbSBkZXZfcHJp diBpbiB0aG9zZSBmdW5jdGlvbnMsIGJ1dCBJTUhPIHRoZSBuZXcgY29kZQp3aWxsIGJlIGhhcmRl ciB0byBicmVhay4KClNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlA aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggIHwgIDIyICsr KysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jIHwgMTMxICsrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRp b25zKCspLCA2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAzMzIx N2E0Li5hYTljMzVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTkwOSwxMSArOTA5LDkg QEAgc3RydWN0IGk5MTVfZmJjIHsKIAkgKiBpdCdzIHRoZSBvdXRlciBsb2NrIHdoZW4gb3Zlcmxh cHBpbmcgd2l0aCBzdG9sZW5fbG9jay4gKi8KIAlzdHJ1Y3QgbXV0ZXggbG9jazsKIAl1bnNpZ25l ZCB0aHJlc2hvbGQ7Ci0JdW5zaWduZWQgaW50IGZiX2lkOwogCXVuc2lnbmVkIGludCBwb3NzaWJs ZV9mcmFtZWJ1ZmZlcl9iaXRzOwogCXVuc2lnbmVkIGludCBidXN5X2JpdHM7CiAJc3RydWN0IGlu dGVsX2NydGMgKmNydGM7Ci0JaW50IHk7CiAKIAlzdHJ1Y3QgZHJtX21tX25vZGUgY29tcHJlc3Nl ZF9mYjsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKmNvbXByZXNzZWRfbGxiOwpAQCAtOTIzLDYgKzky MSwyNCBAQCBzdHJ1Y3QgaTkxNV9mYmMgewogCWJvb2wgZW5hYmxlZDsKIAlib29sIGFjdGl2ZTsK IAorCXN0cnVjdCBpbnRlbF9mYmNfcmVnX3BhcmFtcyB7CisJCXN0cnVjdCB7CisJCQllbnVtIHBp cGUgcGlwZTsKKwkJCWVudW0gcGxhbmUgcGxhbmU7CisJCQl1bnNpZ25lZCBpbnQgZmVuY2VfeV9v ZmZzZXQ7CisJCX0gY3J0YzsKKworCQlzdHJ1Y3QgeworCQkJdTY0IGdndHRfb2Zmc2V0OworCQkJ dWludDMyX3QgaWQ7CisJCQl1aW50MzJfdCBwaXhlbF9mb3JtYXQ7CisJCQl1bnNpZ25lZCBpbnQg c3RyaWRlOworCQkJaW50IGZlbmNlX3JlZzsKKwkJfSBmYjsKKworCQlpbnQgY2ZiX3NpemU7CisJ fSBwYXJhbXM7CisKIAlzdHJ1Y3QgaW50ZWxfZmJjX3dvcmsgewogCQlib29sIHNjaGVkdWxlZDsK IAkJdTMyIHNjaGVkdWxlZF92Ymxhbms7CkBAIC05MzMsNyArOTQ5LDcgQEAgc3RydWN0IGk5MTVf ZmJjIHsKIAljb25zdCBjaGFyICpub19mYmNfcmVhc29uOwogCiAJYm9vbCAoKmlzX2FjdGl2ZSko c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLQl2b2lkICgqYWN0aXZhdGUpKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKKwl2b2lkICgqYWN0aXZhdGUpKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7CiAJdm9pZCAoKmRlYWN0aXZhdGUpKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCmluZGV4 IGYzY2M2YTMuLmY0ZWQyYjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCkBAIC0xMzAsMTEg KzEzMCw5IEBAIHN0YXRpYyB2b2lkIGk4eHhfZmJjX2RlYWN0aXZhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogCX0KIH0KIAotc3RhdGljIHZvaWQgaTh4eF9mYmNfYWN0aXZh dGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCitzdGF0aWMgdm9pZCBpOHh4X2ZiY19hY3RpdmF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwotCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYjsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKKwlzdHJ1Y3QgaW50 ZWxfZmJjX3JlZ19wYXJhbXMgKnBhcmFtcyA9ICZkZXZfcHJpdi0+ZmJjLnBhcmFtczsKIAlpbnQg Y2ZiX3BpdGNoOwogCWludCBpOwogCXUzMiBmYmNfY3RsOwpAQCAtMTQyLDkgKzE0MCw5IEBAIHN0 YXRpYyB2b2lkIGk4eHhfZmJjX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCWRl dl9wcml2LT5mYmMuYWN0aXZlID0gdHJ1ZTsKIAogCS8qIE5vdGU6IGZiYy50aHJlc2hvbGQgPT0g MSBmb3IgaTh4eCAqLwotCWNmYl9waXRjaCA9IGludGVsX2ZiY19jYWxjdWxhdGVfY2ZiX3NpemUo Y3J0YywgZmIpIC8gRkJDX0xMX1NJWkU7Ci0JaWYgKGZiLT5waXRjaGVzWzBdIDwgY2ZiX3BpdGNo KQotCQljZmJfcGl0Y2ggPSBmYi0+cGl0Y2hlc1swXTsKKwljZmJfcGl0Y2ggPSBwYXJhbXMtPmNm Yl9zaXplIC8gRkJDX0xMX1NJWkU7CisJaWYgKHBhcmFtcy0+ZmIuc3RyaWRlIDwgY2ZiX3BpdGNo KQorCQljZmJfcGl0Y2ggPSBwYXJhbXMtPmZiLnN0cmlkZTsKIAogCS8qIEZCQ19DVEwgd2FudHMg MzJCIG9yIDY0QiB1bml0cyAqLwogCWlmIChJU19HRU4yKGRldl9wcml2KSkKQEAgLTE2MSw5ICsx NTksOSBAQCBzdGF0aWMgdm9pZCBpOHh4X2ZiY19hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKIAogCQkvKiBTZXQgaXQgdXAuLi4gKi8KIAkJZmJjX2N0bDIgPSBGQkNfQ1RMX0ZFTkNF X0RCTCB8IEZCQ19DVExfSURMRV9JTU0gfCBGQkNfQ1RMX0NQVV9GRU5DRTsKLQkJZmJjX2N0bDIg fD0gRkJDX0NUTF9QTEFORShjcnRjLT5wbGFuZSk7CisJCWZiY19jdGwyIHw9IEZCQ19DVExfUExB TkUocGFyYW1zLT5jcnRjLnBsYW5lKTsKIAkJSTkxNV9XUklURShGQkNfQ09OVFJPTDIsIGZiY19j dGwyKTsKLQkJSTkxNV9XUklURShGQkNfRkVOQ0VfT0ZGLCBnZXRfY3J0Y19mZW5jZV95X29mZnNl dChjcnRjKSk7CisJCUk5MTVfV1JJVEUoRkJDX0ZFTkNFX09GRiwgcGFyYW1zLT5jcnRjLmZlbmNl X3lfb2Zmc2V0KTsKIAl9CiAKIAkvKiBlbmFibGUgaXQuLi4gKi8KQEAgLTE3Myw3ICsxNzEsNyBA QCBzdGF0aWMgdm9pZCBpOHh4X2ZiY19hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykK IAlpZiAoSVNfSTk0NUdNKGRldl9wcml2KSkKIAkJZmJjX2N0bCB8PSBGQkNfQ1RMX0MzX0lETEU7 IC8qIDk0NSBuZWVkcyBzcGVjaWFsIFNSIGhhbmRsaW5nICovCiAJZmJjX2N0bCB8PSAoY2ZiX3Bp dGNoICYgMHhmZikgPDwgRkJDX0NUTF9TVFJJREVfU0hJRlQ7Ci0JZmJjX2N0bCB8PSBvYmotPmZl bmNlX3JlZzsKKwlmYmNfY3RsIHw9IHBhcmFtcy0+ZmIuZmVuY2VfcmVnOwogCUk5MTVfV1JJVEUo RkJDX0NPTlRST0wsIGZiY19jdGwpOwogfQogCkBAIC0xODIsMjMgKzE4MCwyMSBAQCBzdGF0aWMg Ym9vbCBpOHh4X2ZiY19pc19hY3RpdmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCXJldHVybiBJOTE1X1JFQUQoRkJDX0NPTlRST0wpICYgRkJDX0NUTF9FTjsKIH0KIAotc3Rh dGljIHZvaWQgZzR4X2ZiY19hY3RpdmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3N0YXRp YyB2b2lkIGc0eF9mYmNfYWN0aXZhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmJhc2UuZGV2 LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2Uu cHJpbWFyeS0+ZmI7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2Zi X29iaihmYik7CisJc3RydWN0IGludGVsX2ZiY19yZWdfcGFyYW1zICpwYXJhbXMgPSAmZGV2X3By aXYtPmZiYy5wYXJhbXM7CiAJdTMyIGRwZmNfY3RsOwogCiAJZGV2X3ByaXYtPmZiYy5hY3RpdmUg PSB0cnVlOwogCi0JZHBmY19jdGwgPSBEUEZDX0NUTF9QTEFORShjcnRjLT5wbGFuZSkgfCBEUEZD X1NSX0VOOwotCWlmIChkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKSA9 PSAyKQorCWRwZmNfY3RsID0gRFBGQ19DVExfUExBTkUocGFyYW1zLT5jcnRjLnBsYW5lKSB8IERQ RkNfU1JfRU47CisJaWYgKGRybV9mb3JtYXRfcGxhbmVfY3BwKHBhcmFtcy0+ZmIucGl4ZWxfZm9y bWF0LCAwKSA9PSAyKQogCQlkcGZjX2N0bCB8PSBEUEZDX0NUTF9MSU1JVF8yWDsKIAllbHNlCiAJ CWRwZmNfY3RsIHw9IERQRkNfQ1RMX0xJTUlUXzFYOwotCWRwZmNfY3RsIHw9IERQRkNfQ1RMX0ZF TkNFX0VOIHwgb2JqLT5mZW5jZV9yZWc7CisJZHBmY19jdGwgfD0gRFBGQ19DVExfRkVOQ0VfRU4g fCBwYXJhbXMtPmZiLmZlbmNlX3JlZzsKIAotCUk5MTVfV1JJVEUoRFBGQ19GRU5DRV9ZT0ZGLCBn ZXRfY3J0Y19mZW5jZV95X29mZnNldChjcnRjKSk7CisJSTkxNV9XUklURShEUEZDX0ZFTkNFX1lP RkYsIHBhcmFtcy0+Y3J0Yy5mZW5jZV95X29mZnNldCk7CiAKIAkvKiBlbmFibGUgaXQuLi4gKi8K IAlJOTE1X1dSSVRFKERQRkNfQ09OVFJPTCwgZHBmY19jdGwgfCBEUEZDX0NUTF9FTik7CkBAIC0y MzAsMTkgKzIyNiwxNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfcmVjb21wcmVzcyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJUE9TVElOR19SRUFEKE1TR19GQkNfUkVORF9T VEFURSk7CiB9CiAKLXN0YXRpYyB2b2lkIGlsa19mYmNfYWN0aXZhdGUoc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCitzdGF0aWMgdm9pZCBpbGtfZmJjX2FjdGl2YXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBjcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCXN0cnVjdCBpbnRlbF9mYmNfcmVnX3BhcmFtcyAq cGFyYW1zID0gJmRldl9wcml2LT5mYmMucGFyYW1zOwogCXUzMiBkcGZjX2N0bDsKIAlpbnQgdGhy ZXNob2xkID0gZGV2X3ByaXYtPmZiYy50aHJlc2hvbGQ7Ci0JdW5zaWduZWQgaW50IHlfb2Zmc2V0 OwogCiAJZGV2X3ByaXYtPmZiYy5hY3RpdmUgPSB0cnVlOwogCi0JZHBmY19jdGwgPSBEUEZDX0NU TF9QTEFORShjcnRjLT5wbGFuZSk7Ci0JaWYgKGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDApID09IDIpCisJZHBmY19jdGwgPSBEUEZDX0NUTF9QTEFORShwYXJhbXMtPmNy dGMucGxhbmUpOworCWlmIChkcm1fZm9ybWF0X3BsYW5lX2NwcChwYXJhbXMtPmZiLnBpeGVsX2Zv cm1hdCwgMCkgPT0gMikKIAkJdGhyZXNob2xkKys7CiAKIAlzd2l0Y2ggKHRocmVzaG9sZCkgewpA QCAtMjU5LDE4ICsyNTIsMTcgQEAgc3RhdGljIHZvaWQgaWxrX2ZiY19hY3RpdmF0ZShzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKIAl9CiAJZHBmY19jdGwgfD0gRFBGQ19DVExfRkVOQ0VfRU47CiAJ aWYgKElTX0dFTjUoZGV2X3ByaXYpKQotCQlkcGZjX2N0bCB8PSBvYmotPmZlbmNlX3JlZzsKKwkJ ZHBmY19jdGwgfD0gcGFyYW1zLT5mYi5mZW5jZV9yZWc7CiAKLQl5X29mZnNldCA9IGdldF9jcnRj X2ZlbmNlX3lfb2Zmc2V0KGNydGMpOwotCUk5MTVfV1JJVEUoSUxLX0RQRkNfRkVOQ0VfWU9GRiwg eV9vZmZzZXQpOwotCUk5MTVfV1JJVEUoSUxLX0ZCQ19SVF9CQVNFLCBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQob2JqKSB8IElMS19GQkNfUlRfVkFMSUQpOworCUk5MTVfV1JJVEUoSUxLX0RQRkNf RkVOQ0VfWU9GRiwgcGFyYW1zLT5jcnRjLmZlbmNlX3lfb2Zmc2V0KTsKKwlJOTE1X1dSSVRFKElM S19GQkNfUlRfQkFTRSwgcGFyYW1zLT5mYi5nZ3R0X29mZnNldCB8IElMS19GQkNfUlRfVkFMSUQp OwogCS8qIGVuYWJsZSBpdC4uLiAqLwogCUk5MTVfV1JJVEUoSUxLX0RQRkNfQ09OVFJPTCwgZHBm Y19jdGwgfCBEUEZDX0NUTF9FTik7CiAKIAlpZiAoSVNfR0VONihkZXZfcHJpdikpIHsKIAkJSTkx NV9XUklURShTTkJfRFBGQ19DVExfU0EsCi0JCQkgICBTTkJfQ1BVX0ZFTkNFX0VOQUJMRSB8IG9i ai0+ZmVuY2VfcmVnKTsKLQkJSTkxNV9XUklURShEUEZDX0NQVV9GRU5DRV9PRkZTRVQsIHlfb2Zm c2V0KTsKKwkJCSAgIFNOQl9DUFVfRkVOQ0VfRU5BQkxFIHwgcGFyYW1zLT5mYi5mZW5jZV9yZWcp OworCQlJOTE1X1dSSVRFKERQRkNfQ1BVX0ZFTkNFX09GRlNFVCwgcGFyYW1zLT5jcnRjLmZlbmNl X3lfb2Zmc2V0KTsKIAl9CiAKIAlpbnRlbF9mYmNfcmVjb21wcmVzcyhkZXZfcHJpdik7CkBAIC0y OTUsMTEgKzI4Nyw5IEBAIHN0YXRpYyBib29sIGlsa19mYmNfaXNfYWN0aXZlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gSTkxNV9SRUFEKElMS19EUEZDX0NPTlRS T0wpICYgRFBGQ19DVExfRU47CiB9CiAKLXN0YXRpYyB2b2lkIGdlbjdfZmJjX2FjdGl2YXRlKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQorc3RhdGljIHZvaWQgZ2VuN19mYmNfYWN0aXZhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGNydGMtPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiA9IGNydGMtPmJhc2UucHJpbWFyeS0+ZmI7Ci0Jc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7CisJc3RydWN0IGludGVsX2Zi Y19yZWdfcGFyYW1zICpwYXJhbXMgPSAmZGV2X3ByaXYtPmZiYy5wYXJhbXM7CiAJdTMyIGRwZmNf Y3RsOwogCWludCB0aHJlc2hvbGQgPSBkZXZfcHJpdi0+ZmJjLnRocmVzaG9sZDsKIApAQCAtMzA3 LDkgKzI5Nyw5IEBAIHN0YXRpYyB2b2lkIGdlbjdfZmJjX2FjdGl2YXRlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQogCiAJZHBmY19jdGwgPSAwOwogCWlmIChJU19JVllCUklER0UoZGV2X3ByaXYp KQotCQlkcGZjX2N0bCB8PSBJVkJfRFBGQ19DVExfUExBTkUoY3J0Yy0+cGxhbmUpOworCQlkcGZj X2N0bCB8PSBJVkJfRFBGQ19DVExfUExBTkUocGFyYW1zLT5jcnRjLnBsYW5lKTsKIAotCWlmIChk cm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKSA9PSAyKQorCWlmIChkcm1f Zm9ybWF0X3BsYW5lX2NwcChwYXJhbXMtPmZiLnBpeGVsX2Zvcm1hdCwgMCkgPT0gMikKIAkJdGhy ZXNob2xkKys7CiAKIAlzd2l0Y2ggKHRocmVzaG9sZCkgewpAQCAtMzM3LDE2ICszMjcsMTYgQEAg c3RhdGljIHZvaWQgZ2VuN19mYmNfYWN0aXZhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJ CQkgICBJTEtfRkJDUV9ESVMpOwogCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwg SVNfQlJPQURXRUxMKGRldl9wcml2KSkgewogCQkvKiBXYUZiY0FzeW5jaEZsaXBEaXNhYmxlRmJj UXVldWU6aHN3LGJkdyAqLwotCQlJOTE1X1dSSVRFKENISUNLRU5fUElQRVNMXzEoY3J0Yy0+cGlw ZSksCi0JCQkgICBJOTE1X1JFQUQoQ0hJQ0tFTl9QSVBFU0xfMShjcnRjLT5waXBlKSkgfAorCQlJ OTE1X1dSSVRFKENISUNLRU5fUElQRVNMXzEocGFyYW1zLT5jcnRjLnBpcGUpLAorCQkJICAgSTkx NV9SRUFEKENISUNLRU5fUElQRVNMXzEocGFyYW1zLT5jcnRjLnBpcGUpKSB8CiAJCQkgICBIU1df RkJDUV9ESVMpOwogCX0KIAogCUk5MTVfV1JJVEUoSUxLX0RQRkNfQ09OVFJPTCwgZHBmY19jdGwg fCBEUEZDX0NUTF9FTik7CiAKIAlJOTE1X1dSSVRFKFNOQl9EUEZDX0NUTF9TQSwKLQkJICAgU05C X0NQVV9GRU5DRV9FTkFCTEUgfCBvYmotPmZlbmNlX3JlZyk7Ci0JSTkxNV9XUklURShEUEZDX0NQ VV9GRU5DRV9PRkZTRVQsIGdldF9jcnRjX2ZlbmNlX3lfb2Zmc2V0KGNydGMpKTsKKwkJICAgU05C X0NQVV9GRU5DRV9FTkFCTEUgfCBwYXJhbXMtPmZiLmZlbmNlX3JlZyk7CisJSTkxNV9XUklURShE UEZDX0NQVV9GRU5DRV9PRkZTRVQsIHBhcmFtcy0+Y3J0Yy5mZW5jZV95X29mZnNldCk7CiAKIAlp bnRlbF9mYmNfcmVjb21wcmVzcyhkZXZfcHJpdik7CiB9CkBAIC0zNjQsMTcgKzM1NCw2IEBAIGJv b2wgaW50ZWxfZmJjX2lzX2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJcmV0dXJuIGRldl9wcml2LT5mYmMuYWN0aXZlOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9m YmNfYWN0aXZhdGUoY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCi17Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZmItPmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSBkZXZfcHJpdi0+ZmJjLmNydGM7Ci0KLQlkZXZfcHJpdi0+ ZmJjLmFjdGl2YXRlKGNydGMpOwotCi0JZGV2X3ByaXYtPmZiYy5mYl9pZCA9IGZiLT5iYXNlLmlk OwotCWRldl9wcml2LT5mYmMueSA9IGNydGMtPmJhc2UueTsKLX0KLQogc3RhdGljIHZvaWQgaW50 ZWxfZmJjX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KQEAgLTQyMiw3ICs0MDEsNyBAQCByZXRyeToKIAl9 CiAKIAlpZiAoY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYiA9PSB3b3JrLT5mYikKLQkJaW50ZWxfZmJj X2FjdGl2YXRlKHdvcmstPmZiKTsKKwkJZGV2X3ByaXYtPmZiYy5hY3RpdmF0ZShkZXZfcHJpdik7 CiAKIG91dF9wdXQ6CiAJZHJtX2NydGNfdmJsYW5rX3B1dCgmY3J0Yy0+YmFzZSk7CkBAIC04NTMs NiArODMyLDQyIEBAIHN0YXRpYyBib29sIGludGVsX2ZiY19jYW5fZW5hYmxlKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKQogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCBpbnRlbF9mYmNf Z2V0X3JlZ19wYXJhbXMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkJICAgICBzdHJ1Y3Qg aW50ZWxfZmJjX3JlZ19wYXJhbXMgKnBhcmFtcykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5iYXNlLnByaW1hcnktPmZiOworCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIpOworCisJLyogU2luY2UgYWxsIG91 ciBmaWVsZHMgYXJlIGludGVnZXIgdHlwZXMsIHVzZSBtZW1zZXQgaGVyZSBzbyB0aGUKKwkgKiBj b21wYXJpc29uIGZ1bmN0aW9uIGNhbiByZWx5IG9uIG1lbWNtcCBiZWNhdXNlIHRoZSBwYWRkaW5n IHdpbGwgYmUKKwkgKiB6ZXJvLiAqLworCW1lbXNldChwYXJhbXMsIDAsIHNpemVvZigqcGFyYW1z KSk7CisKKwlwYXJhbXMtPmNydGMucGlwZSA9IGNydGMtPnBpcGU7CisJcGFyYW1zLT5jcnRjLnBs YW5lID0gY3J0Yy0+cGxhbmU7CisJcGFyYW1zLT5jcnRjLmZlbmNlX3lfb2Zmc2V0ID0gZ2V0X2Ny dGNfZmVuY2VfeV9vZmZzZXQoY3J0Yyk7CisKKwlwYXJhbXMtPmZiLmlkID0gZmItPmJhc2UuaWQ7 CisJcGFyYW1zLT5mYi5waXhlbF9mb3JtYXQgPSBmYi0+cGl4ZWxfZm9ybWF0OworCXBhcmFtcy0+ ZmIuc3RyaWRlID0gZmItPnBpdGNoZXNbMF07CisJcGFyYW1zLT5mYi5mZW5jZV9yZWcgPSBvYmot PmZlbmNlX3JlZzsKKworCXBhcmFtcy0+Y2ZiX3NpemUgPSBpbnRlbF9mYmNfY2FsY3VsYXRlX2Nm Yl9zaXplKGNydGMsIGZiKTsKKworCS8qIEZJWE1FOiBXZSBsYWNrIHRoZSBwcm9wZXIgbG9ja2lu ZyBoZXJlLCBzbyBvbmx5IHJ1biB0aGlzIG9uIHRoZQorCSAqIHBsYXRmb3JtcyB0aGF0IG5lZWQu ICovCisJaWYgKGRldl9wcml2LT5mYmMuYWN0aXZhdGUgPT0gaWxrX2ZiY19hY3RpdmF0ZSkKKwkJ cGFyYW1zLT5mYi5nZ3R0X29mZnNldCA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopOwor fQorCitzdGF0aWMgYm9vbCBpbnRlbF9mYmNfcmVnX3BhcmFtc19lcXVhbChzdHJ1Y3QgaW50ZWxf ZmJjX3JlZ19wYXJhbXMgKnBhcmFtczEsCisJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9mYmNfcmVn X3BhcmFtcyAqcGFyYW1zMikKK3sKKwkvKiBXZSBjYW4gdXNlIHRoaXMgc2luY2UgaW50ZWxfZmJj X2dldF9yZWdfcGFyYW1zKCkgZG9lcyBhIG1lbXNldC4gKi8KKwlyZXR1cm4gbWVtY21wKHBhcmFt czEsIHBhcmFtczIsIHNpemVvZigqcGFyYW1zMSkpID09IDA7Cit9CisKIC8qKgogICogX19pbnRl bF9mYmNfdXBkYXRlIC0gYWN0aXZhdGUvZGVhY3RpdmF0ZSBGQkMgYXMgbmVlZGVkLCB1bmxvY2tl ZAogICogQGNydGM6IHRoZSBDUlRDIHRoYXQgdHJpZ2dlcmVkIHRoZSB1cGRhdGUKQEAgLTg2Myw2 ICs4NzgsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9mYmNfY2FuX2VuYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKIHN0YXRpYyB2b2lkIF9faW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRj LT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGludGVsX2ZiY19yZWdfcGFyYW1zIG9s ZF9wYXJhbXM7CiAKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2LT5mYmMubG9j aykpOwogCkBAIC04NzcsMTUgKzg5MywxNiBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2ZiY191cGRh dGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJaWYgKCFpbnRlbF9mYmNfY2FuX2FjdGl2YXRl KGNydGMpKQogCQlnb3RvIG91dF9kaXNhYmxlOwogCisJb2xkX3BhcmFtcyA9IGRldl9wcml2LT5m YmMucGFyYW1zOworCWludGVsX2ZiY19nZXRfcmVnX3BhcmFtcyhjcnRjLCAmZGV2X3ByaXYtPmZi Yy5wYXJhbXMpOworCiAJLyogSWYgdGhlIHNjYW5vdXQgaGFzIG5vdCBjaGFuZ2VkLCBkb24ndCBt b2RpZnkgdGhlIEZCQyBzZXR0aW5ncy4KIAkgKiBOb3RlIHRoYXQgd2UgbWFrZSB0aGUgZnVuZGFt ZW50YWwgYXNzdW1wdGlvbiB0aGF0IHRoZSBmYi0+b2JqCiAJICogY2Fubm90IGJlIHVucGlubmVk IChhbmQgaGF2ZSBpdHMgR1RUIG9mZnNldCBhbmQgZmVuY2UgcmV2b2tlZCkKIAkgKiB3aXRob3V0 IGZpcnN0IGJlaW5nIGRlY291cGxlZCBmcm9tIHRoZSBzY2Fub3V0IGFuZCBGQkMgZGlzYWJsZWQu CiAJICovCi0JaWYgKGRldl9wcml2LT5mYmMuY3J0YyA9PSBjcnRjICYmCi0JICAgIGRldl9wcml2 LT5mYmMuZmJfaWQgPT0gY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYi0+YmFzZS5pZCAmJgotCSAgICBk ZXZfcHJpdi0+ZmJjLnkgPT0gY3J0Yy0+YmFzZS55ICYmCi0JICAgIGRldl9wcml2LT5mYmMuYWN0 aXZlKQorCWlmIChkZXZfcHJpdi0+ZmJjLmFjdGl2ZSAmJgorCSAgICBpbnRlbF9mYmNfcmVnX3Bh cmFtc19lcXVhbCgmb2xkX3BhcmFtcywgJmRldl9wcml2LT5mYmMucGFyYW1zKSkKIAkJcmV0dXJu OwogCiAJaWYgKGludGVsX2ZiY19pc19hY3RpdmUoZGV2X3ByaXYpKSB7Ci0tIAoyLjYuNAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK