From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dhinakaran Pandiyan Subject: [PATCH 1/2] drm/i915: Add enum aux_ch and clean up the aux init to use it Date: Wed, 21 Feb 2018 23:28:55 -0800 Message-ID: <20180222072856.20580-1-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A05E6EC08 for ; Thu, 22 Feb 2018 07:29:07 +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+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNo cmlzQGNocmlzLXdpbHNvbi5jby51az4KUmV2aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmln by52aXZpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAg ICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCB8ICAxMSAr KwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgIHwgMjQwICsrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgfCAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCAxMzEgaW5zZXJ0aW9ucygrKSwgMTI5IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDE0MTJhYmNiMjdkNC4uMzlk NjI0MDgzYTE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTUzNDcsOCArNTM0Nyw4IEBA IGVudW0gewogI2RlZmluZSBfRFBGX0FVWF9DSF9EQVRBNAkoZGV2X3ByaXYtPmluZm8uZGlzcGxh eV9tbWlvX29mZnNldCArIDB4NjQ1MjApCiAjZGVmaW5lIF9EUEZfQVVYX0NIX0RBVEE1CShkZXZf cHJpdi0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHg2NDUyNCkKIAotI2RlZmluZSBEUF9B VVhfQ0hfQ1RMKHBvcnQpCV9NTUlPX1BPUlQocG9ydCwgX0RQQV9BVVhfQ0hfQ1RMLCBfRFBCX0FV WF9DSF9DVEwpCi0jZGVmaW5lIERQX0FVWF9DSF9EQVRBKHBvcnQsIGkpCV9NTUlPKF9QT1JUKHBv cnQsIF9EUEFfQVVYX0NIX0RBVEExLCBfRFBCX0FVWF9DSF9EQVRBMSkgKyAoaSkgKiA0KSAvKiA1 IHJlZ2lzdGVycyAqLworI2RlZmluZSBEUF9BVVhfQ0hfQ1RMKGF1eF9jaCkJX01NSU9fUE9SVChh dXhfY2gsIF9EUEFfQVVYX0NIX0NUTCwgX0RQQl9BVVhfQ0hfQ1RMKQorI2RlZmluZSBEUF9BVVhf Q0hfREFUQShhdXhfY2gsIGkpCV9NTUlPKF9QT1JUKGF1eF9jaCwgX0RQQV9BVVhfQ0hfREFUQTEs IF9EUEJfQVVYX0NIX0RBVEExKSArIChpKSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCiAKICNkZWZp bmUgICBEUF9BVVhfQ0hfQ1RMX1NFTkRfQlVTWQkgICAgKDEgPDwgMzEpCiAjZGVmaW5lICAgRFBf QVVYX0NIX0NUTF9ET05FCQkgICAgKDEgPDwgMzApCkBAIC03ODc1LDggKzc4NzUsOCBAQCBlbnVt IHsKICNkZWZpbmUgX1BDSF9EUERfQVVYX0NIX0RBVEE0CTB4ZTQzMjAKICNkZWZpbmUgX1BDSF9E UERfQVVYX0NIX0RBVEE1CTB4ZTQzMjQKIAotI2RlZmluZSBQQ0hfRFBfQVVYX0NIX0NUTChwb3J0 KQkJX01NSU9fUE9SVCgocG9ydCkgLSBQT1JUX0IsIF9QQ0hfRFBCX0FVWF9DSF9DVEwsIF9QQ0hf RFBDX0FVWF9DSF9DVEwpCi0jZGVmaW5lIFBDSF9EUF9BVVhfQ0hfREFUQShwb3J0LCBpKQlfTU1J TyhfUE9SVCgocG9ydCkgLSBQT1JUX0IsIF9QQ0hfRFBCX0FVWF9DSF9EQVRBMSwgX1BDSF9EUENf QVVYX0NIX0RBVEExKSArIChpKSAqIDQpIC8qIDUgcmVnaXN0ZXJzICovCisjZGVmaW5lIFBDSF9E UF9BVVhfQ0hfQ1RMKGF1eF9jaCkJCV9NTUlPX1BPUlQoKGF1eF9jaCkgLSBBVVhfQ0hfQiwgX1BD SF9EUEJfQVVYX0NIX0NUTCwgX1BDSF9EUENfQVVYX0NIX0NUTCkKKyNkZWZpbmUgUENIX0RQX0FV WF9DSF9EQVRBKGF1eF9jaCwgaSkJX01NSU8oX1BPUlQoKGF1eF9jaCkgLSBBVVhfQ0hfQiwgX1BD SF9EUEJfQVVYX0NIX0RBVEExLCBfUENIX0RQQ19BVVhfQ0hfREFUQTEpICsgKGkpICogNCkgLyog NSByZWdpc3RlcnMgKi8KIAogLyogQ1BUICovCiAjZGVmaW5lICBQT1JUX1RSQU5TX0FfU0VMX0NQ VAkwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKaW5kZXggYzQwNDJlMzQyZjUwLi5m NTczM2EyNTc2ZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKQEAgLTEzOSw2 ICsxMzksMTcgQEAgZW51bSBkcGlvX3BoeSB7CiAKICNkZWZpbmUgSTkxNV9OVU1fUEhZU19WTFYg MgogCitlbnVtIGF1eF9jaCB7CisJQVVYX0NIX0EsCisJQVVYX0NIX0IsCisJQVVYX0NIX0MsCisJ QVVYX0NIX0QsCisJX0FVWF9DSF9FLCAvKiBkb2VzIG5vdCBleGlzdCAqLworCUFVWF9DSF9GLAor fTsKKworI2RlZmluZSBhdXhfY2hfbmFtZShhKSAoKGEpICsgJ0EnKQorCiBlbnVtIGludGVsX2Rp c3BsYXlfcG93ZXJfZG9tYWluIHsKIAlQT1dFUl9ET01BSU5fUElQRV9BLAogCVBPV0VSX0RPTUFJ Tl9QSVBFX0IsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCBmMjBiMjVmOThlNWEuLmVlYjhh MDI2ZmQwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC0xMzMxLDE3MSArMTMzMSwxOTQg QEAgaW50ZWxfZHBfYXV4X3RyYW5zZmVyKHN0cnVjdCBkcm1fZHBfYXV4ICphdXgsIHN0cnVjdCBk cm1fZHBfYXV4X21zZyAqbXNnKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBlbnVtIHBvcnQg aW50ZWxfYXV4X3BvcnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCWVu dW0gcG9ydCBwb3J0KQorc3RhdGljIGVudW0gYXV4X2NoIGludGVsX2F1eF9jaChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQogeworCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0gJmRw X3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKwllbnVtIHBvcnQgcG9ydCA9 IGVuY29kZXItPnBvcnQ7CiAJY29uc3Qgc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICppbmZvID0K IAkJJmRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1twb3J0XTsKLQllbnVtIHBvcnQgYXV4X3Bv cnQ7CisJZW51bSBhdXhfY2ggYXV4X2NoOwogCiAJaWYgKCFpbmZvLT5hbHRlcm5hdGVfYXV4X2No YW5uZWwpIHsKKwkJYXV4X2NoID0gKGVudW0gYXV4X2NoKSBwb3J0OworCiAJCURSTV9ERUJVR19L TVMoInVzaW5nIEFVWCAlYyBmb3IgcG9ydCAlYyAocGxhdGZvcm0gZGVmYXVsdClcbiIsCi0JCQkg ICAgICBwb3J0X25hbWUocG9ydCksIHBvcnRfbmFtZShwb3J0KSk7Ci0JCXJldHVybiBwb3J0Owor CQkJICAgICAgYXV4X2NoX25hbWUoYXV4X2NoKSwgcG9ydF9uYW1lKHBvcnQpKTsKKwkJcmV0dXJu IGF1eF9jaDsKIAl9CiAKIAlzd2l0Y2ggKGluZm8tPmFsdGVybmF0ZV9hdXhfY2hhbm5lbCkgewog CWNhc2UgRFBfQVVYX0E6Ci0JCWF1eF9wb3J0ID0gUE9SVF9BOworCQlhdXhfY2ggPSBBVVhfQ0hf QTsKIAkJYnJlYWs7CiAJY2FzZSBEUF9BVVhfQjoKLQkJYXV4X3BvcnQgPSBQT1JUX0I7CisJCWF1 eF9jaCA9IEFVWF9DSF9COwogCQlicmVhazsKIAljYXNlIERQX0FVWF9DOgotCQlhdXhfcG9ydCA9 IFBPUlRfQzsKKwkJYXV4X2NoID0gQVVYX0NIX0M7CiAJCWJyZWFrOwogCWNhc2UgRFBfQVVYX0Q6 Ci0JCWF1eF9wb3J0ID0gUE9SVF9EOworCQlhdXhfY2ggPSBBVVhfQ0hfRDsKIAkJYnJlYWs7CiAJ Y2FzZSBEUF9BVVhfRjoKLQkJYXV4X3BvcnQgPSBQT1JUX0Y7CisJCWF1eF9jaCA9IEFVWF9DSF9G OwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlNSVNTSU5HX0NBU0UoaW5mby0+YWx0ZXJuYXRlX2F1 eF9jaGFubmVsKTsKLQkJYXV4X3BvcnQgPSBQT1JUX0E7CisJCWF1eF9jaCA9IEFVWF9DSF9BOwog CQlicmVhazsKIAl9CiAKIAlEUk1fREVCVUdfS01TKCJ1c2luZyBBVVggJWMgZm9yIHBvcnQgJWMg KFZCVClcbiIsCi0JCSAgICAgIHBvcnRfbmFtZShhdXhfcG9ydCksIHBvcnRfbmFtZShwb3J0KSk7 CisJCSAgICAgIGF1eF9jaF9uYW1lKGF1eF9jaCksIHBvcnRfbmFtZShwb3J0KSk7CiAKLQlyZXR1 cm4gYXV4X3BvcnQ7CisJcmV0dXJuIGF1eF9jaDsKK30KKworc3RhdGljIGVudW0gaW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW4KK2ludGVsX2F1eF9wb3dlcl9kb21haW4oc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKK3sKKwlzd2l0Y2ggKGludGVsX2RwLT5hdXhfY2gpIHsKKwljYXNlIEFVWF9D SF9BOgorCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FVWF9BOworCWNhc2UgQVVYX0NIX0I6CisJCXJl dHVybiBQT1dFUl9ET01BSU5fQVVYX0I7CisJY2FzZSBBVVhfQ0hfQzoKKwkJcmV0dXJuIFBPV0VS X0RPTUFJTl9BVVhfQzsKKwljYXNlIEFVWF9DSF9EOgorCQlyZXR1cm4gUE9XRVJfRE9NQUlOX0FV WF9EOworCWNhc2UgQVVYX0NIX0Y6CisJCXJldHVybiBQT1dFUl9ET01BSU5fQVVYX0Y7CisJZGVm YXVsdDoKKwkJTUlTU0lOR19DQVNFKGludGVsX2RwLT5hdXhfY2gpOworCQlyZXR1cm4gUE9XRVJf RE9NQUlOX0FVWF9BOworCX0KIH0KIAogc3RhdGljIGk5MTVfcmVnX3QgZzR4X2F1eF9jdGxfcmVn KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgIGVudW0gcG9ydCBwb3J0 KQorCQkJCSAgZW51bSBhdXhfY2ggYXV4X2NoKQogewotCXN3aXRjaCAocG9ydCkgewotCWNhc2Ug UE9SVF9COgotCWNhc2UgUE9SVF9DOgotCWNhc2UgUE9SVF9EOgotCQlyZXR1cm4gRFBfQVVYX0NI X0NUTChwb3J0KTsKKwlzd2l0Y2ggKGF1eF9jaCkgeworCWNhc2UgQVVYX0NIX0I6CisJY2FzZSBB VVhfQ0hfQzoKKwljYXNlIEFVWF9DSF9EOgorCQlyZXR1cm4gRFBfQVVYX0NIX0NUTChhdXhfY2gp OwogCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShwb3J0KTsKLQkJcmV0dXJuIERQX0FVWF9DSF9D VEwoUE9SVF9CKTsKKwkJTUlTU0lOR19DQVNFKGF1eF9jaCk7CisJCXJldHVybiBEUF9BVVhfQ0hf Q1RMKEFVWF9DSF9CKTsKIAl9CiB9CiAKIHN0YXRpYyBpOTE1X3JlZ190IGc0eF9hdXhfZGF0YV9y ZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSAgIGVudW0gcG9ydCBw b3J0LCBpbnQgaW5kZXgpCisJCQkJICAgZW51bSBhdXhfY2ggYXV4X2NoLCBpbnQgaW5kZXgpCiB7 Ci0Jc3dpdGNoIChwb3J0KSB7Ci0JY2FzZSBQT1JUX0I6Ci0JY2FzZSBQT1JUX0M6Ci0JY2FzZSBQ T1JUX0Q6Ci0JCXJldHVybiBEUF9BVVhfQ0hfREFUQShwb3J0LCBpbmRleCk7CisJc3dpdGNoIChh dXhfY2gpIHsKKwljYXNlIEFVWF9DSF9COgorCWNhc2UgQVVYX0NIX0M6CisJY2FzZSBBVVhfQ0hf RDoKKwkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKGF1eF9jaCwgaW5kZXgpOwogCWRlZmF1bHQ6Ci0J CU1JU1NJTkdfQ0FTRShwb3J0KTsKLQkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKFBPUlRfQiwgaW5k ZXgpOworCQlNSVNTSU5HX0NBU0UoYXV4X2NoKTsKKwkJcmV0dXJuIERQX0FVWF9DSF9EQVRBKEFV WF9DSF9CLCBpbmRleCk7CiAJfQogfQogCiBzdGF0aWMgaTkxNV9yZWdfdCBpbGtfYXV4X2N0bF9y ZWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCSAgZW51bSBwb3J0IHBv cnQpCi17Ci0Jc3dpdGNoIChwb3J0KSB7Ci0JY2FzZSBQT1JUX0E6Ci0JCXJldHVybiBEUF9BVVhf Q0hfQ1RMKHBvcnQpOwotCWNhc2UgUE9SVF9COgotCWNhc2UgUE9SVF9DOgotCWNhc2UgUE9SVF9E OgotCQlyZXR1cm4gUENIX0RQX0FVWF9DSF9DVEwocG9ydCk7CisJCQkJICBlbnVtIGF1eF9jaCBh dXhfY2gpCit7CisJc3dpdGNoIChhdXhfY2gpIHsKKwljYXNlIEFVWF9DSF9BOgorCQlyZXR1cm4g RFBfQVVYX0NIX0NUTChhdXhfY2gpOworCWNhc2UgQVVYX0NIX0I6CisJY2FzZSBBVVhfQ0hfQzoK KwljYXNlIEFVWF9DSF9EOgorCQlyZXR1cm4gUENIX0RQX0FVWF9DSF9DVEwoYXV4X2NoKTsKIAlk ZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UocG9ydCk7Ci0JCXJldHVybiBEUF9BVVhfQ0hfQ1RMKFBP UlRfQSk7CisJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOworCQlyZXR1cm4gRFBfQVVYX0NIX0NUTChB VVhfQ0hfQSk7CiAJfQogfQogCiBzdGF0aWMgaTkxNV9yZWdfdCBpbGtfYXV4X2RhdGFfcmVnKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICBlbnVtIHBvcnQgcG9ydCwg aW50IGluZGV4KQotewotCXN3aXRjaCAocG9ydCkgewotCWNhc2UgUE9SVF9BOgotCQlyZXR1cm4g RFBfQVVYX0NIX0RBVEEocG9ydCwgaW5kZXgpOwotCWNhc2UgUE9SVF9COgotCWNhc2UgUE9SVF9D OgotCWNhc2UgUE9SVF9EOgotCQlyZXR1cm4gUENIX0RQX0FVWF9DSF9EQVRBKHBvcnQsIGluZGV4 KTsKKwkJCQkgICBlbnVtIGF1eF9jaCBhdXhfY2gsIGludCBpbmRleCkKK3sKKwlzd2l0Y2ggKGF1 eF9jaCkgeworCWNhc2UgQVVYX0NIX0E6CisJCXJldHVybiBEUF9BVVhfQ0hfREFUQShhdXhfY2gs IGluZGV4KTsKKwljYXNlIEFVWF9DSF9COgorCWNhc2UgQVVYX0NIX0M6CisJY2FzZSBBVVhfQ0hf RDoKKwkJcmV0dXJuIFBDSF9EUF9BVVhfQ0hfREFUQShhdXhfY2gsIGluZGV4KTsKIAlkZWZhdWx0 OgotCQlNSVNTSU5HX0NBU0UocG9ydCk7Ci0JCXJldHVybiBEUF9BVVhfQ0hfREFUQShQT1JUX0Es IGluZGV4KTsKKwkJTUlTU0lOR19DQVNFKGF1eF9jaCk7CisJCXJldHVybiBEUF9BVVhfQ0hfREFU QShBVVhfQ0hfQSwgaW5kZXgpOwogCX0KIH0KIAogc3RhdGljIGk5MTVfcmVnX3Qgc2tsX2F1eF9j dGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgIGVudW0gcG9y dCBwb3J0KQotewotCXN3aXRjaCAocG9ydCkgewotCWNhc2UgUE9SVF9BOgotCWNhc2UgUE9SVF9C OgotCWNhc2UgUE9SVF9DOgotCWNhc2UgUE9SVF9EOgotCWNhc2UgUE9SVF9GOgotCQlyZXR1cm4g RFBfQVVYX0NIX0NUTChwb3J0KTsKKwkJCQkgIGVudW0gYXV4X2NoIGF1eF9jaCkKK3sKKwlzd2l0 Y2ggKGF1eF9jaCkgeworCWNhc2UgQVVYX0NIX0E6CisJY2FzZSBBVVhfQ0hfQjoKKwljYXNlIEFV WF9DSF9DOgorCWNhc2UgQVVYX0NIX0Q6CisJY2FzZSBBVVhfQ0hfRjoKKwkJcmV0dXJuIERQX0FV WF9DSF9DVEwoYXV4X2NoKTsKIAlkZWZhdWx0OgotCQlNSVNTSU5HX0NBU0UocG9ydCk7Ci0JCXJl dHVybiBEUF9BVVhfQ0hfQ1RMKFBPUlRfQSk7CisJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOworCQly ZXR1cm4gRFBfQVVYX0NIX0NUTChBVVhfQ0hfQSk7CiAJfQogfQogCiBzdGF0aWMgaTkxNV9yZWdf dCBza2xfYXV4X2RhdGFfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJ CQkgICBlbnVtIHBvcnQgcG9ydCwgaW50IGluZGV4KQotewotCXN3aXRjaCAocG9ydCkgewotCWNh c2UgUE9SVF9BOgotCWNhc2UgUE9SVF9COgotCWNhc2UgUE9SVF9DOgotCWNhc2UgUE9SVF9EOgot CWNhc2UgUE9SVF9GOgotCQlyZXR1cm4gRFBfQVVYX0NIX0RBVEEocG9ydCwgaW5kZXgpOworCQkJ CSAgIGVudW0gYXV4X2NoIGF1eF9jaCwgaW50IGluZGV4KQoreworCXN3aXRjaCAoYXV4X2NoKSB7 CisJY2FzZSBBVVhfQ0hfQToKKwljYXNlIEFVWF9DSF9COgorCWNhc2UgQVVYX0NIX0M6CisJY2Fz ZSBBVVhfQ0hfRDoKKwljYXNlIEFVWF9DSF9GOgorCQlyZXR1cm4gRFBfQVVYX0NIX0RBVEEoYXV4 X2NoLCBpbmRleCk7CiAJZGVmYXVsdDoKLQkJTUlTU0lOR19DQVNFKHBvcnQpOwotCQlyZXR1cm4g RFBfQVVYX0NIX0RBVEEoUE9SVF9BLCBpbmRleCk7CisJCU1JU1NJTkdfQ0FTRShhdXhfY2gpOwor CQlyZXR1cm4gRFBfQVVYX0NIX0RBVEEoQVVYX0NIX0EsIGluZGV4KTsKIAl9CiB9CiAKIHN0YXRp YyBpOTE1X3JlZ190IGludGVsX2F1eF9jdGxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKLQkJCQkgICAgZW51bSBwb3J0IHBvcnQpCisJCQkJICAgIGVudW0gYXV4X2NoIGF1 eF9jaCkKIHsKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQotCQlyZXR1cm4gc2tsX2F1 eF9jdGxfcmVnKGRldl9wcml2LCBwb3J0KTsKKwkJcmV0dXJuIHNrbF9hdXhfY3RsX3JlZyhkZXZf cHJpdiwgYXV4X2NoKTsKIAllbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKLQkJcmV0 dXJuIGlsa19hdXhfY3RsX3JlZyhkZXZfcHJpdiwgcG9ydCk7CisJCXJldHVybiBpbGtfYXV4X2N0 bF9yZWcoZGV2X3ByaXYsIGF1eF9jaCk7CiAJZWxzZQotCQlyZXR1cm4gZzR4X2F1eF9jdGxfcmVn KGRldl9wcml2LCBwb3J0KTsKKwkJcmV0dXJuIGc0eF9hdXhfY3RsX3JlZyhkZXZfcHJpdiwgYXV4 X2NoKTsKIH0KIAogc3RhdGljIGk5MTVfcmVnX3QgaW50ZWxfYXV4X2RhdGFfcmVnKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQkgICAgIGVudW0gcG9ydCBwb3J0LCBpbnQg aW5kZXgpCisJCQkJICAgICBlbnVtIGF1eF9jaCBhdXhfY2gsIGludCBpbmRleCkKIHsKIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQotCQlyZXR1cm4gc2tsX2F1eF9kYXRhX3JlZyhkZXZf cHJpdiwgcG9ydCwgaW5kZXgpOworCQlyZXR1cm4gc2tsX2F1eF9kYXRhX3JlZyhkZXZfcHJpdiwg YXV4X2NoLCBpbmRleCk7CiAJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCi0JCXJl dHVybiBpbGtfYXV4X2RhdGFfcmVnKGRldl9wcml2LCBwb3J0LCBpbmRleCk7CisJCXJldHVybiBp bGtfYXV4X2RhdGFfcmVnKGRldl9wcml2LCBhdXhfY2gsIGluZGV4KTsKIAllbHNlCi0JCXJldHVy biBnNHhfYXV4X2RhdGFfcmVnKGRldl9wcml2LCBwb3J0LCBpbmRleCk7CisJCXJldHVybiBnNHhf YXV4X2RhdGFfcmVnKGRldl9wcml2LCBhdXhfY2gsIGluZGV4KTsKIH0KIAogc3RhdGljIHZvaWQg aW50ZWxfYXV4X3JlZ19pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50 ZWxfZHApKTsKLQllbnVtIHBvcnQgcG9ydCA9IGludGVsX2F1eF9wb3J0KGRldl9wcml2LAotCQkJ CQlkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UucG9ydCk7CisJZW51bSBhdXhfY2ggYXV4 X2NoID0gaW50ZWxfZHAtPmF1eF9jaDsKIAlpbnQgaTsKIAotCWludGVsX2RwLT5hdXhfY2hfY3Rs X3JlZyA9IGludGVsX2F1eF9jdGxfcmVnKGRldl9wcml2LCBwb3J0KTsKKwlpbnRlbF9kcC0+YXV4 X2NoX2N0bF9yZWcgPSBpbnRlbF9hdXhfY3RsX3JlZyhkZXZfcHJpdiwgYXV4X2NoKTsKIAlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnRlbF9kcC0+YXV4X2NoX2RhdGFfcmVnKTsgaSsrKQot CQlpbnRlbF9kcC0+YXV4X2NoX2RhdGFfcmVnW2ldID0gaW50ZWxfYXV4X2RhdGFfcmVnKGRldl9w cml2LCBwb3J0LCBpKTsKKwkJaW50ZWxfZHAtPmF1eF9jaF9kYXRhX3JlZ1tpXSA9IGludGVsX2F1 eF9kYXRhX3JlZyhkZXZfcHJpdiwgYXV4X2NoLCBpKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTE1 MDcsMTQgKzE1MzAsMTcgQEAgaW50ZWxfZHBfYXV4X2Zpbmkoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKIHN0YXRpYyB2b2lkCiBpbnRlbF9kcF9hdXhfaW5pdChzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQogewotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwotCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UucG9ydDsKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkcF90b19k aWdfcG9ydChpbnRlbF9kcCktPmJhc2U7CisKKwlpbnRlbF9kcC0+YXV4X2NoID0gaW50ZWxfYXV4 X2NoKGludGVsX2RwKTsKKwlpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbiA9IGludGVsX2F1eF9w b3dlcl9kb21haW4oaW50ZWxfZHApOwogCiAJaW50ZWxfYXV4X3JlZ19pbml0KGludGVsX2RwKTsK IAlkcm1fZHBfYXV4X2luaXQoJmludGVsX2RwLT5hdXgpOwogCiAJLyogRmFpbHVyZSB0byBhbGxv Y2F0ZSBvdXIgcHJlZmVycmVkIG5hbWUgaXMgbm90IGNyaXRpY2FsICovCi0JaW50ZWxfZHAtPmF1 eC5uYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICJEUEREQy0lYyIsIHBvcnRfbmFtZShwb3J0 KSk7CisJaW50ZWxfZHAtPmF1eC5uYW1lID0ga2FzcHJpbnRmKEdGUF9LRVJORUwsICJEUEREQy0l YyIsCisJCQkJICAgICAgIHBvcnRfbmFtZShlbmNvZGVyLT5wb3J0KSk7CiAJaW50ZWxfZHAtPmF1 eC50cmFuc2ZlciA9IGludGVsX2RwX2F1eF90cmFuc2ZlcjsKIH0KIApAQCAtNjI2Niw0MiArNjI5 Miw2IEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAogCXJldHVybiBmYWxzZTsKIH0KIAotLyogU2V0IHVwIHRoZSBob3RwbHVn IHBpbiBhbmQgYXV4IHBvd2VyIGRvbWFpbi4gKi8KLXN0YXRpYyB2b2lkCi1pbnRlbF9kcF9pbml0 X2Nvbm5lY3Rvcl9wb3J0X2luZm8oc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQpCi17Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmaW50ZWxfZGlnX3Bv cnQtPmJhc2U7Ci0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ ZHA7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3Bv cnQtPmJhc2U7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9lbmNvZGVyLT5iYXNlLmRldik7Ci0KLQllbmNvZGVyLT5ocGRfcGluID0gaW50ZWxfaHBk X3Bpbl9kZWZhdWx0KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKLQotCXN3aXRjaCAoZW5jb2Rl ci0+cG9ydCkgewotCWNhc2UgUE9SVF9BOgotCQlpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbiA9 IFBPV0VSX0RPTUFJTl9BVVhfQTsKLQkJYnJlYWs7Ci0JY2FzZSBQT1JUX0I6Ci0JCWludGVsX2Rw LT5hdXhfcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX0FVWF9COwotCQlicmVhazsKLQljYXNl IFBPUlRfQzoKLQkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVY X0M7Ci0JCWJyZWFrOwotCWNhc2UgUE9SVF9EOgotCQlpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFp biA9IFBPV0VSX0RPTUFJTl9BVVhfRDsKLQkJYnJlYWs7Ci0JY2FzZSBQT1JUX0U6Ci0JCS8qIEZJ WE1FOiBDaGVjayBWQlQgZm9yIGFjdHVhbCB3aXJpbmcgb2YgUE9SVCBFICovCi0JCWludGVsX2Rw LT5hdXhfcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX0FVWF9EOwotCQlicmVhazsKLQljYXNl IFBPUlRfRjoKLQkJaW50ZWxfZHAtPmF1eF9wb3dlcl9kb21haW4gPSBQT1dFUl9ET01BSU5fQVVY X0Y7Ci0JCWJyZWFrOwotCWRlZmF1bHQ6Ci0JCU1JU1NJTkdfQ0FTRShlbmNvZGVyLT5wb3J0KTsK LQl9Ci19Ci0KIHN0YXRpYyB2b2lkIGludGVsX2RwX21vZGVzZXRfcmV0cnlfd29ya19mbihzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxf Y29ubmVjdG9yOwpAQCAtNjQwNyw3ICs2Mzk3LDcgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Io c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCWNvbm5lY3Rvci0+ aW50ZXJsYWNlX2FsbG93ZWQgPSB0cnVlOwogCWNvbm5lY3Rvci0+ZG91Ymxlc2Nhbl9hbGxvd2Vk ID0gMDsKIAotCWludGVsX2RwX2luaXRfY29ubmVjdG9yX3BvcnRfaW5mbyhpbnRlbF9kaWdfcG9y dCk7CisJaW50ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IGludGVsX2hwZF9waW5fZGVmYXVsdChkZXZf cHJpdiwgcG9ydCk7CiAKIAlpbnRlbF9kcF9hdXhfaW5pdChpbnRlbF9kcCk7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKaW5kZXggNTA4NzRmNDAzNWNmLi5iNzBlZDE1NGM0Y2UgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xMDUyLDYgKzEwNTIsNyBAQCBzdHJ1Y3QgaW50ZWxfZHAg ewogCWJvb2wgZGV0ZWN0X2RvbmU7CiAJYm9vbCBjaGFubmVsX2VxX3N0YXR1czsKIAlib29sIHJl c2V0X2xpbmtfcGFyYW1zOworCWVudW0gYXV4X2NoIGF1eF9jaDsKIAl1aW50OF90IGRwY2RbRFBf UkVDRUlWRVJfQ0FQX1NJWkVdOwogCXVpbnQ4X3QgcHNyX2RwY2RbRURQX1BTUl9SRUNFSVZFUl9D QVBfU0laRV07CiAJdWludDhfdCBkb3duc3RyZWFtX3BvcnRzW0RQX01BWF9ET1dOU1RSRUFNX1BP UlRTXTsKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==