From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 20/24] radeon/audio: consolidate audio_mode_set() functions Date: Tue, 13 Jan 2015 12:46:49 -0500 Message-ID: <1421171213-23977-21-git-send-email-alexander.deucher@amd.com> References: <1421171213-23977-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f50.google.com (mail-qg0-f50.google.com [209.85.192.50]) by gabe.freedesktop.org (Postfix) with ESMTP id 8212E72031 for ; Tue, 13 Jan 2015 09:47:13 -0800 (PST) Received: by mail-qg0-f50.google.com with SMTP id z60so3282089qgd.9 for ; Tue, 13 Jan 2015 09:47:13 -0800 (PST) In-Reply-To: <1421171213-23977-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher , slava.grigorev@amd.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2xhdmEgR3JpZ29yZXYgPHNsYXZhLmdyaWdvcmV2QGFtZC5jb20+CgpTaWduZWQtb2Zm LWJ5OiBTbGF2YSBHcmlnb3JldiA8c2xhdmEuZ3JpZ29yZXZAYW1kLmNvbT4KU2lnbmVkLW9mZi1i eTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYyB8ICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL2RjZTNfMV9hZm10LmMgICAgICAgfCA0MSAtLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jICAgIHwgNDEgLS0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMgICAgICAgICB8IDM3IC0t LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5jICAgICAg IHwgMTQgLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmggICAgICAg fCAgNCAtLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYyAgICAgIHwgNzIg KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9hdWRpby5oICAgICAgfCAxNSArKy0tLS0tCiA4IGZpbGVzIGNoYW5nZWQsIDY2IGluc2Vy dGlvbnMoKyksIDE2MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2F0b21iaW9zX2VuY29kZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21i aW9zX2VuY29kZXJzLmMKaW5kZXggYjhjZDc5Ny4uOTM1NGM5OSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vYXRvbWJpb3NfZW5jb2RlcnMuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUg PGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vcmFkZW9uX2RybS5oPgogI2lu Y2x1ZGUgInJhZGVvbi5oIgorI2luY2x1ZGUgInJhZGVvbl9hdWRpby5oIgogI2luY2x1ZGUgImF0 b20uaCIKICNpbmNsdWRlIDxsaW51eC9iYWNrbGlnaHQuaD4KIApAQCAtMjE3NCw4ICsyMTc1LDcg QEAgcmFkZW9uX2F0b21fZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCiAJaWYgKGF0b21iaW9zX2dldF9lbmNvZGVyX21vZGUoZW5jb2RlcikgPT0gQVRPTV9FTkNP REVSX01PREVfSERNSSkgewogCQlpZiAocmRldi0+YXNpYy0+ZGlzcGxheS5oZG1pX2VuYWJsZSkK IAkJCXJhZGVvbl9oZG1pX2VuYWJsZShyZGV2LCBlbmNvZGVyLCB0cnVlKTsKLQkJaWYgKHJkZXYt PmFzaWMtPmRpc3BsYXkuaGRtaV9zZXRtb2RlKQotCQkJcmFkZW9uX2hkbWlfc2V0bW9kZShyZGV2 LCBlbmNvZGVyLCBhZGp1c3RlZF9tb2RlKTsKKwkJcmFkZW9uX2F1ZGlvX21vZGVfc2V0KGVuY29k ZXIsIGFkanVzdGVkX21vZGUpOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9kY2UzXzFfYWZtdC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9kY2UzXzFfYWZt dC5jCmluZGV4IDNiYzk1YjQuLjYwMmMyYjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vZGNlM18xX2FmbXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTNfMV9h Zm10LmMKQEAgLTIzMCw0NCArMjMwLDMgQEAgdm9pZCBkY2UzXzJfc2V0X211dGUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0LCBib29sIG11dGUpCiAJZWxzZQogCQlXUkVH MzJfQU5EKEhETUkwX0dDICsgb2Zmc2V0LCB+SERNSTBfR0NfQVZNVVRFKTsKIH0KLQotLyoKLSAq IHVwZGF0ZSB0aGUgaW5mbyBmcmFtZXMgd2l0aCB0aGUgZGF0YSBmcm9tIHRoZSBjdXJyZW50IGRp c3BsYXkgbW9kZQotICovCi12b2lkIGRjZTNfMV9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKLXsKLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2OwotCXN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVvbl9l bmNvZGVyID0gdG9fcmFkZW9uX2VuY29kZXIoZW5jb2Rlcik7Ci0Jc3RydWN0IHJhZGVvbl9lbmNv ZGVyX2F0b21fZGlnICpkaWcgPSByYWRlb25fZW5jb2Rlci0+ZW5jX3ByaXY7Ci0JdWludDMyX3Qg b2Zmc2V0OwotCi0JaWYgKCFkaWcgfHwgIWRpZy0+YWZtdCkKLQkJcmV0dXJuOwotCi0JLyogU2ls ZW50LCByNjAwX2hkbWlfZW5hYmxlIHdpbGwgcmFpc2UgV0FSTiBmb3IgdXMgKi8KLQlpZiAoIWRp Zy0+YWZtdC0+ZW5hYmxlZCkKLQkJcmV0dXJuOwotCW9mZnNldCA9IGRpZy0+YWZtdC0+b2Zmc2V0 OwotCi0JLyogZGlzYWJsZSBhdWRpbyBwcmlvciB0byBzZXR0aW5nIHVwIGh3ICovCi0JZGlnLT5h Zm10LT5waW4gPSByYWRlb25fYXVkaW9fZ2V0X3BpbihlbmNvZGVyKTsKLQlyYWRlb25fYXVkaW9f ZW5hYmxlKHJkZXYsIGRpZy0+YWZtdC0+cGluLCAwKTsKLQotCXJhZGVvbl9hdWRpb19zZXRfZHRv KGVuY29kZXIsIG1vZGUtPmNsb2NrKTsKLQlyYWRlb25fYXVkaW9fc2V0X3ZiaV9wYWNrZXQoZW5j b2Rlcik7Ci0JcmFkZW9uX2hkbWlfc2V0X2NvbG9yX2RlcHRoKGVuY29kZXIpOwotCXJhZGVvbl9h dWRpb19zZXRfbXV0ZShlbmNvZGVyLCBmYWxzZSk7Ci0JcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3Io ZW5jb2RlciwgbW9kZS0+Y2xvY2spOwotCXJhZGVvbl9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9j YXRpb24oZW5jb2Rlcik7Ci0JcmFkZW9uX2F1ZGlvX3NldF9hdWRpb19wYWNrZXQoZW5jb2Rlcik7 Ci0JcmFkZW9uX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKGVuY29kZXIpOwotCi0JaWYgKHJhZGVvbl9h dWRpb19zZXRfYXZpX3BhY2tldChlbmNvZGVyLCBtb2RlKSA8IDApCi0JCXJldHVybjsKLQotCXI2 MDBfaGRtaV9hdWRpb193b3JrYXJvdW5kKGVuY29kZXIpOwotCi0JLyogZW5hYmxlIGF1ZGlvIGFm dGVyIHRvIHNldHRpbmcgdXAgaHcgKi8KLQlyYWRlb25fYXVkaW9fZW5hYmxlKHJkZXYsIGRpZy0+ YWZtdC0+cGluLCAweGYpOwotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9l dmVyZ3JlZW5faGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5j CmluZGV4IDUwOTA4MTkuLjBkOGM4NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vZXZlcmdyZWVuX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVl bl9oZG1pLmMKQEAgLTM5OCw0NyArMzk4LDYgQEAgdm9pZCBkY2U0X3NldF9tdXRlKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIG9mZnNldCwgYm9vbCBtdXRlKQogCQlXUkVHMzJfQU5E KEhETUlfR0MgKyBvZmZzZXQsIH5IRE1JX0dDX0FWTVVURSk7CiB9CiAKLS8qCi0gKiB1cGRhdGUg dGhlIGluZm8gZnJhbWVzIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgY3VycmVudCBkaXNwbGF5IG1v ZGUKLSAqLwotdm9pZCBldmVyZ3JlZW5faGRtaV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2Rlciwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCi17Ci0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKLQlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9 IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2Rl ciA9IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOwotCXN0cnVjdCByYWRlb25fZW5jb2Rlcl9h dG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVuY19wcml2OwotCXVpbnQzMl90IG9mZnNl dDsKLQotCWlmICghZGlnIHx8ICFkaWctPmFmbXQpCi0JCXJldHVybjsKLQotCS8qIFNpbGVudCwg cjYwMF9oZG1pX2VuYWJsZSB3aWxsIHJhaXNlIFdBUk4gZm9yIHVzICovCi0JaWYgKCFkaWctPmFm bXQtPmVuYWJsZWQpCi0JCXJldHVybjsKLQlvZmZzZXQgPSBkaWctPmFmbXQtPm9mZnNldDsKLQot CS8qIGRpc2FibGUgYXVkaW8gcHJpb3IgdG8gc2V0dGluZyB1cCBodyAqLwotCWRpZy0+YWZtdC0+ cGluID0gcmFkZW9uX2F1ZGlvX2dldF9waW4oZW5jb2Rlcik7Ci0JcmFkZW9uX2F1ZGlvX2VuYWJs ZShyZGV2LCBkaWctPmFmbXQtPnBpbiwgMCk7Ci0KLQlyYWRlb25fYXVkaW9fc2V0X2R0byhlbmNv ZGVyLCBtb2RlLT5jbG9jayk7Ci0JcmFkZW9uX2F1ZGlvX3NldF92YmlfcGFja2V0KGVuY29kZXIp OwotCXJhZGVvbl9oZG1pX3NldF9jb2xvcl9kZXB0aChlbmNvZGVyKTsKLQlyYWRlb25fYXVkaW9f c2V0X211dGUoZW5jb2RlciwgZmFsc2UpOwotCXJhZGVvbl9hdWRpb191cGRhdGVfYWNyKGVuY29k ZXIsIG1vZGUtPmNsb2NrKTsKLQlyYWRlb25fYXVkaW9fd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9u KGVuY29kZXIpOwotCXJhZGVvbl9hdWRpb19zZXRfYXVkaW9fcGFja2V0KGVuY29kZXIpOwotCXJh ZGVvbl9hdWRpb19zZWxlY3RfcGluKGVuY29kZXIpOwotCXJhZGVvbl9hdWRpb193cml0ZV9zYWRf cmVncyhlbmNvZGVyKTsKLQlyYWRlb25fYXVkaW9fd3JpdGVfbGF0ZW5jeV9maWVsZHMoZW5jb2Rl ciwgbW9kZSk7Ci0KLQlpZiAocmFkZW9uX2F1ZGlvX3NldF9hdmlfcGFja2V0KGVuY29kZXIsIG1v ZGUpIDwgMCkKLQkJcmV0dXJuOwotCi0JLyogZW5hYmxlIGF1ZGlvIGFmdGVyIHRvIHNldHRpbmcg dXAgaHcgKi8KLQlyYWRlb25fYXVkaW9fZW5hYmxlKHJkZXYsIGRpZy0+YWZtdC0+cGluLCAweGYp OwotfQotCiB2b2lkIGV2ZXJncmVlbl9oZG1pX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsIGJvb2wgZW5hYmxlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVy LT5kZXY7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYwppbmRleCBlYTE5NTBiLi5lMzQzNzBh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMKQEAgLTQwMCw0MyArNDAwLDYgQEAgdm9p ZCByNjAwX3NldF9tdXRlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIG9mZnNldCwg Ym9vbCBtdXRlKQogCQlXUkVHMzJfQU5EKEhETUkwX0dDICsgb2Zmc2V0LCB+SERNSTBfR0NfQVZN VVRFKTsKIH0KIAotLyoKLSAqIHVwZGF0ZSB0aGUgaW5mbyBmcmFtZXMgd2l0aCB0aGUgZGF0YSBm cm9tIHRoZSBjdXJyZW50IGRpc3BsYXkgbW9kZQotICovCi12b2lkIHI2MDBfaGRtaV9zZXRtb2Rl KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUpCi17Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKLQlzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IHJhZGVvbl9l bmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOwotCXN0 cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVuY19w cml2OwotCXVpbnQzMl90IG9mZnNldDsKLQotCWlmICghZGlnIHx8ICFkaWctPmFmbXQpCi0JCXJl dHVybjsKLQotCS8qIFNpbGVudCwgcjYwMF9oZG1pX2VuYWJsZSB3aWxsIHJhaXNlIFdBUk4gZm9y IHVzICovCi0JaWYgKCFkaWctPmFmbXQtPmVuYWJsZWQpCi0JCXJldHVybjsKLQlvZmZzZXQgPSBk aWctPmFmbXQtPm9mZnNldDsKLQotCS8qIGRpc2FibGUgYXVkaW8gcHJpb3IgdG8gc2V0dGluZyB1 cCBodyAqLwotCWRpZy0+YWZtdC0+cGluID0gcmFkZW9uX2F1ZGlvX2dldF9waW4oZW5jb2Rlcik7 Ci0JcmFkZW9uX2F1ZGlvX2VuYWJsZShyZGV2LCBkaWctPmFmbXQtPnBpbiwgMCk7Ci0KLQlyYWRl b25fYXVkaW9fc2V0X2R0byhlbmNvZGVyLCBtb2RlLT5jbG9jayk7Ci0JcmFkZW9uX2F1ZGlvX3Nl dF92YmlfcGFja2V0KGVuY29kZXIpOwotCXJhZGVvbl9oZG1pX3NldF9jb2xvcl9kZXB0aChlbmNv ZGVyKTsKLQlyYWRlb25fYXVkaW9fc2V0X211dGUoZW5jb2RlciwgZmFsc2UpOwotCXJhZGVvbl9h dWRpb191cGRhdGVfYWNyKGVuY29kZXIsIG1vZGUtPmNsb2NrKTsKLQlyYWRlb25fYXVkaW9fc2V0 X2F1ZGlvX3BhY2tldChlbmNvZGVyKTsKLQotCWlmIChyYWRlb25fYXVkaW9fc2V0X2F2aV9wYWNr ZXQoZW5jb2RlciwgbW9kZSkgPCAwKQotCQlyZXR1cm47Ci0KLQkvKiBlbmFibGUgYXVkaW8gYWZ0 ZXIgdG8gc2V0dGluZyB1cCBodyAqLwotCXJhZGVvbl9hdWRpb19lbmFibGUocmRldiwgZGlnLT5h Zm10LT5waW4sIDB4Zik7Ci19Ci0KIC8qKgogICogcjYwMF9oZG1pX3VwZGF0ZV9hdWRpb19zZXR0 aW5ncyAtIFVwZGF0ZSBhdWRpbyBpbmZvZnJhbWUKICAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9hc2ljLmMKaW5kZXggODJjNDNlYi4uZmM4ZGEyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2FzaWMuYwpAQCAtNjI1LDcgKzYyNSw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2FzaWMg cnM2MDBfYXNpYyA9IHsKIAkJLnNldF9iYWNrbGlnaHRfbGV2ZWwgPSAmYXRvbWJpb3Nfc2V0X2Jh Y2tsaWdodF9sZXZlbCwKIAkJLmdldF9iYWNrbGlnaHRfbGV2ZWwgPSAmYXRvbWJpb3NfZ2V0X2Jh Y2tsaWdodF9sZXZlbCwKIAkJLmhkbWlfZW5hYmxlID0gJnI2MDBfaGRtaV9lbmFibGUsCi0JCS5o ZG1pX3NldG1vZGUgPSAmcjYwMF9oZG1pX3NldG1vZGUsCiAJfSwKIAkuY29weSA9IHsKIAkJLmJs aXQgPSAmcjEwMF9jb3B5X2JsaXQsCkBAIC02OTMsNyArNjkyLDYgQEAgc3RhdGljIHN0cnVjdCBy YWRlb25fYXNpYyByczY5MF9hc2ljID0gewogCQkuc2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9t Ymlvc19zZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuZ2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9t Ymlvc19nZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuaGRtaV9lbmFibGUgPSAmcjYwMF9oZG1pX2Vu YWJsZSwKLQkJLmhkbWlfc2V0bW9kZSA9ICZyNjAwX2hkbWlfc2V0bW9kZSwKIAl9LAogCS5jb3B5 ID0gewogCQkuYmxpdCA9ICZyMTAwX2NvcHlfYmxpdCwKQEAgLTkyMiw3ICs5MjAsNiBAQCBzdGF0 aWMgc3RydWN0IHJhZGVvbl9hc2ljIHI2MDBfYXNpYyA9IHsKIAkJLnNldF9iYWNrbGlnaHRfbGV2 ZWwgPSAmYXRvbWJpb3Nfc2V0X2JhY2tsaWdodF9sZXZlbCwKIAkJLmdldF9iYWNrbGlnaHRfbGV2 ZWwgPSAmYXRvbWJpb3NfZ2V0X2JhY2tsaWdodF9sZXZlbCwKIAkJLmhkbWlfZW5hYmxlID0gJnI2 MDBfaGRtaV9lbmFibGUsCi0JCS5oZG1pX3NldG1vZGUgPSAmcjYwMF9oZG1pX3NldG1vZGUsCiAJ fSwKIAkuY29weSA9IHsKIAkJLmJsaXQgPSAmcjYwMF9jb3B5X2NwZG1hLApAQCAtMTAwOCw3ICsx MDA1LDYgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyBydjZ4eF9hc2ljID0gewogCQkuc2V0 X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19zZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuZ2V0 X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19nZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuaGRt aV9lbmFibGUgPSAmcjYwMF9oZG1pX2VuYWJsZSwKLQkJLmhkbWlfc2V0bW9kZSA9ICZyNjAwX2hk bWlfc2V0bW9kZSwKIAl9LAogCS5jb3B5ID0gewogCQkuYmxpdCA9ICZyNjAwX2NvcHlfY3BkbWEs CkBAIC0xMDk5LDcgKzEwOTUsNiBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9hc2ljIHJzNzgwX2Fz aWMgPSB7CiAJCS5zZXRfYmFja2xpZ2h0X2xldmVsID0gJmF0b21iaW9zX3NldF9iYWNrbGlnaHRf bGV2ZWwsCiAJCS5nZXRfYmFja2xpZ2h0X2xldmVsID0gJmF0b21iaW9zX2dldF9iYWNrbGlnaHRf bGV2ZWwsCiAJCS5oZG1pX2VuYWJsZSA9ICZyNjAwX2hkbWlfZW5hYmxlLAotCQkuaGRtaV9zZXRt b2RlID0gJnI2MDBfaGRtaV9zZXRtb2RlLAogCX0sCiAJLmNvcHkgPSB7CiAJCS5ibGl0ID0gJnI2 MDBfY29weV9jcGRtYSwKQEAgLTEyMDMsNyArMTE5OCw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9u X2FzaWMgcnY3NzBfYXNpYyA9IHsKIAkJLnNldF9iYWNrbGlnaHRfbGV2ZWwgPSAmYXRvbWJpb3Nf c2V0X2JhY2tsaWdodF9sZXZlbCwKIAkJLmdldF9iYWNrbGlnaHRfbGV2ZWwgPSAmYXRvbWJpb3Nf Z2V0X2JhY2tsaWdodF9sZXZlbCwKIAkJLmhkbWlfZW5hYmxlID0gJnI2MDBfaGRtaV9lbmFibGUs Ci0JCS5oZG1pX3NldG1vZGUgPSAmZGNlM18xX2hkbWlfc2V0bW9kZSwKIAl9LAogCS5jb3B5ID0g ewogCQkuYmxpdCA9ICZyNjAwX2NvcHlfY3BkbWEsCkBAIC0xMzIxLDcgKzEzMTUsNiBAQCBzdGF0 aWMgc3RydWN0IHJhZGVvbl9hc2ljIGV2ZXJncmVlbl9hc2ljID0gewogCQkuc2V0X2JhY2tsaWdo dF9sZXZlbCA9ICZhdG9tYmlvc19zZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuZ2V0X2JhY2tsaWdo dF9sZXZlbCA9ICZhdG9tYmlvc19nZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuaGRtaV9lbmFibGUg PSAmZXZlcmdyZWVuX2hkbWlfZW5hYmxlLAotCQkuaGRtaV9zZXRtb2RlID0gJmV2ZXJncmVlbl9o ZG1pX3NldG1vZGUsCiAJfSwKIAkuY29weSA9IHsKIAkJLmJsaXQgPSAmcjYwMF9jb3B5X2NwZG1h LApAQCAtMTQxMyw3ICsxNDA2LDYgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyBzdW1vX2Fz aWMgPSB7CiAJCS5zZXRfYmFja2xpZ2h0X2xldmVsID0gJmF0b21iaW9zX3NldF9iYWNrbGlnaHRf bGV2ZWwsCiAJCS5nZXRfYmFja2xpZ2h0X2xldmVsID0gJmF0b21iaW9zX2dldF9iYWNrbGlnaHRf bGV2ZWwsCiAJCS5oZG1pX2VuYWJsZSA9ICZldmVyZ3JlZW5faGRtaV9lbmFibGUsCi0JCS5oZG1p X3NldG1vZGUgPSAmZXZlcmdyZWVuX2hkbWlfc2V0bW9kZSwKIAl9LAogCS5jb3B5ID0gewogCQku YmxpdCA9ICZyNjAwX2NvcHlfY3BkbWEsCkBAIC0xNTA0LDcgKzE0OTYsNiBAQCBzdGF0aWMgc3Ry dWN0IHJhZGVvbl9hc2ljIGJ0Y19hc2ljID0gewogCQkuc2V0X2JhY2tsaWdodF9sZXZlbCA9ICZh dG9tYmlvc19zZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuZ2V0X2JhY2tsaWdodF9sZXZlbCA9ICZh dG9tYmlvc19nZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuaGRtaV9lbmFibGUgPSAmZXZlcmdyZWVu X2hkbWlfZW5hYmxlLAotCQkuaGRtaV9zZXRtb2RlID0gJmV2ZXJncmVlbl9oZG1pX3NldG1vZGUs CiAJfSwKIAkuY29weSA9IHsKIAkJLmJsaXQgPSAmcjYwMF9jb3B5X2NwZG1hLApAQCAtMTY1MCw3 ICsxNjQxLDYgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyBjYXltYW5fYXNpYyA9IHsKIAkJ LnNldF9iYWNrbGlnaHRfbGV2ZWwgPSAmYXRvbWJpb3Nfc2V0X2JhY2tsaWdodF9sZXZlbCwKIAkJ LmdldF9iYWNrbGlnaHRfbGV2ZWwgPSAmYXRvbWJpb3NfZ2V0X2JhY2tsaWdodF9sZXZlbCwKIAkJ LmhkbWlfZW5hYmxlID0gJmV2ZXJncmVlbl9oZG1pX2VuYWJsZSwKLQkJLmhkbWlfc2V0bW9kZSA9 ICZldmVyZ3JlZW5faGRtaV9zZXRtb2RlLAogCX0sCiAJLmNvcHkgPSB7CiAJCS5ibGl0ID0gJnI2 MDBfY29weV9jcGRtYSwKQEAgLTE3NTMsNyArMTc0Myw2IEBAIHN0YXRpYyBzdHJ1Y3QgcmFkZW9u X2FzaWMgdHJpbml0eV9hc2ljID0gewogCQkuc2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlv c19zZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuZ2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlv c19nZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuaGRtaV9lbmFibGUgPSAmZXZlcmdyZWVuX2hkbWlf ZW5hYmxlLAotCQkuaGRtaV9zZXRtb2RlID0gJmV2ZXJncmVlbl9oZG1pX3NldG1vZGUsCiAJfSwK IAkuY29weSA9IHsKIAkJLmJsaXQgPSAmcjYwMF9jb3B5X2NwZG1hLApAQCAtMTg4Niw3ICsxODc1 LDYgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyBzaV9hc2ljID0gewogCQkuc2V0X2JhY2ts aWdodF9sZXZlbCA9ICZhdG9tYmlvc19zZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuZ2V0X2JhY2ts aWdodF9sZXZlbCA9ICZhdG9tYmlvc19nZXRfYmFja2xpZ2h0X2xldmVsLAogCQkuaGRtaV9lbmFi bGUgPSAmZXZlcmdyZWVuX2hkbWlfZW5hYmxlLAotCQkuaGRtaV9zZXRtb2RlID0gJmV2ZXJncmVl bl9oZG1pX3NldG1vZGUsCiAJfSwKIAkuY29weSA9IHsKIAkJLmJsaXQgPSAmcjYwMF9jb3B5X2Nw ZG1hLApAQCAtMjA1Myw3ICsyMDQxLDYgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXNpYyBjaV9h c2ljID0gewogCQkuc2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19zZXRfYmFja2xpZ2h0 X2xldmVsLAogCQkuZ2V0X2JhY2tsaWdodF9sZXZlbCA9ICZhdG9tYmlvc19nZXRfYmFja2xpZ2h0 X2xldmVsLAogCQkuaGRtaV9lbmFibGUgPSAmZXZlcmdyZWVuX2hkbWlfZW5hYmxlLAotCQkuaGRt aV9zZXRtb2RlID0gJmV2ZXJncmVlbl9oZG1pX3NldG1vZGUsCiAJfSwKIAkuY29weSA9IHsKIAkJ LmJsaXQgPSAmY2lrX2NvcHlfY3BkbWEsCkBAIC0yMTY0LDcgKzIxNTEsNiBAQCBzdGF0aWMgc3Ry dWN0IHJhZGVvbl9hc2ljIGt2X2FzaWMgPSB7CiAJCS5zZXRfYmFja2xpZ2h0X2xldmVsID0gJmF0 b21iaW9zX3NldF9iYWNrbGlnaHRfbGV2ZWwsCiAJCS5nZXRfYmFja2xpZ2h0X2xldmVsID0gJmF0 b21iaW9zX2dldF9iYWNrbGlnaHRfbGV2ZWwsCiAJCS5oZG1pX2VuYWJsZSA9ICZldmVyZ3JlZW5f aGRtaV9lbmFibGUsCi0JCS5oZG1pX3NldG1vZGUgPSAmZXZlcmdyZWVuX2hkbWlfc2V0bW9kZSwK IAl9LAogCS5jb3B5ID0gewogCQkuYmxpdCA9ICZjaWtfY29weV9jcGRtYSwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2FzaWMuaAppbmRleCA2ZWFjZjQxLi5mZWU4ZDIyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fYXNpYy5oCkBAIC0zOTksNyArMzk5LDYgQEAgdm9pZCByNjAwX2hkbWlf YXVkaW9fd29ya2Fyb3VuZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwogaW50IHI2MDBf aGRtaV9idWZmZXJfc3RhdHVzX2NoYW5nZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsK IHZvaWQgcjYwMF9oZG1pX3VwZGF0ZV9hdWRpb19zZXR0aW5ncyhzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIpOwogdm9pZCByNjAwX2hkbWlfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwgYm9vbCBlbmFibGUpOwotdm9pZCByNjAwX2hkbWlfc2V0bW9kZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKIGludCByNjAw X21jX3dhaXRfZm9yX2lkbGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdTMyIHI2MDBf Z2V0X3hjbGsoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwogdWludDY0X3QgcjYwMF9nZXRf Z3B1X2Nsb2NrX2NvdW50ZXIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwpAQCAtNDY4LDgg KzQ2Nyw2IEBAIHN0cnVjdCByYWRlb25fZmVuY2UgKnJ2NzcwX2NvcHlfZG1hKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LAogdTMyIHJ2NzcwX2dldF94Y2xrKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KTsKIGludCBydjc3MF9zZXRfdXZkX2Nsb2NrcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwgdTMyIHZjbGssIHUzMiBkY2xrKTsKIGludCBydjc3MF9nZXRfdGVtcChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldik7Ci0vKiBoZG1pICovCi12b2lkIGRjZTNfMV9oZG1pX3NldG1vZGUo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSk7CiAvKiBydjd4eCBwbSAqLwogaW50IHJ2NzcwX2RwbV9pbml0KHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KTsKIGludCBydjc3MF9kcG1fZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpy ZGV2KTsKQEAgLTU0MCw3ICs1MzcsNiBAQCBzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpldmVyZ3JlZW5f Y29weV9kbWEoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkJCXVuc2lnbmVkIG51bV9n cHVfcGFnZXMsCiAJCQkJCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKnJlc3YpOwogdm9pZCBl dmVyZ3JlZW5faGRtaV9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBib29sIGVu YWJsZSk7Ci12b2lkIGV2ZXJncmVlbl9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSk7CiBpbnQgZXZlcmdyZWVuX2dl dF90ZW1wKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIGludCBzdW1vX2dldF90ZW1wKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKIGludCB0bl9nZXRfdGVtcChzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYwppbmRleCBi YmZkY2UzLi5lYjg1YTA5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmMKQEAg LTk1LDYgKzk1LDggQEAgdm9pZCBkY2U0X3NldF9hdWRpb19wYWNrZXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0KTsKIHZvaWQgcjYwMF9zZXRfbXV0ZShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsIHUzMiBvZmZzZXQsIGJvb2wgbXV0ZSk7CiB2b2lkIGRjZTNfMl9z ZXRfbXV0ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHUzMiBvZmZzZXQsIGJvb2wgbXV0 ZSk7CiB2b2lkIGRjZTRfc2V0X211dGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIg b2Zmc2V0LCBib29sIG11dGUpOworc3RhdGljIHZvaWQgcmFkZW9uX2F1ZGlvX2hkbWlfbW9kZV9z ZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlKTsKIAogc3RhdGljIGNvbnN0IHUzMiBwaW5fb2Zmc2V0c1s3XSA9CiB7CkBAIC0xNTAs NiArMTUyLDcgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgcjYwMF9oZG1pX2Z1 bmNzID0gewogCS5zZXRfYXZpX3BhY2tldCA9IHI2MDBfc2V0X2F2aV9wYWNrZXQsCiAJLnNldF9h dWRpb19wYWNrZXQgPSByNjAwX3NldF9hdWRpb19wYWNrZXQsCiAJLnNldF9tdXRlID0gcjYwMF9z ZXRfbXV0ZSwKKwkubW9kZV9zZXQgPSByYWRlb25fYXVkaW9faGRtaV9tb2RlX3NldCwKIH07CiAK IHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzIGRjZTMyX2hkbWlfZnVuY3MgPSB7CkBA IC0xNjIsNiArMTY1LDcgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlMzJf aGRtaV9mdW5jcyA9IHsKIAkuc2V0X2F2aV9wYWNrZXQgPSByNjAwX3NldF9hdmlfcGFja2V0LAog CS5zZXRfYXVkaW9fcGFja2V0ID0gZGNlM18yX3NldF9hdWRpb19wYWNrZXQsCiAJLnNldF9tdXRl ID0gZGNlM18yX3NldF9tdXRlLAorCS5tb2RlX3NldCA9IHJhZGVvbl9hdWRpb19oZG1pX21vZGVf c2V0LAogfTsKIAogc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlMzJfZHBfZnVu Y3MgPSB7CkBAIC0xODQsNiArMTg4LDcgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVu Y3MgZGNlNF9oZG1pX2Z1bmNzID0gewogCS5zZXRfYXZpX3BhY2tldCA9IGV2ZXJncmVlbl9zZXRf YXZpX3BhY2tldCwKIAkuc2V0X2F1ZGlvX3BhY2tldCA9IGRjZTRfc2V0X2F1ZGlvX3BhY2tldCwK IAkuc2V0X211dGUgPSBkY2U0X3NldF9tdXRlLAorCS5tb2RlX3NldCA9IHJhZGVvbl9hdWRpb19o ZG1pX21vZGVfc2V0LAogfTsKIAogc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNl NF9kcF9mdW5jcyA9IHsKQEAgLTIwNyw2ICsyMTIsNyBAQCBzdGF0aWMgc3RydWN0IHJhZGVvbl9h dWRpb19mdW5jcyBkY2U2X2hkbWlfZnVuY3MgPSB7CiAJLnNldF9hdmlfcGFja2V0ID0gZXZlcmdy ZWVuX3NldF9hdmlfcGFja2V0LAogCS5zZXRfYXVkaW9fcGFja2V0ID0gZGNlNF9zZXRfYXVkaW9f cGFja2V0LAogCS5zZXRfbXV0ZSA9IGRjZTRfc2V0X211dGUsCisJLm1vZGVfc2V0ID0gcmFkZW9u X2F1ZGlvX2hkbWlfbW9kZV9zZXQsCiB9OwogCiBzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19m dW5jcyBkY2U2X2RwX2Z1bmNzID0gewpAQCAtMzM2LDcgKzM0Miw3IEBAIHZvaWQgcmFkZW9uX2F1 ZGlvX2VuZHBvaW50X3dyZWcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHUzMiBvZmZzZXQs CiAJCXJkZXYtPmF1ZGlvLmZ1bmNzLT5lbmRwb2ludF93cmVnKHJkZXYsIG9mZnNldCwgcmVnLCB2 KTsKIH0KIAotdm9pZCByYWRlb25fYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQorc3RhdGljIHZvaWQgcmFkZW9uX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJh ZGVvbl9lbmNvZGVyOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CkBAIC0zNzIs NyArMzc4LDcgQEAgdm9pZCByYWRlb25fYXVkaW9fd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQogCWtmcmVlKHNhZHMpOwogfQogCi12b2lkIHJhZGVvbl9hdWRpb193 cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQorc3Rh dGljIHZvaWQgcmFkZW9uX2F1ZGlvX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCiB7CiAJc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5j b2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOwogICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3I7CkBAIC00MDcsNyArNDEzLDcgQEAgdm9pZCByYWRlb25fYXVkaW9fd3Jp dGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKICAgICBr ZnJlZShzYWRiKTsKIH0KIAotdm9pZCByYWRlb25fYXVkaW9fd3JpdGVfbGF0ZW5jeV9maWVsZHMo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorc3RhdGljIHZvaWQgcmFkZW9uX2F1ZGlvX3dy aXRlX2xhdGVuY3lfZmllbGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIHsKIAlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVv bl9lbmNvZGVyOwpAQCAtNDQ0LDcgKzQ1MCw3IEBAIHN0cnVjdCByNjAwX2F1ZGlvX3BpbiogcmFk ZW9uX2F1ZGlvX2dldF9waW4oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXJldHVybiBO VUxMOwogfQogCi12b2lkIHJhZGVvbl9hdWRpb19zZWxlY3RfcGluKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIHJhZGVvbl9hdWRpb19zZWxlY3RfcGluKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKIHsKIAlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVvbl9l bmNvZGVyID0gdG9fcmFkZW9uX2VuY29kZXIoZW5jb2Rlcik7CiAKQEAgLTQ3Miw3ICs0NzgsNyBA QCB2b2lkIHJhZGVvbl9hdWRpb19maW5pKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCXJk ZXYtPmF1ZGlvLmVuYWJsZWQgPSBmYWxzZTsKIH0KIAotdm9pZCByYWRlb25fYXVkaW9fc2V0X2R0 byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHVuc2lnbmVkIGludCBjbG9jaykKK3N0YXRp YyB2b2lkIHJhZGVvbl9hdWRpb19zZXRfZHRvKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwg dW5zaWduZWQgaW50IGNsb2NrKQogewogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZW5j b2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVvbl9l bmNvZGVyID0gdG9fcmFkZW9uX2VuY29kZXIoZW5jb2Rlcik7CkBAIC00ODIsNyArNDg4LDcgQEAg dm9pZCByYWRlb25fYXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHVu c2lnbmVkIGludCBjbG9jaykKIAkJcmFkZW9uX2VuY29kZXItPmF1ZGlvLT5zZXRfZHRvKHJkZXYs IGNydGMsIGNsb2NrKTsKIH0KIAotaW50IHJhZGVvbl9hdWRpb19zZXRfYXZpX3BhY2tldChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCitzdGF0aWMgaW50IHJhZGVvbl9hdWRpb19zZXRfYXZp X3BhY2tldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUpCiB7CiAgICAgc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBlbmNvZGVy LT5kZXYtPmRldl9wcml2YXRlOwpAQCAtNTg4LDcgKzU5NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgcmFkZW9uX2hkbWlfYWNyKiByYWRlb25fYXVkaW9fYWNyKHVuc2lnbmVkIGludCBjbG9jaykK IC8qCiAgKiB1cGRhdGUgdGhlIE4gYW5kIENUUyBwYXJhbWV0ZXJzIGZvciBhIGdpdmVuIHBpeGVs IGNsb2NrIHJhdGUKICAqLwotdm9pZCByYWRlb25fYXVkaW9fdXBkYXRlX2FjcihzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsIHVuc2lnbmVkIGludCBjbG9jaykKK3N0YXRpYyB2b2lkIHJhZGVv bl9hdWRpb191cGRhdGVfYWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdW5zaWduZWQg aW50IGNsb2NrKQogewogICAgIGNvbnN0IHN0cnVjdCByYWRlb25faGRtaV9hY3IgKmFjciA9IHJh ZGVvbl9hdWRpb19hY3IoY2xvY2spOwogICAgIHN0cnVjdCByYWRlb25fZW5jb2RlciAqcmFkZW9u X2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2RlcihlbmNvZGVyKTsKQEAgLTYwMSw3ICs2MDcsNyBA QCB2b2lkIHJhZGVvbl9hdWRpb191cGRhdGVfYWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwgdW5zaWduZWQgaW50IGNsb2NrKQogCQlyYWRlb25fZW5jb2Rlci0+YXVkaW8tPnVwZGF0ZV9h Y3IoZW5jb2RlciwgZGlnLT5hZm10LT5vZmZzZXQsIGFjcik7CiB9CiAKLXZvaWQgcmFkZW9uX2F1 ZGlvX3NldF92YmlfcGFja2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2 b2lkIHJhZGVvbl9hdWRpb19zZXRfdmJpX3BhY2tldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCiB7CiAgICAgc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3Jh ZGVvbl9lbmNvZGVyKGVuY29kZXIpOwogICAgIHN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2Rp ZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVuY19wcml2OwpAQCAtNjEzLDcgKzYxOSw3IEBAIHZv aWQgcmFkZW9uX2F1ZGlvX3NldF92YmlfcGFja2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cikKIAkJcmFkZW9uX2VuY29kZXItPmF1ZGlvLT5zZXRfdmJpX3BhY2tldChlbmNvZGVyLCBkaWct PmFmbXQtPm9mZnNldCk7CiB9CiAKLXZvaWQgcmFkZW9uX2hkbWlfc2V0X2NvbG9yX2RlcHRoKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIHJhZGVvbl9oZG1pX3NldF9j b2xvcl9kZXB0aChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CiAJaW50IGJwYyA9IDg7 CiAJc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNv ZGVyKGVuY29kZXIpOwpAQCAtNjMxLDcgKzYzNyw3IEBAIHZvaWQgcmFkZW9uX2hkbWlfc2V0X2Nv bG9yX2RlcHRoKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJcmFkZW9uX2VuY29kZXIt PmF1ZGlvLT5zZXRfY29sb3JfZGVwdGgoZW5jb2RlciwgZGlnLT5hZm10LT5vZmZzZXQsIGJwYyk7 CiB9CiAKLXZvaWQgcmFkZW9uX2F1ZGlvX3NldF9hdWRpb19wYWNrZXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQorc3RhdGljIHZvaWQgcmFkZW9uX2F1ZGlvX3NldF9hdWRpb19wYWNrZXQo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewogICAgIHN0cnVjdCByYWRlb25fZW5jb2Rl ciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5jb2RlcihlbmNvZGVyKTsKICAgICBzdHJ1 Y3QgcmFkZW9uX2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IHJhZGVvbl9lbmNvZGVyLT5lbmNfcHJp djsKQEAgLTY0Myw3ICs2NDksNyBAQCB2b2lkIHJhZGVvbl9hdWRpb19zZXRfYXVkaW9fcGFja2V0 KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJcmFkZW9uX2VuY29kZXItPmF1ZGlvLT5z ZXRfYXVkaW9fcGFja2V0KGVuY29kZXIsIGRpZy0+YWZtdC0+b2Zmc2V0KTsKIH0KIAotdm9pZCBy YWRlb25fYXVkaW9fc2V0X211dGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBib29sIG11 dGUpCitzdGF0aWMgdm9pZCByYWRlb25fYXVkaW9fc2V0X211dGUoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyLCBib29sIG11dGUpCiB7CiAgICAgc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRl b25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOwogICAgIHN0cnVjdCByYWRl b25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVuY19wcml2OwpAQCAt NjU0LDMgKzY2MCw0NyBAQCB2b2lkIHJhZGVvbl9hdWRpb19zZXRfbXV0ZShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsIGJvb2wgbXV0ZSkKIAlpZiAocmFkZW9uX2VuY29kZXItPmF1ZGlvICYm IHJhZGVvbl9lbmNvZGVyLT5hdWRpby0+c2V0X211dGUpCiAJCXJhZGVvbl9lbmNvZGVyLT5hdWRp by0+c2V0X211dGUoZW5jb2RlciwgZGlnLT5hZm10LT5vZmZzZXQsIG11dGUpOwogfQorCisvKgor ICogdXBkYXRlIHRoZSBpbmZvIGZyYW1lcyB3aXRoIHRoZSBkYXRhIGZyb20gdGhlIGN1cnJlbnQg ZGlzcGxheSBtb2RlCisgKi8KK3N0YXRpYyB2b2lkIHJhZGVvbl9hdWRpb19oZG1pX21vZGVfc2V0 KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSkKK3sKKyAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXItPmRldi0+ ZGV2X3ByaXZhdGU7CisJc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRv X3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOworCXN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2Rp ZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVuY19wcml2OworCisJaWYgKCFkaWcgfHwgIWRpZy0+ YWZtdCkKKwkJcmV0dXJuOworCisJLyogZGlzYWJsZSBhdWRpbyBwcmlvciB0byBzZXR0aW5nIHVw IGh3ICovCisJZGlnLT5hZm10LT5waW4gPSByYWRlb25fYXVkaW9fZ2V0X3BpbihlbmNvZGVyKTsK KwlyYWRlb25fYXVkaW9fZW5hYmxlKHJkZXYsIGRpZy0+YWZtdC0+cGluLCAwKTsKKworCXJhZGVv bl9hdWRpb19zZXRfZHRvKGVuY29kZXIsIG1vZGUtPmNsb2NrKTsKKwlyYWRlb25fYXVkaW9fc2V0 X3ZiaV9wYWNrZXQoZW5jb2Rlcik7CisJcmFkZW9uX2hkbWlfc2V0X2NvbG9yX2RlcHRoKGVuY29k ZXIpOworCXJhZGVvbl9hdWRpb19zZXRfbXV0ZShlbmNvZGVyLCBmYWxzZSk7CisJcmFkZW9uX2F1 ZGlvX3VwZGF0ZV9hY3IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOworCXJhZGVvbl9hdWRpb193cml0 ZV9zcGVha2VyX2FsbG9jYXRpb24oZW5jb2Rlcik7CisJcmFkZW9uX2F1ZGlvX3NldF9hdWRpb19w YWNrZXQoZW5jb2Rlcik7CisJcmFkZW9uX2F1ZGlvX3NlbGVjdF9waW4oZW5jb2Rlcik7CisJcmFk ZW9uX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKGVuY29kZXIpOworCXJhZGVvbl9hdWRpb193cml0ZV9s YXRlbmN5X2ZpZWxkcyhlbmNvZGVyLCBtb2RlKTsKKworCWlmIChyYWRlb25fYXVkaW9fc2V0X2F2 aV9wYWNrZXQoZW5jb2RlciwgbW9kZSkgPCAwKQorCQlyZXR1cm47CisKKwkvKiBlbmFibGUgYXVk aW8gYWZ0ZXIgdG8gc2V0dGluZyB1cCBodyAqLworCXJhZGVvbl9hdWRpb19lbmFibGUocmRldiwg ZGlnLT5hZm10LT5waW4sIDB4Zik7Cit9CisKK3ZvaWQgcmFkZW9uX2F1ZGlvX21vZGVfc2V0KHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSkKK3sKKwlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVvbl9lbmNvZGVyID0gdG9fcmFkZW9u X2VuY29kZXIoZW5jb2Rlcik7CisKKwlpZiAocmFkZW9uX2VuY29kZXItPmF1ZGlvICYmIHJhZGVv bl9lbmNvZGVyLT5hdWRpby0+bW9kZV9zZXQpCisJCXJhZGVvbl9lbmNvZGVyLT5hdWRpby0+bW9k ZV9zZXQoZW5jb2RlciwgbW9kZSk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9hdWRpby5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8u aAppbmRleCA1Y2E1ZTdlLi42OTAyMjExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl9hdWRpby5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1 ZGlvLmgKQEAgLTYxLDYgKzYxLDggQEAgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5jcwogCQl1bnNp Z25lZCBjaGFyICpidWZmZXIsIHNpemVfdCBzaXplKTsKIAl2b2lkICgqc2V0X2F1ZGlvX3BhY2tl dCkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB1MzIgb2Zmc2V0KTsKIAl2b2lkICgqc2V0 X211dGUpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIG9mZnNldCwgYm9vbCBtdXRl KTsKKwl2b2lkICgqbW9kZV9zZXQpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwogfTsKIAogaW50IHJhZGVvbl9hdWRpb19pbml0 KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKQEAgLTcwLDIyICs3MiwxMSBAQCB1MzIgcmFk ZW9uX2F1ZGlvX2VuZHBvaW50X3JyZWcoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJdTMy IG9mZnNldCwgdTMyIHJlZyk7CiB2b2lkIHJhZGVvbl9hdWRpb19lbmRwb2ludF93cmVnKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCXUzMiBvZmZzZXQsCXUzMiByZWcsIHUzMiB2KTsKLXZv aWQgcmFkZW9uX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl cik7Ci12b2lkIHJhZGVvbl9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKTsKLXZvaWQgcmFkZW9uX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmll bGRzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSk7CiBzdHJ1Y3QgcjYwMF9hdWRpb19waW4gKnJhZGVvbl9hdWRpb19nZXRfcGluKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Ci12b2lkIHJhZGVvbl9hdWRpb19zZWxlY3RfcGlu KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7CiB2b2lkIHJhZGVvbl9hdWRpb19lbmFibGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJc3RydWN0IHI2MDBfYXVkaW9fcGluICpwaW4s IHU4IGVuYWJsZV9tYXNrKTsKIHZvaWQgcmFkZW9uX2F1ZGlvX2Zpbmkoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpOwotdm9pZCByYWRlb25fYXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsIHVuc2lnbmVkIGludCBjbG9jayk7Ci1pbnQgcmFkZW9uX2F1ZGlvX3NldF9h dmlfcGFja2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKK3ZvaWQgcmFkZW9uX2F1ZGlv X21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSk7Ci12b2lkIHJhZGVvbl9hdWRpb191cGRhdGVfYWNyKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwgdW5zaWduZWQgaW50IGNsb2NrKTsKLXZvaWQgcmFkZW9uX2F1ZGlv X3NldF92YmlfcGFja2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Ci12b2lkIHJhZGVv bl9oZG1pX3NldF9jb2xvcl9kZXB0aChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwotdm9p ZCByYWRlb25fYXVkaW9fc2V0X2F1ZGlvX3BhY2tldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpOwotdm9pZCByYWRlb25fYXVkaW9fc2V0X211dGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLCBib29sIG11dGUpOwogCiAjZW5kaWYKLS0gCjEuOC4zLjEKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==