From mboxrd@z Thu Jan 1 00:00:00 1970 From: Huang Rui Subject: Re: [PATCH 6/8] drm/amdgpu: add some [WR]REG32_SDMA macros to sdma_v4_0.c Date: Tue, 9 Oct 2018 17:36:40 +0800 Message-ID: <20181009093639.GF8763@hr-amur2> References: <20181008133521.3237-1-christian.koenig@amd.com> <20181008133521.3237-6-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181008133521.3237-6-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: Christian =?iso-8859-1?Q?K=F6nig?= Cc: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org T24gTW9uLCBPY3QgMDgsIDIwMTggYXQgMDM6MzU6MTlQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5p ZyB3cm90ZToKPiBTaWduaWZpY2FudGx5IHNob3J0ZW5zIHRoZSBjb2RlLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KClJldmll d2VkLWJ5OiBIdWFuZyBSdWkgPHJheS5odWFuZ0BhbWQuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMgfCAxMjYgKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCA2MyBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2Rt YV92NF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYwo+IGluZGV4 IDYxZGE5Yjg2MmVkZS4uNTUzODRiYWQ3YTcwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvc2RtYV92NF8wLmMKPiBAQCAtNTQsNiArNTQsMTEgQEAgTU9EVUxFX0ZJUk1XQVJFKCJhbWRn cHUvcmF2ZW4yX3NkbWEuYmluIik7Cj4gICNkZWZpbmUgU0RNQTBfUE9XRVJfQ05UTF9fT05fT0ZG X0NPTkRJVElPTl9IT0xEX1RJTUVfTUFTSyAgMHgwMDAwMDBGOEwKPiAgI2RlZmluZSBTRE1BMF9Q T1dFUl9DTlRMX19PTl9PRkZfU1RBVFVTX0RVUkFUSU9OX1RJTUVfTUFTSyAweEZDMDAwMDAwTAo+ ICAKPiArI2RlZmluZSBXUkVHMzJfU0RNQShpbnN0YW5jZSwgb2Zmc2V0LCB2YWx1ZSkgXAo+ICsJ V1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCAoaW5zdGFuY2UpLCAob2Zmc2V0 KSksIHZhbHVlKQo+ICsjZGVmaW5lIFJSRUczMl9TRE1BKGluc3RhbmNlLCBvZmZzZXQpIFwKPiAr CVJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgKGluc3RhbmNlKSwgKG9mZnNl dCkpKQo+ICsKPiAgc3RhdGljIHZvaWQgc2RtYV92NF8wX3NldF9yaW5nX2Z1bmNzKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2KTsKPiAgc3RhdGljIHZvaWQgc2RtYV92NF8wX3NldF9idWZmZXJf ZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICBzdGF0aWMgdm9pZCBzZG1hX3Y0 XzBfc2V0X3ZtX3B0ZV9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4gQEAgLTM2 Nyw4ICszNzIsOCBAQCBzdGF0aWMgdWludDY0X3Qgc2RtYV92NF8wX3JpbmdfZ2V0X3dwdHIoc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAJfSBlbHNlIHsKPiAgCQl1MzIgbG93Yml0LCBoaWdo Yml0Owo+ICAKPiAtCQlsb3diaXQgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFk ZXYsIHJpbmctPm1lLCBtbVNETUEwX0dGWF9SQl9XUFRSKSkgPj4gMjsKPiAtCQloaWdoYml0ID0g UlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCByaW5nLT5tZSwgbW1TRE1BMF9H RlhfUkJfV1BUUl9ISSkpID4+IDI7Cj4gKwkJbG93Yml0ID0gUlJFRzMyX1NETUEocmluZy0+bWUs IG1tU0RNQTBfR0ZYX1JCX1dQVFIpID4+IDI7Cj4gKwkJaGlnaGJpdCA9IFJSRUczMl9TRE1BKHJp bmctPm1lLCBtbVNETUEwX0dGWF9SQl9XUFRSX0hJKSA+PiAyOwo+ICAKPiAgCQlEUk1fREVCVUco IndwdHIgWyVpXWhpZ2g9PSAweCUwOHggbG93PT0weCUwOHhcbiIsCj4gIAkJCQlyaW5nLT5tZSwg aGlnaGJpdCwgbG93Yml0KTsKPiBAQCAtNDE1LDggKzQyMCwxMCBAQCBzdGF0aWMgdm9pZCBzZG1h X3Y0XzBfcmluZ19zZXRfd3B0cihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gIAkJCQlsb3dl cl8zMl9iaXRzKHJpbmctPndwdHIgPDwgMiksCj4gIAkJCQlyaW5nLT5tZSwKPiAgCQkJCXVwcGVy XzMyX2JpdHMocmluZy0+d3B0ciA8PCAyKSk7Cj4gLQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVn X29mZnNldChhZGV2LCByaW5nLT5tZSwgbW1TRE1BMF9HRlhfUkJfV1BUUiksIGxvd2VyXzMyX2Jp dHMocmluZy0+d3B0ciA8PCAyKSk7Cj4gLQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNl dChhZGV2LCByaW5nLT5tZSwgbW1TRE1BMF9HRlhfUkJfV1BUUl9ISSksIHVwcGVyXzMyX2JpdHMo cmluZy0+d3B0ciA8PCAyKSk7Cj4gKwkJV1JFRzMyX1NETUEocmluZy0+bWUsIG1tU0RNQTBfR0ZY X1JCX1dQVFIsCj4gKwkJCSAgICBsb3dlcl8zMl9iaXRzKHJpbmctPndwdHIgPDwgMikpOwo+ICsJ CVdSRUczMl9TRE1BKHJpbmctPm1lLCBtbVNETUEwX0dGWF9SQl9XUFRSX0hJLAo+ICsJCQkgICAg dXBwZXJfMzJfYml0cyhyaW5nLT53cHRyIDw8IDIpKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtNTY2 LDEyICs1NzMsMTIgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX2dmeF9zdG9wKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KQo+ICAJCQlhbWRncHVfdHRtX3NldF9idWZmZXJfZnVuY3Nfc3RhdHVz KGFkZXYsIGZhbHNlKTsKPiAgCj4gIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+c2RtYS5udW1faW5z dGFuY2VzOyBpKyspIHsKPiAtCQlyYl9jbnRsID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29m ZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9DTlRMKSk7Cj4gKwkJcmJfY250bCA9IFJSRUcz Ml9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX0NOVEwpOwo+ICAJCXJiX2NudGwgPSBSRUdfU0VUX0ZJ RUxEKHJiX2NudGwsIFNETUEwX0dGWF9SQl9DTlRMLCBSQl9FTkFCTEUsIDApOwo+IC0JCVdSRUcz MihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfUkJfQ05UTCks IHJiX2NudGwpOwo+IC0JCWliX2NudGwgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0 KGFkZXYsIGksIG1tU0RNQTBfR0ZYX0lCX0NOVEwpKTsKPiArCQlXUkVHMzJfU0RNQShpLCBtbVNE TUEwX0dGWF9SQl9DTlRMLCByYl9jbnRsKTsKPiArCQlpYl9jbnRsID0gUlJFRzMyX1NETUEoaSwg bW1TRE1BMF9HRlhfSUJfQ05UTCk7Cj4gIAkJaWJfY250bCA9IFJFR19TRVRfRklFTEQoaWJfY250 bCwgU0RNQTBfR0ZYX0lCX0NOVEwsIElCX0VOQUJMRSwgMCk7Cj4gLQkJV1JFRzMyKHNkbWFfdjRf MF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9JQl9DTlRMKSwgaWJfY250bCk7 Cj4gKwkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfSUJfQ05UTCwgaWJfY250bCk7Cj4gIAl9 Cj4gIAo+ICAJc2RtYTAtPnJlYWR5ID0gZmFsc2U7Cj4gQEAgLTYyOCwxOCArNjM1LDE1IEBAIHN0 YXRpYyB2b2lkIHNkbWFfdjRfMF9jdHhfc3dpdGNoX2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgYm9vbCBlbmFibGUpCj4gIAl9Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IGFkZXYt PnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7Cj4gLQkJZjMyX2NudGwgPSBSUkVHMzIoc2RtYV92 NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfQ05UTCkpOwo+ICsJCWYzMl9jbnRs ID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9DTlRMKTsKPiAgCQlmMzJfY250bCA9IFJFR19TRVRf RklFTEQoZjMyX2NudGwsIFNETUEwX0NOVEwsCj4gIAkJCQlBVVRPX0NUWFNXX0VOQUJMRSwgZW5h YmxlID8gMSA6IDApOwo+ICAJCWlmIChlbmFibGUgJiYgYW1kZ3B1X3NkbWFfcGhhc2VfcXVhbnR1 bSkgewo+IC0JCQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RN QTBfUEhBU0UwX1FVQU5UVU0pLAo+IC0JCQkgICAgICAgcGhhc2VfcXVhbnR1bSk7Cj4gLQkJCVdS RUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9QSEFTRTFfUVVB TlRVTSksCj4gLQkJCSAgICAgICBwaGFzZV9xdWFudHVtKTsKPiAtCQkJV1JFRzMyKHNkbWFfdjRf MF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX1BIQVNFMl9RVUFOVFVNKSwKPiAtCQkJ ICAgICAgIHBoYXNlX3F1YW50dW0pOwo+ICsJCQlXUkVHMzJfU0RNQShpLCBtbVNETUEwX1BIQVNF MF9RVUFOVFVNLCBwaGFzZV9xdWFudHVtKTsKPiArCQkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9Q SEFTRTFfUVVBTlRVTSwgcGhhc2VfcXVhbnR1bSk7Cj4gKwkJCVdSRUczMl9TRE1BKGksIG1tU0RN QTBfUEhBU0UyX1FVQU5UVU0sIHBoYXNlX3F1YW50dW0pOwo+ICAJCX0KPiAtCQlXUkVHMzIoc2Rt YV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfQ05UTCksIGYzMl9jbnRsKTsK PiArCQlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0NOVEwsIGYzMl9jbnRsKTsKPiAgCX0KPiAgCj4g IH0KPiBAQCAtNjYzLDkgKzY2Nyw5IEBAIHN0YXRpYyB2b2lkIHNkbWFfdjRfMF9lbmFibGUoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgZW5hYmxlKQo+ICAJfQo+ICAKPiAgCWZvciAo aSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7IGkrKykgewo+IC0JCWYzMl9jbnRs ID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0YzMl9D TlRMKSk7Cj4gKwkJZjMyX2NudGwgPSBSUkVHMzJfU0RNQShpLCBtbVNETUEwX0YzMl9DTlRMKTsK PiAgCQlmMzJfY250bCA9IFJFR19TRVRfRklFTEQoZjMyX2NudGwsIFNETUEwX0YzMl9DTlRMLCBI QUxULCBlbmFibGUgPyAwIDogMSk7Cj4gLQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNl dChhZGV2LCBpLCBtbVNETUEwX0YzMl9DTlRMKSwgZjMyX2NudGwpOwo+ICsJCVdSRUczMl9TRE1B KGksIG1tU0RNQTBfRjMyX0NOVEwsIGYzMl9jbnRsKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtNjky LDM5ICs2OTYsMzkgQEAgc3RhdGljIHZvaWQgc2RtYV92NF8wX2dmeF9yZXN1bWUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsIHVuc2lnbmVkIGludCBpKQo+ICAKPiAgCS8qIFNldCByaW5nIGJ1 ZmZlciBzaXplIGluIGR3b3JkcyAqLwo+ICAJcmJfYnVmc3ogPSBvcmRlcl9iYXNlXzIocmluZy0+ cmluZ19zaXplIC8gNCk7Cj4gLQlyYl9jbnRsID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29m ZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9DTlRMKSk7Cj4gKwlyYl9jbnRsID0gUlJFRzMy X1NETUEoaSwgbW1TRE1BMF9HRlhfUkJfQ05UTCk7Cj4gIAlyYl9jbnRsID0gUkVHX1NFVF9GSUVM RChyYl9jbnRsLCBTRE1BMF9HRlhfUkJfQ05UTCwgUkJfU0laRSwgcmJfYnVmc3opOwo+ICAjaWZk ZWYgX19CSUdfRU5ESUFOCj4gIAlyYl9jbnRsID0gUkVHX1NFVF9GSUVMRChyYl9jbnRsLCBTRE1B MF9HRlhfUkJfQ05UTCwgUkJfU1dBUF9FTkFCTEUsIDEpOwo+ICAJcmJfY250bCA9IFJFR19TRVRf RklFTEQocmJfY250bCwgU0RNQTBfR0ZYX1JCX0NOVEwsCj4gIAkJCQlSUFRSX1dSSVRFQkFDS19T V0FQX0VOQUJMRSwgMSk7Cj4gICNlbmRpZgo+IC0JV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29m ZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9DTlRMKSwgcmJfY250bCk7Cj4gKwlXUkVHMzJf U0RNQShpLCBtbVNETUEwX0dGWF9SQl9DTlRMLCByYl9jbnRsKTsKPiAgCj4gIAkvKiBJbml0aWFs aXplIHRoZSByaW5nIGJ1ZmZlcidzIHJlYWQgYW5kIHdyaXRlIHBvaW50ZXJzICovCj4gLQlXUkVH MzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX1JQVFIp LCAwKTsKPiAtCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1B MF9HRlhfUkJfUlBUUl9ISSksIDApOwo+IC0JV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNl dChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9XUFRSKSwgMCk7Cj4gLQlXUkVHMzIoc2RtYV92NF8w X2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX1dQVFJfSEkpLCAwKTsKPiAr CVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX1JQVFIsIDApOwo+ICsJV1JFRzMyX1NETUEo aSwgbW1TRE1BMF9HRlhfUkJfUlBUUl9ISSwgMCk7Cj4gKwlXUkVHMzJfU0RNQShpLCBtbVNETUEw X0dGWF9SQl9XUFRSLCAwKTsKPiArCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX1dQVFJf SEksIDApOwo+ICAKPiAgCS8qIHNldCB0aGUgd2IgYWRkcmVzcyB3aGV0aGVyIGl0J3MgZW5hYmxl ZCBvciBub3QgKi8KPiAtCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwg bW1TRE1BMF9HRlhfUkJfUlBUUl9BRERSX0hJKSwKPiArCVdSRUczMl9TRE1BKGksIG1tU0RNQTBf R0ZYX1JCX1JQVFJfQUREUl9ISSwKPiAgCSAgICAgICB1cHBlcl8zMl9iaXRzKGFkZXYtPndiLmdw dV9hZGRyICsgd2Jfb2Zmc2V0KSAmIDB4RkZGRkZGRkYpOwo+IC0JV1JFRzMyKHNkbWFfdjRfMF9n ZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9SUFRSX0FERFJfTE8pLAo+ICsJ V1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfUkJfUlBUUl9BRERSX0xPLAo+ICAJICAgICAgIGxv d2VyXzMyX2JpdHMoYWRldi0+d2IuZ3B1X2FkZHIgKyB3Yl9vZmZzZXQpICYgMHhGRkZGRkZGQyk7 Cj4gIAo+ICAJcmJfY250bCA9IFJFR19TRVRfRklFTEQocmJfY250bCwgU0RNQTBfR0ZYX1JCX0NO VEwsIFJQVFJfV1JJVEVCQUNLX0VOQUJMRSwgMSk7Cj4gIAo+IC0JV1JFRzMyKHNkbWFfdjRfMF9n ZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9CQVNFKSwgcmluZy0+Z3B1X2Fk ZHIgPj4gOCk7Cj4gLQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1t U0RNQTBfR0ZYX1JCX0JBU0VfSEkpLCByaW5nLT5ncHVfYWRkciA+PiA0MCk7Cj4gKwlXUkVHMzJf U0RNQShpLCBtbVNETUEwX0dGWF9SQl9CQVNFLCByaW5nLT5ncHVfYWRkciA+PiA4KTsKPiArCVdS RUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX0JBU0VfSEksIHJpbmctPmdwdV9hZGRyID4+IDQw KTsKPiAgCj4gIAlyaW5nLT53cHRyID0gMDsKPiAgCj4gIAkvKiBiZWZvcmUgcHJvZ3JhbWluZyB3 cHRyIHRvIGEgbGVzcyB2YWx1ZSwgbmVlZCBzZXQgbWlub3JfcHRyX3VwZGF0ZSBmaXJzdCAqLwo+ IC0JV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9N SU5PUl9QVFJfVVBEQVRFKSwgMSk7Cj4gKwlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9NSU5P Ul9QVFJfVVBEQVRFLCAxKTsKPiAgCj4gLQlkb29yYmVsbCA9IFJSRUczMihzZG1hX3Y0XzBfZ2V0 X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9HRlhfRE9PUkJFTEwpKTsKPiAtCWRvb3JiZWxs X29mZnNldCA9IFJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1B MF9HRlhfRE9PUkJFTExfT0ZGU0VUKSk7Cj4gKwlkb29yYmVsbCA9IFJSRUczMl9TRE1BKGksIG1t U0RNQTBfR0ZYX0RPT1JCRUxMKTsKPiArCWRvb3JiZWxsX29mZnNldCA9IFJSRUczMl9TRE1BKGks IG1tU0RNQTBfR0ZYX0RPT1JCRUxMX09GRlNFVCk7Cj4gIAo+ICAJaWYgKHJpbmctPnVzZV9kb29y YmVsbCkgewo+ICAJCWRvb3JiZWxsID0gUkVHX1NFVF9GSUVMRChkb29yYmVsbCwgU0RNQTBfR0ZY X0RPT1JCRUxMLCBFTkFCTEUsIDEpOwo+IEBAIC03MzMsNDAgKzczNyw0MCBAQCBzdGF0aWMgdm9p ZCBzZG1hX3Y0XzBfZ2Z4X3Jlc3VtZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdW5zaWdu ZWQgaW50IGkpCj4gIAl9IGVsc2Ugewo+ICAJCWRvb3JiZWxsID0gUkVHX1NFVF9GSUVMRChkb29y YmVsbCwgU0RNQTBfR0ZYX0RPT1JCRUxMLCBFTkFCTEUsIDApOwo+ICAJfQo+IC0JV1JFRzMyKHNk bWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9ET09SQkVMTCksIGRv b3JiZWxsKTsKPiAtCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1T RE1BMF9HRlhfRE9PUkJFTExfT0ZGU0VUKSwgZG9vcmJlbGxfb2Zmc2V0KTsKPiArCVdSRUczMl9T RE1BKGksIG1tU0RNQTBfR0ZYX0RPT1JCRUxMLCBkb29yYmVsbCk7Cj4gKwlXUkVHMzJfU0RNQShp LCBtbVNETUEwX0dGWF9ET09SQkVMTF9PRkZTRVQsIGRvb3JiZWxsX29mZnNldCk7Cj4gIAlhZGV2 LT5uYmlvX2Z1bmNzLT5zZG1hX2Rvb3JiZWxsX3JhbmdlKGFkZXYsIGksIHJpbmctPnVzZV9kb29y YmVsbCwKPiAgCQkJCQkgICAgICByaW5nLT5kb29yYmVsbF9pbmRleCk7Cj4gIAo+ICAJc2RtYV92 NF8wX3Jpbmdfc2V0X3dwdHIocmluZyk7Cj4gIAo+ICAJLyogc2V0IG1pbm9yX3B0cl91cGRhdGUg dG8gMCBhZnRlciB3cHRyIHByb2dyYW1lZCAqLwo+IC0JV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVn X29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFKSwgMCk7Cj4gKwlX UkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9NSU5PUl9QVFJfVVBEQVRFLCAwKTsKPiAgCj4gIAkv KiBzZXR1cCB0aGUgd3B0ciBzaGFkb3cgcG9sbGluZyAqLwo+ICAJd3B0cl9ncHVfYWRkciA9IGFk ZXYtPndiLmdwdV9hZGRyICsgKHJpbmctPndwdHJfb2ZmcyAqIDQpOwo+IC0JV1JFRzMyKHNkbWFf djRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExfQURE Ul9MTyksCj4gLQkgICAgICAgbG93ZXJfMzJfYml0cyh3cHRyX2dwdV9hZGRyKSk7Cj4gLQlXUkVH MzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JCX1dQVFJf UE9MTF9BRERSX0hJKSwKPiAtCSAgICAgICB1cHBlcl8zMl9iaXRzKHdwdHJfZ3B1X2FkZHIpKTsK PiAtCXdwdHJfcG9sbF9jbnRsID0gUlJFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2 LCBpLCBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTCkpOwo+ICsJV1JFRzMyX1NETUEoaSwg bW1TRE1BMF9HRlhfUkJfV1BUUl9QT0xMX0FERFJfTE8sCj4gKwkJICAgIGxvd2VyXzMyX2JpdHMo d3B0cl9ncHVfYWRkcikpOwo+ICsJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9HRlhfUkJfV1BUUl9Q T0xMX0FERFJfSEksCj4gKwkJICAgIHVwcGVyXzMyX2JpdHMod3B0cl9ncHVfYWRkcikpOwo+ICsJ d3B0cl9wb2xsX2NudGwgPSBSUkVHMzJfU0RNQShpLCBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExf Q05UTCk7Cj4gIAlpZiAoYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKQo+ICAJCXdwdHJfcG9sbF9jbnRs ID0gUkVHX1NFVF9GSUVMRCh3cHRyX3BvbGxfY250bCwgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9D TlRMLCBGMzJfUE9MTF9FTkFCTEUsIDEpOwo+ICAJZWxzZQo+ICAJCXdwdHJfcG9sbF9jbnRsID0g UkVHX1NFVF9GSUVMRCh3cHRyX3BvbGxfY250bCwgU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRM LCBGMzJfUE9MTF9FTkFCTEUsIDApOwo+IC0JV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNl dChhZGV2LCBpLCBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTCksIHdwdHJfcG9sbF9jbnRs KTsKPiArCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMLCB3cHRy X3BvbGxfY250bCk7Cj4gIAo+ICAJLyogZW5hYmxlIERNQSBSQiAqLwo+ICAJcmJfY250bCA9IFJF R19TRVRfRklFTEQocmJfY250bCwgU0RNQTBfR0ZYX1JCX0NOVEwsIFJCX0VOQUJMRSwgMSk7Cj4g LQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX1JC X0NOVEwpLCByYl9jbnRsKTsKPiArCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZYX1JCX0NOVEws IHJiX2NudGwpOwo+ICAKPiAtCWliX2NudGwgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zm c2V0KGFkZXYsIGksIG1tU0RNQTBfR0ZYX0lCX0NOVEwpKTsKPiArCWliX2NudGwgPSBSUkVHMzJf U0RNQShpLCBtbVNETUEwX0dGWF9JQl9DTlRMKTsKPiAgCWliX2NudGwgPSBSRUdfU0VUX0ZJRUxE KGliX2NudGwsIFNETUEwX0dGWF9JQl9DTlRMLCBJQl9FTkFCTEUsIDEpOwo+ICAjaWZkZWYgX19C SUdfRU5ESUFOCj4gIAlpYl9jbnRsID0gUkVHX1NFVF9GSUVMRChpYl9jbnRsLCBTRE1BMF9HRlhf SUJfQ05UTCwgSUJfU1dBUF9FTkFCTEUsIDEpOwo+ICAjZW5kaWYKPiAgCS8qIGVuYWJsZSBETUEg SUJzICovCj4gLQlXUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksIG1tU0RN QTBfR0ZYX0lCX0NOVEwpLCBpYl9jbnRsKTsKPiArCVdSRUczMl9TRE1BKGksIG1tU0RNQTBfR0ZY X0lCX0NOVEwsIGliX2NudGwpOwo+ICAKPiAgCXJpbmctPnJlYWR5ID0gdHJ1ZTsKPiAgfQo+IEBA IC04NzksMTIgKzg4MywxNCBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9sb2FkX21pY3JvY29kZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgCQkJKGFkZXYtPnNkbWEuaW5zdGFuY2VbaV0u ZnctPmRhdGEgKwo+ICAJCQkJbGUzMl90b19jcHUoaGRyLT5oZWFkZXIudWNvZGVfYXJyYXlfb2Zm c2V0X2J5dGVzKSk7Cj4gIAo+IC0JCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRl diwgaSwgbW1TRE1BMF9VQ09ERV9BRERSKSwgMCk7Cj4gKwkJV1JFRzMyX1NETUEoaSwgbW1TRE1B MF9VQ09ERV9BRERSLCAwKTsKPiAgCj4gIAkJZm9yIChqID0gMDsgaiA8IGZ3X3NpemU7IGorKykK PiAtCQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX1VD T0RFX0RBVEEpLCBsZTMyX3RvX2NwdXAoZndfZGF0YSsrKSk7Cj4gKwkJCVdSRUczMl9TRE1BKGks IG1tU0RNQTBfVUNPREVfREFUQSwKPiArCQkJCSAgICBsZTMyX3RvX2NwdXAoZndfZGF0YSsrKSk7 Cj4gIAo+IC0JCVdSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1B MF9VQ09ERV9BRERSKSwgYWRldi0+c2RtYS5pbnN0YW5jZVtpXS5md192ZXJzaW9uKTsKPiArCQlX UkVHMzJfU0RNQShpLCBtbVNETUEwX1VDT0RFX0FERFIsCj4gKwkJCSAgICBhZGV2LT5zZG1hLmlu c3RhbmNlW2ldLmZ3X3ZlcnNpb24pOwo+ICAJfQo+ICAKPiAgCXJldHVybiAwOwo+IEBAIC05MjQs MjIgKzkzMCwxOSBAQCBzdGF0aWMgaW50IHNkbWFfdjRfMF9zdGFydChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikKPiAgCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5zZG1hLm51bV9pbnN0YW5jZXM7 IGkrKykgewo+ICAJCXVpbnQzMl90IHRlbXA7Cj4gIAo+IC0JCVdSRUczMihzZG1hX3Y0XzBfZ2V0 X3JlZ19vZmZzZXQoYWRldiwgaSwKPiAtCQkJCW1tU0RNQTBfU0VNX1dBSVRfRkFJTF9USU1FUl9D TlRMKSwgMCk7Cj4gKwkJV1JFRzMyX1NETUEoaSwgbW1TRE1BMF9TRU1fV0FJVF9GQUlMX1RJTUVS X0NOVEwsIDApOwo+ICAJCXNkbWFfdjRfMF9nZnhfcmVzdW1lKGFkZXYsIGkpOwo+ICAKPiAgCQkv KiBzZXQgdXRjIGwxIGVuYWJsZSBmbGFnIGFsd2F5cyB0byAxICovCj4gLQkJdGVtcCA9IFJSRUcz MihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwgbW1TRE1BMF9DTlRMKSk7Cj4gKwkJ dGVtcCA9IFJSRUczMl9TRE1BKGksIG1tU0RNQTBfQ05UTCk7Cj4gIAkJdGVtcCA9IFJFR19TRVRf RklFTEQodGVtcCwgU0RNQTBfQ05UTCwgVVRDX0wxX0VOQUJMRSwgMSk7Cj4gLQkJV1JFRzMyKHNk bWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLCBtbVNETUEwX0NOVEwpLCB0ZW1wKTsKPiAr CQlXUkVHMzJfU0RNQShpLCBtbVNETUEwX0NOVEwsIHRlbXApOwo+ICAKPiAgCQlpZiAoIWFtZGdw dV9zcmlvdl92ZihhZGV2KSkgewo+ICAJCQkvKiB1bmhhbHQgZW5naW5lICovCj4gLQkJCXRlbXAg PSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIGksCj4gLQkJCQkJbW1TRE1B MF9GMzJfQ05UTCkpOwo+ICsJCQl0ZW1wID0gUlJFRzMyX1NETUEoaSwgbW1TRE1BMF9GMzJfQ05U TCk7Cj4gIAkJCXRlbXAgPSBSRUdfU0VUX0ZJRUxEKHRlbXAsIFNETUEwX0YzMl9DTlRMLCBIQUxU LCAwKTsKPiAtCQkJV1JFRzMyKHNkbWFfdjRfMF9nZXRfcmVnX29mZnNldChhZGV2LCBpLAo+IC0J CQkJCW1tU0RNQTBfRjMyX0NOVEwpLCB0ZW1wKTsKPiArCQkJV1JFRzMyX1NETUEoaSwgbW1TRE1B MF9GMzJfQ05UTCwgdGVtcCk7Cj4gIAkJfQo+ICAJfQo+ICAKPiBAQCAtMTQwNiw3ICsxNDA5LDcg QEAgc3RhdGljIGJvb2wgc2RtYV92NF8wX2lzX2lkbGUodm9pZCAqaGFuZGxlKQo+ICAJdTMyIGk7 Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IGFkZXYtPnNkbWEubnVtX2luc3RhbmNlczsgaSsrKSB7 Cj4gLQkJdTMyIHRtcCA9IFJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgaSwg bW1TRE1BMF9TVEFUVVNfUkVHKSk7Cj4gKwkJdTMyIHRtcCA9IFJSRUczMl9TRE1BKGksIG1tU0RN QTBfU1RBVFVTX1JFRyk7Cj4gIAo+ICAJCWlmICghKHRtcCAmIFNETUEwX1NUQVRVU19SRUdfX0lE TEVfTUFTSykpCj4gIAkJCXJldHVybiBmYWxzZTsKPiBAQCAtMTQyMiw4ICsxNDI1LDggQEAgc3Rh dGljIGludCBzZG1hX3Y0XzBfd2FpdF9mb3JfaWRsZSh2b2lkICpoYW5kbGUpCj4gIAlzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKWhhbmRsZTsKPiAg Cj4gIAlmb3IgKGkgPSAwOyBpIDwgYWRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKPiAtCQlzZG1h MCA9IFJSRUczMihzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgMCwgbW1TRE1BMF9TVEFU VVNfUkVHKSk7Cj4gLQkJc2RtYTEgPSBSUkVHMzIoc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFk ZXYsIDEsIG1tU0RNQTBfU1RBVFVTX1JFRykpOwo+ICsJCXNkbWEwID0gUlJFRzMyX1NETUEoMCwg bW1TRE1BMF9TVEFUVVNfUkVHKTsKPiArCQlzZG1hMSA9IFJSRUczMl9TRE1BKDEsIG1tU0RNQTBf U1RBVFVTX1JFRyk7Cj4gIAo+ICAJCWlmIChzZG1hMCAmIHNkbWExICYgU0RNQTBfU1RBVFVTX1JF R19fSURMRV9NQVNLKQo+ICAJCQlyZXR1cm4gMDsKPiBAQCAtMTQ0NCwxNiArMTQ0NywxMyBAQCBz dGF0aWMgaW50IHNkbWFfdjRfMF9zZXRfdHJhcF9pcnFfc3RhdGUoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYsCj4gIAkJCQkJdW5zaWduZWQgdHlwZSwKPiAgCQkJCQllbnVtIGFtZGdwdV9pbnRl cnJ1cHRfc3RhdGUgc3RhdGUpCj4gIHsKPiArCXVuc2lnbmVkIGludCBpbnN0YW5jZSA9ICh0eXBl ID09IEFNREdQVV9TRE1BX0lSUV9UUkFQMCkgPyAwIDogMTsKPiAgCXUzMiBzZG1hX2NudGw7Cj4g IAo+IC0JdTMyIHJlZ19vZmZzZXQgPSAodHlwZSA9PSBBTURHUFVfU0RNQV9JUlFfVFJBUDApID8K PiAtCQlzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoYWRldiwgMCwgbW1TRE1BMF9DTlRMKSA6Cj4g LQkJc2RtYV92NF8wX2dldF9yZWdfb2Zmc2V0KGFkZXYsIDEsIG1tU0RNQTBfQ05UTCk7Cj4gLQo+ IC0Jc2RtYV9jbnRsID0gUlJFRzMyKHJlZ19vZmZzZXQpOwo+ICsJc2RtYV9jbnRsID0gUlJFRzMy X1NETUEoaW5zdGFuY2UsIG1tU0RNQTBfQ05UTCk7Cj4gIAlzZG1hX2NudGwgPSBSRUdfU0VUX0ZJ RUxEKHNkbWFfY250bCwgU0RNQTBfQ05UTCwgVFJBUF9FTkFCTEUsCj4gIAkJICAgICAgIHN0YXRl ID09IEFNREdQVV9JUlFfU1RBVEVfRU5BQkxFID8gMSA6IDApOwo+IC0JV1JFRzMyKHJlZ19vZmZz ZXQsIHNkbWFfY250bCk7Cj4gKwlXUkVHMzJfU0RNQShpbnN0YW5jZSwgbW1TRE1BMF9DTlRMLCBz ZG1hX2NudGwpOwo+ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gLS0gCj4gMi4xNC4xCj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBhbWQtZ2Z4IG1h aWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=