From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 04/24] radeon/audio: consolidate write_speaker_allocation() functions Date: Tue, 13 Jan 2015 12:46:33 -0500 Message-ID: <1421171213-23977-5-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-qa0-f41.google.com (mail-qa0-f41.google.com [209.85.216.41]) by gabe.freedesktop.org (Postfix) with ESMTP id EF1906E640 for ; Tue, 13 Jan 2015 09:47:03 -0800 (PST) Received: by mail-qa0-f41.google.com with SMTP id bm13so3164510qab.0 for ; Tue, 13 Jan 2015 09:47:03 -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 Z3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYyAgICB8IDQ5ICsrKysrKysrKystLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTZfYWZtdC5jICAgICAgfCA1MCArKysrKysr KysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5j IHwgNTQgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fYXVkaW8uYyAgIHwgNzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBk cml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oICAgfCAgMyArKwogNSBmaWxlcyBj aGFuZ2VkLCAxNDQgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9kY2UzXzFfYWZtdC5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9kY2UzXzFfYWZtdC5jCmluZGV4IGM3NDQzMWUuLjYxM2U2MTEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2RjZTNfMV9hZm10LmMKQEAgLTI3LDM1ICsyNywxNCBAQAogI2luY2x1ZGUgInJhZGVv bl9hdWRpby5oIgogI2luY2x1ZGUgInI2MDBkLmgiCiAKLXN0YXRpYyB2b2lkIGRjZTNfMl9hZm10 X3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCit2 b2lkIGRjZTNfMl9hZm10X2hkbWlfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKKwl1OCAqc2FkYiwgaW50IHNhZF9jb3VudCkKIHsKIAlzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKLQlzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFk ZW9uX2Nvbm5lY3RvciA9IE5VTEw7CiAJdTMyIHRtcDsKLQl1OCAqc2FkYiA9IE5VTEw7Ci0JaW50 IHNhZF9jb3VudDsKLQotCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdCwgaGVhZCkgewotCQlpZiAoY29ubmVjdG9y LT5lbmNvZGVyID09IGVuY29kZXIpIHsKLQkJCXJhZGVvbl9jb25uZWN0b3IgPSB0b19yYWRlb25f Y29ubmVjdG9yKGNvbm5lY3Rvcik7Ci0JCQlicmVhazsKLQkJfQotCX0KLQotCWlmICghcmFkZW9u X2Nvbm5lY3RvcikgewotCQlEUk1fRVJST1IoIkNvdWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5l Y3RvclxuIik7Ci0JCXJldHVybjsKLQl9Ci0KLQlzYWRfY291bnQgPSBkcm1fZWRpZF90b19zcGVh a2VyX2FsbG9jYXRpb24ocmFkZW9uX2Nvbm5lY3Rvci0+ZWRpZCwgJnNhZGIpOwotCWlmIChzYWRf Y291bnQgPCAwKSB7Ci0JCURSTV9ERUJVRygiQ291bGRuJ3QgcmVhZCBTcGVha2VyIEFsbG9jYXRp b24gRGF0YSBCbG9jazogJWRcbiIsIHNhZF9jb3VudCk7Ci0JCXNhZF9jb3VudCA9IDA7Ci0JfQog CiAJLyogcHJvZ3JhbSB0aGUgc3BlYWtlciBhbGxvY2F0aW9uICovCi0JdG1wID0gUlJFRzMyKEFa X0YwX0NPREVDX1BJTjBfQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIpOworCXRtcCA9IFJSRUczMl9F TkRQT0lOVCgwLCBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSKTsKIAl0 bXAgJj0gfihEUF9DT05ORUNUSU9OIHwgU1BFQUtFUl9BTExPQ0FUSU9OX01BU0spOwogCS8qIHNl dCBIRE1JIG1vZGUgKi8KIAl0bXAgfD0gSERNSV9DT05ORUNUSU9OOwpAQCAtNjMsOSArNDIsMjUg QEAgc3RhdGljIHZvaWQgZGNlM18yX2FmbXRfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKIAkJdG1wIHw9IFNQRUFLRVJfQUxMT0NBVElPTihzYWRi WzBdKTsKIAllbHNlCiAJCXRtcCB8PSBTUEVBS0VSX0FMTE9DQVRJT04oNSk7IC8qIHN0ZXJlbyAq LwotCVdSRUczMihBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSLCB0bXAp OworCVdSRUczMl9FTkRQT0lOVCgwLCBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQ0hBTk5FTF9T UEVBS0VSLCB0bXApOworfQogCi0Ja2ZyZWUoc2FkYik7Cit2b2lkIGRjZTNfMl9hZm10X2RwX3dy aXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCisJdTgg KnNhZGIsIGludCBzYWRfY291bnQpCit7CisJc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBl bmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOworCXUzMiB0bXA7CisKKwkvKiBwcm9ncmFtIHRoZSBz cGVha2VyIGFsbG9jYXRpb24gKi8KKwl0bXAgPSBSUkVHMzJfRU5EUE9JTlQoMCwgQVpfRjBfQ09E RUNfUElOMF9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUik7CisJdG1wICY9IH4oSERNSV9DT05ORUNU SU9OIHwgU1BFQUtFUl9BTExPQ0FUSU9OX01BU0spOworCS8qIHNldCBEUCBtb2RlICovCisJdG1w IHw9IERQX0NPTk5FQ1RJT047CisJaWYgKHNhZF9jb3VudCkKKwkJdG1wIHw9IFNQRUFLRVJfQUxM T0NBVElPTihzYWRiWzBdKTsKKwllbHNlCisJCXRtcCB8PSBTUEVBS0VSX0FMTE9DQVRJT04oNSk7 IC8qIHN0ZXJlbyAqLworCVdSRUczMl9FTkRQT0lOVCgwLCBBWl9GMF9DT0RFQ19QSU4wX0NPTlRS T0xfQ0hBTk5FTF9TUEVBS0VSLCB0bXApOwogfQogCiB2b2lkIGRjZTNfMl9hZm10X3dyaXRlX3Nh ZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKQEAgLTE2Nyw3ICsxNjIsNyBAQCB2 b2lkIGRjZTNfMV9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbQogCX0KIAogCWlmIChBU0lDX0lTX0RDRTMyKHJkZXYpKSB7 Ci0JCWRjZTNfMl9hZm10X3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihlbmNvZGVyKTsKKwkJcmFk ZW9uX2F1ZGlvX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihlbmNvZGVyKTsKIAkJcmFkZW9uX2F1 ZGlvX3dyaXRlX3NhZF9yZWdzKGVuY29kZXIpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9kY2U2X2FmbXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlNl9h Zm10LmMKaW5kZXggZjI2M2VhYS4uYTI0Yzk1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9kY2U2X2FmbXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTZfYWZt dC5jCkBAIC0xNDQsNDAgKzE0NCwxOSBAQCB2b2lkIGRjZTZfYWZtdF93cml0ZV9sYXRlbmN5X2Zp ZWxkcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJV1JFRzMyX0VORFBPSU5UKG9mZnNl dCwgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfUkVTUE9OU0VfTElQU1lOQywgdG1wKTsKIH0KIAot dm9pZCBkY2U2X2FmbXRfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlcikKK3ZvaWQgZGNlNl9hZm10X2hkbWlfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9u KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwl1OCAqc2FkYiwgaW50IHNhZF9jb3VudCkK IHsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9l bmNvZGVyKGVuY29kZXIpOwogCXN0cnVjdCByYWRlb25fZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0g cmFkZW9uX2VuY29kZXItPmVuY19wcml2OwotCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3I7Ci0Jc3RydWN0IHJhZGVvbl9jb25uZWN0b3IgKnJhZGVvbl9jb25uZWN0b3IgPSBOVUxMOwog CXUzMiBvZmZzZXQsIHRtcDsKLQl1OCAqc2FkYiA9IE5VTEw7Ci0JaW50IHNhZF9jb3VudDsKIAog CWlmICghZGlnIHx8ICFkaWctPmFmbXQgfHwgIWRpZy0+YWZtdC0+cGluKQogCQlyZXR1cm47CiAK IAlvZmZzZXQgPSBkaWctPmFmbXQtPnBpbi0+b2Zmc2V0OwogCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShjb25uZWN0b3IsICZlbmNvZGVyLT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LCBo ZWFkKSB7Ci0JCWlmIChjb25uZWN0b3ItPmVuY29kZXIgPT0gZW5jb2RlcikgewotCQkJcmFkZW9u X2Nvbm5lY3RvciA9IHRvX3JhZGVvbl9jb25uZWN0b3IoY29ubmVjdG9yKTsKLQkJCWJyZWFrOwot CQl9Ci0JfQotCi0JaWYgKCFyYWRlb25fY29ubmVjdG9yKSB7Ci0JCURSTV9FUlJPUigiQ291bGRu J3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKLQkJcmV0dXJuOwotCX0KLQotCXNhZF9j b3VudCA9IGRybV9lZGlkX3RvX3NwZWFrZXJfYWxsb2NhdGlvbihyYWRlb25fY29ubmVjdG9yX2Vk aWQoY29ubmVjdG9yKSwgJnNhZGIpOwotCWlmIChzYWRfY291bnQgPCAwKSB7Ci0JCURSTV9ERUJV RygiQ291bGRuJ3QgcmVhZCBTcGVha2VyIEFsbG9jYXRpb24gRGF0YSBCbG9jazogJWRcbiIsIHNh ZF9jb3VudCk7Ci0JCXNhZF9jb3VudCA9IDA7Ci0JfQotCiAJLyogcHJvZ3JhbSB0aGUgc3BlYWtl ciBhbGxvY2F0aW9uICovCiAJdG1wID0gUlJFRzMyX0VORFBPSU5UKG9mZnNldCwgQVpfRjBfQ09E RUNfUElOX0NPTlRST0xfQ0hBTk5FTF9TUEVBS0VSKTsKIAl0bXAgJj0gfihEUF9DT05ORUNUSU9O IHwgU1BFQUtFUl9BTExPQ0FUSU9OX01BU0spOwpAQCAtMTg4LDggKzE2NywzMSBAQCB2b2lkIGRj ZTZfYWZtdF93cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyKQogCWVsc2UKIAkJdG1wIHw9IFNQRUFLRVJfQUxMT0NBVElPTig1KTsgLyogc3RlcmVvICov CiAJV1JFRzMyX0VORFBPSU5UKG9mZnNldCwgQVpfRjBfQ09ERUNfUElOX0NPTlRST0xfQ0hBTk5F TF9TUEVBS0VSLCB0bXApOworfQogCi0Ja2ZyZWUoc2FkYik7Cit2b2lkIGRjZTZfYWZtdF9kcF93 cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCXU4 ICpzYWRiLCBpbnQgc2FkX2NvdW50KQoreworCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0g ZW5jb2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgcmFkZW9uX2VuY29kZXIgKnJhZGVv bl9lbmNvZGVyID0gdG9fcmFkZW9uX2VuY29kZXIoZW5jb2Rlcik7CisJc3RydWN0IHJhZGVvbl9l bmNvZGVyX2F0b21fZGlnICpkaWcgPSByYWRlb25fZW5jb2Rlci0+ZW5jX3ByaXY7CisJdTMyIG9m ZnNldCwgdG1wOworCisJaWYgKCFkaWcgfHwgIWRpZy0+YWZtdCB8fCAhZGlnLT5hZm10LT5waW4p CisJCXJldHVybjsKKworCW9mZnNldCA9IGRpZy0+YWZtdC0+cGluLT5vZmZzZXQ7CisKKwkvKiBw cm9ncmFtIHRoZSBzcGVha2VyIGFsbG9jYXRpb24gKi8KKwl0bXAgPSBSUkVHMzJfRU5EUE9JTlQo b2Zmc2V0LCBBWl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIpOworCXRtcCAm PSB+KEhETUlfQ09OTkVDVElPTiB8IFNQRUFLRVJfQUxMT0NBVElPTl9NQVNLKTsKKwkvKiBzZXQg RFAgbW9kZSAqLworCXRtcCB8PSBEUF9DT05ORUNUSU9OOworCWlmIChzYWRfY291bnQpCisJCXRt cCB8PSBTUEVBS0VSX0FMTE9DQVRJT04oc2FkYlswXSk7CisJZWxzZQorCQl0bXAgfD0gU1BFQUtF Ul9BTExPQ0FUSU9OKDUpOyAvKiBzdGVyZW8gKi8KKwlXUkVHMzJfRU5EUE9JTlQob2Zmc2V0LCBB Wl9GMF9DT0RFQ19QSU5fQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIsIHRtcCk7CiB9CiAKIHZvaWQg ZGNlNl9hZm10X3dyaXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWkuYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWkuYwppbmRleCBkZDE0MmUzLi4zYTliYjA0 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9oZG1pLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jCkBAIC0zMyw3ICszMyw2 IEBACiAjaW5jbHVkZSAiZXZlcmdyZWVuZC5oIgogI2luY2x1ZGUgImF0b20uaCIKIAotZXh0ZXJu IHZvaWQgZGNlNl9hZm10X3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpOwogZXh0ZXJuIHZvaWQgZGNlNl9hZm10X3NlbGVjdF9waW4oc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKTsKIGV4dGVybiB2b2lkIGRjZTZfYWZtdF93cml0ZV9sYXRlbmN5 X2ZpZWxkcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJCSAgIHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlKTsKQEAgLTEyNywzNSArMTI2LDE0IEBAIHN0YXRpYyB2b2lkIGRj ZTRfYWZtdF93cml0ZV9sYXRlbmN5X2ZpZWxkcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs CiAJV1JFRzMyKEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9SRVNQT05TRV9MSVBTWU5DLCB0bXAp OwogfQogCi1zdGF0aWMgdm9pZCBkY2U0X2FmbXRfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3ZvaWQgZGNlNF9hZm10X2hkbWlfd3JpdGVfc3Bl YWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwl1OCAqc2FkYiwg aW50IHNhZF9jb3VudCkKIHsKIAlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXIt PmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKLQlz dHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IE5VTEw7CiAJdTMyIHRt cDsKLQl1OCAqc2FkYiA9IE5VTEw7Ci0JaW50IHNhZF9jb3VudDsKLQotCWxpc3RfZm9yX2VhY2hf ZW50cnkoY29ubmVjdG9yLCAmZW5jb2Rlci0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlz dCwgaGVhZCkgewotCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKLQkJCXJh ZGVvbl9jb25uZWN0b3IgPSB0b19yYWRlb25fY29ubmVjdG9yKGNvbm5lY3Rvcik7Ci0JCQlicmVh azsKLQkJfQotCX0KLQotCWlmICghcmFkZW9uX2Nvbm5lY3RvcikgewotCQlEUk1fRVJST1IoIkNv dWxkbid0IGZpbmQgZW5jb2RlcidzIGNvbm5lY3RvclxuIik7Ci0JCXJldHVybjsKLQl9Ci0KLQlz YWRfY291bnQgPSBkcm1fZWRpZF90b19zcGVha2VyX2FsbG9jYXRpb24ocmFkZW9uX2Nvbm5lY3Rv cl9lZGlkKGNvbm5lY3RvciksICZzYWRiKTsKLQlpZiAoc2FkX2NvdW50IDwgMCkgewotCQlEUk1f REVCVUcoIkNvdWxkbid0IHJlYWQgU3BlYWtlciBBbGxvY2F0aW9uIERhdGEgQmxvY2s6ICVkXG4i LCBzYWRfY291bnQpOwotCQlzYWRfY291bnQgPSAwOwotCX0KIAogCS8qIHByb2dyYW0gdGhlIHNw ZWFrZXIgYWxsb2NhdGlvbiAqLwotCXRtcCA9IFJSRUczMihBWl9GMF9DT0RFQ19QSU4wX0NPTlRS T0xfQ0hBTk5FTF9TUEVBS0VSKTsKKwl0bXAgPSBSUkVHMzJfRU5EUE9JTlQoMCwgQVpfRjBfQ09E RUNfUElOMF9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUik7CiAJdG1wICY9IH4oRFBfQ09OTkVDVElP TiB8IFNQRUFLRVJfQUxMT0NBVElPTl9NQVNLKTsKIAkvKiBzZXQgSERNSSBtb2RlICovCiAJdG1w IHw9IEhETUlfQ09OTkVDVElPTjsKQEAgLTE2Myw5ICsxNDEsMjUgQEAgc3RhdGljIHZvaWQgZGNl NF9hZm10X3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCiAJCXRtcCB8PSBTUEVBS0VSX0FMTE9DQVRJT04oc2FkYlswXSk7CiAJZWxzZQogCQl0bXAg fD0gU1BFQUtFUl9BTExPQ0FUSU9OKDUpOyAvKiBzdGVyZW8gKi8KLQlXUkVHMzIoQVpfRjBfQ09E RUNfUElOMF9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUiwgdG1wKTsKKwlXUkVHMzJfRU5EUE9JTlQo MCwgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUiwgdG1wKTsKK30KIAot CWtmcmVlKHNhZGIpOwordm9pZCBkY2U0X2FmbXRfZHBfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9u KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwl1OCAqc2FkYiwgaW50IHNhZF9jb3VudCkK K3sKKwlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZh dGU7CisJdTMyIHRtcDsKKworCS8qIHByb2dyYW0gdGhlIHNwZWFrZXIgYWxsb2NhdGlvbiAqLwor CXRtcCA9IFJSRUczMl9FTkRQT0lOVCgwLCBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQ0hBTk5F TF9TUEVBS0VSKTsKKwl0bXAgJj0gfihIRE1JX0NPTk5FQ1RJT04gfCBTUEVBS0VSX0FMTE9DQVRJ T05fTUFTSyk7CisJLyogc2V0IERQIG1vZGUgKi8KKwl0bXAgfD0gRFBfQ09OTkVDVElPTjsKKwlp ZiAoc2FkX2NvdW50KQorCQl0bXAgfD0gU1BFQUtFUl9BTExPQ0FUSU9OKHNhZGJbMF0pOworCWVs c2UKKwkJdG1wIHw9IFNQRUFLRVJfQUxMT0NBVElPTig1KTsgLyogc3RlcmVvICovCisJV1JFRzMy X0VORFBPSU5UKDAsIEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9DSEFOTkVMX1NQRUFLRVIsIHRt cCk7CiB9CiAKIHZvaWQgZXZlcmdyZWVuX2hkbWlfd3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLApAQCAtNDE3LDExICs0MTEsNyBAQCB2b2lkIGV2ZXJncmVlbl9oZG1p X3NldG1vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZQogCSAgICAgICBBRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzYoNykgfAogCSAgICAg ICBBRk1UXzYwOTU4X0NTX0NIQU5ORUxfTlVNQkVSXzcoOCkpOwogCi0JaWYgKEFTSUNfSVNfRENF NihyZGV2KSkgewotCQlkY2U2X2FmbXRfd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKGVuY29kZXIp OwotCX0gZWxzZSB7Ci0JCWRjZTRfYWZtdF93cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oZW5jb2Rl cik7Ci0JfQorCXJhZGVvbl9hdWRpb193cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oZW5jb2Rlcik7 CiAKIAlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTDIgKyBvZmZzZXQsCiAJICAgICAg IEFGTVRfQVVESU9fQ0hBTk5FTF9FTkFCTEUoMHhmZikpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFk ZW9uX2F1ZGlvLmMKaW5kZXggMGZjN2E5My4uZjM1OWEyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9hdWRpby5jCkBAIC00MSw2ICs0MSwxOCBAQCB2b2lkIGV2ZXJncmVlbl9oZG1pX3dy aXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKIAkJc3RydWN0IGNlYV9z YWQgKnNhZHMsIGludCBzYWRfY291bnQpOwogdm9pZCBkY2U2X2FmbXRfd3JpdGVfc2FkX3JlZ3Mo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQlzdHJ1Y3QgY2VhX3NhZCAqc2FkcywgaW50 IHNhZF9jb3VudCk7Cit2b2lkIGRjZTNfMl9hZm10X2hkbWlfd3JpdGVfc3BlYWtlcl9hbGxvY2F0 aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJdTggKnNhZGIsIGludCBzYWRfY291 bnQpOwordm9pZCBkY2UzXzJfYWZtdF9kcF93cml0ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQl1OCAqc2FkYiwgaW50IHNhZF9jb3VudCk7Cit2b2lk IGRjZTRfYWZtdF9oZG1pX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCisJCXU4ICpzYWRiLCBpbnQgc2FkX2NvdW50KTsKK3ZvaWQgZGNlNF9hZm10 X2RwX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs CisJCXU4ICpzYWRiLCBpbnQgc2FkX2NvdW50KTsKK3ZvaWQgZGNlNl9hZm10X2hkbWlfd3JpdGVf c3BlYWtlcl9hbGxvY2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJdTggKnNh ZGIsIGludCBzYWRfY291bnQpOwordm9pZCBkY2U2X2FmbXRfZHBfd3JpdGVfc3BlYWtlcl9hbGxv Y2F0aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKKwkJdTggKnNhZGIsIGludCBzYWRf Y291bnQpOwogCiBzdGF0aWMgY29uc3QgdTMyIHBpbl9vZmZzZXRzWzddID0KIHsKQEAgLTEwMyw2 ICsxMTUsMzAgQEAgc3RhdGljIHN0cnVjdCByYWRlb25fYXVkaW9fZnVuY3MgZGNlNl9kcF9mdW5j cyA9IHsKIAkud3JpdGVfc2FkX3JlZ3MgPSBkY2U2X2FmbXRfd3JpdGVfc2FkX3JlZ3MsCiB9Owog CitzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5jcyBkY2UzMl9oZG1pX2Z1bmNzID0gewor CS53cml0ZV9zcGVha2VyX2FsbG9jYXRpb24gPSBkY2UzXzJfYWZtdF9oZG1pX3dyaXRlX3NwZWFr ZXJfYWxsb2NhdGlvbiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzIGRj ZTMyX2RwX2Z1bmNzID0geworCS53cml0ZV9zcGVha2VyX2FsbG9jYXRpb24gPSBkY2UzXzJfYWZt dF9kcF93cml0ZV9zcGVha2VyX2FsbG9jYXRpb24sCit9OworCitzdGF0aWMgc3RydWN0IHJhZGVv bl9hdWRpb19mdW5jcyBkY2U0X2hkbWlfZnVuY3MgPSB7CisJLndyaXRlX3NwZWFrZXJfYWxsb2Nh dGlvbiA9IGRjZTRfYWZtdF9oZG1pX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbiwKK307CisKK3N0 YXRpYyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1bmNzIGRjZTRfZHBfZnVuY3MgPSB7CisJLndyaXRl X3NwZWFrZXJfYWxsb2NhdGlvbiA9IGRjZTRfYWZtdF9kcF93cml0ZV9zcGVha2VyX2FsbG9jYXRp b24sCit9OworCitzdGF0aWMgc3RydWN0IHJhZGVvbl9hdWRpb19mdW5jcyBkY2U2X2hkbWlfZnVu Y3MgPSB7CisJLndyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbiA9IGRjZTZfYWZtdF9oZG1pX3dyaXRl X3NwZWFrZXJfYWxsb2NhdGlvbiwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmFkZW9uX2F1ZGlvX2Z1 bmNzIGRjZTZfZHBfZnVuY3MgPSB7CisJLndyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbiA9IGRjZTZf YWZtdF9kcF93cml0ZV9zcGVha2VyX2FsbG9jYXRpb24sCit9OworCiBzdGF0aWMgdm9pZCByYWRl b25fYXVkaW9faW50ZXJmYWNlX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7CiAJ aWYgKEFTSUNfSVNfRENFNihyZGV2KSkgewpAQCAtMjU0LDMgKzI5MCwzOCBAQCB2b2lkIHJhZGVv bl9hdWRpb193cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiAKIAlr ZnJlZShzYWRzKTsKIH0KKwordm9pZCByYWRlb25fYXVkaW9fd3JpdGVfc3BlYWtlcl9hbGxvY2F0 aW9uKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgcmFkZW9uX2VuY29k ZXIgKnJhZGVvbl9lbmNvZGVyID0gdG9fcmFkZW9uX2VuY29kZXIoZW5jb2Rlcik7CisgICAgc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKyAgICBzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3Rv ciAqcmFkZW9uX2Nvbm5lY3RvciA9IE5VTEw7CisgICAgdTggKnNhZGIgPSBOVUxMOworICAgIGlu dCBzYWRfY291bnQ7CisKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwKKwkJJmVu Y29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKKyAgICAgICAg aWYgKGNvbm5lY3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKSB7CisgICAgICAgICAgICByYWRlb25f Y29ubmVjdG9yID0gdG9fcmFkZW9uX2Nvbm5lY3Rvcihjb25uZWN0b3IpOworICAgICAgICAgICAg YnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIXJhZGVvbl9jb25uZWN0b3IpIHsK KyAgICAgICAgRFJNX0VSUk9SKCJDb3VsZG4ndCBmaW5kIGVuY29kZXIncyBjb25uZWN0b3JcbiIp OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2FkX2NvdW50ID0gZHJtX2VkaWRfdG9f c3BlYWtlcl9hbGxvY2F0aW9uKAorCQlyYWRlb25fY29ubmVjdG9yX2VkaWQoY29ubmVjdG9yKSwg JnNhZGIpOworICAgIGlmIChzYWRfY291bnQgPCAwKSB7CisgICAgICAgIERSTV9ERUJVRygiQ291 bGRuJ3QgcmVhZCBTcGVha2VyIEFsbG9jYXRpb24gRGF0YSBCbG9jazogJWRcbiIsCisJCQlzYWRf Y291bnQpOworICAgICAgICBzYWRfY291bnQgPSAwOworICAgIH0KKworCWlmIChyYWRlb25fZW5j b2Rlci0+YXVkaW8gJiYgcmFkZW9uX2VuY29kZXItPmF1ZGlvLT53cml0ZV9zcGVha2VyX2FsbG9j YXRpb24pCisJCXJhZGVvbl9lbmNvZGVyLT5hdWRpby0+d3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9u KGVuY29kZXIsIHNhZGIsIHNhZF9jb3VudCk7CisKKyAgICBrZnJlZShzYWRiKTsKK30KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmggYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5oCmluZGV4IGVhMzU5NGUuLmNjMDU5NmYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uaApAQCAtNDMsNiArNDMsOCBAQCBzdHJ1Y3Qg cmFkZW9uX2F1ZGlvX2Z1bmNzCiB7CiAJdm9pZCAoKndyaXRlX3NhZF9yZWdzKShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCiAJCXN0cnVjdCBjZWFfc2FkICpzYWRzLCBpbnQgc2FkX2NvdW50 KTsKKwl2b2lkICgqd3JpdGVfc3BlYWtlcl9hbGxvY2F0aW9uKShzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCisJCXU4ICpzYWRiLCBpbnQgc2FkX2NvdW50KTsKIH07CiAKIGludCByYWRlb25f YXVkaW9faW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7CkBAIC01Myw1ICs1NSw2IEBA IHUzMiByYWRlb25fYXVkaW9fZW5kcG9pbnRfcnJlZyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwKIHZvaWQgcmFkZW9uX2F1ZGlvX2VuZHBvaW50X3dyZWcoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYsCiAJdTMyIG9mZnNldCwJdTMyIHJlZywgdTMyIHYpOwogdm9pZCByYWRlb25fYXVkaW9f d3JpdGVfc2FkX3JlZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKK3ZvaWQgcmFkZW9u X2F1ZGlvX3dyaXRlX3NwZWFrZXJfYWxsb2NhdGlvbihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpOwogCiAjZW5kaWYKLS0gCjEuOC4zLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==