From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH 5/8] drm/amdgpu:Add DPG mode support for vcn 1.0 Date: Tue, 25 Sep 2018 16:09:28 -0400 Message-ID: References: <1537905323-27071-1-git-send-email-James.Zhu@amd.com> <1537905323-27071-5-git-send-email-James.Zhu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1537905323-27071-5-git-send-email-James.Zhu-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: James Zhu Cc: James Zhu , amd-gfx list T24gVHVlLCBTZXAgMjUsIDIwMTggYXQgNDowNCBQTSBKYW1lcyBaaHUgPGp6aHVtc0BnbWFpbC5j b20+IHdyb3RlOgo+Cj4gQWRkIERQRyBtb2RlIHN0YXJ0L3N0b3AvbWNfcmVzdW1lL2Nsb2NrX2dh dGluZyB0bwo+IHN1cHBvcnQgdmNuIDEuMCBEUEcgbW9kZS4KPgo+IFNpZ25lZC1vZmYtYnk6IEph bWVzIFpodSA8SmFtZXMuWmh1QGFtZC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3Zjbl92MV8wLmMgfCAzMTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQo+ICAxIGZpbGUgY2hhbmdlZCwgMzEzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMKPiBpbmRleCAyY2RlMGI0Li4xOWJk NDBjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jCj4gQEAgLTE5OCw3 ICsxOTgsOCBAQCBzdGF0aWMgaW50IHZjbl92MV8wX2h3X2luaXQodm9pZCAqaGFuZGxlKQo+Cj4g IGRvbmU6Cj4gICAgICAgICBpZiAoIXIpCj4gLSAgICAgICAgICAgICAgIERSTV9JTkZPKCJWQ04g ZGVjb2RlIGFuZCBlbmNvZGUgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5LlxuIik7Cj4gKyAgICAg ICAgICAgICAgIERSTV9JTkZPKCJWQ04gZGVjb2RlIGFuZCBlbmNvZGUgaW5pdGlhbGl6ZWQgc3Vj Y2Vzc2Z1bGx5KHVuZGVyICVzKS5cbiIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgKGFkZXYt PnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRfRFBHKT8iRFBHIE1vZGUiOiJTUEcgTW9kZSIpOwo+ Cj4gICAgICAgICByZXR1cm4gcjsKPiAgfQo+IEBAIC0yNjYsMTMgKzI2NywxMyBAQCBzdGF0aWMg aW50IHZjbl92MV8wX3Jlc3VtZSh2b2lkICpoYW5kbGUpCj4gIH0KPgo+ICAvKioKPiAtICogdmNu X3YxXzBfbWNfcmVzdW1lIC0gbWVtb3J5IGNvbnRyb2xsZXIgcHJvZ3JhbW1pbmcKPiArICogdmNu X3YxXzBfbWNfcmVzdW1lX3BnX21vZGUgLSBtZW1vcnkgY29udHJvbGxlciBwcm9ncmFtbWluZwo+ ICAgKgo+ICAgKiBAYWRldjogYW1kZ3B1X2RldmljZSBwb2ludGVyCj4gICAqCj4gICAqIExldCB0 aGUgVkNOIG1lbW9yeSBjb250cm9sbGVyIGtub3cgaXQncyBvZmZzZXRzCj4gICAqLwo+IC1zdGF0 aWMgdm9pZCB2Y25fdjFfMF9tY19yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4g K3N0YXRpYyB2b2lkIHZjbl92MV8wX21jX3Jlc3VtZV9wZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQoKTWF5YmUgY2FsbCB0aGlzIHZjbl92MV8wX21jX3Jlc3VtZV9zcGdfbW9kZSBm b3IgY2xhcml0eT8KCj4gIHsKPiAgICAgICAgIHVpbnQzMl90IHNpemUgPSBBTURHUFVfR1BVX1BB R0VfQUxJR04oYWRldi0+dmNuLmZ3LT5zaXplICsgNCk7Cj4gICAgICAgICB1aW50MzJfdCBvZmZz ZXQ7Cj4gQEAgLTMxOSw2ICszMjAsNjUgQEAgc3RhdGljIHZvaWQgdmNuX3YxXzBfbWNfcmVzdW1l KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGFk ZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWcpOwo+ICB9Cj4KPiArc3RhdGljIHZvaWQgdmNu X3YxXzBfbWNfcmVzdW1lX2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICt7 Cj4gKyAgICAgICB1aW50MzJfdCBzaXplID0gQU1ER1BVX0dQVV9QQUdFX0FMSUdOKGFkZXYtPnZj bi5mdy0+c2l6ZSArIDQpOwo+ICsgICAgICAgdWludDMyX3Qgb2Zmc2V0Owo+ICsKPiArICAgICAg IGlmIChhZGV2LT5maXJtd2FyZS5sb2FkX3R5cGUgPT0gQU1ER1BVX0ZXX0xPQURfUFNQKSB7Cj4g KyAgICAgICAgICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9W Q1BVX0NBQ0hFXzY0QklUX0JBUl9MT1csCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAo YWRldi0+ZmlybXdhcmUudWNvZGVbQU1ER1BVX1VDT0RFX0lEX1ZDTl0udG1yX21jX2FkZHJfbG8p LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAg ICAgICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NB Q0hFXzY0QklUX0JBUl9ISUdILAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFkZXYt PmZpcm13YXJlLnVjb2RlW0FNREdQVV9VQ09ERV9JRF9WQ05dLnRtcl9tY19hZGRyX2hpKSwKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIDApOwo+ICsgICAgICAgICAg ICAgICBXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX09GRlNF VDAsIDAsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCAwKTsKPiAr ICAgICAgICAgICAgICAgb2Zmc2V0ID0gMDsKPiArICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAg ICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hF XzY0QklUX0JBUl9MT1csCj4gKyAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJfMzJfYml0cyhh ZGV2LT52Y24uZ3B1X2FkZHIpLCAweEZGRkZGRkZGLCAwKTsKPiArICAgICAgICAgICAgICAgV1JF RzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEVfNjRCSVRfQkFS X0hJR0gsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT52Y24u Z3B1X2FkZHIpLCAweEZGRkZGRkZGLCAwKTsKPiArICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2l6 ZTsKPiArICAgICAgICAgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRf VkNQVV9DQUNIRV9PRkZTRVQwLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU1ER1BV X1VWRF9GSVJNV0FSRV9PRkZTRVQgPj4gMywgMHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAgICB9Cj4g Kwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfVkNQVV9DQUNI RV9TSVpFMCwgc2l6ZSwgMHhGRkZGRkZGRiwgMCk7Cj4gKwo+ICsgICAgICAgV1JFRzMyX1NPQzE1 X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfTE1JX1ZDUFVfQ0FDSEUxXzY0QklUX0JBUl9MT1csCj4g KyAgICAgICAgICAgICAgICAgICAgbG93ZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIgKyBv ZmZzZXQpLCAweEZGRkZGRkZGLCAwKTsKPiArICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShV VkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMV82NEJJVF9CQVJfSElHSCwKPiArICAgICAgICAg ICAgICAgICAgICB1cHBlcl8zMl9iaXRzKGFkZXYtPnZjbi5ncHVfYWRkciArIG9mZnNldCksIDB4 RkZGRkZGRkYsIDApOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1V VkRfVkNQVV9DQUNIRV9PRkZTRVQxLCAwLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBt bVVWRF9WQ1BVX0NBQ0hFX1NJWkUxLCBBTURHUFVfVkNOX0hFQVBfU0laRSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIDApOwo+ICsKPiArICAgICAgIFdSRUczMl9T T0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0xNSV9WQ1BVX0NBQ0hFMl82NEJJVF9CQVJfTE9X LAo+ICsgICAgICAgICAgICAgICAgICAgIGxvd2VyXzMyX2JpdHMoYWRldi0+dmNuLmdwdV9hZGRy ICsgb2Zmc2V0ICsgQU1ER1BVX1ZDTl9IRUFQX1NJWkUpLAo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTVfRFBHX01PREUo VVZELCAwLCBtbVVWRF9MTUlfVkNQVV9DQUNIRTJfNjRCSVRfQkFSX0hJR0gsCj4gKyAgICAgICAg ICAgICAgICAgICAgdXBwZXJfMzJfYml0cyhhZGV2LT52Y24uZ3B1X2FkZHIgKyBvZmZzZXQgKyBB TURHUFVfVkNOX0hFQVBfU0laRSksCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZG RkZGRkZGLCAwKTsKPiArICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZE X1ZDUFVfQ0FDSEVfT0ZGU0VUMiwgMCwgMHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAgICBXUkVHMzJf U09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9WQ1BVX0NBQ0hFX1NJWkUyLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgIEFNREdQVV9WQ05fU1RBQ0tfU0laRSArIChBTURHUFVfVkNOX1NFU1NJ T05fU0laRSAqIDQwKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYs IDApOwo+ICsKPiArICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX1VE RUNfQUREUl9DT05GSUcsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgYWRldi0+Z2Z4LmNvbmZp Zy5nYl9hZGRyX2NvbmZpZywgMHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTVf RFBHX01PREUoVVZELCAwLCBtbVVWRF9VREVDX0RCX0FERFJfQ09ORklHLAo+ICsgICAgICAgICAg ICAgICAgICAgICAgIGFkZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWcsIDB4RkZGRkZGRkYs IDApOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfVURFQ19E QldfQUREUl9DT05GSUcsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgYWRldi0+Z2Z4LmNvbmZp Zy5nYl9hZGRyX2NvbmZpZywgMHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTVf RFBHX01PREUoVVZELCAwLCBtbVVWRF9KUEVHX0FERFJfQ09ORklHLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgIGFkZXYtPmdmeC5jb25maWcuZ2JfYWRkcl9jb25maWcsIDB4RkZGRkZGRkYsIDAp Owo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfSlBFR19VVl9B RERSX0NPTkZJRywKPiArICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT5nZnguY29uZmlnLmdi X2FkZHJfY29uZmlnLCAweEZGRkZGRkZGLCAwKTsKPiArfQo+ICsKPiAgLyoqCj4gICAqIHZjbl92 MV8wX2Rpc2FibGVfY2xvY2tfZ2F0aW5nIC0gZGlzYWJsZSBWQ04gY2xvY2sgZ2F0aW5nCj4gICAq Cj4gQEAgLTUxOSw2ICs1NzksNjIgQEAgc3RhdGljIHZvaWQgdmNuX3YxXzBfZW5hYmxlX2Nsb2Nr X2dhdGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgICAgICAgIFdSRUczMl9TT0Mx NShWQ04sIDAsIG1tVVZEX1NVVkRfQ0dDX0NUUkwsIGRhdGEpOwo+ICB9Cj4KPiArc3RhdGljIHZv aWQgdmNuX3YxXzBfY2xvY2tfZ2F0aW5nX2RwZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCB1aW50OF90IHNyYW1fc2VsKQo+ICt7Cj4gKyAgICAgICB1aW50MzJfdCByZWdfZGF0YSA9 IDA7Cj4gKwo+ICsgICAgICAgLyogZGlzYWJsZSBKUEVHIENHQyAqLwo+ICsgICAgICAgaWYgKGFk ZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfVkNOX01HQ0cpCj4gKyAgICAgICAgICAgICAg IHJlZ19kYXRhID0gMSA8PCBKUEVHX0NHQ19DVFJMX19EWU5fQ0xPQ0tfTU9ERV9fU0hJRlQ7Cj4g KyAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgIHJlZ19kYXRhID0gMCA8PCBKUEVHX0NHQ19D VFJMX19EWU5fQ0xPQ0tfTU9ERV9fU0hJRlQ7Cj4gKyAgICAgICByZWdfZGF0YSB8PSAxIDw8IEpQ RUdfQ0dDX0NUUkxfX0NMS19HQVRFX0RMWV9USU1FUl9fU0hJRlQ7Cj4gKyAgICAgICByZWdfZGF0 YSB8PSA0IDw8IEpQRUdfQ0dDX0NUUkxfX0NMS19PRkZfREVMQVlfX1NISUZUOwo+ICsgICAgICAg V1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1KUEVHX0NHQ19DVFJMLCByZWdfZGF0YSwg MHhGRkZGRkZGRiwgc3JhbV9zZWwpOwo+ICsKPiArICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9E RShVVkQsIDAsIG1tSlBFR19DR0NfR0FURSwgMCwgMHhGRkZGRkZGRiwgc3JhbV9zZWwpOwo+ICsK PiArICAgICAgIC8qIGVuYWJsZSBzdyBjbG9jayBnYXRpbmcgY29udHJvbCAqLwo+ICsgICAgICAg aWYgKGFkZXYtPmNnX2ZsYWdzICYgQU1EX0NHX1NVUFBPUlRfVkNOX01HQ0cpCj4gKyAgICAgICAg ICAgICAgIHJlZ19kYXRhID0gMSA8PCBVVkRfQ0dDX0NUUkxfX0RZTl9DTE9DS19NT0RFX19TSElG VDsKPiArICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAgcmVnX2RhdGEgPSAwIDw8IFVWRF9D R0NfQ1RSTF9fRFlOX0NMT0NLX01PREVfX1NISUZUOwo+ICsgICAgICAgcmVnX2RhdGEgfD0gMSA8 PCBVVkRfQ0dDX0NUUkxfX0NMS19HQVRFX0RMWV9USU1FUl9fU0hJRlQ7Cj4gKyAgICAgICByZWdf ZGF0YSB8PSA0IDw8IFVWRF9DR0NfQ1RSTF9fQ0xLX09GRl9ERUxBWV9fU0hJRlQ7Cj4gKyAgICAg ICBXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9DR0NfQ1RSTCwgcmVnX2RhdGEs IDB4RkZGRkZGRkYsIHNyYW1fc2VsKTsKPiArCj4gKyAgICAgICByZWdfZGF0YSAmPSB+KFVWRF9D R0NfQ1RSTF9fVURFQ19SRV9NT0RFX01BU0sgfAo+ICsgICAgICAgICAgICAgICAgVVZEX0NHQ19D VFJMX19VREVDX0NNX01PREVfTUFTSyB8Cj4gKyAgICAgICAgICAgICAgICBVVkRfQ0dDX0NUUkxf X1VERUNfSVRfTU9ERV9NQVNLIHwKPiArICAgICAgICAgICAgICAgIFVWRF9DR0NfQ1RSTF9fVURF Q19EQl9NT0RFX01BU0sgfAo+ICsgICAgICAgICAgICAgICAgVVZEX0NHQ19DVFJMX19VREVDX01Q X01PREVfTUFTSyB8Cj4gKyAgICAgICAgICAgICAgICBVVkRfQ0dDX0NUUkxfX1NZU19NT0RFX01B U0sgfAo+ICsgICAgICAgICAgICAgICAgVVZEX0NHQ19DVFJMX19VREVDX01PREVfTUFTSyB8Cj4g KyAgICAgICAgICAgICAgICBVVkRfQ0dDX0NUUkxfX01QRUcyX01PREVfTUFTSyB8Cj4gKyAgICAg ICAgICAgICAgICBVVkRfQ0dDX0NUUkxfX1JFR1NfTU9ERV9NQVNLIHwKPiArICAgICAgICAgICAg ICAgIFVWRF9DR0NfQ1RSTF9fUkJDX01PREVfTUFTSyB8Cj4gKyAgICAgICAgICAgICAgICBVVkRf Q0dDX0NUUkxfX0xNSV9NQ19NT0RFX01BU0sgfAo+ICsgICAgICAgICAgICAgICAgVVZEX0NHQ19D VFJMX19MTUlfVU1DX01PREVfTUFTSyB8Cj4gKyAgICAgICAgICAgICAgICBVVkRfQ0dDX0NUUkxf X0lEQ1RfTU9ERV9NQVNLIHwKPiArICAgICAgICAgICAgICAgIFVWRF9DR0NfQ1RSTF9fTVBSRF9N T0RFX01BU0sgfAo+ICsgICAgICAgICAgICAgICAgVVZEX0NHQ19DVFJMX19NUENfTU9ERV9NQVNL IHwKPiArICAgICAgICAgICAgICAgIFVWRF9DR0NfQ1RSTF9fTEJTSV9NT0RFX01BU0sgfAo+ICsg ICAgICAgICAgICAgICAgVVZEX0NHQ19DVFJMX19MUkJCTV9NT0RFX01BU0sgfAo+ICsgICAgICAg ICAgICAgICAgVVZEX0NHQ19DVFJMX19XQ0JfTU9ERV9NQVNLIHwKPiArICAgICAgICAgICAgICAg IFVWRF9DR0NfQ1RSTF9fVkNQVV9NT0RFX01BU0sgfAo+ICsgICAgICAgICAgICAgICAgVVZEX0NH Q19DVFJMX19TQ1BVX01PREVfTUFTSyk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTVfRFBHX01PREUo VVZELCAwLCBtbVVWRF9DR0NfQ1RSTCwgcmVnX2RhdGEsIDB4RkZGRkZGRkYsIHNyYW1fc2VsKTsK PiArCj4gKyAgICAgICAvKiB0dXJuIG9mZiBjbG9jayBnYXRpbmcgKi8KPiArICAgICAgIFdSRUcz Ml9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX0NHQ19HQVRFLCAwLCAweEZGRkZGRkZGLCBz cmFtX3NlbCk7Cj4gKwo+ICsgICAgICAgLyogdHVybiBvbiBTVVZEIGNsb2NrIGdhdGluZyAqLwo+ ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfU1VWRF9DR0NfR0FU RSwgMSwgMHhGRkZGRkZGRiwgc3JhbV9zZWwpOwo+ICsKPiArICAgICAgIC8qIHR1cm4gb24gc3cg bW9kZSBpbiBVVkRfU1VWRF9DR0NfQ1RSTCAqLwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19N T0RFKFVWRCwgMCwgbW1VVkRfU1VWRF9DR0NfQ1RSTCwgMCwgMHhGRkZGRkZGRiwgc3JhbV9zZWwp Owo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCB2Y25fMV8wX2Rpc2FibGVfc3RhdGljX3Bvd2VyX2dh dGluZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgewo+ICAgICAgICAgdWludDMyX3Qg ZGF0YSA9IDA7Cj4gQEAgLTYxNCw3ICs3MzAsNyBAQCBzdGF0aWMgdm9pZCB2Y25fMV8wX2VuYWJs ZV9zdGF0aWNfcG93ZXJfZ2F0aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgKgo+ ICAgKiBTZXR1cCBhbmQgc3RhcnQgdGhlIFZDTiBibG9jawo+ICAgKi8KPiAtc3RhdGljIGludCB2 Y25fdjFfMF9zdGFydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiArc3RhdGljIGludCB2 Y25fdjFfMF9zdGFydF9wZ19tb2RlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQoKU2FtZSBj b21tZW50IGhlcmUuICBXaXRoIHRoYXQgZml4ZWQ6ClJldmlld2VkLWJ5OiBBbGV4IERldWNoZXIg PGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cgo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcgPSAmYWRldi0+dmNuLnJpbmdfZGVjOwo+ICAgICAgICAgdWludDMyX3QgcmJf YnVmc3osIHRtcDsKPiBAQCAtNjI4LDcgKzc0NCw3IEBAIHN0YXRpYyBpbnQgdmNuX3YxXzBfc3Rh cnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAgICAgICAvKiBkaXNhYmxlIGNsb2Nr IGdhdGluZyAqLwo+ICAgICAgICAgdmNuX3YxXzBfZGlzYWJsZV9jbG9ja19nYXRpbmcoYWRldik7 Cj4KPiAtICAgICAgIHZjbl92MV8wX21jX3Jlc3VtZShhZGV2KTsKPiArICAgICAgIHZjbl92MV8w X21jX3Jlc3VtZV9wZ19tb2RlKGFkZXYpOwo+Cj4gICAgICAgICAvKiBkaXNhYmxlIGludGVydXB0 ICovCj4gICAgICAgICBXUkVHMzJfUChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTUFT VElOVF9FTiksIDAsCj4gQEAgLTc5OSw2ICs5MTUsMTcwIEBAIHN0YXRpYyBpbnQgdmNuX3YxXzBf c3RhcnQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAgICAgICByZXR1cm4gMDsKPiAg fQo+Cj4gK3N0YXRpYyBpbnQgdmNuX3YxXzBfc3RhcnRfZHBnX21vZGUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpCj4gK3sKPiArICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZh ZGV2LT52Y24ucmluZ19kZWM7Cj4gKyAgICAgICB1aW50MzJfdCByYl9idWZzeiwgdG1wLCByZWdf ZGF0YTsKPiArICAgICAgIHVpbnQzMl90IGxtaV9zd2FwX2NudGw7Cj4gKwo+ICsgICAgICAgLyog ZGlzYWJsZSBieXRlIHN3YXBwaW5nICovCj4gKyAgICAgICBsbWlfc3dhcF9jbnRsID0gMDsKPiAr Cj4gKyAgICAgICB2Y25fMV8wX2VuYWJsZV9zdGF0aWNfcG93ZXJfZ2F0aW5nKGFkZXYpOwo+ICsK PiArICAgICAgIC8qIGVuYWJsZSBkeW5hbWljIHBvd2VyIGdhdGluZyBtb2RlICovCj4gKyAgICAg ICByZWdfZGF0YSA9IFJSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1BPV0VSX1NUQVRVUyk7Cj4g KyAgICAgICByZWdfZGF0YSB8PSBVVkRfUE9XRVJfU1RBVFVTX19VVkRfUEdfTU9ERV9NQVNLOwo+ ICsgICAgICAgcmVnX2RhdGEgfD0gVVZEX1BPV0VSX1NUQVRVU19fVVZEX1BHX0VOX01BU0s7Cj4g KyAgICAgICBXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9QT1dFUl9TVEFUVVMsIHJlZ19kYXRh KTsKPiArCj4gKyAgICAgICAvKiBlbmFibGUgY2xvY2sgZ2F0aW5nICovCj4gKyAgICAgICB2Y25f djFfMF9jbG9ja19nYXRpbmdfZHBnX21vZGUoYWRldiwgMCk7Cj4gKwo+ICsgICAgICAgLyogZW5h YmxlIFZDUFUgY2xvY2sgKi8KPiArICAgICAgIHJlZ19kYXRhID0gKDB4RkYgPDwgVVZEX1ZDUFVf Q05UTF9fUFJCX1RJTUVPVVRfVkFMX19TSElGVCk7Cj4gKyAgICAgICByZWdfZGF0YSB8PSBVVkRf VkNQVV9DTlRMX19DTEtfRU5fTUFTSzsKPiArICAgICAgIHJlZ19kYXRhIHw9IFVWRF9WQ1BVX0NO VExfX01JRl9XUl9MT1dfVEhSRVNIT0xEX0JQX01BU0s7Cj4gKyAgICAgICBXUkVHMzJfU09DMTVf RFBHX01PREUoVVZELCAwLCBtbVVWRF9WQ1BVX0NOVEwsIHJlZ19kYXRhLCAweEZGRkZGRkZGLCAw KTsKPiArCj4gKyAgICAgICAvKiBkaXNhYmxlIGludGVydXB0ICovCj4gKyAgICAgICBXUkVHMzJf U09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9NQVNUSU5UX0VOLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgIDAsIFVWRF9NQVNUSU5UX0VOX19WQ1BVX0VOX01BU0ssIDApOwo+ICsKPiArICAg ICAgIC8qIHN0YWxsIFVNQyBhbmQgcmVnaXN0ZXIgYnVzIGJlZm9yZSByZXNldHRpbmcgVkNQVSAq Lwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfTE1JX0NUUkwy LAo+ICsgICAgICAgICAgICAgICAgICAgICAgIFVWRF9MTUlfQ1RSTDJfX1NUQUxMX0FSQl9VTUNf TUFTSywgVVZEX0xNSV9DVFJMMl9fU1RBTExfQVJCX1VNQ19NQVNLLCAwKTsKPiArCj4gKyAgICAg ICAvKiBwdXQgTE1JLCBWQ1BVLCBSQkMgZXRjLi4uIGludG8gcmVzZXQgKi8KPiArICAgICAgIFdS RUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX1NPRlRfUkVTRVQsCj4gKyAgICAgICAg ICAgICAgIFVWRF9TT0ZUX1JFU0VUX19MTUlfU09GVF9SRVNFVF9NQVNLIHwKPiArICAgICAgICAg ICAgICAgVVZEX1NPRlRfUkVTRVRfX1ZDUFVfU09GVF9SRVNFVF9NQVNLIHwKPiArICAgICAgICAg ICAgICAgVVZEX1NPRlRfUkVTRVRfX0xCU0lfU09GVF9SRVNFVF9NQVNLIHwKPiArICAgICAgICAg ICAgICAgVVZEX1NPRlRfUkVTRVRfX1JCQ19TT0ZUX1JFU0VUX01BU0sgfAo+ICsgICAgICAgICAg ICAgICBVVkRfU09GVF9SRVNFVF9fQ1NNX1NPRlRfUkVTRVRfTUFTSyB8Cj4gKyAgICAgICAgICAg ICAgIFVWRF9TT0ZUX1JFU0VUX19DWFdfU09GVF9SRVNFVF9NQVNLIHwKPiArICAgICAgICAgICAg ICAgVVZEX1NPRlRfUkVTRVRfX1RBUF9TT0ZUX1JFU0VUX01BU0sgfAo+ICsgICAgICAgICAgICAg ICBVVkRfU09GVF9SRVNFVF9fTE1JX1VNQ19TT0ZUX1JFU0VUX01BU0ssCj4gKyAgICAgICAgICAg ICAgIDB4RkZGRkZGRkYsIDApOwo+ICsKPiArICAgICAgIC8qIGluaXRpYWxpemUgVkNOIG1lbW9y eSBjb250cm9sbGVyICovCj4gKyAgICAgICBXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBt bVVWRF9MTUlfQ1RSTCwKPiArICAgICAgICAgICAgICAgKDB4NDAgPDwgVVZEX0xNSV9DVFJMX19X UklURV9DTEVBTl9USU1FUl9fU0hJRlQpIHwKPiArICAgICAgICAgICAgICAgVVZEX0xNSV9DVFJM X19XUklURV9DTEVBTl9USU1FUl9FTl9NQVNLIHwKPiArICAgICAgICAgICAgICAgVVZEX0xNSV9D VFJMX19EQVRBX0NPSEVSRU5DWV9FTl9NQVNLIHwKPiArICAgICAgICAgICAgICAgVVZEX0xNSV9D VFJMX19WQ1BVX0RBVEFfQ09IRVJFTkNZX0VOX01BU0sgfAo+ICsgICAgICAgICAgICAgICBVVkRf TE1JX0NUUkxfX1JFUV9NT0RFX01BU0sgfAo+ICsgICAgICAgICAgICAgICAweDAwMTAwMDAwTCwg MHhGRkZGRkZGRiwgMCk7Cj4gKwo+ICsjaWZkZWYgX19CSUdfRU5ESUFOCj4gKyAgICAgICAvKiBz d2FwICg4IGluIDMyKSBSQiBhbmQgSUIgKi8KPiArICAgICAgIGxtaV9zd2FwX2NudGwgPSAweGE7 Cj4gKyNlbmRpZgo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRf TE1JX1NXQVBfQ05UTCwgbG1pX3N3YXBfY250bCwgMHhGRkZGRkZGRiwgMCk7Cj4gKwo+ICsgICAg ICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfTVBDX1NFVF9NVVhBMCwgMHg0 MGMyMDQwLCAweEZGRkZGRkZGLCAwKTsKPiArICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShV VkQsIDAsIG1tVVZEX01QQ19TRVRfTVVYQTEsIDB4MCwgMHhGRkZGRkZGRiwgMCk7Cj4gKyAgICAg ICBXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9NUENfU0VUX01VWEIwLCAweDQw YzIwNDAsIDB4RkZGRkZGRkYsIDApOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVW RCwgMCwgbW1VVkRfTVBDX1NFVF9NVVhCMSwgMHgwLCAweEZGRkZGRkZGLCAwKTsKPiArICAgICAg IFdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX01QQ19TRVRfQUxVLCAwLCAweEZG RkZGRkZGLCAwKTsKPiArICAgICAgIFdSRUczMl9TT0MxNV9EUEdfTU9ERShVVkQsIDAsIG1tVVZE X01QQ19TRVRfTVVYLCAweDg4LCAweEZGRkZGRkZGLCAwKTsKPiArCj4gKyAgICAgICB2Y25fdjFf MF9tY19yZXN1bWVfZHBnX21vZGUoYWRldik7Cj4gKwo+ICsgICAgICAgLyogdGFrZSBhbGwgc3Vi YmxvY2tzIG91dCBvZiByZXNldCwgZXhjZXB0IFZDUFUgKi8KPiArICAgICAgIFdSRUczMl9TT0Mx NV9EUEdfTU9ERShVVkQsIDAsIG1tVVZEX1NPRlRfUkVTRVQsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgVVZEX1NPRlRfUkVTRVRfX1ZDUFVfU09GVF9SRVNFVF9NQVNLLCAweEZGRkZGRkZGLCAw KTsKPiArCj4gKyAgICAgICAvKiBlbmFibGUgVkNQVSBjbG9jayAqLwo+ICsgICAgICAgV1JFRzMy X1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfVkNQVV9DTlRMLAo+ICsgICAgICAgICAgICAg ICAgICAgICAgIFVWRF9WQ1BVX0NOVExfX0NMS19FTl9NQVNLLCAweEZGRkZGRkZGLCAwKTsKPiAr Cj4gKyAgICAgICAvKiBlbmFibGUgVU1DICovCj4gKyAgICAgICBXUkVHMzJfU09DMTVfRFBHX01P REUoVVZELCAwLCBtbVVWRF9MTUlfQ1RSTDIsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgMCwg VVZEX0xNSV9DVFJMMl9fU1RBTExfQVJCX1VNQ19NQVNLLCAwKTsKPiArCj4gKyAgICAgICAvKiBi b290IHVwIHRoZSBWQ1BVICovCj4gKyAgICAgICBXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAw LCBtbVVWRF9TT0ZUX1JFU0VULCAwLCAweEZGRkZGRkZGLCAwKTsKPiArCj4gKyAgICAgICAvKiBl bmFibGUgbWFzdGVyIGludGVycnVwdCAqLwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RF KFVWRCwgMCwgbW1VVkRfTUFTVElOVF9FTiwKPiArICAgICAgICAgICAgICAgICAgICAgICAoVVZE X01BU1RJTlRfRU5fX1ZDUFVfRU5fTUFTS3xVVkRfTUFTVElOVF9FTl9fU1lTX0VOX01BU0spLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgIChVVkRfTUFTVElOVF9FTl9fVkNQVV9FTl9NQVNLfFVW RF9NQVNUSU5UX0VOX19TWVNfRU5fTUFTSyksIDApOwo+ICsKPiArICAgICAgIHZjbl92MV8wX2Ns b2NrX2dhdGluZ19kcGdfbW9kZShhZGV2LCAxKTsKPiArICAgICAgIC8qIHNldHVwIG1tVVZEX0xN SV9DVFJMICovCj4gKyAgICAgICBXUkVHMzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9M TUlfQ1RSTCwKPiArICAgICAgICAgICAgICAgICAgICAgICAoVVZEX0xNSV9DVFJMX19XUklURV9D TEVBTl9USU1FUl9FTl9NQVNLIHwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVW RF9MTUlfQ1RSTF9fQ1JDX1JFU0VUX01BU0sgfAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVVZEX0xNSV9DVFJMX19NQVNLX01DX1VSR0VOVF9NQVNLIHwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFVWRF9MTUlfQ1RSTF9fREFUQV9DT0hFUkVOQ1lfRU5fTUFTSyB8 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVVkRfTE1JX0NUUkxfX1ZDUFVfREFU QV9DT0hFUkVOQ1lfRU5fTUFTSyB8Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo OCA8PCBVVkRfTE1JX0NUUkxfX1dSSVRFX0NMRUFOX1RJTUVSX19TSElGVCkgfAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwpLCAweEZGRkZGRkZGLCAxKTsKPiAr Cj4gKyAgICAgICB0bXAgPSBhZGV2LT5nZnguY29uZmlnLmdiX2FkZHJfY29uZmlnOwo+ICsgICAg ICAgLyogc2V0dXAgVkNOIGdsb2JhbCB0aWxpbmcgcmVnaXN0ZXJzICovCj4gKyAgICAgICBXUkVH MzJfU09DMTVfRFBHX01PREUoVVZELCAwLCBtbVVWRF9KUEVHX0FERFJfQ09ORklHLCB0bXAsIDB4 RkZGRkZGRkYsIDEpOwo+ICsgICAgICAgV1JFRzMyX1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1V VkRfSlBFR19VVl9BRERSX0NPTkZJRywgdG1wLCAweEZGRkZGRkZGLCAxKTsKPiArCj4gKyAgICAg ICAvKiBlbmFibGUgU3lzdGVtIEludGVycnVwdCBmb3IgSlJCQyAqLwo+ICsgICAgICAgV1JFRzMy X1NPQzE1X0RQR19NT0RFKFVWRCwgMCwgbW1VVkRfU1lTX0lOVF9FTiwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBVVkRfU1lTX0lOVF9FTl9fVVZEX0pSQkNfRU5fTUFTSywgMHhGRkZGRkZGRiwgMSk7Cj4gKwo+ ICsgICAgICAgLyogZm9yY2UgUkJDIGludG8gaWRsZSBzdGF0ZSAqLwo+ICsgICAgICAgcmJfYnVm c3ogPSBvcmRlcl9iYXNlXzIocmluZy0+cmluZ19zaXplKTsKPiArICAgICAgIHRtcCA9IFJFR19T RVRfRklFTEQoMCwgVVZEX1JCQ19SQl9DTlRMLCBSQl9CVUZTWiwgcmJfYnVmc3opOwo+ICsgICAg ICAgdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFVWRF9SQkNfUkJfQ05UTCwgUkJfQkxLU1osIDEp Owo+ICsgICAgICAgdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFVWRF9SQkNfUkJfQ05UTCwgUkJf Tk9fRkVUQ0gsIDEpOwo+ICsgICAgICAgdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFVWRF9SQkNf UkJfQ05UTCwgUkJfV1BUUl9QT0xMX0VOLCAwKTsKPiArICAgICAgIHRtcCA9IFJFR19TRVRfRklF TEQodG1wLCBVVkRfUkJDX1JCX0NOVEwsIFJCX05PX1VQREFURSwgMSk7Cj4gKyAgICAgICB0bXAg PSBSRUdfU0VUX0ZJRUxEKHRtcCwgVVZEX1JCQ19SQl9DTlRMLCBSQl9SUFRSX1dSX0VOLCAxKTsK PiArICAgICAgIFdSRUczMl9TT0MxNShVVkQsIDAsIG1tVVZEX1JCQ19SQl9DTlRMLCB0bXApOwo+ ICsKPiArICAgICAgIC8qIHNldCB0aGUgd3JpdGUgcG9pbnRlciBkZWxheSAqLwo+ICsgICAgICAg V1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJDX1JCX1dQVFJfQ05UTCwgMCk7Cj4gKwo+ICsg ICAgICAgLyogc2V0IHRoZSB3YiBhZGRyZXNzICovCj4gKyAgICAgICBXUkVHMzJfU09DMTUoVVZE LCAwLCBtbVVWRF9SQkNfUkJfUlBUUl9BRERSLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodXBwZXJfMzJfYml0cyhyaW5n LT5ncHVfYWRkcikgPj4gMikpOwo+ICsKPiArICAgICAgIC8qIHByb2dyYW1tIHRoZSBSQl9CQVNF IGZvciByaW5nIGJ1ZmZlciAqLwo+ICsgICAgICAgV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRf TE1JX1JCQ19SQl82NEJJVF9CQVJfTE9XLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb3dlcl8zMl9iaXRzKHJpbmctPmdw dV9hZGRyKSk7Cj4gKyAgICAgICBXUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9MTUlfUkJDX1JC XzY0QklUX0JBUl9ISUdILAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1cHBlcl8zMl9iaXRzKHJpbmctPmdwdV9hZGRyKSk7 Cj4gKwo+ICsgICAgICAgLyogSW5pdGlhbGl6ZSB0aGUgcmluZyBidWZmZXIncyByZWFkIGFuZCB3 cml0ZSBwb2ludGVycyAqLwo+ICsgICAgICAgV1JFRzMyX1NPQzE1KFVWRCwgMCwgbW1VVkRfUkJD X1JCX1JQVFIsIDApOwo+ICsKPiArICAgICAgIHJpbmctPndwdHIgPSBSUkVHMzJfU09DMTUoVVZE LCAwLCBtbVVWRF9SQkNfUkJfUlBUUik7Cj4gKyAgICAgICBXUkVHMzJfU09DMTUoVVZELCAwLCBt bVVWRF9SQkNfUkJfV1BUUiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKSk7Cj4g Kwo+ICsgICAgICAgV1JFRzMyX1AoU09DMTVfUkVHX09GRlNFVChVVkQsIDAsIG1tVVZEX1JCQ19S Ql9DTlRMKSwgMCwKPiArICAgICAgICAgICAgICAgICAgICAgICB+VVZEX1JCQ19SQl9DTlRMX19S Ql9OT19GRVRDSF9NQVNLKTsKPiArCj4gKyAgICAgICAvKiBpbml0aWFsaXplIHdwdHIgKi8KPiAr ICAgICAgIHJpbmctPndwdHIgPSBSUkVHMzJfU09DMTUoVVZELCAwLCBtbVVWRF9KUkJDX1JCX1dQ VFIpOwo+ICsKPiArICAgICAgIC8qIGNvcHkgcGF0Y2ggY29tbWFuZHMgdG8gdGhlIGpwZWcgcmlu ZyAqLwo+ICsgICAgICAgdmNuX3YxXzBfanBlZ19yaW5nX3NldF9wYXRjaF9yaW5nKHJpbmcsCj4g KyAgICAgICAgICAgICAgIChyaW5nLT53cHRyICsgcmluZy0+bWF4X2R3ICogYW1kZ3B1X3NjaGVk X2h3X3N1Ym1pc3Npb24pKTsKPiArCj4gKyAgICAgICByZXR1cm4gMDsKPiArfQo+ICsKPiArc3Rh dGljIGludCB2Y25fdjFfMF9zdGFydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiArewo+ ICsgICAgICAgaW50IHI7Cj4gKwo+ICsgICAgICAgaWYgKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BH X1NVUFBPUlRfRFBHKQo+ICsgICAgICAgICAgICAgICByID0gdmNuX3YxXzBfc3RhcnRfZHBnX21v ZGUoYWRldik7Cj4gKyAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgIHIgPSB2Y25fdjFfMF9z dGFydF9wZ19tb2RlKGFkZXYpOwo+ICsgICAgICAgcmV0dXJuIHI7Cj4gK30KPiArCj4gIC8qKgo+ ICAgKiB2Y25fdjFfMF9zdG9wIC0gc3RvcCBWQ04gYmxvY2sKPiAgICoKPiBAQCAtODA2LDcgKzEw ODYsNyBAQCBzdGF0aWMgaW50IHZjbl92MV8wX3N0YXJ0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQo+ICAgKgo+ICAgKiBzdG9wIHRoZSBWQ04gYmxvY2sKPiAgICovCj4gLXN0YXRpYyBpbnQg dmNuX3YxXzBfc3RvcChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiArc3RhdGljIGludCB2 Y25fdjFfMF9zdG9wX3BnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gIHsKPiAg ICAgICAgIC8qIGZvcmNlIFJCQyBpbnRvIGlkbGUgc3RhdGUgKi8KPiAgICAgICAgIFdSRUczMl9T T0MxNShVVkQsIDAsIG1tVVZEX1JCQ19SQl9DTlRMLCAweDExMDEwMTAxKTsKPiBAQCAtODM2LDYg KzExMTYsMzMgQEAgc3RhdGljIGludCB2Y25fdjFfMF9zdG9wKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQo+ICAgICAgICAgcmV0dXJuIDA7Cj4gIH0KPgo+ICtzdGF0aWMgaW50IHZjbl92MV8w X3N0b3BfZHBnX21vZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gK3sKPiArICAgICAg IGludCByZXRfY29kZTsKPiArCj4gKyAgICAgICAvKiBXYWl0IGZvciBwb3dlciBzdGF0dXMgdG8g YmUgMSAqLwo+ICsgICAgICAgU09DMTVfV0FJVF9PTl9SUkVHKFVWRCwgMCwgbW1VVkRfUE9XRVJf U1RBVFVTLCAweDEsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgVVZEX1BPV0VSX1NUQVRVU19f VVZEX1BPV0VSX1NUQVRVU19NQVNLLCByZXRfY29kZSk7Cj4gKwo+ICsgICAgICAgLyogZGlzYWJs ZSBkeW5hbWljIHBvd2VyIGdhdGluZyBtb2RlICovCj4gKyAgICAgICBXUkVHMzJfUChTT0MxNV9S RUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfUE9XRVJfU1RBVFVTKSwgMCwKPiArICAgICAgICAgICAg ICAgICAgICAgICB+VVZEX1BPV0VSX1NUQVRVU19fVVZEX1BHX01PREVfTUFTSyk7Cj4gKwo+ICsg ICAgICAgcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgdmNuX3YxXzBfc3RvcChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiArewo+ICsgICAgICAgaW50IHI7Cj4gKwo+ICsgICAg ICAgaWYgKGFkZXYtPnBnX2ZsYWdzICYgQU1EX1BHX1NVUFBPUlRfRFBHKQo+ICsgICAgICAgICAg ICAgICByID0gdmNuX3YxXzBfc3RvcF9kcGdfbW9kZShhZGV2KTsKPiArICAgICAgIGVsc2UKPiAr ICAgICAgICAgICAgICAgciA9IHZjbl92MV8wX3N0b3BfcGdfbW9kZShhZGV2KTsKPiArCj4gKyAg ICAgICByZXR1cm4gcjsKPiArfQo+ICsKPiAgc3RhdGljIGJvb2wgdmNuX3YxXzBfaXNfaWRsZSh2 b2lkICpoYW5kbGUpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g KHN0cnVjdCBhbWRncHVfZGV2aWNlICopaGFuZGxlOwo+IC0tCj4gMi43LjQKPgo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gYW1kLWdmeCBtYWlsaW5n IGxpc3QKPiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZngK