From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: [PATCH 04/17] drm/amdgpu: remove duplicate definition of cik_mqd Date: Mon, 17 Apr 2017 18:48:00 -0400 Message-ID: <20170417224813.3173-5-andresx7@gmail.com> References: <20170417224813.3173-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170417224813.3173-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@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 Cc: andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org VGhlIGdmeHY3IGNvbnRhaW5zIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHZlcnNpb24gb2YgY2lrX21x ZCBjYWxsZWQKYm9uYWlyZV9tcWQuIFRoaXMgY2FuIGludHJvZHVjZSBzdWJ0bGUgYnVncyBpZiBm aXhlcyBhcmUgbm90IGFwcGxpZWQgaW4KYm90aCBwbGFjZXMuCgpSZXZpZXdlZC1ieTogRWR3YXJk IE8nQ2FsbGFnaGFuIDxmdW5mdW5jdG9yQGZvbGtsb3JlMTk4NC5uZXQ+CkFja2VkLWJ5OiBDaHJp c3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CkFja2VkLWJ5OiBGZWxpeCBL dWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5kcmVzIFJv ZHJpZ3VleiA8YW5kcmVzeDdAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dmeF92N18wLmMgfCAxMzUgKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDgxIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCmluZGV4IDRlNmE2MGMuLmM0MDhhZjUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18wLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwpAQCAtMTAsNDAgKzEwLDQxIEBACiAgKgog ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug c2hhbGwgYmUgaW5jbHVkZWQgaW4KICAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlIFNvZnR3YXJlLgogICoKICAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMg SVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAgKiBJTVBMSUVE LCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5U QUJJTElUWSwKICAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZS SU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAogICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykg T1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCiAgKiBPVEhF UiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwKICAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgogICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRX QVJFLgogICoKICAqLwogI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CiAjaW5jbHVkZSAiZHJt UC5oIgogI2luY2x1ZGUgImFtZGdwdS5oIgogI2luY2x1ZGUgImFtZGdwdV9paC5oIgogI2luY2x1 ZGUgImFtZGdwdV9nZnguaCIKICNpbmNsdWRlICJjaWtkLmgiCiAjaW5jbHVkZSAiY2lrLmgiCisj aW5jbHVkZSAiY2lrX3N0cnVjdHMuaCIKICNpbmNsdWRlICJhdG9tLmgiCiAjaW5jbHVkZSAiYW1k Z3B1X3Vjb2RlLmgiCiAjaW5jbHVkZSAiY2xlYXJzdGF0ZV9jaS5oIgogCiAjaW5jbHVkZSAiZGNl L2RjZV84XzBfZC5oIgogI2luY2x1ZGUgImRjZS9kY2VfOF8wX3NoX21hc2suaCIKIAogI2luY2x1 ZGUgImJpZi9iaWZfNF8xX2QuaCIKICNpbmNsdWRlICJiaWYvYmlmXzRfMV9zaF9tYXNrLmgiCiAK ICNpbmNsdWRlICJnY2EvZ2Z4XzdfMF9kLmgiCiAjaW5jbHVkZSAiZ2NhL2dmeF83XzJfZW51bS5o IgogI2luY2x1ZGUgImdjYS9nZnhfN18yX3NoX21hc2suaCIKIAogI2luY2x1ZGUgImdtYy9nbWNf N18wX2QuaCIKICNpbmNsdWRlICJnbWMvZ21jXzdfMF9zaF9tYXNrLmgiCiAKICNpbmNsdWRlICJv c3Mvb3NzXzJfMF9kLmgiCiAjaW5jbHVkZSAib3NzL29zc18yXzBfc2hfbWFzay5oIgogCkBAIC0y ODk5LDY4ICsyOTAwLDQwIEBAIHN0cnVjdCBocWRfcmVnaXN0ZXJzCiAJdTMyIGNwX2hxZF9wcV9j b250cm9sOwogCXUzMiBjcF9ocWRfaWJfYmFzZV9hZGRyOwogCXUzMiBjcF9ocWRfaWJfYmFzZV9h ZGRyX2hpOwogCXUzMiBjcF9ocWRfaWJfcnB0cjsKIAl1MzIgY3BfaHFkX2liX2NvbnRyb2w7CiAJ dTMyIGNwX2hxZF9pcV90aW1lcjsKIAl1MzIgY3BfaHFkX2lxX3JwdHI7CiAJdTMyIGNwX2hxZF9k ZXF1ZXVlX3JlcXVlc3Q7CiAJdTMyIGNwX2hxZF9kbWFfb2ZmbG9hZDsKIAl1MzIgY3BfaHFkX3Nl bWFfY21kOwogCXUzMiBjcF9ocWRfbXNnX3R5cGU7CiAJdTMyIGNwX2hxZF9hdG9taWMwX3ByZW9w X2xvOwogCXUzMiBjcF9ocWRfYXRvbWljMF9wcmVvcF9oaTsKIAl1MzIgY3BfaHFkX2F0b21pYzFf cHJlb3BfbG87CiAJdTMyIGNwX2hxZF9hdG9taWMxX3ByZW9wX2hpOwogCXUzMiBjcF9ocWRfaHFf c2NoZWR1bGVyMDsKIAl1MzIgY3BfaHFkX2hxX3NjaGVkdWxlcjE7CiAJdTMyIGNwX21xZF9jb250 cm9sOwogfTsKIAotc3RydWN0IGJvbmFpcmVfbXFkCi17Ci0JdTMyIGhlYWRlcjsKLQl1MzIgZGlz cGF0Y2hfaW5pdGlhdG9yOwotCXUzMiBkaW1lbnNpb25zWzNdOwotCXUzMiBzdGFydF9pZHhbM107 Ci0JdTMyIG51bV90aHJlYWRzWzNdOwotCXUzMiBwaXBlbGluZV9zdGF0X2VuYWJsZTsKLQl1MzIg cGVyZl9jb3VudGVyX2VuYWJsZTsKLQl1MzIgcGdtWzJdOwotCXUzMiB0YmFbMl07Ci0JdTMyIHRt YVsyXTsKLQl1MzIgcGdtX3JzcmNbMl07Ci0JdTMyIHZtaWQ7Ci0JdTMyIHJlc291cmNlX2xpbWl0 czsKLQl1MzIgc3RhdGljX3RocmVhZF9tZ210MDFbMl07Ci0JdTMyIHRtcF9yaW5nX3NpemU7Ci0J dTMyIHN0YXRpY190aHJlYWRfbWdtdDIzWzJdOwotCXUzMiByZXN0YXJ0WzNdOwotCXUzMiB0aHJl YWRfdHJhY2VfZW5hYmxlOwotCXUzMiByZXNlcnZlZDE7Ci0JdTMyIHVzZXJfZGF0YVsxNl07Ci0J dTMyIHZndGNzX2ludm9rZV9jb3VudFsyXTsKLQlzdHJ1Y3QgaHFkX3JlZ2lzdGVycyBxdWV1ZV9z dGF0ZTsKLQl1MzIgZGVxdWV1ZV9jbnRyOwotCXUzMiBpbnRlcnJ1cHRfcXVldWVbNjRdOwotfTsK LQogc3RhdGljIHZvaWQgZ2Z4X3Y3XzBfY29tcHV0ZV9waXBlX2luaXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsIGludCBtZSwgaW50IHBpcGUpCiB7CiAJdTY0IGVvcF9ncHVfYWRkcjsKIAl1 MzIgdG1wOwogCXNpemVfdCBlb3Bfb2Zmc2V0ID0gbWUgKiBwaXBlICogR0ZYN19NRUNfSFBEX1NJ WkUgKiAyOwogCiAJbXV0ZXhfbG9jaygmYWRldi0+c3JibV9tdXRleCk7CiAJZW9wX2dwdV9hZGRy ID0gYWRldi0+Z2Z4Lm1lYy5ocGRfZW9wX2dwdV9hZGRyICsgZW9wX29mZnNldDsKIAogCWNpa19z cmJtX3NlbGVjdChhZGV2LCBtZSwgcGlwZSwgMCwgMCk7CiAKIAkvKiB3cml0ZSB0aGUgRU9QIGFk ZHIgKi8KIAlXUkVHMzIobW1DUF9IUERfRU9QX0JBU0VfQUREUiwgZW9wX2dwdV9hZGRyID4+IDgp OwogCVdSRUczMihtbUNQX0hQRF9FT1BfQkFTRV9BRERSX0hJLCB1cHBlcl8zMl9iaXRzKGVvcF9n cHVfYWRkcikgPj4gOCk7CiAKIAkvKiBzZXQgdGhlIFZNSUQgYXNzaWduZWQgKi8KIAlXUkVHMzIo bW1DUF9IUERfRU9QX1ZNSUQsIDApOwogCiAJLyogc2V0IHRoZSBFT1Agc2l6ZSwgcmVnaXN0ZXIg dmFsdWUgaXMgMl4oRU9QX1NJWkUrMSkgZHdvcmRzICovCiAJdG1wID0gUlJFRzMyKG1tQ1BfSFBE X0VPUF9DT05UUk9MKTsKQEAgLTI5ODAsMTgyICsyOTUzLDE4MiBAQCBzdGF0aWMgaW50IGdmeF92 N18wX21xZF9kZWFjdGl2YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWlmIChSUkVH MzIobW1DUF9IUURfQUNUSVZFKSAmIDEpIHsKIAkJV1JFRzMyKG1tQ1BfSFFEX0RFUVVFVUVfUkVR VUVTVCwgMSk7CiAJCWZvciAoaSA9IDA7IGkgPCBhZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewog CQkJaWYgKCEoUlJFRzMyKG1tQ1BfSFFEX0FDVElWRSkgJiAxKSkKIAkJCQlicmVhazsKIAkJCXVk ZWxheSgxKTsKIAkJfQogCiAJCWlmIChpID09IGFkZXYtPnVzZWNfdGltZW91dCkKIAkJCXJldHVy biAtRVRJTUVET1VUOwogCiAJCVdSRUczMihtbUNQX0hRRF9ERVFVRVVFX1JFUVVFU1QsIDApOwog CQlXUkVHMzIobW1DUF9IUURfUFFfUlBUUiwgMCk7CiAJCVdSRUczMihtbUNQX0hRRF9QUV9XUFRS LCAwKTsKIAl9CiAKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgZ2Z4X3Y3XzBfbXFkX2lu aXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCi0JCQkgICAgIHN0cnVjdCBib25haXJlX21x ZCAqbXFkLAorCQkJICAgICBzdHJ1Y3QgY2lrX21xZCAqbXFkLAogCQkJICAgICB1aW50NjRfdCBt cWRfZ3B1X2FkZHIsCiAJCQkgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKIHsKIAl1NjQg aHFkX2dwdV9hZGRyOwogCXU2NCB3Yl9ncHVfYWRkcjsKIAogCS8qIGluaXQgdGhlIG1xZCBzdHJ1 Y3QgKi8KLQltZW1zZXQobXFkLCAwLCBzaXplb2Yoc3RydWN0IGJvbmFpcmVfbXFkKSk7CisJbWVt c2V0KG1xZCwgMCwgc2l6ZW9mKHN0cnVjdCBjaWtfbXFkKSk7CiAKIAltcWQtPmhlYWRlciA9IDB4 QzAzMTA4MDA7Ci0JbXFkLT5zdGF0aWNfdGhyZWFkX21nbXQwMVswXSA9IDB4ZmZmZmZmZmY7Ci0J bXFkLT5zdGF0aWNfdGhyZWFkX21nbXQwMVsxXSA9IDB4ZmZmZmZmZmY7Ci0JbXFkLT5zdGF0aWNf dGhyZWFkX21nbXQyM1swXSA9IDB4ZmZmZmZmZmY7Ci0JbXFkLT5zdGF0aWNfdGhyZWFkX21nbXQy M1sxXSA9IDB4ZmZmZmZmZmY7CisJbXFkLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTAg PSAweGZmZmZmZmZmOworCW1xZC0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2UxID0gMHhm ZmZmZmZmZjsKKwltcWQtPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMiA9IDB4ZmZmZmZm ZmY7CisJbXFkLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTMgPSAweGZmZmZmZmZmOwog CiAJLyogZW5hYmxlIGRvb3JiZWxsPyAqLwotCW1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX3BxX2Rv b3JiZWxsX2NvbnRyb2wgPQorCW1xZC0+Y3BfaHFkX3BxX2Rvb3JiZWxsX2NvbnRyb2wgPQogCQlS UkVHMzIobW1DUF9IUURfUFFfRE9PUkJFTExfQ09OVFJPTCk7CiAJaWYgKHJpbmctPnVzZV9kb29y YmVsbCkKLQkJbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfZG9vcmJlbGxfY29udHJvbCB8PSBD UF9IUURfUFFfRE9PUkJFTExfQ09OVFJPTF9fRE9PUkJFTExfRU5fTUFTSzsKKwkJbXFkLT5jcF9o cWRfcHFfZG9vcmJlbGxfY29udHJvbCB8PSBDUF9IUURfUFFfRE9PUkJFTExfQ09OVFJPTF9fRE9P UkJFTExfRU5fTUFTSzsKIAllbHNlCi0JCW1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX3BxX2Rvb3Ji ZWxsX2NvbnRyb2wgJj0gfkNQX0hRRF9QUV9ET09SQkVMTF9DT05UUk9MX19ET09SQkVMTF9FTl9N QVNLOworCQltcWQtPmNwX2hxZF9wcV9kb29yYmVsbF9jb250cm9sICY9IH5DUF9IUURfUFFfRE9P UkJFTExfQ09OVFJPTF9fRE9PUkJFTExfRU5fTUFTSzsKIAogCS8qIHNldCB0aGUgcG9pbnRlciB0 byB0aGUgTVFEICovCi0JbXFkLT5xdWV1ZV9zdGF0ZS5jcF9tcWRfYmFzZV9hZGRyID0gbXFkX2dw dV9hZGRyICYgMHhmZmZmZmZmYzsKLQltcWQtPnF1ZXVlX3N0YXRlLmNwX21xZF9iYXNlX2FkZHJf aGkgPSB1cHBlcl8zMl9iaXRzKG1xZF9ncHVfYWRkcik7CisJbXFkLT5jcF9tcWRfYmFzZV9hZGRy X2xvID0gbXFkX2dwdV9hZGRyICYgMHhmZmZmZmZmYzsKKwltcWQtPmNwX21xZF9iYXNlX2FkZHJf aGkgPSB1cHBlcl8zMl9iaXRzKG1xZF9ncHVfYWRkcik7CiAKIAkvKiBzZXQgTVFEIHZtaWQgdG8g MCAqLwotCW1xZC0+cXVldWVfc3RhdGUuY3BfbXFkX2NvbnRyb2wgPSBSUkVHMzIobW1DUF9NUURf Q09OVFJPTCk7Ci0JbXFkLT5xdWV1ZV9zdGF0ZS5jcF9tcWRfY29udHJvbCAmPSB+Q1BfTVFEX0NP TlRST0xfX1ZNSURfTUFTSzsKKwltcWQtPmNwX21xZF9jb250cm9sID0gUlJFRzMyKG1tQ1BfTVFE X0NPTlRST0wpOworCW1xZC0+Y3BfbXFkX2NvbnRyb2wgJj0gfkNQX01RRF9DT05UUk9MX19WTUlE X01BU0s7CiAKIAkvKiBzZXQgdGhlIHBvaW50ZXIgdG8gdGhlIEhRRCwgdGhpcyBpcyBzaW1pbGFy IENQX1JCMF9CQVNFL19ISSAqLwogCWhxZF9ncHVfYWRkciA9IHJpbmctPmdwdV9hZGRyID4+IDg7 Ci0JbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfYmFzZSA9IGhxZF9ncHVfYWRkcjsKLQltcWQt PnF1ZXVlX3N0YXRlLmNwX2hxZF9wcV9iYXNlX2hpID0gdXBwZXJfMzJfYml0cyhocWRfZ3B1X2Fk ZHIpOworCW1xZC0+Y3BfaHFkX3BxX2Jhc2VfbG8gPSBocWRfZ3B1X2FkZHI7CisJbXFkLT5jcF9o cWRfcHFfYmFzZV9oaSA9IHVwcGVyXzMyX2JpdHMoaHFkX2dwdV9hZGRyKTsKIAogCS8qIHNldCB1 cCB0aGUgSFFELCB0aGlzIGlzIHNpbWlsYXIgdG8gQ1BfUkIwX0NOVEwgKi8KLQltcWQtPnF1ZXVl X3N0YXRlLmNwX2hxZF9wcV9jb250cm9sID0gUlJFRzMyKG1tQ1BfSFFEX1BRX0NPTlRST0wpOwot CW1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX3BxX2NvbnRyb2wgJj0KKwltcWQtPmNwX2hxZF9wcV9j b250cm9sID0gUlJFRzMyKG1tQ1BfSFFEX1BRX0NPTlRST0wpOworCW1xZC0+Y3BfaHFkX3BxX2Nv bnRyb2wgJj0KIAkJfihDUF9IUURfUFFfQ09OVFJPTF9fUVVFVUVfU0laRV9NQVNLIHwKIAkJCQlD UF9IUURfUFFfQ09OVFJPTF9fUlBUUl9CTE9DS19TSVpFX01BU0spOwogCi0JbXFkLT5xdWV1ZV9z dGF0ZS5jcF9ocWRfcHFfY29udHJvbCB8PQorCW1xZC0+Y3BfaHFkX3BxX2NvbnRyb2wgfD0KIAkJ b3JkZXJfYmFzZV8yKHJpbmctPnJpbmdfc2l6ZSAvIDgpOwotCW1xZC0+cXVldWVfc3RhdGUuY3Bf aHFkX3BxX2NvbnRyb2wgfD0KKwltcWQtPmNwX2hxZF9wcV9jb250cm9sIHw9CiAJCShvcmRlcl9i YXNlXzIoQU1ER1BVX0dQVV9QQUdFX1NJWkUvOCkgPDwgOCk7CiAjaWZkZWYgX19CSUdfRU5ESUFO Ci0JbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfY29udHJvbCB8PQorCW1xZC0+Y3BfaHFkX3Bx X2NvbnRyb2wgfD0KIAkJMiA8PCBDUF9IUURfUFFfQ09OVFJPTF9fRU5ESUFOX1NXQVBfX1NISUZU OwogI2VuZGlmCi0JbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfY29udHJvbCAmPQorCW1xZC0+ Y3BfaHFkX3BxX2NvbnRyb2wgJj0KIAkJfihDUF9IUURfUFFfQ09OVFJPTF9fVU5PUkRfRElTUEFU Q0hfTUFTSyB8CiAJCQkJQ1BfSFFEX1BRX0NPTlRST0xfX1JPUV9QUV9JQl9GTElQX01BU0sgfAog CQkJCUNQX0hRRF9QUV9DT05UUk9MX19QUV9WT0xBVElMRV9NQVNLKTsKLQltcWQtPnF1ZXVlX3N0 YXRlLmNwX2hxZF9wcV9jb250cm9sIHw9CisJbXFkLT5jcF9ocWRfcHFfY29udHJvbCB8PQogCQlD UF9IUURfUFFfQ09OVFJPTF9fUFJJVl9TVEFURV9NQVNLIHwKIAkJQ1BfSFFEX1BRX0NPTlRST0xf X0tNRF9RVUVVRV9NQVNLOyAvKiBhc3N1bWluZyBrZXJuZWwgcXVldWUgY29udHJvbCAqLwogCiAJ Lyogb25seSB1c2VkIGlmIENQX1BRX1dQVFJfUE9MTF9DTlRMLkNQX1BRX1dQVFJfUE9MTF9DTlRM X19FTl9NQVNLPTEgKi8KIAl3Yl9ncHVfYWRkciA9IGFkZXYtPndiLmdwdV9hZGRyICsgKHJpbmct PndwdHJfb2ZmcyAqIDQpOwotCW1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX3BxX3dwdHJfcG9sbF9h ZGRyID0gd2JfZ3B1X2FkZHIgJiAweGZmZmZmZmZjOwotCW1xZC0+cXVldWVfc3RhdGUuY3BfaHFk X3BxX3dwdHJfcG9sbF9hZGRyX2hpID0gdXBwZXJfMzJfYml0cyh3Yl9ncHVfYWRkcikgJiAweGZm ZmY7CisJbXFkLT5jcF9ocWRfcHFfd3B0cl9wb2xsX2FkZHJfbG8gPSB3Yl9ncHVfYWRkciAmIDB4 ZmZmZmZmZmM7CisJbXFkLT5jcF9ocWRfcHFfd3B0cl9wb2xsX2FkZHJfaGkgPSB1cHBlcl8zMl9i aXRzKHdiX2dwdV9hZGRyKSAmIDB4ZmZmZjsKIAogCS8qIHNldCB0aGUgd2IgYWRkcmVzcyB3ZXRo ZXIgaXQncyBlbmFibGVkIG9yIG5vdCAqLwogCXdiX2dwdV9hZGRyID0gYWRldi0+d2IuZ3B1X2Fk ZHIgKyAocmluZy0+cnB0cl9vZmZzICogNCk7Ci0JbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFf cnB0cl9yZXBvcnRfYWRkciA9IHdiX2dwdV9hZGRyICYgMHhmZmZmZmZmYzsKLQltcWQtPnF1ZXVl X3N0YXRlLmNwX2hxZF9wcV9ycHRyX3JlcG9ydF9hZGRyX2hpID0KKwltcWQtPmNwX2hxZF9wcV9y cHRyX3JlcG9ydF9hZGRyX2xvID0gd2JfZ3B1X2FkZHIgJiAweGZmZmZmZmZjOworCW1xZC0+Y3Bf aHFkX3BxX3JwdHJfcmVwb3J0X2FkZHJfaGkgPQogCQl1cHBlcl8zMl9iaXRzKHdiX2dwdV9hZGRy KSAmIDB4ZmZmZjsKIAogCS8qIGVuYWJsZSB0aGUgZG9vcmJlbGwgaWYgcmVxdWVzdGVkICovCiAJ aWYgKHJpbmctPnVzZV9kb29yYmVsbCkgewotCQltcWQtPnF1ZXVlX3N0YXRlLmNwX2hxZF9wcV9k b29yYmVsbF9jb250cm9sID0KKwkJbXFkLT5jcF9ocWRfcHFfZG9vcmJlbGxfY29udHJvbCA9CiAJ CQlSUkVHMzIobW1DUF9IUURfUFFfRE9PUkJFTExfQ09OVFJPTCk7Ci0JCW1xZC0+cXVldWVfc3Rh dGUuY3BfaHFkX3BxX2Rvb3JiZWxsX2NvbnRyb2wgJj0KKwkJbXFkLT5jcF9ocWRfcHFfZG9vcmJl bGxfY29udHJvbCAmPQogCQkJfkNQX0hRRF9QUV9ET09SQkVMTF9DT05UUk9MX19ET09SQkVMTF9P RkZTRVRfTUFTSzsKLQkJbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfZG9vcmJlbGxfY29udHJv bCB8PQorCQltcWQtPmNwX2hxZF9wcV9kb29yYmVsbF9jb250cm9sIHw9CiAJCQkocmluZy0+ZG9v cmJlbGxfaW5kZXggPDwKIAkJCSBDUF9IUURfUFFfRE9PUkJFTExfQ09OVFJPTF9fRE9PUkJFTExf T0ZGU0VUX19TSElGVCk7Ci0JCW1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX3BxX2Rvb3JiZWxsX2Nv bnRyb2wgfD0KKwkJbXFkLT5jcF9ocWRfcHFfZG9vcmJlbGxfY29udHJvbCB8PQogCQkJQ1BfSFFE X1BRX0RPT1JCRUxMX0NPTlRST0xfX0RPT1JCRUxMX0VOX01BU0s7Ci0JCW1xZC0+cXVldWVfc3Rh dGUuY3BfaHFkX3BxX2Rvb3JiZWxsX2NvbnRyb2wgJj0KKwkJbXFkLT5jcF9ocWRfcHFfZG9vcmJl bGxfY29udHJvbCAmPQogCQkJfihDUF9IUURfUFFfRE9PUkJFTExfQ09OVFJPTF9fRE9PUkJFTExf U09VUkNFX01BU0sgfAogCQkJCQlDUF9IUURfUFFfRE9PUkJFTExfQ09OVFJPTF9fRE9PUkJFTExf SElUX01BU0spOwogCiAJfSBlbHNlIHsKLQkJbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfZG9v cmJlbGxfY29udHJvbCA9IDA7CisJCW1xZC0+Y3BfaHFkX3BxX2Rvb3JiZWxsX2NvbnRyb2wgPSAw OwogCX0KIAogCS8qIHJlYWQgYW5kIHdyaXRlIHBvaW50ZXJzLCBzaW1pbGFyIHRvIENQX1JCMF9X UFRSL19SUFRSICovCiAJcmluZy0+d3B0ciA9IDA7Ci0JbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRf cHFfd3B0ciA9IGxvd2VyXzMyX2JpdHMocmluZy0+d3B0cik7Ci0JbXFkLT5xdWV1ZV9zdGF0ZS5j cF9ocWRfcHFfcnB0ciA9IFJSRUczMihtbUNQX0hRRF9QUV9SUFRSKTsKKwltcWQtPmNwX2hxZF9w cV93cHRyID0gbG93ZXJfMzJfYml0cyhyaW5nLT53cHRyKTsKKwltcWQtPmNwX2hxZF9wcV9ycHRy ID0gUlJFRzMyKG1tQ1BfSFFEX1BRX1JQVFIpOwogCiAJLyogc2V0IHRoZSB2bWlkIGZvciB0aGUg cXVldWUgKi8KLQltcWQtPnF1ZXVlX3N0YXRlLmNwX2hxZF92bWlkID0gMDsKKwltcWQtPmNwX2hx ZF92bWlkID0gMDsKIAogCS8qIGFjdGl2YXRlIHRoZSBxdWV1ZSAqLwotCW1xZC0+cXVldWVfc3Rh dGUuY3BfaHFkX2FjdGl2ZSA9IDE7CisJbXFkLT5jcF9ocWRfYWN0aXZlID0gMTsKIH0KIAogc3Rh dGljIGludCBnZnhfdjdfMF9tcWRfY29tbWl0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAot CQkJICAgICAgIHN0cnVjdCBib25haXJlX21xZCAqbXFkKQorCQkJICAgICAgIHN0cnVjdCBjaWtf bXFkICptcWQpCiB7CiAJdTMyIHRtcDsKIAogCS8qIGRpc2FibGUgd3B0ciBwb2xsaW5nICovCiAJ dG1wID0gUlJFRzMyKG1tQ1BfUFFfV1BUUl9QT0xMX0NOVEwpOwogCXRtcCA9IFJFR19TRVRfRklF TEQodG1wLCBDUF9QUV9XUFRSX1BPTExfQ05UTCwgRU4sIDApOwogCVdSRUczMihtbUNQX1BRX1dQ VFJfUE9MTF9DTlRMLCB0bXApOwogCiAJLyogcHJvZ3JhbSBNUUQgZmllbGQgdG8gSFcgKi8KLQlX UkVHMzIobW1DUF9NUURfQkFTRV9BRERSLCBtcWQtPnF1ZXVlX3N0YXRlLmNwX21xZF9iYXNlX2Fk ZHIpOwotCVdSRUczMihtbUNQX01RRF9CQVNFX0FERFJfSEksIG1xZC0+cXVldWVfc3RhdGUuY3Bf bXFkX2Jhc2VfYWRkcl9oaSk7Ci0JV1JFRzMyKG1tQ1BfTVFEX0NPTlRST0wsIG1xZC0+cXVldWVf c3RhdGUuY3BfbXFkX2NvbnRyb2wpOwotCVdSRUczMihtbUNQX0hRRF9QUV9CQVNFLCBtcWQtPnF1 ZXVlX3N0YXRlLmNwX2hxZF9wcV9iYXNlKTsKLQlXUkVHMzIobW1DUF9IUURfUFFfQkFTRV9ISSwg bXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfYmFzZV9oaSk7Ci0JV1JFRzMyKG1tQ1BfSFFEX1BR X0NPTlRST0wsIG1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX3BxX2NvbnRyb2wpOwotCVdSRUczMiht bUNQX0hRRF9QUV9XUFRSX1BPTExfQUREUiwgbXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfd3B0 cl9wb2xsX2FkZHIpOwotCVdSRUczMihtbUNQX0hRRF9QUV9XUFRSX1BPTExfQUREUl9ISSwgbXFk LT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfd3B0cl9wb2xsX2FkZHJfaGkpOwotCVdSRUczMihtbUNQ X0hRRF9QUV9SUFRSX1JFUE9SVF9BRERSLCBtcWQtPnF1ZXVlX3N0YXRlLmNwX2hxZF9wcV9ycHRy X3JlcG9ydF9hZGRyKTsKLQlXUkVHMzIobW1DUF9IUURfUFFfUlBUUl9SRVBPUlRfQUREUl9ISSwg bXFkLT5xdWV1ZV9zdGF0ZS5jcF9ocWRfcHFfcnB0cl9yZXBvcnRfYWRkcl9oaSk7Ci0JV1JFRzMy KG1tQ1BfSFFEX1BRX0RPT1JCRUxMX0NPTlRST0wsIG1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX3Bx X2Rvb3JiZWxsX2NvbnRyb2wpOwotCVdSRUczMihtbUNQX0hRRF9QUV9XUFRSLCBtcWQtPnF1ZXVl X3N0YXRlLmNwX2hxZF9wcV93cHRyKTsKLQlXUkVHMzIobW1DUF9IUURfVk1JRCwgbXFkLT5xdWV1 ZV9zdGF0ZS5jcF9ocWRfdm1pZCk7CisJV1JFRzMyKG1tQ1BfTVFEX0JBU0VfQUREUiwgbXFkLT5j cF9tcWRfYmFzZV9hZGRyX2xvKTsKKwlXUkVHMzIobW1DUF9NUURfQkFTRV9BRERSX0hJLCBtcWQt PmNwX21xZF9iYXNlX2FkZHJfaGkpOworCVdSRUczMihtbUNQX01RRF9DT05UUk9MLCBtcWQtPmNw X21xZF9jb250cm9sKTsKKwlXUkVHMzIobW1DUF9IUURfUFFfQkFTRSwgbXFkLT5jcF9ocWRfcHFf YmFzZV9sbyk7CisJV1JFRzMyKG1tQ1BfSFFEX1BRX0JBU0VfSEksIG1xZC0+Y3BfaHFkX3BxX2Jh c2VfaGkpOworCVdSRUczMihtbUNQX0hRRF9QUV9DT05UUk9MLCBtcWQtPmNwX2hxZF9wcV9jb250 cm9sKTsKKwlXUkVHMzIobW1DUF9IUURfUFFfV1BUUl9QT0xMX0FERFIsIG1xZC0+Y3BfaHFkX3Bx X3dwdHJfcG9sbF9hZGRyX2xvKTsKKwlXUkVHMzIobW1DUF9IUURfUFFfV1BUUl9QT0xMX0FERFJf SEksIG1xZC0+Y3BfaHFkX3BxX3dwdHJfcG9sbF9hZGRyX2hpKTsKKwlXUkVHMzIobW1DUF9IUURf UFFfUlBUUl9SRVBPUlRfQUREUiwgbXFkLT5jcF9ocWRfcHFfcnB0cl9yZXBvcnRfYWRkcl9sbyk7 CisJV1JFRzMyKG1tQ1BfSFFEX1BRX1JQVFJfUkVQT1JUX0FERFJfSEksIG1xZC0+Y3BfaHFkX3Bx X3JwdHJfcmVwb3J0X2FkZHJfaGkpOworCVdSRUczMihtbUNQX0hRRF9QUV9ET09SQkVMTF9DT05U Uk9MLCBtcWQtPmNwX2hxZF9wcV9kb29yYmVsbF9jb250cm9sKTsKKwlXUkVHMzIobW1DUF9IUURf UFFfV1BUUiwgbXFkLT5jcF9ocWRfcHFfd3B0cik7CisJV1JFRzMyKG1tQ1BfSFFEX1ZNSUQsIG1x ZC0+Y3BfaHFkX3ZtaWQpOwogCiAJLyogYWN0aXZhdGUgdGhlIEhRRCAqLwotCVdSRUczMihtbUNQ X0hRRF9BQ1RJVkUsIG1xZC0+cXVldWVfc3RhdGUuY3BfaHFkX2FjdGl2ZSk7CisJV1JFRzMyKG1t Q1BfSFFEX0FDVElWRSwgbXFkLT5jcF9ocWRfYWN0aXZlKTsKIAogCXJldHVybiAwOwogfQogCiBz dGF0aWMgaW50IGdmeF92N18wX2NvbXB1dGVfcXVldWVfaW5pdChzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldiwgaW50IHJpbmdfaWQpCiB7CiAJaW50IHI7CiAJdTY0IG1xZF9ncHVfYWRkcjsKLQlz dHJ1Y3QgYm9uYWlyZV9tcWQgKm1xZDsKKwlzdHJ1Y3QgY2lrX21xZCAqbXFkOwogCXN0cnVjdCBh bWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT5nZnguY29tcHV0ZV9yaW5nW3JpbmdfaWRdOwogCiAJ aWYgKHJpbmctPm1xZF9vYmogPT0gTlVMTCkgewogCQlyID0gYW1kZ3B1X2JvX2NyZWF0ZShhZGV2 LAotCQkJCXNpemVvZihzdHJ1Y3QgYm9uYWlyZV9tcWQpLAorCQkJCXNpemVvZihzdHJ1Y3QgY2lr X21xZCksCiAJCQkJUEFHRV9TSVpFLCB0cnVlLAogCQkJCUFNREdQVV9HRU1fRE9NQUlOX0dUVCwg MCwgTlVMTCwgTlVMTCwKIAkJCQkmcmluZy0+bXFkX29iaik7CiAJCWlmIChyKSB7CiAJCQlkZXZf d2FybihhZGV2LT5kZXYsICIoJWQpIGNyZWF0ZSBNUUQgYm8gZmFpbGVkXG4iLCByKTsKIAkJCXJl dHVybiByOwogCQl9CiAJfQogCiAJciA9IGFtZGdwdV9ib19yZXNlcnZlKHJpbmctPm1xZF9vYmos IGZhbHNlKTsKIAlpZiAodW5saWtlbHkociAhPSAwKSkKIAkJZ290byBvdXQ7CiAKIAlyID0gYW1k Z3B1X2JvX3BpbihyaW5nLT5tcWRfb2JqLCBBTURHUFVfR0VNX0RPTUFJTl9HVFQsCiAJCQkmbXFk X2dwdV9hZGRyKTsKIAlpZiAocikgewogCQlkZXZfd2FybihhZGV2LT5kZXYsICIoJWQpIHBpbiBN UUQgYm8gZmFpbGVkXG4iLCByKTsKIAkJZ290byBvdXRfdW5yZXNlcnZlOwogCX0KIAlyID0gYW1k Z3B1X2JvX2ttYXAocmluZy0+bXFkX29iaiwgKHZvaWQgKiopJm1xZCk7Ci0tIAoyLjkuMwoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==