From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 6/8] drm/amdgpu: add some [WR]REG32_SDMA macros to sdma_v4_0.c Date: Mon, 8 Oct 2018 15:35:19 +0200 Message-ID: <20181008133521.3237-6-christian.koenig@amd.com> References: <20181008133521.3237-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181008133521.3237-1-christian.koenig-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org U2lnbmlmaWNhbnRseSBzaG9ydGVucyB0aGUgY29kZS4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlh biBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9zZG1hX3Y0XzAuYyB8IDEyNiArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCmluZGV4IDYxZGE5Yjg2MmVkZS4u NTUzODRiYWQ3YTcwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1h X3Y0XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwpAQCAt NTQsNiArNTQsMTEgQEAgTU9EVUxFX0ZJUk1XQVJFKCJhbWRncHUvcmF2ZW4yX3NkbWEuYmluIik7 CiAjZGVmaW5lIFNETUEwX1BPV0VSX0NOVExfX09OX09GRl9DT05ESVRJT05fSE9MRF9USU1FX01B U0sgIDB4MDAwMDAwRjhMCiAjZGVmaW5lIFNETUEwX1BPV0VSX0NOVExfX09OX09GRl9TVEFUVVNf RFVSQVRJT05fVElNRV9NQVNLIDB4RkMwMDAwMDBMCiAKKyNkZWZpbmUgV1JFRzMyX1NETUEoaW5z dGFuY2UsIG9mZnNldCwgdmFsdWUpIFwKKwlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0 KGFkZXYsIChpbnN0YW5jZSksIChvZmZzZXQpKSwgdmFsdWUpCisjZGVmaW5lIFJSRUczMl9TRE1B KGluc3RhbmNlLCBvZmZzZXQpIFwKKwlSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFk ZXYsIChpbnN0YW5jZSksIChvZmZzZXQpKSkKKwogc3RhdGljIHZvaWQgc2RtYV92NF8wX3NldF9y aW5nX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHN0YXRpYyB2b2lkIHNkbWFf djRfMF9zZXRfYnVmZmVyX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHN0YXRp YyB2b2lkIHNkbWFfdjRfMF9zZXRfdm1fcHRlX2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KTsKQEAgLTM2Nyw4ICszNzIsOCBAQCBzdGF0aWMgdWludDY0X3Qgc2RtYV92NF8wX3Jpbmdf Z2V0X3dwdHIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCX0gZWxzZSB7CiAJCXUzMiBsb3di aXQsIGhpZ2hiaXQ7CiAKLQkJbG93Yml0ID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNl dChhZGV2LCByaW5nLT5tZSwgbW1TRE1BMF9HRlhfUkJfV1BUUikpID4+IDI7Ci0JCWhpZ2hiaXQg PSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIHJpbmctPm1lLCBtbVNETUEw X0dGWF9SQl9XUFRSX0hJKSkgPj4gMjsKKwkJbG93Yml0ID0gUlJFRzMyX1NETUEocmluZy0+bWUs IG1tU0RNQTBfR0ZYX1JCX1dQVFIpID4+IDI7CisJCWhpZ2hiaXQgPSBSUkVHMzJfU0RNQShyaW5n LT5tZSwgbW1TRE1BMF9HRlhfUkJfV1BUUl9ISSkgPj4gMjsKIAogCQlEUk1fREVCVUcoIndwdHIg WyVpXWhpZ2g9PSAweCUwOHggbG93PT0weCUwOHhcbiIsCiAJCQkJcmluZy0+bWUsIGhpZ2hiaXQs IGxvd2JpdCk7CkBAIC00MTUsOCArNDIwLDEwIEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9yaW5n X3NldF93cHRyKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIAkJCQlsb3dlcl8zMl9iaXRzKHJp bmctPndwdHIgPDwgMiksCiAJCQkJcmluZy0+bWUsCiAJCQkJdXBwZXJfMzJfYml0cyhyaW5nLT53 cHRyIDw8IDIpKTsKLQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCByaW5n LT5tZSwgbW1TRE1BMF9HRlhfUkJfV1BUUiksIGxvd2VyXzMyX2JpdHMocmluZy0+d3B0ciA8PCAy KSk7Ci0JCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgcmluZy0+bWUsIG1t U0RNQTBfR0ZYX1JCX1dQVFJfSEkpLCB1cHBlcl8zMl9iaXRzKHJpbmctPndwdHIgPDwgMikpOwor CQlXUkVHMzJfU0RNQShyaW5nLT5tZSwgbW1TRE1BMF9HRlhfUkJfV1BUUiwKKwkJCSAgICBsb3dl cl8zMl9iaXRzKHJpbmctPndwdHIgPDwgMikpOworCQlXUkVHMzJfU0RNQShyaW5nLT5tZSwgbW1T RE1BMF9HRlhfUkJfV1BUUl9ISSwKKwkJCSAgICB1cHBlcl8zMl9iaXRzKHJpbmctPndwdHIgPDwg MikpOwogCX0KIH0KIApAQCAtNTY2LDEyICs1NzMsMTIgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8w X2dmeF9zdG9wKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCQkJYW1kZ3B1X3R0bV9zZXRf YnVmZmVyX2Z1bmNzX3N0YXR1cyhhZGV2LCBmYWxzZSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRl di0+c2RtYS5udW1faW5zdGFuY2VzOyBpKyspIHsKLQkJcmJfY250bCA9IFJSRUczMihzZG1hX3Y0 XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfUkJfQ05UTCkpOworCQlyYl9j bnRsID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfUkJfQ05UTCk7CiAJCXJiX2NudGwgPSBS RUdfU0VUX0ZJRUxEKHJiX2NudGwsIFNETUEwX0dGWF9SQl9DTlRMLCBSQl9FTkFCTEUsIDApOwot CQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JC X0NOVEwpLCByYl9jbnRsKTsKLQkJaWJfY250bCA9IFJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19v ZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfSUJfQ05UTCkpOworCQlXUkVHMzJfU0RNQShpLCBt bVNETUEwX0dGWF9SQl9DTlRMLCByYl9jbnRsKTsKKwkJaWJfY250bCA9IFJSRUczMl9TRE1BKGks IG1tU0RNQTBfR0ZYX0lCX0NOVEwpOwogCQlpYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpYl9jbnRs LCBTRE1BMF9HRlhfSUJfQ05UTCwgSUJfRU5BQkxFLCAwKTsKLQkJV1JFRzMyKHNkbWFfdjRfMF9n ZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9JQl9DTlRMKSwgaWJfY250bCk7CisJ CVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX0lCX0NOVEwsIGliX2NudGwpOwogCX0KIAogCXNk bWEwLT5yZWFkeSA9IGZhbHNlOwpAQCAtNjI4LDE4ICs2MzUsMTUgQEAgc3RhdGljIHZvaWQgc2Rt YV92NF8wX2N0eF9zd2l0Y2hfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBib29s IGVuYWJsZSkKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5zdGFuY2Vz OyBpKyspIHsKLQkJZjMyX2NudGwgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFk ZXYsIGksIG1tU0RNQTBfQ05UTCkpOworCQlmMzJfY250bCA9IFJSRUczMl9TRE1BKGksIG1tU0RN QTBfQ05UTCk7CiAJCWYzMl9jbnRsID0gUkVHX1NFVF9GSUVMRChmMzJfY250bCwgU0RNQTBfQ05U TCwKIAkJCQlBVVRPX0NUWFNXX0VOQUJMRSwgZW5hYmxlID8gMSA6IDApOwogCQlpZiAoZW5hYmxl ICYmIGFtZGdwdV9zZG1hX3BoYXNlX3F1YW50dW0pIHsKLQkJCVdSRUczMihzZG1hX3Y0XzBfZ2V0 X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9QSEFTRTBfUVVBTlRVTSksCi0JCQkgICAgICAg cGhhc2VfcXVhbnR1bSk7Ci0JCQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYs IGksIG1tU0RNQTBfUEhBU0UxX1FVQU5UVU0pLAotCQkJICAgICAgIHBoYXNlX3F1YW50dW0pOwot CQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX1BIQVNF Ml9RVUFOVFVNKSwKLQkJCSAgICAgICBwaGFzZV9xdWFudHVtKTsKKwkJCVdSRUczMl9TRE1BKGks IG1tU0RNQTBfUEhBU0UwX1FVQU5UVU0sIHBoYXNlX3F1YW50dW0pOworCQkJV1JFRzMyX1NETUEo aSwgbW1TRE1BMF9QSEFTRTFfUVVBTlRVTSwgcGhhc2VfcXVhbnR1bSk7CisJCQlXUkVHMzJfU0RN QShpLCBtbVNETUEwX1BIQVNFMl9RVUFOVFVNLCBwaGFzZV9xdWFudHVtKTsKIAkJfQotCQlXUkVH MzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfQ05UTCksIGYzMl9j bnRsKTsKKwkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9DTlRMLCBmMzJfY250bCk7CiAJfQogCiB9 CkBAIC02NjMsOSArNjY3LDkgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX2VuYWJsZShzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCBlbmFibGUpCiAJfQogCiAJZm9yIChpID0gMDsgaSA8 IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7Ci0JCWYzMl9jbnRsID0gUlJFRzMyKHNk bWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0YzMl9DTlRMKSk7CisJCWYz Ml9jbnRsID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9GMzJfQ05UTCk7CiAJCWYzMl9jbnRsID0g UkVHX1NFVF9GSUVMRChmMzJfY250bCwgU0RNQTBfRjMyX0NOVEwsIEhBTFQsIGVuYWJsZSA/IDAg OiAxKTsKLQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEw X0YzMl9DTlRMKSwgZjMyX2NudGwpOworCQlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0YzMl9DTlRM LCBmMzJfY250bCk7CiAJfQogfQogCkBAIC02OTIsMzkgKzY5NiwzOSBAQCBzdGF0aWMgdm9pZCBz ZG1hX3Y0XzBfZ2Z4X3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWduZWQg aW50IGkpCiAKIAkvKiBTZXQgcmluZyBidWZmZXIgc2l6ZSBpbiBkd29yZHMgKi8KIAlyYl9idWZz eiA9IG9yZGVyX2Jhc2VfMihyaW5nLT5yaW5nX3NpemUgLyA0KTsKLQlyYl9jbnRsID0gUlJFRzMy KHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9DTlRMKSk7 CisJcmJfY250bCA9IFJSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX0NOVEwpOwogCXJiX2Nu dGwgPSBSRUdfU0VUX0ZJRUxEKHJiX2NudGwsIFNETUEwX0dGWF9SQl9DTlRMLCBSQl9TSVpFLCBy Yl9idWZzeik7CiAjaWZkZWYgX19CSUdfRU5ESUFOCiAJcmJfY250bCA9IFJFR19TRVRfRklFTEQo cmJfY250bCwgU0RNQTBfR0ZYX1JCX0NOVEwsIFJCX1NXQVBfRU5BQkxFLCAxKTsKIAlyYl9jbnRs ID0gUkVHX1NFVF9GSUVMRChyYl9jbnRsLCBTRE1BMF9HRlhfUkJfQ05UTCwKIAkJCQlSUFRSX1dS SVRFQkFDS19TV0FQX0VOQUJMRSwgMSk7CiAjZW5kaWYKLQlXUkVHMzIoc2RtYV92NF8wX2dldF9y ZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX0NOVEwpLCByYl9jbnRsKTsKKwlXUkVH MzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9DTlRMLCByYl9jbnRsKTsKIAogCS8qIEluaXRpYWxp emUgdGhlIHJpbmcgYnVmZmVyJ3MgcmVhZCBhbmQgd3JpdGUgcG9pbnRlcnMgKi8KLQlXUkVHMzIo c2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX1JQVFIpLCAw KTsKLQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZY X1JCX1JQVFJfSEkpLCAwKTsKLQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYs IGksIG1tU0RNQTBfR0ZYX1JCX1dQVFIpLCAwKTsKLQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdf b2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX1dQVFJfSEkpLCAwKTsKKwlXUkVHMzJfU0RN QShpLCBtbVNETUEwX0dGWF9SQl9SUFRSLCAwKTsKKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dG WF9SQl9SUFRSX0hJLCAwKTsKKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9XUFRSLCAw KTsKKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9XUFRSX0hJLCAwKTsKIAogCS8qIHNl dCB0aGUgd2IgYWRkcmVzcyB3aGV0aGVyIGl0J3MgZW5hYmxlZCBvciBub3QgKi8KLQlXUkVHMzIo c2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX1JQVFJfQURE Ul9ISSksCisJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfUkJfUlBUUl9BRERSX0hJLAogCSAg ICAgICB1cHBlcl8zMl9iaXRzKGFkZXYtPndiLmdwdV9hZGRyICsgd2Jfb2Zmc2V0KSAmIDB4RkZG RkZGRkYpOwotCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1B MF9HRlhfUkJfUlBUUl9BRERSX0xPKSwKKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9S UFRSX0FERFJfTE8sCiAJICAgICAgIGxvd2VyXzMyX2JpdHMoYWRldi0+d2IuZ3B1X2FkZHIgKyB3 Yl9vZmZzZXQpICYgMHhGRkZGRkZGQyk7CiAKIAlyYl9jbnRsID0gUkVHX1NFVF9GSUVMRChyYl9j bnRsLCBTRE1BMF9HRlhfUkJfQ05UTCwgUlBUUl9XUklURUJBQ0tfRU5BQkxFLCAxKTsKIAotCVdS RUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfUkJfQkFT RSksIHJpbmctPmdwdV9hZGRyID4+IDgpOwotCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZz ZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfUkJfQkFTRV9ISSksIHJpbmctPmdwdV9hZGRyID4+IDQw KTsKKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9CQVNFLCByaW5nLT5ncHVfYWRkciA+ PiA4KTsKKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9CQVNFX0hJLCByaW5nLT5ncHVf YWRkciA+PiA0MCk7CiAKIAlyaW5nLT53cHRyID0gMDsKIAogCS8qIGJlZm9yZSBwcm9ncmFtaW5n IHdwdHIgdG8gYSBsZXNzIHZhbHVlLCBuZWVkIHNldCBtaW5vcl9wdHJfdXBkYXRlIGZpcnN0ICov Ci0JV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9N SU5PUl9QVFJfVVBEQVRFKSwgMSk7CisJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfTUlOT1Jf UFRSX1VQREFURSwgMSk7CiAKLQlkb29yYmVsbCA9IFJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19v ZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfRE9PUkJFTEwpKTsKLQlkb29yYmVsbF9vZmZzZXQg PSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX0RP T1JCRUxMX09GRlNFVCkpOworCWRvb3JiZWxsID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhf RE9PUkJFTEwpOworCWRvb3JiZWxsX29mZnNldCA9IFJSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZY X0RPT1JCRUxMX09GRlNFVCk7CiAKIAlpZiAocmluZy0+dXNlX2Rvb3JiZWxsKSB7CiAJCWRvb3Ji ZWxsID0gUkVHX1NFVF9GSUVMRChkb29yYmVsbCwgU0RNQTBfR0ZYX0RPT1JCRUxMLCBFTkFCTEUs IDEpOwpAQCAtNzMzLDQwICs3MzcsNDAgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX2dmeF9yZXN1 bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIGludCBpKQogCX0gZWxzZSB7 CiAJCWRvb3JiZWxsID0gUkVHX1NFVF9GSUVMRChkb29yYmVsbCwgU0RNQTBfR0ZYX0RPT1JCRUxM LCBFTkFCTEUsIDApOwogCX0KLQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYs IGksIG1tU0RNQTBfR0ZYX0RPT1JCRUxMKSwgZG9vcmJlbGwpOwotCVdSRUczMihzZG1hX3Y0XzBf Z2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfRE9PUkJFTExfT0ZGU0VUKSwgZG9v cmJlbGxfb2Zmc2V0KTsKKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9ET09SQkVMTCwgZG9v cmJlbGwpOworCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX0RPT1JCRUxMX09GRlNFVCwgZG9v cmJlbGxfb2Zmc2V0KTsKIAlhZGV2LT5uYmlvX2Z1bmNzLT5zZG1hX2Rvb3JiZWxsX3JhbmdlKGFk ZXYsIGksIHJpbmctPnVzZV9kb29yYmVsbCwKIAkJCQkJICAgICAgcmluZy0+ZG9vcmJlbGxfaW5k ZXgpOwogCiAJc2RtYV92NF8wX3Jpbmdfc2V0X3dwdHIocmluZyk7CiAKIAkvKiBzZXQgbWlub3Jf cHRyX3VwZGF0ZSB0byAwIGFmdGVyIHdwdHIgcHJvZ3JhbWVkICovCi0JV1JFRzMyKHNkbWFfdjRf MF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFKSwg MCk7CisJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfTUlOT1JfUFRSX1VQREFURSwgMCk7CiAK IAkvKiBzZXR1cCB0aGUgd3B0ciBzaGFkb3cgcG9sbGluZyAqLwogCXdwdHJfZ3B1X2FkZHIgPSBh ZGV2LT53Yi5ncHVfYWRkciArIChyaW5nLT53cHRyX29mZnMgKiA0KTsKLQlXUkVHMzIoc2RtYV92 NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9BRERS X0xPKSwKLQkgICAgICAgbG93ZXJfMzJfYml0cyh3cHRyX2dwdV9hZGRyKSk7Ci0JV1JFRzMyKHNk bWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExf QUREUl9ISSksCi0JICAgICAgIHVwcGVyXzMyX2JpdHMod3B0cl9ncHVfYWRkcikpOwotCXdwdHJf cG9sbF9jbnRsID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNE TUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTCkpOworCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZY X1JCX1dQVFJfUE9MTF9BRERSX0xPLAorCQkgICAgbG93ZXJfMzJfYml0cyh3cHRyX2dwdV9hZGRy KSk7CisJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfSEksCisJ CSAgICB1cHBlcl8zMl9iaXRzKHdwdHJfZ3B1X2FkZHIpKTsKKwl3cHRyX3BvbGxfY250bCA9IFJS RUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMKTsKIAlpZiAoYW1kZ3B1 X3NyaW92X3ZmKGFkZXYpKQogCQl3cHRyX3BvbGxfY250bCA9IFJFR19TRVRfRklFTEQod3B0cl9w b2xsX2NudGwsIFNETUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTCwgRjMyX1BPTExfRU5BQkxFLCAx KTsKIAllbHNlCiAJCXdwdHJfcG9sbF9jbnRsID0gUkVHX1NFVF9GSUVMRCh3cHRyX3BvbGxfY250 bCwgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMLCBGMzJfUE9MTF9FTkFCTEUsIDApOwotCVdS RUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfUkJfV1BU Ul9QT0xMX0NOVEwpLCB3cHRyX3BvbGxfY250bCk7CisJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9H RlhfUkJfV1BUUl9QT0xMX0NOVEwsIHdwdHJfcG9sbF9jbnRsKTsKIAogCS8qIGVuYWJsZSBETUEg UkIgKi8KIAlyYl9jbnRsID0gUkVHX1NFVF9GSUVMRChyYl9jbnRsLCBTRE1BMF9HRlhfUkJfQ05U TCwgUkJfRU5BQkxFLCAxKTsKLQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYs IGksIG1tU0RNQTBfR0ZYX1JCX0NOVEwpLCByYl9jbnRsKTsKKwlXUkVHMzJfU0RNQShpLCBtbVNE TUEwX0dGWF9SQl9DTlRMLCByYl9jbnRsKTsKIAotCWliX2NudGwgPSBSUkVHMzIoc2RtYV92NF8w X2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX0lCX0NOVEwpKTsKKwlpYl9jbnRs ID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfSUJfQ05UTCk7CiAJaWJfY250bCA9IFJFR19T RVRfRklFTEQoaWJfY250bCwgU0RNQTBfR0ZYX0lCX0NOVEwsIElCX0VOQUJMRSwgMSk7CiAjaWZk ZWYgX19CSUdfRU5ESUFOCiAJaWJfY250bCA9IFJFR19TRVRfRklFTEQoaWJfY250bCwgU0RNQTBf R0ZYX0lCX0NOVEwsIElCX1NXQVBfRU5BQkxFLCAxKTsKICNlbmRpZgogCS8qIGVuYWJsZSBETUEg SUJzICovCi0JV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEw X0dGWF9JQl9DTlRMKSwgaWJfY250bCk7CisJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfSUJf Q05UTCwgaWJfY250bCk7CiAKIAlyaW5nLT5yZWFkeSA9IHRydWU7CiB9CkBAIC04NzksMTIgKzg4 MywxNCBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9sb2FkX21pY3JvY29kZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKIAkJCShhZGV2LT5zZG1hLmluc3RhbmNlW2ldLmZ3LT5kYXRhICsKIAkJ CQlsZTMyX3RvX2NwdShoZHItPmhlYWRlci51Y29kZV9hcnJheV9vZmZzZXRfYnl0ZXMpKTsKIAot CQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfVUNPREVf QUREUiksIDApOworCQlXUkVHMzJfU0RNQShpLCBtbVNETUEwX1VDT0RFX0FERFIsIDApOwogCiAJ CWZvciAoaiA9IDA7IGogPCBmd19zaXplOyBqKyspCi0JCQlXUkVHMzIoc2RtYV92NF8wX2dldF9y ZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfVUNPREVfREFUQSksIGxlMzJfdG9fY3B1cChmd19k YXRhKyspKTsKKwkJCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfVUNPREVfREFUQSwKKwkJCQkgICAg bGUzMl90b19jcHVwKGZ3X2RhdGErKykpOwogCi0JCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19v ZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9VQ09ERV9BRERSKSwgYWRldi0+c2RtYS5pbnN0YW5jZVtp XS5md192ZXJzaW9uKTsKKwkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9VQ09ERV9BRERSLAorCQkJ ICAgIGFkZXYtPnNkbWEuaW5zdGFuY2VbaV0uZndfdmVyc2lvbik7CiAJfQogCiAJcmV0dXJuIDA7 CkBAIC05MjQsMjIgKzkzMCwxOSBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9zdGFydChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldikKIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5z dGFuY2VzOyBpKyspIHsKIAkJdWludDMyX3QgdGVtcDsKIAotCQlXUkVHMzIoc2RtYV92NF8wX2dl dF9yZWdfb2Zmc2V0KGFkZXYsIGksCi0JCQkJbW1TRE1BMF9TRU1fV0FJVF9GQUlMX1RJTUVSX0NO VEwpLCAwKTsKKwkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9TRU1fV0FJVF9GQUlMX1RJTUVSX0NO VEwsIDApOwogCQlzZG1hX3Y0XzBfZ2Z4X3Jlc3VtZShhZGV2LCBpKTsKIAogCQkvKiBzZXQgdXRj IGwxIGVuYWJsZSBmbGFnIGFsd2F5cyB0byAxICovCi0JCXRlbXAgPSBSUkVHMzIoc2RtYV92NF8w X2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfQ05UTCkpOworCQl0ZW1wID0gUlJFRzMy X1NETUEoaSwgbW1TRE1BMF9DTlRMKTsKIAkJdGVtcCA9IFJFR19TRVRfRklFTEQodGVtcCwgU0RN QTBfQ05UTCwgVVRDX0wxX0VOQUJMRSwgMSk7Ci0JCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19v ZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9DTlRMKSwgdGVtcCk7CisJCVdSRUczMl9TRE1BKGksIG1t U0RNQTBfQ05UTCwgdGVtcCk7CiAKIAkJaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpIHsKIAkJ CS8qIHVuaGFsdCBlbmdpbmUgKi8KLQkJCXRlbXAgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdf b2Zmc2V0KGFkZXYsIGksCi0JCQkJCW1tU0RNQTBfRjMyX0NOVEwpKTsKKwkJCXRlbXAgPSBSUkVH MzJfU0RNQShpLCBtbVNETUEwX0YzMl9DTlRMKTsKIAkJCXRlbXAgPSBSRUdfU0VUX0ZJRUxEKHRl bXAsIFNETUEwX0YzMl9DTlRMLCBIQUxULCAwKTsKLQkJCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3Jl Z19vZmZzZXQoYWRldiwgaSwKLQkJCQkJbW1TRE1BMF9GMzJfQ05UTCksIHRlbXApOworCQkJV1JF RzMyX1NETUEoaSwgbW1TRE1BMF9GMzJfQ05UTCwgdGVtcCk7CiAJCX0KIAl9CiAKQEAgLTE0MDYs NyArMTQwOSw3IEBAIHN0YXRpYyBib29sIHNkbWFfdjRfMF9pc19pZGxlKHZvaWQgKmhhbmRsZSkK IAl1MzIgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkr KykgewotCQl1MzIgdG1wID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBp LCBtbVNETUEwX1NUQVRVU19SRUcpKTsKKwkJdTMyIHRtcCA9IFJSRUczMl9TRE1BKGksIG1tU0RN QTBfU1RBVFVTX1JFRyk7CiAKIAkJaWYgKCEodG1wICYgU0RNQTBfU1RBVFVTX1JFR19fSURMRV9N QVNLKSkKIAkJCXJldHVybiBmYWxzZTsKQEAgLTE0MjIsOCArMTQyNSw4IEBAIHN0YXRpYyBpbnQg c2RtYV92NF8wX3dhaXRfZm9yX2lkbGUodm9pZCAqaGFuZGxlKQogCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwogCiAJZm9yIChpID0g MDsgaSA8IGFkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7Ci0JCXNkbWEwID0gUlJFRzMyKHNkbWFf djRfMF9nZXRfcmVnX29mZnNldChhZGV2LCAwLCBtbVNETUEwX1NUQVRVU19SRUcpKTsKLQkJc2Rt YTEgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIDEsIG1tU0RNQTBfU1RB VFVTX1JFRykpOworCQlzZG1hMCA9IFJSRUczMl9TRE1BKDAsIG1tU0RNQTBfU1RBVFVTX1JFRyk7 CisJCXNkbWExID0gUlJFRzMyX1NETUEoMSwgbW1TRE1BMF9TVEFUVVNfUkVHKTsKIAogCQlpZiAo c2RtYTAgJiBzZG1hMSAmIFNETUEwX1NUQVRVU19SRUdfX0lETEVfTUFTSykKIAkJCXJldHVybiAw OwpAQCAtMTQ0NCwxNiArMTQ0NywxMyBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9zZXRfdHJhcF9p cnFfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJCQkJCXVuc2lnbmVkIHR5cGUs CiAJCQkJCWVudW0gYW1kZ3B1X2ludGVycnVwdF9zdGF0ZSBzdGF0ZSkKIHsKKwl1bnNpZ25lZCBp bnQgaW5zdGFuY2UgPSAodHlwZSA9PSBBTURHUFVfU0RNQV9JUlFfVFJBUDApID8gMCA6IDE7CiAJ dTMyIHNkbWFfY250bDsKIAotCXUzMiByZWdfb2Zmc2V0ID0gKHR5cGUgPT0gQU1ER1BVX1NETUFf SVJRX1RSQVAwKSA/Ci0JCXNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCAwLCBtbVNETUEw X0NOVEwpIDoKLQkJc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIDEsIG1tU0RNQTBfQ05U TCk7Ci0KLQlzZG1hX2NudGwgPSBSUkVHMzIocmVnX29mZnNldCk7CisJc2RtYV9jbnRsID0gUlJF RzMyX1NETUEoaW5zdGFuY2UsIG1tU0RNQTBfQ05UTCk7CiAJc2RtYV9jbnRsID0gUkVHX1NFVF9G SUVMRChzZG1hX2NudGwsIFNETUEwX0NOVEwsIFRSQVBfRU5BQkxFLAogCQkgICAgICAgc3RhdGUg PT0gQU1ER1BVX0lSUV9TVEFURV9FTkFCTEUgPyAxIDogMCk7Ci0JV1JFRzMyKHJlZ19vZmZzZXQs IHNkbWFfY250bCk7CisJV1JFRzMyX1NETUEoaW5zdGFuY2UsIG1tU0RNQTBfQ05UTCwgc2RtYV9j bnRsKTsKIAogCXJldHVybiAwOwogfQotLSAKMi4xNC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngK