From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 12/24] radeon/audio: consolidate update_acr() functions Date: Tue, 13 Jan 2015 12:46:41 -0500 Message-ID: <1421171213-23977-13-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-f48.google.com (mail-qg0-f48.google.com [209.85.192.48]) by gabe.freedesktop.org (Postfix) with ESMTP id 2B13E6E67D for ; Tue, 13 Jan 2015 09:47:08 -0800 (PST) Received: by mail-qg0-f48.google.com with SMTP id j5so3297218qga.7 for ; Tue, 13 Jan 2015 09:47:07 -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 Z3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYyAgICB8ICAzOCArKysrKysrKystLQogZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jIHwgIDQ2ICsrKysrKy0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMgICAgICB8IDExNyArKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8u YyAgIHwgIDk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fYXVkaW8uaCAgIHwgICAzICsKIDUgZmlsZXMgY2hhbmdlZCwgMTc2IGluc2Vy dGlvbnMoKyksIDEyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2RjZTNfMV9hZm10LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTNfMV9hZm10 LmMKaW5kZXggMGFjY2M1ZS4uNjc4OTA5ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9kY2UzXzFfYWZtdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlM18xX2Fm bXQuYwpAQCAtMTY3LDYgKzE2NywzOCBAQCB2b2lkIGRjZTNfMl9hdWRpb19zZXRfZHRvKHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAogCX0KIH0KIAordm9pZCBkY2UzXzJfaGRtaV91cGRhdGVf YWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgbG9uZyBvZmZzZXQsCisgICAgY29uc3Qg c3RydWN0IHJhZGVvbl9oZG1pX2FjciAqYWNyKQoreworICAgIHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5kZXY7CisgICAgc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYt PmRldl9wcml2YXRlOworCisJV1JFRzMyKEhETUkwX0FDUl9QQUNLRVRfQ09OVFJPTCArIG9mZnNl dCwKKwkgICAgICAgSERNSTBfQUNSX1NPVVJDRSB8CQkvKiBzZWxlY3QgU1cgQ1RTIHZhbHVlICov CisJICAgICAgIEhETUkwX0FDUl9BVVRPX1NFTkQpOwkvKiBhbGxvdyBodyB0byBzZW50IEFDUiBw YWNrZXRzIHdoZW4gcmVxdWlyZWQgKi8KKworICAgIFdSRUczMl9QKEhETUkwX0FDUl8zMl8wICsg b2Zmc2V0LAorICAgICAgICAgSERNSTBfQUNSX0NUU18zMihhY3ItPmN0c18zMmtoeiksCisgICAg ICAgICB+SERNSTBfQUNSX0NUU18zMl9NQVNLKTsKKyAgICBXUkVHMzJfUChIRE1JMF9BQ1JfMzJf MSArIG9mZnNldCwKKyAgICAgICAgIEhETUkwX0FDUl9OXzMyKGFjci0+bl8zMmtoeiksCisgICAg ICAgICB+SERNSTBfQUNSX05fMzJfTUFTSyk7CisKKyAgICBXUkVHMzJfUChIRE1JMF9BQ1JfNDRf MCArIG9mZnNldCwKKyAgICAgICAgIEhETUkwX0FDUl9DVFNfNDQoYWNyLT5jdHNfNDRfMWtoeiks CisgICAgICAgICB+SERNSTBfQUNSX0NUU180NF9NQVNLKTsKKyAgICBXUkVHMzJfUChIRE1JMF9B Q1JfNDRfMSArIG9mZnNldCwKKyAgICAgICAgIEhETUkwX0FDUl9OXzQ0KGFjci0+bl80NF8xa2h6 KSwKKyAgICAgICAgIH5IRE1JMF9BQ1JfTl80NF9NQVNLKTsKKworICAgIFdSRUczMl9QKEhETUkw X0FDUl80OF8wICsgb2Zmc2V0LAorICAgICAgICAgSERNSTBfQUNSX0NUU180OChhY3ItPmN0c180 OGtoeiksCisgICAgICAgICB+SERNSTBfQUNSX0NUU180OF9NQVNLKTsKKyAgICBXUkVHMzJfUChI RE1JMF9BQ1JfNDhfMSArIG9mZnNldCwKKyAgICAgICAgIEhETUkwX0FDUl9OXzQ4KGFjci0+bl80 OGtoeiksCisgICAgICAgICB+SERNSTBfQUNSX05fNDhfTUFTSyk7Cit9CisKIC8qCiAgKiB1cGRh dGUgdGhlIGluZm8gZnJhbWVzIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgY3VycmVudCBkaXNwbGF5 IG1vZGUKICAqLwpAQCAtMjIwLDEwICsyNTIsNiBAQCB2b2lkIGRjZTNfMV9oZG1pX3NldG1vZGUo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbQog CQlyYWRlb25fYXVkaW9fd3JpdGVfc2FkX3JlZ3MoZW5jb2Rlcik7CiAJfQogCi0JV1JFRzMyKEhE TUkwX0FDUl9QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwKLQkgICAgICAgSERNSTBfQUNSX1NPVVJD RSB8IC8qIHNlbGVjdCBTVyBDVFMgdmFsdWUgLSBYWFggdmVyaWZ5IHRoYXQgaHcgQ1RTIHdvcmtz IG9uIGFsbCBmYW1pbGllcyAqLwotCSAgICAgICBIRE1JMF9BQ1JfQVVUT19TRU5EKTsgLyogYWxs b3cgaHcgdG8gc2VudCBBQ1IgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCi0KIAlXUkVHMzIoSERN STBfVkJJX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAogCSAgICAgICBIRE1JMF9OVUxMX1NFTkQg fCAvKiBzZW5kIG51bGwgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCiAJICAgICAgIEhETUkwX0dD X1NFTkQgfCAvKiBzZW5kIGdlbmVyYWwgY29udHJvbCBwYWNrZXRzICovCkBAIC0yNTUsNyArMjgz LDcgQEAgdm9pZCBkY2UzXzFfaGRtaV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0KIAl9CiAKIAlyYWRlb25fdXBkYXRlX2F2aV9p bmZvZnJhbWUoZW5jb2RlciwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSk7Ci0JcjYwMF9oZG1pX3Vw ZGF0ZV9BQ1IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOworCXJhZGVvbl9hdWRpb191cGRhdGVfYWNy KGVuY29kZXIsIG1vZGUtPmNsb2NrKTsKIAogCS8qIGl0J3MgdW5rbm93biB3aGF0IHRoZXNlIGJp dHMgZG8gZXhjYXRseSwgYnV0IGl0J3MgaW5kZWVkIHF1aXRlIHVzZWZ1bCBmb3IgZGVidWdnaW5n ICovCiAJV1JFRzMyKEhETUkwX1JBTVBfQ09OVFJPTDAgKyBvZmZzZXQsIDB4MDBGRkZGRkYpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jCmluZGV4IGYyODk2ZTUuLmMyYWJh YjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9oZG1pLmMKQEAgLTY0LDI2ICs2 NCwzNCBAQCB2b2lkIGRjZTRfYXVkaW9fZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LAogCVdSRUczMihBWl9IT1RfUExVR19DT05UUk9MLCB0bXApOwogfQogCi0vKgotICogdXBkYXRl IHRoZSBOIGFuZCBDVFMgcGFyYW1ldGVycyBmb3IgYSBnaXZlbiBwaXhlbCBjbG9jayByYXRlCi0g Ki8KLXN0YXRpYyB2b2lkIGV2ZXJncmVlbl9oZG1pX3VwZGF0ZV9BQ1Ioc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLCB1aW50MzJfdCBjbG9jaykKK3ZvaWQgZXZlcmdyZWVuX2hkbWlfdXBkYXRl X2FjcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGxvbmcgb2Zmc2V0LAorCWNvbnN0IHN0 cnVjdCByYWRlb25faGRtaV9hY3IgKmFjcikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKLQlzdHJ1Y3QgcmFkZW9uX2hkbWlfYWNyIGFjciA9IHI2MDBfaGRtaV9hY3IoY2xvY2sp OwotCXN0cnVjdCByYWRlb25fZW5jb2RlciAqcmFkZW9uX2VuY29kZXIgPSB0b19yYWRlb25fZW5j b2RlcihlbmNvZGVyKTsKLQlzdHJ1Y3QgcmFkZW9uX2VuY29kZXJfYXRvbV9kaWcgKmRpZyA9IHJh ZGVvbl9lbmNvZGVyLT5lbmNfcHJpdjsKLQl1aW50MzJfdCBvZmZzZXQgPSBkaWctPmFmbXQtPm9m ZnNldDsKKwlpbnQgYnBjID0gODsKKworCWlmIChlbmNvZGVyLT5jcnRjKSB7CisJCXN0cnVjdCBy YWRlb25fY3J0YyAqcmFkZW9uX2NydGMgPSB0b19yYWRlb25fY3J0YyhlbmNvZGVyLT5jcnRjKTsK KwkJYnBjID0gcmFkZW9uX2NydGMtPmJwYzsKKwl9CisKKwlpZiAoYnBjID4gOCkKKwkJV1JFRzMy KEhETUlfQUNSX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAorCQkgICAgICAgSERNSV9BQ1JfQVVU T19TRU5EKTsgLyogYWxsb3cgaHcgdG8gc2VudCBBQ1IgcGFja2V0cyB3aGVuIHJlcXVpcmVkICov CisJZWxzZQorCQlXUkVHMzIoSERNSV9BQ1JfUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCisJCSAg ICAgICBIRE1JX0FDUl9TT1VSQ0UgfCAvKiBzZWxlY3QgU1cgQ1RTIHZhbHVlICovCisJCSAgICAg ICBIRE1JX0FDUl9BVVRPX1NFTkQpOyAvKiBhbGxvdyBodyB0byBzZW50IEFDUiBwYWNrZXRzIHdo ZW4gcmVxdWlyZWQgKi8KIAotCVdSRUczMihIRE1JX0FDUl8zMl8wICsgb2Zmc2V0LCBIRE1JX0FD Ul9DVFNfMzIoYWNyLmN0c18zMmtoeikpOwotCVdSRUczMihIRE1JX0FDUl8zMl8xICsgb2Zmc2V0 LCBhY3Iubl8zMmtoeik7CisJV1JFRzMyKEhETUlfQUNSXzMyXzAgKyBvZmZzZXQsIEhETUlfQUNS X0NUU18zMihhY3ItPmN0c18zMmtoeikpOworCVdSRUczMihIRE1JX0FDUl8zMl8xICsgb2Zmc2V0 LCBhY3ItPm5fMzJraHopOwogCi0JV1JFRzMyKEhETUlfQUNSXzQ0XzAgKyBvZmZzZXQsIEhETUlf QUNSX0NUU180NChhY3IuY3RzXzQ0XzFraHopKTsKLQlXUkVHMzIoSERNSV9BQ1JfNDRfMSArIG9m ZnNldCwgYWNyLm5fNDRfMWtoeik7CisJV1JFRzMyKEhETUlfQUNSXzQ0XzAgKyBvZmZzZXQsIEhE TUlfQUNSX0NUU180NChhY3ItPmN0c180NF8xa2h6KSk7CisJV1JFRzMyKEhETUlfQUNSXzQ0XzEg KyBvZmZzZXQsIGFjci0+bl80NF8xa2h6KTsKIAotCVdSRUczMihIRE1JX0FDUl80OF8wICsgb2Zm c2V0LCBIRE1JX0FDUl9DVFNfNDgoYWNyLmN0c180OGtoeikpOwotCVdSRUczMihIRE1JX0FDUl80 OF8xICsgb2Zmc2V0LCBhY3Iubl80OGtoeik7CisJV1JFRzMyKEhETUlfQUNSXzQ4XzAgKyBvZmZz ZXQsIEhETUlfQUNSX0NUU180OChhY3ItPmN0c180OGtoeikpOworCVdSRUczMihIRE1JX0FDUl80 OF8xICsgb2Zmc2V0LCBhY3ItPm5fNDhraHopOwogfQogCiB2b2lkIGRjZTRfYWZtdF93cml0ZV9s YXRlbmN5X2ZpZWxkcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCkBAIC0zNzgsMTUgKzM4 Niw3IEBAIHZvaWQgZXZlcmdyZWVuX2hkbWlfc2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlCiAKIAkvKiBmZ2xyeCBjbGVhcnMgc3RoIGlu IEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wyIGhlcmUgKi8KIAotCWlmIChicGMgPiA4KQotCQlX UkVHMzIoSERNSV9BQ1JfUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCi0JCSAgICAgICBIRE1JX0FD Ul9BVVRPX1NFTkQpOyAvKiBhbGxvdyBodyB0byBzZW50IEFDUiBwYWNrZXRzIHdoZW4gcmVxdWly ZWQgKi8KLQllbHNlCi0JCVdSRUczMihIRE1JX0FDUl9QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwK LQkJICAgICAgIEhETUlfQUNSX1NPVVJDRSB8IC8qIHNlbGVjdCBTVyBDVFMgdmFsdWUgKi8KLQkJ ICAgICAgIEhETUlfQUNSX0FVVE9fU0VORCk7IC8qIGFsbG93IGh3IHRvIHNlbnQgQUNSIHBhY2tl dHMgd2hlbiByZXF1aXJlZCAqLwotCi0JZXZlcmdyZWVuX2hkbWlfdXBkYXRlX0FDUihlbmNvZGVy LCBtb2RlLT5jbG9jayk7CisJcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3IoZW5jb2RlciwgbW9kZS0+ Y2xvY2spOwogCiAJV1JFRzMyKEFGTVRfNjA5NThfMCArIG9mZnNldCwKIAkgICAgICAgQUZNVF82 MDk1OF9DU19DSEFOTkVMX05VTUJFUl9MKDEpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjYwMF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5j CmluZGV4IDUzZWU3YWQuLjA1ZWVjOWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcjYwMF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYwpA QCAtNTYsMjEgKzU2LDYgQEAgZW51bSByNjAwX2hkbWlfaWVjX3N0YXR1c19iaXRzIHsKIAlBVURJ T19TVEFUVVNfTEVWRUwgICAgICAgID0gMHg4MAogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCBy YWRlb25faGRtaV9hY3IgcjYwMF9oZG1pX3ByZWRlZmluZWRfYWNyW10gPSB7Ci0gICAgLyoJICAg ICAzMmtIegkgIDQ0LjFrSHoJNDhrSHogICAgKi8KLSAgICAvKiBDbG9jayAgICAgIE4gICAgIENU UyAgICAgIE4gICAgIENUUyAgICAgIE4gICAgIENUUyAqLwotICAgIHsgIDI1MTc1LCAgNDA5Niwg IDI1MTc1LCAyODIyNCwgMTI1ODc1LCAgNjE0NCwgIDI1MTc1IH0sIC8qICAyNSwyMC8xLjAwMSBN SHogKi8KLSAgICB7ICAyNTIwMCwgIDQwOTYsICAyNTIwMCwgIDYyNzIsICAyODAwMCwgIDYxNDQs ICAyNTIwMCB9LCAvKiAgMjUuMjAgICAgICAgTUh6ICovCi0gICAgeyAgMjcwMDAsICA0MDk2LCAg MjcwMDAsICA2MjcyLCAgMzAwMDAsICA2MTQ0LCAgMjcwMDAgfSwgLyogIDI3LjAwICAgICAgIE1I eiAqLwotICAgIHsgIDI3MDI3LCAgNDA5NiwgIDI3MDI3LCAgNjI3MiwgIDMwMDMwLCAgNjE0NCwg IDI3MDI3IH0sIC8qICAyNy4wMCoxLjAwMSBNSHogKi8KLSAgICB7ICA1NDAwMCwgIDQwOTYsICA1 NDAwMCwgIDYyNzIsICA2MDAwMCwgIDYxNDQsICA1NDAwMCB9LCAvKiAgNTQuMDAgICAgICAgTUh6 ICovCi0gICAgeyAgNTQwNTQsICA0MDk2LCAgNTQwNTQsICA2MjcyLCAgNjAwNjAsICA2MTQ0LCAg NTQwNTQgfSwgLyogIDU0LjAwKjEuMDAxIE1IeiAqLwotICAgIHsgIDc0MTc2LCAgNDA5NiwgIDc0 MTc2LCAgNTczMywgIDc1MzM1LCAgNjE0NCwgIDc0MTc2IH0sIC8qICA3NC4yNS8xLjAwMSBNSHog Ki8KLSAgICB7ICA3NDI1MCwgIDQwOTYsICA3NDI1MCwgIDYyNzIsICA4MjUwMCwgIDYxNDQsICA3 NDI1MCB9LCAvKiAgNzQuMjUgICAgICAgTUh6ICovCi0gICAgeyAxNDgzNTIsICA0MDk2LCAxNDgz NTIsICA1NzMzLCAxNTA2NzAsICA2MTQ0LCAxNDgzNTIgfSwgLyogMTQ4LjUwLzEuMDAxIE1IeiAq LwotICAgIHsgMTQ4NTAwLCAgNDA5NiwgMTQ4NTAwLCAgNjI3MiwgMTY1MDAwLCAgNjE0NCwgMTQ4 NTAwIH0sIC8qIDE0OC41MCAgICAgICBNSHogKi8KLX07Ci0KIHN0YXRpYyBzdHJ1Y3QgcjYwMF9h dWRpb19waW4gcjYwMF9hdWRpb19zdGF0dXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7 CiAJc3RydWN0IHI2MDBfYXVkaW9fcGluIHN0YXR1czsKQEAgLTE4OSw5NiArMTc0LDQwIEBAIHN0 cnVjdCByNjAwX2F1ZGlvX3BpbiAqcjYwMF9hdWRpb19nZXRfcGluKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KQogCXJldHVybiAmcmRldi0+YXVkaW8ucGluWzBdOwogfQogCi0vKgotICogY2Fs Y3VsYXRlIENUUyBhbmQgTiB2YWx1ZXMgaWYgdGhleSBhcmUgbm90IGZvdW5kIGluIHRoZSB0YWJs ZQotICovCi1zdGF0aWMgdm9pZCByNjAwX2hkbWlfY2FsY19jdHModWludDMyX3QgY2xvY2ssIGlu dCAqQ1RTLCBpbnQgKk4sIGludCBmcmVxKQotewotCWludCBuLCBjdHM7Ci0JdW5zaWduZWQgbG9u ZyBkaXYsIG11bDsKLQotCS8qIFNhZmUsIGJ1dCBvdmVybHkgbGFyZ2UgdmFsdWVzICovCi0JbiA9 IDEyOCAqIGZyZXE7Ci0JY3RzID0gY2xvY2sgKiAxMDAwOwotCi0JLyogU21hbGxlc3QgdmFsaWQg ZnJhY3Rpb24gKi8KLQlkaXYgPSBnY2QobiwgY3RzKTsKLQotCW4gLz0gZGl2OwotCWN0cyAvPSBk aXY7Ci0KLQkvKgotCSAqIFRoZSBvcHRpbWFsIE4gaXMgMTI4KmZyZXEvMTAwMC4gQ2FsY3VsYXRl IHRoZSBjbG9zZXN0IGxhcmdlcgotCSAqIHZhbHVlIHRoYXQgZG9lc24ndCB0cnVuY2F0ZSBhbnkg Yml0cy4KLQkgKi8KLQltdWwgPSAoKDEyOCpmcmVxLzEwMDApICsgKG4tMSkpL247Ci0KLQluICo9 IG11bDsKLQljdHMgKj0gbXVsOwotCi0JLyogQ2hlY2sgdGhhdCB3ZSBhcmUgaW4gc3BlYyAobm90 IGFsd2F5cyBwb3NzaWJsZSkgKi8KLQlpZiAobiA8ICgxMjgqZnJlcS8xNTAwKSkKLQkJcHJpbnRr KEtFUk5fV0FSTklORyAiQ2FsY3VsYXRlZCBBQ1IgTiB2YWx1ZSBpcyB0b28gc21hbGwuIFlvdSBt YXkgZXhwZXJpZW5jZSBhdWRpbyBwcm9ibGVtcy5cbiIpOwotCWlmIChuID4gKDEyOCpmcmVxLzMw MCkpCi0JCXByaW50ayhLRVJOX1dBUk5JTkcgIkNhbGN1bGF0ZWQgQUNSIE4gdmFsdWUgaXMgdG9v IGxhcmdlLiBZb3UgbWF5IGV4cGVyaWVuY2UgYXVkaW8gcHJvYmxlbXMuXG4iKTsKLQotCSpOID0g bjsKLQkqQ1RTID0gY3RzOwotCi0JRFJNX0RFQlVHKCJDYWxjdWxhdGVkIEFDUiB0aW1pbmcgTj0l ZCBDVFM9JWQgZm9yIGZyZXF1ZW5jeSAlZFxuIiwKLQkJICAqTiwgKkNUUywgZnJlcSk7Ci19Ci0K LXN0cnVjdCByYWRlb25faGRtaV9hY3IgcjYwMF9oZG1pX2Fjcih1aW50MzJfdCBjbG9jaykKLXsK LQlzdHJ1Y3QgcmFkZW9uX2hkbWlfYWNyIHJlczsKLQl1OCBpOwotCi0JLyogUHJlY2FsY3VsYXRl ZCB2YWx1ZXMgZm9yIGNvbW1vbiBjbG9ja3MgKi8KLQlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0la RShyNjAwX2hkbWlfcHJlZGVmaW5lZF9hY3IpOyBpKyspIHsKLQkJaWYgKHI2MDBfaGRtaV9wcmVk ZWZpbmVkX2FjcltpXS5jbG9jayA9PSBjbG9jaykKLQkJCXJldHVybiByNjAwX2hkbWlfcHJlZGVm aW5lZF9hY3JbaV07Ci0JfQotCi0JLyogQW5kIG9kZCBjbG9ja3MgZ2V0IG1hbnVhbGx5IGNhbGN1 bGF0ZWQgKi8KLQlyNjAwX2hkbWlfY2FsY19jdHMoY2xvY2ssICZyZXMuY3RzXzMya2h6LCAmcmVz Lm5fMzJraHosIDMyMDAwKTsKLQlyNjAwX2hkbWlfY2FsY19jdHMoY2xvY2ssICZyZXMuY3RzXzQ0 XzFraHosICZyZXMubl80NF8xa2h6LCA0NDEwMCk7Ci0JcjYwMF9oZG1pX2NhbGNfY3RzKGNsb2Nr LCAmcmVzLmN0c180OGtoeiwgJnJlcy5uXzQ4a2h6LCA0ODAwMCk7Ci0KLQlyZXR1cm4gcmVzOwot fQotCi0vKgotICogdXBkYXRlIHRoZSBOIGFuZCBDVFMgcGFyYW1ldGVycyBmb3IgYSBnaXZlbiBw aXhlbCBjbG9jayByYXRlCi0gKi8KLXZvaWQgcjYwMF9oZG1pX3VwZGF0ZV9BQ1Ioc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLCB1aW50MzJfdCBjbG9jaykKK3ZvaWQgcjYwMF9oZG1pX3VwZGF0 ZV9hY3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBsb25nIG9mZnNldCwKKwljb25zdCBz dHJ1Y3QgcmFkZW9uX2hkbWlfYWNyICphY3IpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2X3By aXZhdGU7Ci0Jc3RydWN0IHJhZGVvbl9oZG1pX2FjciBhY3IgPSByNjAwX2hkbWlfYWNyKGNsb2Nr KTsKLQlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVvbl9lbmNvZGVyID0gdG9fcmFkZW9uX2Vu Y29kZXIoZW5jb2Rlcik7Ci0Jc3RydWN0IHJhZGVvbl9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSBy YWRlb25fZW5jb2Rlci0+ZW5jX3ByaXY7Ci0JdWludDMyX3Qgb2Zmc2V0ID0gZGlnLT5hZm10LT5v ZmZzZXQ7CisKKwkvKiBEQ0UgMy4wIHVzZXMgcmVnaXN0ZXIgdGhhdCdzIG5vcm1hbGx5IGZvciBD UkNfQ09OVFJPTCAqLworCXVpbnQzMl90IGFjcl9jdGwgPSBBU0lDX0lTX0RDRTMocmRldikgPyBE Q0UzX0hETUkwX0FDUl9QQUNLRVRfQ09OVFJPTCA6CisJCQkJICAgICAgIEhETUkwX0FDUl9QQUNL RVRfQ09OVFJPTDsKKwlXUkVHMzJfUChhY3JfY3RsICsgb2Zmc2V0LAorCQlIRE1JMF9BQ1JfU09V UkNFIHwJCS8qIHNlbGVjdCBTVyBDVFMgdmFsdWUgKi8KKwkJSERNSTBfQUNSX0FVVE9fU0VORCwJ LyogYWxsb3cgaHcgdG8gc2VudCBBQ1IgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCisJCX4oSERN STBfQUNSX1NPVVJDRSB8CisJCUhETUkwX0FDUl9BVVRPX1NFTkQpKTsKIAogCVdSRUczMl9QKEhE TUkwX0FDUl8zMl8wICsgb2Zmc2V0LAotCQkgSERNSTBfQUNSX0NUU18zMihhY3IuY3RzXzMya2h6 KSwKKwkJIEhETUkwX0FDUl9DVFNfMzIoYWNyLT5jdHNfMzJraHopLAogCQkgfkhETUkwX0FDUl9D VFNfMzJfTUFTSyk7CiAJV1JFRzMyX1AoSERNSTBfQUNSXzMyXzEgKyBvZmZzZXQsCi0JCSBIRE1J MF9BQ1JfTl8zMihhY3Iubl8zMmtoeiksCisJCSBIRE1JMF9BQ1JfTl8zMihhY3ItPm5fMzJraHop LAogCQkgfkhETUkwX0FDUl9OXzMyX01BU0spOwogCiAJV1JFRzMyX1AoSERNSTBfQUNSXzQ0XzAg KyBvZmZzZXQsCi0JCSBIRE1JMF9BQ1JfQ1RTXzQ0KGFjci5jdHNfNDRfMWtoeiksCisJCSBIRE1J MF9BQ1JfQ1RTXzQ0KGFjci0+Y3RzXzQ0XzFraHopLAogCQkgfkhETUkwX0FDUl9DVFNfNDRfTUFT Syk7CiAJV1JFRzMyX1AoSERNSTBfQUNSXzQ0XzEgKyBvZmZzZXQsCi0JCSBIRE1JMF9BQ1JfTl80 NChhY3Iubl80NF8xa2h6KSwKKwkJIEhETUkwX0FDUl9OXzQ0KGFjci0+bl80NF8xa2h6KSwKIAkJ IH5IRE1JMF9BQ1JfTl80NF9NQVNLKTsKIAogCVdSRUczMl9QKEhETUkwX0FDUl80OF8wICsgb2Zm c2V0LAotCQkgSERNSTBfQUNSX0NUU180OChhY3IuY3RzXzQ4a2h6KSwKKwkJIEhETUkwX0FDUl9D VFNfNDgoYWNyLT5jdHNfNDhraHopLAogCQkgfkhETUkwX0FDUl9DVFNfNDhfTUFTSyk7CiAJV1JF RzMyX1AoSERNSTBfQUNSXzQ4XzEgKyBvZmZzZXQsCi0JCSBIRE1JMF9BQ1JfTl80OChhY3Iubl80 OGtoeiksCisJCSBIRE1JMF9BQ1JfTl80OChhY3ItPm5fNDhraHopLAogCQkgfkhETUkwX0FDUl9O XzQ4X01BU0spOwogfQogCkBAIC00MTIsNyArMzQxLDYgQEAgdm9pZCByNjAwX2hkbWlfc2V0bW9k ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2QKIAl1OCBidWZmZXJbSERNSV9JTkZPRlJBTUVfSEVBREVSX1NJWkUgKyBIRE1JX0FWSV9JTkZP RlJBTUVfU0laRV07CiAJc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSBmcmFtZTsKIAl1aW50MzJf dCBvZmZzZXQ7Ci0JdWludDMyX3QgYWNyX2N0bDsKIAlzc2l6ZV90IGVycjsKIAogCWlmICghZGln IHx8ICFkaWctPmFmbXQpCkBAIC00MzksMTUgKzM2Nyw2IEBAIHZvaWQgcjYwMF9oZG1pX3NldG1v ZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kCiAJCSAgIEhETUkwX0FVRElPX1BBQ0tFVFNfUEVSX0xJTkVfTUFTSyB8CiAJCSAgIEhETUkw XzYwOTU4X0NTX1VQREFURSkpOwogCi0JLyogRENFIDMuMCB1c2VzIHJlZ2lzdGVyIHRoYXQncyBu b3JtYWxseSBmb3IgQ1JDX0NPTlRST0wgKi8KLQlhY3JfY3RsID0gQVNJQ19JU19EQ0UzKHJkZXYp ID8gRENFM19IRE1JMF9BQ1JfUEFDS0VUX0NPTlRST0wgOgotCQkJCSAgICAgICBIRE1JMF9BQ1Jf UEFDS0VUX0NPTlRST0w7Ci0JV1JFRzMyX1AoYWNyX2N0bCArIG9mZnNldCwKLQkJIEhETUkwX0FD Ul9TT1VSQ0UgfCAvKiBzZWxlY3QgU1cgQ1RTIHZhbHVlIC0gWFhYIHZlcmlmeSB0aGF0IGh3IENU UyB3b3JrcyBvbiBhbGwgZmFtaWxpZXMgKi8KLQkJIEhETUkwX0FDUl9BVVRPX1NFTkQsIC8qIGFs bG93IGh3IHRvIHNlbnQgQUNSIHBhY2tldHMgd2hlbiByZXF1aXJlZCAqLwotCQkgfihIRE1JMF9B Q1JfU09VUkNFIHwKLQkJICAgSERNSTBfQUNSX0FVVE9fU0VORCkpOwotCiAJV1JFRzMyX09SKEhE TUkwX1ZCSV9QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwKIAkJICBIRE1JMF9OVUxMX1NFTkQgfCAv KiBzZW5kIG51bGwgcGFja2V0cyB3aGVuIHJlcXVpcmVkICovCiAJCSAgSERNSTBfR0NfU0VORCB8 IC8qIHNlbmQgZ2VuZXJhbCBjb250cm9sIHBhY2tldHMgKi8KQEAgLTQ5Myw3ICs0MTIsNyBAQCB2 b2lkIHI2MDBfaGRtaV9zZXRtb2RlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZAogCQkgICAgIEhETUkwX0dFTkVSSUMwX0xJTkVfTUFTSyB8 CiAJCSAgICAgSERNSTBfR0VORVJJQzFfTElORV9NQVNLKSk7CiAKLQlyNjAwX2hkbWlfdXBkYXRl X0FDUihlbmNvZGVyLCBtb2RlLT5jbG9jayk7CisJcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3IoZW5j b2RlciwgbW9kZS0+Y2xvY2spOwogCiAJV1JFRzMyX1AoSERNSTBfNjA5NThfMCArIG9mZnNldCwK IAkJIEhETUkwXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSX0woMSksCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fYXVkaW8uYwppbmRleCBjYzU4ZWU4Yy4uMzc1MjUyYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9hdWRpby5jCkBAIC0yMiw2ICsyMiw3IEBACiAgKiBBdXRob3JzOiBTbGF2 YSBHcmlnb3JldiA8c2xhdmEuZ3JpZ29yZXZAYW1kLmNvbT4KICAqLwogCisjaW5jbHVkZSA8bGlu dXgvZ2NkLmg+CiAjaW5jbHVkZSA8ZHJtL2RybVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2NydGMu aD4KICNpbmNsdWRlICJyYWRlb24uaCIKQEAgLTc4LDYgKzc5LDEyIEBAIHZvaWQgcjYwMF91cGRh dGVfYXZpX2luZm9mcmFtZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgdTMyIG9mZnNldCwK IAl1bnNpZ25lZCBjaGFyICpidWZmZXIsIHNpemVfdCBzaXplKTsKIHZvaWQgZXZlcmdyZWVuX3Vw ZGF0ZV9hdmlfaW5mb2ZyYW1lKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCB1MzIgb2Zmc2V0 LAogCXVuc2lnbmVkIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IHNpemUpOwordm9pZCByNjAwX2hkbWlf dXBkYXRlX2FjcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGxvbmcgb2Zmc2V0LAorCWNv bnN0IHN0cnVjdCByYWRlb25faGRtaV9hY3IgKmFjcik7Cit2b2lkIGRjZTNfMl9oZG1pX3VwZGF0 ZV9hY3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBsb25nIG9mZnNldCwKKwljb25zdCBz dHJ1Y3QgcmFkZW9uX2hkbWlfYWNyICphY3IpOwordm9pZCBldmVyZ3JlZW5faGRtaV91cGRhdGVf YWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgbG9uZyBvZmZzZXQsCisJY29uc3Qgc3Ry dWN0IHJhZGVvbl9oZG1pX2FjciAqYWNyKTsKIAogc3RhdGljIGNvbnN0IHUzMiBwaW5fb2Zmc2V0 c1s3XSA9CiB7CkBAIC0xMzIsNiArMTM5LDcgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9f YmFzaWNfZnVuY3MgZGNlNl9mdW5jcyA9IHsKIHN0YXRpYyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1 bmNzIHI2MDBfaGRtaV9mdW5jcyA9IHsKIAkuZ2V0X3BpbiA9IHI2MDBfYXVkaW9fZ2V0X3BpbiwK IAkuc2V0X2R0byA9IHI2MDBfaGRtaV9hdWRpb19zZXRfZHRvLAorCS51cGRhdGVfYWNyID0gcjYw MF9oZG1pX3VwZGF0ZV9hY3IsCiB9OwogCiBzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5j cyBkY2UzMl9oZG1pX2Z1bmNzID0gewpAQCAtMTM5LDYgKzE0Nyw3IEBAIHN0YXRpYyBzdHJ1Y3Qg cmFkZW9uX2F1ZGlvX2Z1bmNzIGRjZTMyX2hkbWlfZnVuY3MgPSB7CiAJLndyaXRlX3NhZF9yZWdz ID0gZGNlM18yX2FmbXRfd3JpdGVfc2FkX3JlZ3MsCiAJLndyaXRlX3NwZWFrZXJfYWxsb2NhdGlv biA9IGRjZTNfMl9hZm10X2hkbWlfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uLAogCS5zZXRfZHRv ID0gZGNlM18yX2F1ZGlvX3NldF9kdG8sCisJLnVwZGF0ZV9hY3IgPSBkY2UzXzJfaGRtaV91cGRh dGVfYWNyLAogfTsKIAogc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlMzJfZHBf ZnVuY3MgPSB7CkBAIC0xNTQsNiArMTYzLDcgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9f ZnVuY3MgZGNlNF9oZG1pX2Z1bmNzID0gewogCS53cml0ZV9zcGVha2VyX2FsbG9jYXRpb24gPSBk Y2U0X2FmbXRfaGRtaV93cml0ZV9zcGVha2VyX2FsbG9jYXRpb24sCiAJLndyaXRlX2xhdGVuY3lf ZmllbGRzID0gZGNlNF9hZm10X3dyaXRlX2xhdGVuY3lfZmllbGRzLAogCS5zZXRfZHRvID0gZGNl NF9oZG1pX2F1ZGlvX3NldF9kdG8sCisJLnVwZGF0ZV9hY3IgPSBldmVyZ3JlZW5faGRtaV91cGRh dGVfYWNyLAogfTsKIAogc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlNF9kcF9m dW5jcyA9IHsKQEAgLTQ1NiwzICs0NjYsOTIgQEAgdm9pZCByYWRlb25fdXBkYXRlX2F2aV9pbmZv ZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCB2b2lkICpidWZmZXIsCiAJCXJkZXYt PmF1ZGlvLmZ1bmNzLT51cGRhdGVfYXZpX2luZm9mcmFtZShyZGV2LCBkaWctPmFmbXQtPm9mZnNl dCwKIAkJCWJ1ZmZlciwgc2l6ZSk7CiB9CisKKy8qCisgKiBjYWxjdWxhdGUgQ1RTIGFuZCBOIHZh bHVlcyBpZiB0aGV5IGFyZSBub3QgZm91bmQgaW4gdGhlIHRhYmxlCisgKi8KK3N0YXRpYyB2b2lk IHJhZGVvbl9hdWRpb19jYWxjX2N0cyh1bnNpZ25lZCBpbnQgY2xvY2ssIGludCAqQ1RTLCBpbnQg Kk4sIGludCBmcmVxKQoreworCWludCBuLCBjdHM7CisJdW5zaWduZWQgbG9uZyBkaXYsIG11bDsK KworCS8qIFNhZmUsIGJ1dCBvdmVybHkgbGFyZ2UgdmFsdWVzICovCisJbiA9IDEyOCAqIGZyZXE7 CisJY3RzID0gY2xvY2sgKiAxMDAwOworCisJLyogU21hbGxlc3QgdmFsaWQgZnJhY3Rpb24gKi8K KwlkaXYgPSBnY2QobiwgY3RzKTsKKworCW4gLz0gZGl2OworCWN0cyAvPSBkaXY7CisKKwkvKgor CSAqIFRoZSBvcHRpbWFsIE4gaXMgMTI4KmZyZXEvMTAwMC4gQ2FsY3VsYXRlIHRoZSBjbG9zZXN0 IGxhcmdlcgorCSAqIHZhbHVlIHRoYXQgZG9lc24ndCB0cnVuY2F0ZSBhbnkgYml0cy4KKwkgKi8K KwltdWwgPSAoKDEyOCpmcmVxLzEwMDApICsgKG4tMSkpL247CisKKwluICo9IG11bDsKKwljdHMg Kj0gbXVsOworCisJLyogQ2hlY2sgdGhhdCB3ZSBhcmUgaW4gc3BlYyAobm90IGFsd2F5cyBwb3Nz aWJsZSkgKi8KKwlpZiAobiA8ICgxMjgqZnJlcS8xNTAwKSkKKwkJcHJpbnRrKEtFUk5fV0FSTklO RyAiQ2FsY3VsYXRlZCBBQ1IgTiB2YWx1ZSBpcyB0b28gc21hbGwuIFlvdSBtYXkgZXhwZXJpZW5j ZSBhdWRpbyBwcm9ibGVtcy5cbiIpOworCWlmIChuID4gKDEyOCpmcmVxLzMwMCkpCisJCXByaW50 ayhLRVJOX1dBUk5JTkcgIkNhbGN1bGF0ZWQgQUNSIE4gdmFsdWUgaXMgdG9vIGxhcmdlLiBZb3Ug bWF5IGV4cGVyaWVuY2UgYXVkaW8gcHJvYmxlbXMuXG4iKTsKKworCSpOID0gbjsKKwkqQ1RTID0g Y3RzOworCisJRFJNX0RFQlVHKCJDYWxjdWxhdGVkIEFDUiB0aW1pbmcgTj0lZCBDVFM9JWQgZm9y IGZyZXF1ZW5jeSAlZFxuIiwKKwkJKk4sICpDVFMsIGZyZXEpOworfQorCitzdGF0aWMgY29uc3Qg c3RydWN0IHJhZGVvbl9oZG1pX2FjciogcmFkZW9uX2F1ZGlvX2Fjcih1bnNpZ25lZCBpbnQgY2xv Y2spCit7CisJc3RhdGljIHN0cnVjdCByYWRlb25faGRtaV9hY3IgcmVzOworCXU4IGk7CisKKwlz dGF0aWMgY29uc3Qgc3RydWN0IHJhZGVvbl9oZG1pX2FjciBoZG1pX3ByZWRlZmluZWRfYWNyW10g PSB7CisJCS8qICAgICAgIDMya0h6ICAgIDQ0LjFrSHogICA0OGtIeiAgICAqLworCQkvKiBDbG9j ayAgICAgIE4gICAgIENUUyAgICAgIE4gICAgIENUUyAgICAgIE4gICAgIENUUyAqLworCQl7ICAy NTE3NSwgIDQwOTYsICAyNTE3NSwgMjgyMjQsIDEyNTg3NSwgIDYxNDQsICAyNTE3NSB9LCAvKiAg MjUsMjAvMS4wMDEgTUh6ICovCisJCXsgIDI1MjAwLCAgNDA5NiwgIDI1MjAwLCAgNjI3MiwgIDI4 MDAwLCAgNjE0NCwgIDI1MjAwIH0sIC8qICAyNS4yMCAgICAgICBNSHogKi8KKwkJeyAgMjcwMDAs ICA0MDk2LCAgMjcwMDAsICA2MjcyLCAgMzAwMDAsICA2MTQ0LCAgMjcwMDAgfSwgLyogIDI3LjAw ICAgICAgIE1IeiAqLworCQl7ICAyNzAyNywgIDQwOTYsICAyNzAyNywgIDYyNzIsICAzMDAzMCwg IDYxNDQsICAyNzAyNyB9LCAvKiAgMjcuMDAqMS4wMDEgTUh6ICovCisJCXsgIDU0MDAwLCAgNDA5 NiwgIDU0MDAwLCAgNjI3MiwgIDYwMDAwLCAgNjE0NCwgIDU0MDAwIH0sIC8qICA1NC4wMCAgICAg ICBNSHogKi8KKwkJeyAgNTQwNTQsICA0MDk2LCAgNTQwNTQsICA2MjcyLCAgNjAwNjAsICA2MTQ0 LCAgNTQwNTQgfSwgLyogIDU0LjAwKjEuMDAxIE1IeiAqLworCQl7ICA3NDE3NiwgIDQwOTYsICA3 NDE3NiwgIDU3MzMsICA3NTMzNSwgIDYxNDQsICA3NDE3NiB9LCAvKiAgNzQuMjUvMS4wMDEgTUh6 ICovCisJCXsgIDc0MjUwLCAgNDA5NiwgIDc0MjUwLCAgNjI3MiwgIDgyNTAwLCAgNjE0NCwgIDc0 MjUwIH0sIC8qICA3NC4yNSAgICAgICBNSHogKi8KKwkJeyAxNDgzNTIsICA0MDk2LCAxNDgzNTIs ICA1NzMzLCAxNTA2NzAsICA2MTQ0LCAxNDgzNTIgfSwgLyogMTQ4LjUwLzEuMDAxIE1IeiAqLwor CQl7IDE0ODUwMCwgIDQwOTYsIDE0ODUwMCwgIDYyNzIsIDE2NTAwMCwgIDYxNDQsIDE0ODUwMCB9 LCAvKiAxNDguNTAgICAgICAgTUh6ICovCisJfTsKKworCS8qIFByZWNhbGN1bGF0ZWQgdmFsdWVz IGZvciBjb21tb24gY2xvY2tzICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGRtaV9w cmVkZWZpbmVkX2Fjcik7IGkrKykKKwkJaWYgKGhkbWlfcHJlZGVmaW5lZF9hY3JbaV0uY2xvY2sg PT0gY2xvY2spCisJCQlyZXR1cm4gJmhkbWlfcHJlZGVmaW5lZF9hY3JbaV07CisKKwkvKiBBbmQg b2RkIGNsb2NrcyBnZXQgbWFudWFsbHkgY2FsY3VsYXRlZCAqLworCXJhZGVvbl9hdWRpb19jYWxj X2N0cyhjbG9jaywgJnJlcy5jdHNfMzJraHosICZyZXMubl8zMmtoeiwgMzIwMDApOworCXJhZGVv bl9hdWRpb19jYWxjX2N0cyhjbG9jaywgJnJlcy5jdHNfNDRfMWtoeiwgJnJlcy5uXzQ0XzFraHos IDQ0MTAwKTsKKwlyYWRlb25fYXVkaW9fY2FsY19jdHMoY2xvY2ssICZyZXMuY3RzXzQ4a2h6LCAm cmVzLm5fNDhraHosIDQ4MDAwKTsKKworCXJldHVybiAmcmVzOworfQorCisvKgorICogdXBkYXRl IHRoZSBOIGFuZCBDVFMgcGFyYW1ldGVycyBmb3IgYSBnaXZlbiBwaXhlbCBjbG9jayByYXRlCisg Ki8KK3ZvaWQgcmFkZW9uX2F1ZGlvX3VwZGF0ZV9hY3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLCB1bnNpZ25lZCBpbnQgY2xvY2spCit7CisgICAgY29uc3Qgc3RydWN0IHJhZGVvbl9oZG1p X2FjciAqYWNyID0gcmFkZW9uX2F1ZGlvX2FjcihjbG9jayk7CisgICAgc3RydWN0IHJhZGVvbl9l bmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOworICAg IHN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gcmFkZW9uX2VuY29kZXItPmVu Y19wcml2OworCisJaWYgKCFkaWcgfHwgIWRpZy0+YWZtdCkKKwkJcmV0dXJuOworCisJaWYgKHJh ZGVvbl9lbmNvZGVyLT5hdWRpbyAmJiByYWRlb25fZW5jb2Rlci0+YXVkaW8tPnVwZGF0ZV9hY3Ip CisJCXJhZGVvbl9lbmNvZGVyLT5hdWRpby0+dXBkYXRlX2FjcihlbmNvZGVyLCBkaWctPmFmbXQt Pm9mZnNldCwgYWNyKTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2F1ZGlvLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oCmluZGV4 IGRjODVkNTMuLmE0ZDA1NTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2F1ZGlvLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uaApA QCAtNTUsNiArNTUsOCBAQCBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzCiAJCXU4ICpzYWRiLCBp bnQgc2FkX2NvdW50KTsKIAl2b2lkICgqc2V0X2R0bykoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJCXN0cnVjdCByYWRlb25fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IGNsb2NrKTsKKwl2 b2lkICgqdXBkYXRlX2Fjcikoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBsb25nIG9mZnNl dCwKKwkJY29uc3Qgc3RydWN0IHJhZGVvbl9oZG1pX2FjciAqYWNyKTsKIH07CiAKIGludCByYWRl b25fYXVkaW9faW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CkBAIC03Niw1ICs3OCw2 IEBAIHZvaWQgcmFkZW9uX2F1ZGlvX2Zpbmkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpOwog dm9pZCByYWRlb25fYXVkaW9fc2V0X2R0byhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHVu c2lnbmVkIGludCBjbG9jayk7CiB2b2lkIHJhZGVvbl91cGRhdGVfYXZpX2luZm9mcmFtZShzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHZvaWQgKmJ1ZmZlciwKIAlzaXplX3Qgc2l6ZSk7Cit2 b2lkIHJhZGVvbl9hdWRpb191cGRhdGVfYWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwg dW5zaWduZWQgaW50IGNsb2NrKTsKIAogI2VuZGlmCi0tIAoxLjguMy4xCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=