From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville Syrjala Subject: [PATCH 1/3] drm/i915: Add enum aux_ch and clean up the aux init to use it Date: Tue, 20 Feb 2018 19:05:22 +0200 Message-ID: <20180220170524.12303-1-ville.syrjala@linux.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 ESMTPS id BF46B6E90C for ; Tue, 20 Feb 2018 17:05:27 +0000 (UTC) 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 RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClNp bmNlIHdlIG5vIGxvbmdlciBoYXZlIGEgMToxIGNvcnJlc3BvbmRlbmNlIGJldHdlZW4gcG9ydHMg YW5kIEFVWApjaGFubmVscywgbGV0J3MgZ2l2ZSBBVVggY2hhbm5lbHMgdGhlaXIgb3duIGVudW0u IE1ha2VzIGl0IGVhc2llcgp0byB0ZWxsIHRoZSBhcHBsZXMgZnJvbSB0aGUgb3JhbmdlcywgYW5k IHdlIGdldCByaWQgb2YgdGhlCnBvcnQgRSBBVVggcG93ZXIgZG9tYWluIEZJWE1FIHNpbmNlIHdl IG5vdyBkZXJpdmUgdGhlIHBvd2VyIGRvbWFpbgpmcm9tIHRoZSBhY3R1YWwgQVVYIENILgoKdjI6 IFJlYmFzZSBkdWUgdG8gQVVYIEYKClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaCAgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmggfCAgMTEgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDI0MCAr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggICAgIHwgICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMo KyksIDEyOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAppbmRleCAxNDEyYWJj YjI3ZDQuLjM5ZDYyNDA4M2ExNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC01MzQ3LDgg KzUzNDcsOCBAQCBlbnVtIHsKICNkZWZpbmUgX0RQRl9BVVhfQ0hfREFUQTQJKGRldl9wcml2LT5p bmZvLmRpc3BsYXlfbW1pb19vZmZzZXQgKyAweDY0NTIwKQogI2RlZmluZSBfRFBGX0FVWF9DSF9E QVRBNQkoZGV2X3ByaXYtPmluZm8uZGlzcGxheV9tbWlvX29mZnNldCArIDB4NjQ1MjQpCiAKLSNk ZWZpbmUgRFBfQVVYX0NIX0NUTChwb3J0KQlfTU1JT19QT1JUKHBvcnQsIF9EUEFfQVVYX0NIX0NU TCwgX0RQQl9BVVhfQ0hfQ1RMKQotI2RlZmluZSBEUF9BVVhfQ0hfREFUQShwb3J0LCBpKQlfTU1J TyhfUE9SVChwb3J0LCBfRFBBX0FVWF9DSF9EQVRBMSwgX0RQQl9BVVhfQ0hfREFUQTEpICsgKGkp ICogNCkgLyogNSByZWdpc3RlcnMgKi8KKyNkZWZpbmUgRFBfQVVYX0NIX0NUTChhdXhfY2gpCV9N TUlPX1BPUlQoYXV4X2NoLCBfRFBBX0FVWF9DSF9DVEwsIF9EUEJfQVVYX0NIX0NUTCkKKyNkZWZp bmUgRFBfQVVYX0NIX0RBVEEoYXV4X2NoLCBpKQlfTU1JTyhfUE9SVChhdXhfY2gsIF9EUEFfQVVY X0NIX0RBVEExLCBfRFBCX0FVWF9DSF9EQVRBMSkgKyAoaSkgKiA0KSAvKiA1IHJlZ2lzdGVycyAq LwogCiAjZGVmaW5lICAgRFBfQVVYX0NIX0NUTF9TRU5EX0JVU1kJICAgICgxIDw8IDMxKQogI2Rl ZmluZSAgIERQX0FVWF9DSF9DVExfRE9ORQkJICAgICgxIDw8IDMwKQpAQCAtNzg3NSw4ICs3ODc1 LDggQEAgZW51bSB7CiAjZGVmaW5lIF9QQ0hfRFBEX0FVWF9DSF9EQVRBNAkweGU0MzIwCiAjZGVm aW5lIF9QQ0hfRFBEX0FVWF9DSF9EQVRBNQkweGU0MzI0CiAKLSNkZWZpbmUgUENIX0RQX0FVWF9D SF9DVEwocG9ydCkJCV9NTUlPX1BPUlQoKHBvcnQpIC0gUE9SVF9CLCBfUENIX0RQQl9BVVhfQ0hf Q1RMLCBfUENIX0RQQ19BVVhfQ0hfQ1RMKQotI2RlZmluZSBQQ0hfRFBfQVVYX0NIX0RBVEEocG9y dCwgaSkJX01NSU8oX1BPUlQoKHBvcnQpIC0gUE9SVF9CLCBfUENIX0RQQl9BVVhfQ0hfREFUQTEs IF9QQ0hfRFBDX0FVWF9DSF9EQVRBMSkgKyAoaSkgKiA0KSAvKiA1IHJlZ2lzdGVycyAqLworI2Rl ZmluZSBQQ0hfRFBfQVVYX0NIX0NUTChhdXhfY2gpCQlfTU1JT19QT1JUKChhdXhfY2gpIC0gQVVY X0NIX0IsIF9QQ0hfRFBCX0FVWF9DSF9DVEwsIF9QQ0hfRFBDX0FVWF9DSF9DVEwpCisjZGVmaW5l IFBDSF9EUF9BVVhfQ0hfREFUQShhdXhfY2gsIGkpCV9NTUlPKF9QT1JUKChhdXhfY2gpIC0gQVVY X0NIX0IsIF9QQ0hfRFBCX0FVWF9DSF9EQVRBMSwgX1BDSF9EUENfQVVYX0NIX0RBVEExKSArIChp KSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCiAKIC8qIENQVCAqLwogI2RlZmluZSAgUE9SVF9UUkFO U19BX1NFTF9DUFQJMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCmluZGV4IGM0MDQy ZTM0MmY1MC4uZjU3MzNhMjU3NmU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5o CkBAIC0xMzksNiArMTM5LDE3IEBAIGVudW0gZHBpb19waHkgewogCiAjZGVmaW5lIEk5MTVfTlVN X1BIWVNfVkxWIDIKIAorZW51bSBhdXhfY2ggeworCUFVWF9DSF9BLAorCUFVWF9DSF9CLAorCUFV WF9DSF9DLAorCUFVWF9DSF9ELAorCV9BVVhfQ0hfRSwgLyogZG9lcyBub3QgZXhpc3QgKi8KKwlB VVhfQ0hfRiwKK307CisKKyNkZWZpbmUgYXV4X2NoX25hbWUoYSkgKChhKSArICdBJykKKwogZW51 bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiB7CiAJUE9XRVJfRE9NQUlOX1BJUEVfQSwKIAlQ T1dFUl9ET01BSU5fUElQRV9CLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggZjIwYjI1Zjk4 ZTVhLi5lZWI4YTAyNmZkMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMTMzMSwxNzEg KzEzMzEsMTk0IEBAIGludGVsX2RwX2F1eF90cmFuc2ZlcihzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4 LCBzdHJ1Y3QgZHJtX2RwX2F1eF9tc2cgKm1zZykKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMg ZW51bSBwb3J0IGludGVsX2F1eF9wb3J0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKLQkJCQllbnVtIHBvcnQgcG9ydCkKK3N0YXRpYyBlbnVtIGF1eF9jaCBpbnRlbF9hdXhfY2go c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciA9ICZkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2U7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CisJZW51bSBw b3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCWNvbnN0IHN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5m byAqaW5mbyA9CiAJCSZkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF07Ci0JZW51bSBw b3J0IGF1eF9wb3J0OworCWVudW0gYXV4X2NoIGF1eF9jaDsKIAogCWlmICghaW5mby0+YWx0ZXJu YXRlX2F1eF9jaGFubmVsKSB7CisJCWF1eF9jaCA9IChlbnVtIGF1eF9jaCkgcG9ydDsKKwogCQlE Uk1fREVCVUdfS01TKCJ1c2luZyBBVVggJWMgZm9yIHBvcnQgJWMgKHBsYXRmb3JtIGRlZmF1bHQp XG4iLAotCQkJICAgICAgcG9ydF9uYW1lKHBvcnQpLCBwb3J0X25hbWUocG9ydCkpOwotCQlyZXR1 cm4gcG9ydDsKKwkJCSAgICAgIGF1eF9jaF9uYW1lKGF1eF9jaCksIHBvcnRfbmFtZShwb3J0KSk7 CisJCXJldHVybiBhdXhfY2g7CiAJfQogCiAJc3dpdGNoIChpbmZvLT5hbHRlcm5hdGVfYXV4X2No YW5uZWwpIHsKIAljYXNlIERQX0FVWF9BOgotCQlhdXhfcG9ydCA9IFBPUlRfQTsKKwkJYXV4X2No ID0gQVVYX0NIX0E7CiAJCWJyZWFrOwogCWNhc2UgRFBfQVVYX0I6Ci0JCWF1eF9wb3J0ID0gUE9S VF9COworCQlhdXhfY2ggPSBBVVhfQ0hfQjsKIAkJYnJlYWs7CiAJY2FzZSBEUF9BVVhfQzoKLQkJ YXV4X3BvcnQgPSBQT1JUX0M7CisJCWF1eF9jaCA9IEFVWF9DSF9DOwogCQlicmVhazsKIAljYXNl IERQX0FVWF9EOgotCQlhdXhfcG9ydCA9IFBPUlRfRDsKKwkJYXV4X2NoID0gQVVYX0NIX0Q7CiAJ CWJyZWFrOwogCWNhc2UgRFBfQVVYX0Y6Ci0JCWF1eF9wb3J0ID0gUE9SVF9GOworCQlhdXhfY2gg PSBBVVhfQ0hfRjsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJTUlTU0lOR19DQVNFKGluZm8tPmFs dGVybmF0ZV9hdXhfY2hhbm5lbCk7Ci0JCWF1eF9wb3J0ID0gUE9SVF9BOworCQlhdXhfY2ggPSBB VVhfQ0hfQTsKIAkJYnJlYWs7CiAJfQogCiAJRFJNX0RFQlVHX0tNUygidXNpbmcgQVVYICVjIGZv ciBwb3J0ICVjIChWQlQpXG4iLAotCQkgICAgICBwb3J0X25hbWUoYXV4X3BvcnQpLCBwb3J0X25h bWUocG9ydCkpOworCQkgICAgICBhdXhfY2hfbmFtZShhdXhfY2gpLCBwb3J0X25hbWUocG9ydCkp OwogCi0JcmV0dXJuIGF1eF9wb3J0OworCXJldHVybiBhdXhfY2g7Cit9CisKK3N0YXRpYyBlbnVt IGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluCitpbnRlbF9hdXhfcG93ZXJfZG9tYWluKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCit7CisJc3dpdGNoIChpbnRlbF9kcC0+YXV4X2NoKSB7CisJ Y2FzZSBBVVhfQ0hfQToKKwkJcmV0dXJuIFBPV0VSX0RPTUFJTl9BVVhfQTsKKwljYXNlIEFVWF9D SF9COgorCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9COworCWNhc2UgQVVYX0NIX0M6CisJCXJl dHVybiBQT1dFUl9ET01BSU5fQVVYX0M7CisJY2FzZSBBVVhfQ0hfRDoKKwkJcmV0dXJuIFBPV0VS X0RPTUFJTl9BVVhfRDsKKwljYXNlIEFVWF9DSF9GOgorCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FV WF9GOworCWRlZmF1bHQ6CisJCU1JU1NJTkdfQ0FTRShpbnRlbF9kcC0+YXV4X2NoKTsKKwkJcmV0 dXJuIFBPV0VSX0RPTUFJTl9BVVhfQTsKKwl9CiB9CiAKIHN0YXRpYyBpOTE1X3JlZ190IGc0eF9h dXhfY3RsX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICBlbnVt IHBvcnQgcG9ydCkKKwkJCQkgIGVudW0gYXV4X2NoIGF1eF9jaCkKIHsKLQlzd2l0Y2ggKHBvcnQp IHsKLQljYXNlIFBPUlRfQjoKLQljYXNlIFBPUlRfQzoKLQljYXNlIFBPUlRfRDoKLQkJcmV0dXJu IERQX0FVWF9DSF9DVEwocG9ydCk7CisJc3dpdGNoIChhdXhfY2gpIHsKKwljYXNlIEFVWF9DSF9C OgorCWNhc2UgQVVYX0NIX0M6CisJY2FzZSBBVVhfQ0hfRDoKKwkJcmV0dXJuIERQX0FVWF9DSF9D VEwoYXV4X2NoKTsKIAlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UocG9ydCk7Ci0JCXJldHVybiBE UF9BVVhfQ0hfQ1RMKFBPUlRfQik7CisJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOworCQlyZXR1cm4g RFBfQVVYX0NIX0NUTChBVVhfQ0hfQik7CiAJfQogfQogCiBzdGF0aWMgaTkxNV9yZWdfdCBnNHhf YXV4X2RhdGFfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICBl bnVtIHBvcnQgcG9ydCwgaW50IGluZGV4KQorCQkJCSAgIGVudW0gYXV4X2NoIGF1eF9jaCwgaW50 IGluZGV4KQogewotCXN3aXRjaCAocG9ydCkgewotCWNhc2UgUE9SVF9COgotCWNhc2UgUE9SVF9D OgotCWNhc2UgUE9SVF9EOgotCQlyZXR1cm4gRFBfQVVYX0NIX0RBVEEocG9ydCwgaW5kZXgpOwor CXN3aXRjaCAoYXV4X2NoKSB7CisJY2FzZSBBVVhfQ0hfQjoKKwljYXNlIEFVWF9DSF9DOgorCWNh c2UgQVVYX0NIX0Q6CisJCXJldHVybiBEUF9BVVhfQ0hfREFUQShhdXhfY2gsIGluZGV4KTsKIAlk ZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UocG9ydCk7Ci0JCXJldHVybiBEUF9BVVhfQ0hfREFUQShQ T1JUX0IsIGluZGV4KTsKKwkJTUlTU0lOR19DQVNFKGF1eF9jaCk7CisJCXJldHVybiBEUF9BVVhf Q0hfREFUQShBVVhfQ0hfQiwgaW5kZXgpOwogCX0KIH0KIAogc3RhdGljIGk5MTVfcmVnX3QgaWxr X2F1eF9jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgIGVu dW0gcG9ydCBwb3J0KQotewotCXN3aXRjaCAocG9ydCkgewotCWNhc2UgUE9SVF9BOgotCQlyZXR1 cm4gRFBfQVVYX0NIX0NUTChwb3J0KTsKLQljYXNlIFBPUlRfQjoKLQljYXNlIFBPUlRfQzoKLQlj YXNlIFBPUlRfRDoKLQkJcmV0dXJuIFBDSF9EUF9BVVhfQ0hfQ1RMKHBvcnQpOworCQkJCSAgZW51 bSBhdXhfY2ggYXV4X2NoKQoreworCXN3aXRjaCAoYXV4X2NoKSB7CisJY2FzZSBBVVhfQ0hfQToK KwkJcmV0dXJuIERQX0FVWF9DSF9DVEwoYXV4X2NoKTsKKwljYXNlIEFVWF9DSF9COgorCWNhc2Ug QVVYX0NIX0M6CisJY2FzZSBBVVhfQ0hfRDoKKwkJcmV0dXJuIFBDSF9EUF9BVVhfQ0hfQ1RMKGF1 eF9jaCk7CiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBvcnQpOwotCQlyZXR1cm4gRFBfQVVY X0NIX0NUTChQT1JUX0EpOworCQlNSVNTSU5HX0NBU0UoYXV4X2NoKTsKKwkJcmV0dXJuIERQX0FV WF9DSF9DVEwoQVVYX0NIX0EpOwogCX0KIH0KIAogc3RhdGljIGk5MTVfcmVnX3QgaWxrX2F1eF9k YXRhX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgZW51bSBw b3J0IHBvcnQsIGludCBpbmRleCkKLXsKLQlzd2l0Y2ggKHBvcnQpIHsKLQljYXNlIFBPUlRfQToK LQkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKHBvcnQsIGluZGV4KTsKLQljYXNlIFBPUlRfQjoKLQlj YXNlIFBPUlRfQzoKLQljYXNlIFBPUlRfRDoKLQkJcmV0dXJuIFBDSF9EUF9BVVhfQ0hfREFUQShw b3J0LCBpbmRleCk7CisJCQkJICAgZW51bSBhdXhfY2ggYXV4X2NoLCBpbnQgaW5kZXgpCit7CisJ c3dpdGNoIChhdXhfY2gpIHsKKwljYXNlIEFVWF9DSF9BOgorCQlyZXR1cm4gRFBfQVVYX0NIX0RB VEEoYXV4X2NoLCBpbmRleCk7CisJY2FzZSBBVVhfQ0hfQjoKKwljYXNlIEFVWF9DSF9DOgorCWNh c2UgQVVYX0NIX0Q6CisJCXJldHVybiBQQ0hfRFBfQVVYX0NIX0RBVEEoYXV4X2NoLCBpbmRleCk7 CiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBvcnQpOwotCQlyZXR1cm4gRFBfQVVYX0NIX0RB VEEoUE9SVF9BLCBpbmRleCk7CisJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOworCQlyZXR1cm4gRFBf QVVYX0NIX0RBVEEoQVVYX0NIX0EsIGluZGV4KTsKIAl9CiB9CiAKIHN0YXRpYyBpOTE1X3JlZ190 IHNrbF9hdXhfY3RsX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJ ICBlbnVtIHBvcnQgcG9ydCkKLXsKLQlzd2l0Y2ggKHBvcnQpIHsKLQljYXNlIFBPUlRfQToKLQlj YXNlIFBPUlRfQjoKLQljYXNlIFBPUlRfQzoKLQljYXNlIFBPUlRfRDoKLQljYXNlIFBPUlRfRjoK LQkJcmV0dXJuIERQX0FVWF9DSF9DVEwocG9ydCk7CisJCQkJICBlbnVtIGF1eF9jaCBhdXhfY2gp Cit7CisJc3dpdGNoIChhdXhfY2gpIHsKKwljYXNlIEFVWF9DSF9BOgorCWNhc2UgQVVYX0NIX0I6 CisJY2FzZSBBVVhfQ0hfQzoKKwljYXNlIEFVWF9DSF9EOgorCWNhc2UgQVVYX0NIX0Y6CisJCXJl dHVybiBEUF9BVVhfQ0hfQ1RMKGF1eF9jaCk7CiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBv cnQpOwotCQlyZXR1cm4gRFBfQVVYX0NIX0NUTChQT1JUX0EpOworCQlNSVNTSU5HX0NBU0UoYXV4 X2NoKTsKKwkJcmV0dXJuIERQX0FVWF9DSF9DVEwoQVVYX0NIX0EpOwogCX0KIH0KIAogc3RhdGlj IGk5MTVfcmVnX3Qgc2tsX2F1eF9kYXRhX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCi0JCQkJICAgZW51bSBwb3J0IHBvcnQsIGludCBpbmRleCkKLXsKLQlzd2l0Y2ggKHBv cnQpIHsKLQljYXNlIFBPUlRfQToKLQljYXNlIFBPUlRfQjoKLQljYXNlIFBPUlRfQzoKLQljYXNl IFBPUlRfRDoKLQljYXNlIFBPUlRfRjoKLQkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKHBvcnQsIGlu ZGV4KTsKKwkJCQkgICBlbnVtIGF1eF9jaCBhdXhfY2gsIGludCBpbmRleCkKK3sKKwlzd2l0Y2gg KGF1eF9jaCkgeworCWNhc2UgQVVYX0NIX0E6CisJY2FzZSBBVVhfQ0hfQjoKKwljYXNlIEFVWF9D SF9DOgorCWNhc2UgQVVYX0NIX0Q6CisJY2FzZSBBVVhfQ0hfRjoKKwkJcmV0dXJuIERQX0FVWF9D SF9EQVRBKGF1eF9jaCwgaW5kZXgpOwogCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwb3J0KTsK LQkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKFBPUlRfQSwgaW5kZXgpOworCQlNSVNTSU5HX0NBU0Uo YXV4X2NoKTsKKwkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKEFVWF9DSF9BLCBpbmRleCk7CiAJfQog fQogCiBzdGF0aWMgaTkxNV9yZWdfdCBpbnRlbF9hdXhfY3RsX3JlZyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgIGVudW0gcG9ydCBwb3J0KQorCQkJCSAgICBlbnVt IGF1eF9jaCBhdXhfY2gpCiB7CiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKLQkJcmV0 dXJuIHNrbF9hdXhfY3RsX3JlZyhkZXZfcHJpdiwgcG9ydCk7CisJCXJldHVybiBza2xfYXV4X2N0 bF9yZWcoZGV2X3ByaXYsIGF1eF9jaCk7CiAJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJp dikpCi0JCXJldHVybiBpbGtfYXV4X2N0bF9yZWcoZGV2X3ByaXYsIHBvcnQpOworCQlyZXR1cm4g aWxrX2F1eF9jdGxfcmVnKGRldl9wcml2LCBhdXhfY2gpOwogCWVsc2UKLQkJcmV0dXJuIGc0eF9h dXhfY3RsX3JlZyhkZXZfcHJpdiwgcG9ydCk7CisJCXJldHVybiBnNHhfYXV4X2N0bF9yZWcoZGV2 X3ByaXYsIGF1eF9jaCk7CiB9CiAKIHN0YXRpYyBpOTE1X3JlZ190IGludGVsX2F1eF9kYXRhX3Jl ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJICAgICBlbnVtIHBvcnQg cG9ydCwgaW50IGluZGV4KQorCQkJCSAgICAgZW51bSBhdXhfY2ggYXV4X2NoLCBpbnQgaW5kZXgp CiB7CiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKLQkJcmV0dXJuIHNrbF9hdXhfZGF0 YV9yZWcoZGV2X3ByaXYsIHBvcnQsIGluZGV4KTsKKwkJcmV0dXJuIHNrbF9hdXhfZGF0YV9yZWco ZGV2X3ByaXYsIGF1eF9jaCwgaW5kZXgpOwogCWVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3By aXYpKQotCQlyZXR1cm4gaWxrX2F1eF9kYXRhX3JlZyhkZXZfcHJpdiwgcG9ydCwgaW5kZXgpOwor CQlyZXR1cm4gaWxrX2F1eF9kYXRhX3JlZyhkZXZfcHJpdiwgYXV4X2NoLCBpbmRleCk7CiAJZWxz ZQotCQlyZXR1cm4gZzR4X2F1eF9kYXRhX3JlZyhkZXZfcHJpdiwgcG9ydCwgaW5kZXgpOworCQly ZXR1cm4gZzR4X2F1eF9kYXRhX3JlZyhkZXZfcHJpdiwgYXV4X2NoLCBpbmRleCk7CiB9CiAKIHN0 YXRpYyB2b2lkIGludGVsX2F1eF9yZWdfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBf dG9fZGV2KGludGVsX2RwKSk7Ci0JZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9hdXhfcG9ydChkZXZf cHJpdiwKLQkJCQkJZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlLnBvcnQpOworCWVudW0g YXV4X2NoIGF1eF9jaCA9IGludGVsX2RwLT5hdXhfY2g7CiAJaW50IGk7CiAKLQlpbnRlbF9kcC0+ YXV4X2NoX2N0bF9yZWcgPSBpbnRlbF9hdXhfY3RsX3JlZyhkZXZfcHJpdiwgcG9ydCk7CisJaW50 ZWxfZHAtPmF1eF9jaF9jdGxfcmVnID0gaW50ZWxfYXV4X2N0bF9yZWcoZGV2X3ByaXYsIGF1eF9j aCk7CiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaW50ZWxfZHAtPmF1eF9jaF9kYXRhX3Jl Zyk7IGkrKykKLQkJaW50ZWxfZHAtPmF1eF9jaF9kYXRhX3JlZ1tpXSA9IGludGVsX2F1eF9kYXRh X3JlZyhkZXZfcHJpdiwgcG9ydCwgaSk7CisJCWludGVsX2RwLT5hdXhfY2hfZGF0YV9yZWdbaV0g PSBpbnRlbF9hdXhfZGF0YV9yZWcoZGV2X3ByaXYsIGF1eF9jaCwgaSk7CiB9CiAKIHN0YXRpYyB2 b2lkCkBAIC0xNTA3LDE0ICsxNTMwLDE3IEBAIGludGVsX2RwX2F1eF9maW5pKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCiBzdGF0aWMgdm9pZAogaW50ZWxfZHBfYXV4X2luaXQoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKIHsKLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKLQllbnVtIHBvcnQgcG9ydCA9IGlu dGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7CisJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIg PSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOworCisJaW50ZWxfZHAtPmF1eF9jaCA9 IGludGVsX2F1eF9jaChpbnRlbF9kcCk7CisJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBp bnRlbF9hdXhfcG93ZXJfZG9tYWluKGludGVsX2RwKTsKIAogCWludGVsX2F1eF9yZWdfaW5pdChp bnRlbF9kcCk7CiAJZHJtX2RwX2F1eF9pbml0KCZpbnRlbF9kcC0+YXV4KTsKIAogCS8qIEZhaWx1 cmUgdG8gYWxsb2NhdGUgb3VyIHByZWZlcnJlZCBuYW1lIGlzIG5vdCBjcml0aWNhbCAqLwotCWlu dGVsX2RwLT5hdXgubmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVMLCAiRFBEREMtJWMiLCBwb3J0 X25hbWUocG9ydCkpOworCWludGVsX2RwLT5hdXgubmFtZSA9IGthc3ByaW50ZihHRlBfS0VSTkVM LCAiRFBEREMtJWMiLAorCQkJCSAgICAgICBwb3J0X25hbWUoZW5jb2Rlci0+cG9ydCkpOwogCWlu dGVsX2RwLT5hdXgudHJhbnNmZXIgPSBpbnRlbF9kcF9hdXhfdHJhbnNmZXI7CiB9CiAKQEAgLTYy NjYsNDIgKzYyOTIsNiBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9jb25uZWN0b3Ioc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLS8qIFNldCB1cCB0 aGUgaG90cGx1ZyBwaW4gYW5kIGF1eCBwb3dlciBkb21haW4uICovCi1zdGF0aWMgdm9pZAotaW50 ZWxfZHBfaW5pdF9jb25uZWN0b3JfcG9ydF9pbmZvKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0KQotewotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmlu dGVsX2RpZ19wb3J0LT5iYXNlOwotCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxf ZGlnX3BvcnQtPmRwOwotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gJmlu dGVsX2RpZ19wb3J0LT5iYXNlOwotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwotCi0JZW5jb2Rlci0+aHBkX3BpbiA9 IGludGVsX2hwZF9waW5fZGVmYXVsdChkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7Ci0KLQlzd2l0 Y2ggKGVuY29kZXItPnBvcnQpIHsKLQljYXNlIFBPUlRfQToKLQkJaW50ZWxfZHAtPmF1eF9wb3dl cl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0E7Ci0JCWJyZWFrOwotCWNhc2UgUE9SVF9COgot CQlpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9BVVhfQjsKLQkJYnJl YWs7Ci0JY2FzZSBQT1JUX0M6Ci0JCWludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluID0gUE9XRVJf RE9NQUlOX0FVWF9DOwotCQlicmVhazsKLQljYXNlIFBPUlRfRDoKLQkJaW50ZWxfZHAtPmF1eF9w b3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVYX0Q7Ci0JCWJyZWFrOwotCWNhc2UgUE9SVF9F OgotCQkvKiBGSVhNRTogQ2hlY2sgVkJUIGZvciBhY3R1YWwgd2lyaW5nIG9mIFBPUlQgRSAqLwot CQlpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9BVVhfRDsKLQkJYnJl YWs7Ci0JY2FzZSBQT1JUX0Y6Ci0JCWludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluID0gUE9XRVJf RE9NQUlOX0FVWF9GOwotCQlicmVhazsKLQlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UoZW5jb2Rl ci0+cG9ydCk7Ci0JfQotfQotCiBzdGF0aWMgdm9pZCBpbnRlbF9kcF9tb2Rlc2V0X3JldHJ5X3dv cmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewogCXN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmludGVsX2Nvbm5lY3RvcjsKQEAgLTY0MDcsNyArNjM5Nyw3IEBAIGludGVsX2RwX2luaXRf Y29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCQlj b25uZWN0b3ItPmludGVybGFjZV9hbGxvd2VkID0gdHJ1ZTsKIAljb25uZWN0b3ItPmRvdWJsZXNj YW5fYWxsb3dlZCA9IDA7CiAKLQlpbnRlbF9kcF9pbml0X2Nvbm5lY3Rvcl9wb3J0X2luZm8oaW50 ZWxfZGlnX3BvcnQpOworCWludGVsX2VuY29kZXItPmhwZF9waW4gPSBpbnRlbF9ocGRfcGluX2Rl ZmF1bHQoZGV2X3ByaXYsIHBvcnQpOwogCiAJaW50ZWxfZHBfYXV4X2luaXQoaW50ZWxfZHApOwog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDg5ODA2NGU4YmVhNy4uN2Y2YTdmNTkyZmU2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTA0OSw2ICsxMDQ5LDcgQEAgc3RydWN0 IGludGVsX2RwIHsKIAlib29sIGRldGVjdF9kb25lOwogCWJvb2wgY2hhbm5lbF9lcV9zdGF0dXM7 CiAJYm9vbCByZXNldF9saW5rX3BhcmFtczsKKwllbnVtIGF1eF9jaCBhdXhfY2g7CiAJdWludDhf dCBkcGNkW0RQX1JFQ0VJVkVSX0NBUF9TSVpFXTsKIAl1aW50OF90IHBzcl9kcGNkW0VEUF9QU1Jf UkVDRUlWRVJfQ0FQX1NJWkVdOwogCXVpbnQ4X3QgZG93bnN0cmVhbV9wb3J0c1tEUF9NQVhfRE9X TlNUUkVBTV9QT1JUU107Ci0tIAoyLjEzLjYKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=