From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rex Zhu Subject: [PATCH v2 6/7] drm/amd/pp: Update smu7 dpm table with OD clock/voltage Date: Fri, 19 Jan 2018 16:10:10 +0800 Message-ID: <1516349411-18102-7-git-send-email-Rex.Zhu@amd.com> References: <1516349411-18102-1-git-send-email-Rex.Zhu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1516349411-18102-1-git-send-email-Rex.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: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Rex Zhu ZGVsZXRlIG9sZCBPRCB0eXBlIGNvZGUgcGF0aCB3aGVuIHBvcHVsYXRlIGNsay4KCkNoYW5nZS1J ZDogSTIzY2U4NzBlYTVhZGY5MjI3YmI2ZjM1ZTMzYzBjZTk5ZmE0ZTljZWQKUmV2aWV3ZWQtYnk6 IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTog UmV4IFpodSA8UmV4LlpodUBhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2h3bWdyL3NtdTdfaHdtZ3IuYyAgIHwgMTI0ICsrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL2Zpamlfc211bWdyLmMgfCAgMTggKyst CiAuLi4vZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFyaXMxMF9zbXVtZ3IuYyAgICB8ICAx OCArKy0KIC4uLi9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3RvbmdhX3NtdW1nci5jICAg IHwgIDE4ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Iv c211N19od21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3Ivc211N19o d21nci5jCmluZGV4IDNlZDRiNGEuLmNhYjFjZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG93ZXJwbGF5L2h3bWdyL3NtdTdfaHdtZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9od21nci9zbXU3X2h3bWdyLmMKQEAgLTM0ODIsOCArMzQ4Miw2IEBAIHN0 YXRpYyBpbnQgc211N19maW5kX2RwbV9zdGF0ZXNfY2xvY2tzX2luX2RwbV90YWJsZShzdHJ1Y3Qg cHBfaHdtZ3IgKmh3bWdyLCBjb25zCiAJdWludDMyX3QgaTsKIAlzdHJ1Y3QgY2dzX2Rpc3BsYXlf aW5mbyBpbmZvID0gezB9OwogCi0JZGF0YS0+bmVlZF91cGRhdGVfc211N19kcG1fdGFibGUgPSAw OwotCiAJZm9yIChpID0gMDsgaSA8IHNjbGtfdGFibGUtPmNvdW50OyBpKyspIHsKIAkJaWYgKHNj bGsgPT0gc2Nsa190YWJsZS0+ZHBtX2xldmVsc1tpXS52YWx1ZSkKIAkJCWJyZWFrOwpAQCAtMzYy NSwxMDYgKzM2MjMsMjcgQEAgc3RhdGljIGludCBzbXU3X3BvcHVsYXRlX2FuZF91cGxvYWRfc2Ns a19tY2xrX2RwbV9sZXZlbHMoCiAJCXN0cnVjdCBwcF9od21nciAqaHdtZ3IsIGNvbnN0IHZvaWQg KmlucHV0KQogewogCWludCByZXN1bHQgPSAwOwotCWNvbnN0IHN0cnVjdCBwaG1fc2V0X3Bvd2Vy X3N0YXRlX2lucHV0ICpzdGF0ZXMgPQotCQkJKGNvbnN0IHN0cnVjdCBwaG1fc2V0X3Bvd2VyX3N0 YXRlX2lucHV0ICopaW5wdXQ7Ci0JY29uc3Qgc3RydWN0IHNtdTdfcG93ZXJfc3RhdGUgKnNtdTdf cHMgPQotCQkJY2FzdF9jb25zdF9waHdfc211N19wb3dlcl9zdGF0ZShzdGF0ZXMtPnBuZXdfc3Rh dGUpOwogCXN0cnVjdCBzbXU3X2h3bWdyICpkYXRhID0gKHN0cnVjdCBzbXU3X2h3bWdyICopKGh3 bWdyLT5iYWNrZW5kKTsKLQl1aW50MzJfdCBzY2xrID0gc211N19wcy0+cGVyZm9ybWFuY2VfbGV2 ZWxzCi0JCQlbc211N19wcy0+cGVyZm9ybWFuY2VfbGV2ZWxfY291bnQgLSAxXS5lbmdpbmVfY2xv Y2s7Ci0JdWludDMyX3QgbWNsayA9IHNtdTdfcHMtPnBlcmZvcm1hbmNlX2xldmVscwotCQkJW3Nt dTdfcHMtPnBlcmZvcm1hbmNlX2xldmVsX2NvdW50IC0gMV0ubWVtb3J5X2Nsb2NrOwogCXN0cnVj dCBzbXU3X2RwbV90YWJsZSAqZHBtX3RhYmxlID0gJmRhdGEtPmRwbV90YWJsZTsKLQotCXN0cnVj dCBzbXU3X2RwbV90YWJsZSAqZ29sZGVuX2RwbV90YWJsZSA9ICZkYXRhLT5nb2xkZW5fZHBtX3Rh YmxlOwotCXVpbnQzMl90IGRwbV9jb3VudCwgY2xvY2tfcGVyY2VudDsKLQl1aW50MzJfdCBpOwor CXVpbnQzMl90IGNvdW50OworCXN0cnVjdCBzbXU3X29kbl9kcG1fdGFibGUgKm9kbl90YWJsZSA9 ICYoZGF0YS0+b2RuX2RwbV90YWJsZSk7CisJc3RydWN0IHBobV9vZG5fY2xvY2tfbGV2ZWxzICpv ZG5fc2Nsa190YWJsZSA9ICYob2RuX3RhYmxlLT5vZG5fY29yZV9jbG9ja19kcG1fbGV2ZWxzKTsK KwlzdHJ1Y3QgcGhtX29kbl9jbG9ja19sZXZlbHMgKm9kbl9tY2xrX3RhYmxlID0gJihvZG5fdGFi bGUtPm9kbl9tZW1vcnlfY2xvY2tfZHBtX2xldmVscyk7CiAKIAlpZiAoMCA9PSBkYXRhLT5uZWVk X3VwZGF0ZV9zbXU3X2RwbV90YWJsZSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoZGF0YS0+bmVlZF91 cGRhdGVfc211N19kcG1fdGFibGUgJiBEUE1UQUJMRV9PRF9VUERBVEVfU0NMSykgewotCQlkcG1f dGFibGUtPnNjbGtfdGFibGUuZHBtX2xldmVscwotCQlbZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmNv dW50IC0gMV0udmFsdWUgPSBzY2xrOwotCi0JCWlmIChod21nci0+b2RfZW5hYmxlZCkgewotCQkv KiBOZWVkIHRvIGRvIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHRoZSBnb2xkZW4gRFBNIHRhYmxlCi0J CSAqIGFzIHRoZSBIZWF0bWFwIEdQVSBDbG9jayBheGlzIGlzIGFsc28gYmFzZWQgb24gdGhlIGRl ZmF1bHQgdmFsdWVzCi0JCSAqLwotCQkJUFBfQVNTRVJUX1dJVEhfQ09ERSgKLQkJCQkoZ29sZGVu X2RwbV90YWJsZS0+c2Nsa190YWJsZS5kcG1fbGV2ZWxzCi0JCQkJCQlbZ29sZGVuX2RwbV90YWJs ZS0+c2Nsa190YWJsZS5jb3VudCAtIDFdLnZhbHVlICE9IDApLAotCQkJCSJEaXZpZGUgYnkgMCEi LAotCQkJCXJldHVybiAtRUlOVkFMKTsKLQkJCWRwbV9jb3VudCA9IGRwbV90YWJsZS0+c2Nsa190 YWJsZS5jb3VudCA8IDIgPyAwIDogZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmNvdW50IC0gMjsKLQot CQkJZm9yIChpID0gZHBtX2NvdW50OyBpID4gMTsgaS0tKSB7Ci0JCQkJaWYgKHNjbGsgPiBnb2xk ZW5fZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmRwbV9sZXZlbHNbZ29sZGVuX2RwbV90YWJsZS0+c2Ns a190YWJsZS5jb3VudC0xXS52YWx1ZSkgewotCQkJCQljbG9ja19wZXJjZW50ID0KLQkJCQkJICAg ICAgKChzY2xrCi0JCQkJCQktIGdvbGRlbl9kcG1fdGFibGUtPnNjbGtfdGFibGUuZHBtX2xldmVs c1tnb2xkZW5fZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmNvdW50LTFdLnZhbHVlCi0JCQkJCQkpICog MTAwKQotCQkJCQkJLyBnb2xkZW5fZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmRwbV9sZXZlbHNbZ29s ZGVuX2RwbV90YWJsZS0+c2Nsa190YWJsZS5jb3VudC0xXS52YWx1ZTsKLQotCQkJCQlkcG1fdGFi bGUtPnNjbGtfdGFibGUuZHBtX2xldmVsc1tpXS52YWx1ZSA9Ci0JCQkJCQkJZ29sZGVuX2RwbV90 YWJsZS0+c2Nsa190YWJsZS5kcG1fbGV2ZWxzW2ldLnZhbHVlICsKLQkJCQkJCQkoZ29sZGVuX2Rw bV90YWJsZS0+c2Nsa190YWJsZS5kcG1fbGV2ZWxzW2ldLnZhbHVlICoKLQkJCQkJCQkJY2xvY2tf cGVyY2VudCkvMTAwOwotCi0JCQkJfSBlbHNlIGlmIChnb2xkZW5fZHBtX3RhYmxlLT5zY2xrX3Rh YmxlLmRwbV9sZXZlbHNbZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmNvdW50LTFdLnZhbHVlID4gc2Ns aykgewotCQkJCQljbG9ja19wZXJjZW50ID0KLQkJCQkJCSgoZ29sZGVuX2RwbV90YWJsZS0+c2Ns a190YWJsZS5kcG1fbGV2ZWxzW2dvbGRlbl9kcG1fdGFibGUtPnNjbGtfdGFibGUuY291bnQgLSAx XS52YWx1ZQotCQkJCQkJLSBzY2xrKSAqIDEwMCkKLQkJCQkJCS8gZ29sZGVuX2RwbV90YWJsZS0+ c2Nsa190YWJsZS5kcG1fbGV2ZWxzW2dvbGRlbl9kcG1fdGFibGUtPnNjbGtfdGFibGUuY291bnQt MV0udmFsdWU7Ci0KLQkJCQkJZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmRwbV9sZXZlbHNbaV0udmFs dWUgPQotCQkJCQkJCWdvbGRlbl9kcG1fdGFibGUtPnNjbGtfdGFibGUuZHBtX2xldmVsc1tpXS52 YWx1ZSAtCi0JCQkJCQkJKGdvbGRlbl9kcG1fdGFibGUtPnNjbGtfdGFibGUuZHBtX2xldmVsc1tp XS52YWx1ZSAqCi0JCQkJCQkJCQljbG9ja19wZXJjZW50KSAvIDEwMDsKLQkJCQl9IGVsc2UKLQkJ CQkJZHBtX3RhYmxlLT5zY2xrX3RhYmxlLmRwbV9sZXZlbHNbaV0udmFsdWUgPQotCQkJCQkJCWdv bGRlbl9kcG1fdGFibGUtPnNjbGtfdGFibGUuZHBtX2xldmVsc1tpXS52YWx1ZTsKLQkJCX0KKwlp ZiAoaHdtZ3ItPm9kX2VuYWJsZWQgJiYgZGF0YS0+bmVlZF91cGRhdGVfc211N19kcG1fdGFibGUg JiBEUE1UQUJMRV9PRF9VUERBVEVfU0NMSykgeworCQlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBk cG1fdGFibGUtPnNjbGtfdGFibGUuY291bnQ7IGNvdW50KyspIHsKKwkJCWRwbV90YWJsZS0+c2Ns a190YWJsZS5kcG1fbGV2ZWxzW2NvdW50XS5lbmFibGVkID0gb2RuX3NjbGtfdGFibGUtPmVudHJp ZXNbY291bnRdLmVuYWJsZWQ7CisJCQlkcG1fdGFibGUtPnNjbGtfdGFibGUuZHBtX2xldmVsc1tj b3VudF0udmFsdWUgPSBvZG5fc2Nsa190YWJsZS0+ZW50cmllc1tjb3VudF0uY2xvY2s7CiAJCX0K IAl9CiAKLQlpZiAoZGF0YS0+bmVlZF91cGRhdGVfc211N19kcG1fdGFibGUgJiBEUE1UQUJMRV9P RF9VUERBVEVfTUNMSykgewotCQlkcG1fdGFibGUtPm1jbGtfdGFibGUuZHBtX2xldmVscwotCQkJ W2RwbV90YWJsZS0+bWNsa190YWJsZS5jb3VudCAtIDFdLnZhbHVlID0gbWNsazsKLQotCQlpZiAo aHdtZ3ItPm9kX2VuYWJsZWQpIHsKLQotCQkJUFBfQVNTRVJUX1dJVEhfQ09ERSgKLQkJCQkJKGdv bGRlbl9kcG1fdGFibGUtPm1jbGtfdGFibGUuZHBtX2xldmVscwotCQkJCQkJW2dvbGRlbl9kcG1f dGFibGUtPm1jbGtfdGFibGUuY291bnQtMV0udmFsdWUgIT0gMCksCi0JCQkJCSJEaXZpZGUgYnkg MCEiLAotCQkJCQlyZXR1cm4gLUVJTlZBTCk7Ci0JCQlkcG1fY291bnQgPSBkcG1fdGFibGUtPm1j bGtfdGFibGUuY291bnQgPCAyID8gMCA6IGRwbV90YWJsZS0+bWNsa190YWJsZS5jb3VudCAtIDI7 Ci0JCQlmb3IgKGkgPSBkcG1fY291bnQ7IGkgPiAxOyBpLS0pIHsKLQkJCQlpZiAoZ29sZGVuX2Rw bV90YWJsZS0+bWNsa190YWJsZS5kcG1fbGV2ZWxzW2dvbGRlbl9kcG1fdGFibGUtPm1jbGtfdGFi bGUuY291bnQtMV0udmFsdWUgPCBtY2xrKSB7Ci0JCQkJCWNsb2NrX3BlcmNlbnQgPSAoKG1jbGsg LQotCQkJCQlnb2xkZW5fZHBtX3RhYmxlLT5tY2xrX3RhYmxlLmRwbV9sZXZlbHNbZ29sZGVuX2Rw bV90YWJsZS0+bWNsa190YWJsZS5jb3VudC0xXS52YWx1ZSkgKiAxMDApCi0JCQkJCS8gZ29sZGVu X2RwbV90YWJsZS0+bWNsa190YWJsZS5kcG1fbGV2ZWxzW2dvbGRlbl9kcG1fdGFibGUtPm1jbGtf dGFibGUuY291bnQtMV0udmFsdWU7Ci0KLQkJCQkJZHBtX3RhYmxlLT5tY2xrX3RhYmxlLmRwbV9s ZXZlbHNbaV0udmFsdWUgPQotCQkJCQkJCWdvbGRlbl9kcG1fdGFibGUtPm1jbGtfdGFibGUuZHBt X2xldmVsc1tpXS52YWx1ZSArCi0JCQkJCQkJKGdvbGRlbl9kcG1fdGFibGUtPm1jbGtfdGFibGUu ZHBtX2xldmVsc1tpXS52YWx1ZSAqCi0JCQkJCQkJY2xvY2tfcGVyY2VudCkgLyAxMDA7Ci0KLQkJ CQl9IGVsc2UgaWYgKGdvbGRlbl9kcG1fdGFibGUtPm1jbGtfdGFibGUuZHBtX2xldmVsc1tkcG1f dGFibGUtPm1jbGtfdGFibGUuY291bnQtMV0udmFsdWUgPiBtY2xrKSB7Ci0JCQkJCWNsb2NrX3Bl cmNlbnQgPSAoCi0JCQkJCSAoZ29sZGVuX2RwbV90YWJsZS0+bWNsa190YWJsZS5kcG1fbGV2ZWxz W2dvbGRlbl9kcG1fdGFibGUtPm1jbGtfdGFibGUuY291bnQtMV0udmFsdWUgLSBtY2xrKQotCQkJ CQkqIDEwMCkKLQkJCQkJLyBnb2xkZW5fZHBtX3RhYmxlLT5tY2xrX3RhYmxlLmRwbV9sZXZlbHNb Z29sZGVuX2RwbV90YWJsZS0+bWNsa190YWJsZS5jb3VudC0xXS52YWx1ZTsKLQotCQkJCQlkcG1f dGFibGUtPm1jbGtfdGFibGUuZHBtX2xldmVsc1tpXS52YWx1ZSA9Ci0JCQkJCQkJZ29sZGVuX2Rw bV90YWJsZS0+bWNsa190YWJsZS5kcG1fbGV2ZWxzW2ldLnZhbHVlIC0KLQkJCQkJCQkoZ29sZGVu X2RwbV90YWJsZS0+bWNsa190YWJsZS5kcG1fbGV2ZWxzW2ldLnZhbHVlICoKLQkJCQkJCQkJCWNs b2NrX3BlcmNlbnQpIC8gMTAwOwotCQkJCX0gZWxzZQotCQkJCQlkcG1fdGFibGUtPm1jbGtfdGFi bGUuZHBtX2xldmVsc1tpXS52YWx1ZSA9Ci0JCQkJCQkJZ29sZGVuX2RwbV90YWJsZS0+bWNsa190 YWJsZS5kcG1fbGV2ZWxzW2ldLnZhbHVlOwotCQkJfQorCWlmIChod21nci0+b2RfZW5hYmxlZCAm JiBkYXRhLT5uZWVkX3VwZGF0ZV9zbXU3X2RwbV90YWJsZSAmIERQTVRBQkxFX09EX1VQREFURV9N Q0xLKSB7CisJCWZvciAoY291bnQgPSAwOyBjb3VudCA8IGRwbV90YWJsZS0+bWNsa190YWJsZS5j b3VudDsgY291bnQrKykgeworCQkJZHBtX3RhYmxlLT5tY2xrX3RhYmxlLmRwbV9sZXZlbHNbY291 bnRdLmVuYWJsZWQgPSBvZG5fbWNsa190YWJsZS0+ZW50cmllc1tjb3VudF0uZW5hYmxlZDsKKwkJ CWRwbV90YWJsZS0+bWNsa190YWJsZS5kcG1fbGV2ZWxzW2NvdW50XS52YWx1ZSA9IG9kbl9tY2xr X3RhYmxlLT5lbnRyaWVzW2NvdW50XS5jbG9jazsKIAkJfQogCX0KIApAQCAtMzg0Niw3ICszNzY1 LDcgQEAgc3RhdGljIGludCBzbXU3X3VuZnJlZXplX3NjbGtfbWNsa19kcG0oc3RydWN0IHBwX2h3 bWdyICpod21ncikKIAkJICAgIHJldHVybiAtRUlOVkFMKTsKIAl9CiAKLQlkYXRhLT5uZWVkX3Vw ZGF0ZV9zbXU3X2RwbV90YWJsZSA9IDA7CisJZGF0YS0+bmVlZF91cGRhdGVfc211N19kcG1fdGFi bGUgJj0gRFBNVEFCTEVfT0RfVVBEQVRFX1ZEREM7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTQxMTQs NiArNDAzMyw3IEBAIHN0YXRpYyBpbnQgc211N19jaGVja19zdGF0ZXNfZXF1YWwoc3RydWN0IHBw X2h3bWdyICpod21nciwKIAljb25zdCBzdHJ1Y3Qgc211N19wb3dlcl9zdGF0ZSAqcHNhOwogCWNv bnN0IHN0cnVjdCBzbXU3X3Bvd2VyX3N0YXRlICpwc2I7CiAJaW50IGk7CisJc3RydWN0IHNtdTdf aHdtZ3IgKmRhdGEgPSAoc3RydWN0IHNtdTdfaHdtZ3IgKikoaHdtZ3ItPmJhY2tlbmQpOwogCiAJ aWYgKHBzdGF0ZTEgPT0gTlVMTCB8fCBwc3RhdGUyID09IE5VTEwgfHwgZXF1YWwgPT0gTlVMTCkK IAkJcmV0dXJuIC1FSU5WQUw7CkBAIC00MTM4LDYgKzQwNTgsMTAgQEAgc3RhdGljIGludCBzbXU3 X2NoZWNrX3N0YXRlc19lcXVhbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCSplcXVhbCA9ICgo cHNhLT51dmRfY2xrcy52Y2xrID09IHBzYi0+dXZkX2Nsa3MudmNsaykgJiYgKHBzYS0+dXZkX2Ns a3MuZGNsayA9PSBwc2ItPnV2ZF9jbGtzLmRjbGspKTsKIAkqZXF1YWwgJj0gKChwc2EtPnZjZV9j bGtzLmV2Y2xrID09IHBzYi0+dmNlX2Nsa3MuZXZjbGspICYmIChwc2EtPnZjZV9jbGtzLmVjY2xr ID09IHBzYi0+dmNlX2Nsa3MuZWNjbGspKTsKIAkqZXF1YWwgJj0gKHBzYS0+c2Nsa190aHJlc2hv bGQgPT0gcHNiLT5zY2xrX3RocmVzaG9sZCk7CisJLyogRm9yIE9EIGNhbGwsIHNldCB2YWx1ZSBi YXNlZCBvbiBmbGFnICovCisJKmVxdWFsICY9ICEoZGF0YS0+bmVlZF91cGRhdGVfc211N19kcG1f dGFibGUgJiAoRFBNVEFCTEVfT0RfVVBEQVRFX1NDTEsgfAorCQkJCQkJCURQTVRBQkxFX09EX1VQ REFURV9NQ0xLIHwKKwkJCQkJCQlEUE1UQUJMRV9PRF9VUERBVEVfVkREQykpOwogCiAJcmV0dXJu IDA7CiB9CkBAIC00ODg3LDIxICs0ODExLDI1IEBAIHN0YXRpYyB2b2lkIHNtdTdfY2hlY2tfZHBt X3RhYmxlX3VwZGF0ZWQoc3RydWN0IHBwX2h3bWdyICpod21ncikKIAlkZXBfdGFibGUgPSB0YWJs ZV9pbmZvLT52ZGRfZGVwX29uX21jbGs7CiAJb2RuX2RlcF90YWJsZSA9IChzdHJ1Y3QgcGhtX3Bw dF92MV9jbG9ja192b2x0YWdlX2RlcGVuZGVuY3lfdGFibGUgKikmKG9kbl90YWJsZS0+dmRkX2Rl cGVuZGVuY3lfb25fbWNsayk7CiAKLQlmb3IgKGk9MDsgaTxkZXBfdGFibGUtPmNvdW50OyBpKysp IHsKKwlmb3IgKGk9MDsgaSA8IGRlcF90YWJsZS0+Y291bnQ7IGkrKykgewogCQlpZiAoZGVwX3Rh YmxlLT5lbnRyaWVzW2ldLnZkZGMgIT0gb2RuX2RlcF90YWJsZS0+ZW50cmllc1tpXS52ZGRjKSB7 CiAJCQlkYXRhLT5uZWVkX3VwZGF0ZV9zbXU3X2RwbV90YWJsZSB8PSBEUE1UQUJMRV9PRF9VUERB VEVfVkREQzsKLQkJCXJldHVybjsKKwkJCWJyZWFrOwogCQl9CiAJfQorCWlmIChpID09IGRlcF90 YWJsZS0+Y291bnQpCisJCWRhdGEtPm5lZWRfdXBkYXRlX3NtdTdfZHBtX3RhYmxlICY9IH5EUE1U QUJMRV9PRF9VUERBVEVfVkREQzsKIAogCWRlcF90YWJsZSA9IHRhYmxlX2luZm8tPnZkZF9kZXBf b25fc2NsazsKIAlvZG5fZGVwX3RhYmxlID0gKHN0cnVjdCBwaG1fcHB0X3YxX2Nsb2NrX3ZvbHRh Z2VfZGVwZW5kZW5jeV90YWJsZSAqKSYob2RuX3RhYmxlLT52ZGRfZGVwZW5kZW5jeV9vbl9zY2xr KTsKLQlmb3IgKGk9MDsgaTxkZXBfdGFibGUtPmNvdW50OyBpKyspIHsKKwlmb3IgKGk9MDsgaSA8 IGRlcF90YWJsZS0+Y291bnQ7IGkrKykgewogCQlpZiAoZGVwX3RhYmxlLT5lbnRyaWVzW2ldLnZk ZGMgIT0gb2RuX2RlcF90YWJsZS0+ZW50cmllc1tpXS52ZGRjKSB7CiAJCQlkYXRhLT5uZWVkX3Vw ZGF0ZV9zbXU3X2RwbV90YWJsZSB8PSBEUE1UQUJMRV9PRF9VUERBVEVfVkREQzsKLQkJCXJldHVy bjsKKwkJCWJyZWFrOwogCQl9CiAJfQorCWlmIChpID09IGRlcF90YWJsZS0+Y291bnQpCisJCWRh dGEtPm5lZWRfdXBkYXRlX3NtdTdfZHBtX3RhYmxlICY9IH5EUE1UQUJMRV9PRF9VUERBVEVfVkRE QzsKIH0KIAogc3RhdGljIGludCBzbXU3X29kbl9lZGl0X2RwbV90YWJsZShzdHJ1Y3QgcHBfaHdt Z3IgKmh3bWdyLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211 bWdyL2Zpamlfc211bWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Iv ZmlqaV9zbXVtZ3IuYwppbmRleCA3ZDllMmNiLi43M2M2MDIwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvZmlqaV9zbXVtZ3IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvZmlqaV9zbXVtZ3IuYwpAQCAtOTgxLDEyICs5 ODEsMTggQEAgc3RhdGljIGludCBmaWppX3BvcHVsYXRlX3NpbmdsZV9ncmFwaGljX2xldmVsKHN0 cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJc3RydWN0IHNtdTdfaHdtZ3IgKmRhdGEgPSAoc3RydWN0 IHNtdTdfaHdtZ3IgKikoaHdtZ3ItPmJhY2tlbmQpOwogCXN0cnVjdCBwaG1fcHB0X3YxX2luZm9y bWF0aW9uICp0YWJsZV9pbmZvID0KIAkJCShzdHJ1Y3QgcGhtX3BwdF92MV9pbmZvcm1hdGlvbiAq KShod21nci0+cHB0YWJsZSk7CisJcGhtX3BwdF92MV9jbG9ja192b2x0YWdlX2RlcGVuZGVuY3lf dGFibGUgKnZkZF9kZXBfdGFibGUgPSBOVUxMOwogCiAJcmVzdWx0ID0gZmlqaV9jYWxjdWxhdGVf c2Nsa19wYXJhbXMoaHdtZ3IsIGNsb2NrLCBsZXZlbCk7CiAKKwlpZiAoaHdtZ3ItPm9kX2VuYWJs ZWQpCisJCXZkZF9kZXBfdGFibGUgPSAocGhtX3BwdF92MV9jbG9ja192b2x0YWdlX2RlcGVuZGVu Y3lfdGFibGUgKikmZGF0YS0+b2RuX2RwbV90YWJsZS52ZGRfZGVwZW5kZW5jeV9vbl9zY2xrOwor CWVsc2UKKwkJdmRkX2RlcF90YWJsZSA9IHRhYmxlX2luZm8tPnZkZF9kZXBfb25fc2NsazsKKwog CS8qIHBvcHVsYXRlIGdyYXBoaWNzIGxldmVscyAqLwogCXJlc3VsdCA9IGZpamlfZ2V0X2RlcGVu ZGVuY3lfdm9sdF9ieV9jbGsoaHdtZ3IsCi0JCQl0YWJsZV9pbmZvLT52ZGRfZGVwX29uX3NjbGss IGNsb2NrLAorCQkJdmRkX2RlcF90YWJsZSwgY2xvY2ssCiAJCQkodWludDMyX3QgKikoJmxldmVs LT5NaW5Wb2x0YWdlKSwgJm12ZGQpOwogCVBQX0FTU0VSVF9XSVRIX0NPREUoKDAgPT0gcmVzdWx0 KSwKIAkJCSJjYW4gbm90IGZpbmQgVkREQyB2b2x0YWdlIHZhbHVlIGZvciAiCkBAIC0xMjAyLDEw ICsxMjA4LDE2IEBAIHN0YXRpYyBpbnQgZmlqaV9wb3B1bGF0ZV9zaW5nbGVfbWVtb3J5X2xldmVs KHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJCQkoc3RydWN0IHBobV9wcHRfdjFfaW5mb3JtYXRp b24gKikoaHdtZ3ItPnBwdGFibGUpOwogCWludCByZXN1bHQgPSAwOwogCXVpbnQzMl90IG1jbGtf c3R1dHRlcl9tb2RlX3RocmVzaG9sZCA9IDYwMDAwOworCXBobV9wcHRfdjFfY2xvY2tfdm9sdGFn ZV9kZXBlbmRlbmN5X3RhYmxlICp2ZGRfZGVwX3RhYmxlID0gTlVMTDsKKworCWlmIChod21nci0+ b2RfZW5hYmxlZCkKKwkJdmRkX2RlcF90YWJsZSA9IChwaG1fcHB0X3YxX2Nsb2NrX3ZvbHRhZ2Vf ZGVwZW5kZW5jeV90YWJsZSAqKSZkYXRhLT5vZG5fZHBtX3RhYmxlLnZkZF9kZXBlbmRlbmN5X29u X3NjbGs7CisJZWxzZQorCQl2ZGRfZGVwX3RhYmxlID0gdGFibGVfaW5mby0+dmRkX2RlcF9vbl9t Y2xrOwogCi0JaWYgKHRhYmxlX2luZm8tPnZkZF9kZXBfb25fbWNsaykgeworCWlmICh2ZGRfZGVw X3RhYmxlKSB7CiAJCXJlc3VsdCA9IGZpamlfZ2V0X2RlcGVuZGVuY3lfdm9sdF9ieV9jbGsoaHdt Z3IsCi0JCQkJdGFibGVfaW5mby0+dmRkX2RlcF9vbl9tY2xrLCBjbG9jaywKKwkJCQl2ZGRfZGVw X3RhYmxlLCBjbG9jaywKIAkJCQkodWludDMyX3QgKikoJm1lbV9sZXZlbC0+TWluVm9sdGFnZSks ICZtZW1fbGV2ZWwtPk1pbk12ZGQpOwogCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCgwID09IHJlc3Vs dCksCiAJCQkJImNhbiBub3QgZmluZCBNaW5WZGRjIHZvbHRhZ2UgdmFsdWUgZnJvbSBtZW1vcnkg IgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFy aXMxMF9zbXVtZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9wb2xh cmlzMTBfc211bWdyLmMKaW5kZXggZjFhM2JjOC4uYTc2MGE4MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3BvbGFyaXMxMF9zbXVtZ3IuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvcG9sYXJpczEwX3NtdW1nci5jCkBA IC05NDgsMTIgKzk0OCwxOCBAQCBzdGF0aWMgaW50IHBvbGFyaXMxMF9wb3B1bGF0ZV9zaW5nbGVf Z3JhcGhpY19sZXZlbChzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLAogCXN0cnVjdCBwaG1fcHB0X3Yx X2luZm9ybWF0aW9uICp0YWJsZV9pbmZvID0KIAkJCShzdHJ1Y3QgcGhtX3BwdF92MV9pbmZvcm1h dGlvbiAqKShod21nci0+cHB0YWJsZSk7CiAJU01VX1NjbGtTZXR0aW5nIGN1cnJfc2Nsa19zZXR0 aW5nID0geyAwIH07CisJcGhtX3BwdF92MV9jbG9ja192b2x0YWdlX2RlcGVuZGVuY3lfdGFibGUg KnZkZF9kZXBfdGFibGUgPSBOVUxMOwogCiAJcmVzdWx0ID0gcG9sYXJpczEwX2NhbGN1bGF0ZV9z Y2xrX3BhcmFtcyhod21nciwgY2xvY2ssICZjdXJyX3NjbGtfc2V0dGluZyk7CiAKKwlpZiAoaHdt Z3ItPm9kX2VuYWJsZWQpCisJCXZkZF9kZXBfdGFibGUgPSAocGhtX3BwdF92MV9jbG9ja192b2x0 YWdlX2RlcGVuZGVuY3lfdGFibGUgKikmZGF0YS0+b2RuX2RwbV90YWJsZS52ZGRfZGVwZW5kZW5j eV9vbl9zY2xrOworCWVsc2UKKwkJdmRkX2RlcF90YWJsZSA9IHRhYmxlX2luZm8tPnZkZF9kZXBf b25fc2NsazsKKwogCS8qIHBvcHVsYXRlIGdyYXBoaWNzIGxldmVscyAqLwogCXJlc3VsdCA9IHBv bGFyaXMxMF9nZXRfZGVwZW5kZW5jeV92b2x0X2J5X2Nsayhod21nciwKLQkJCXRhYmxlX2luZm8t PnZkZF9kZXBfb25fc2NsaywgY2xvY2ssCisJCQl2ZGRfZGVwX3RhYmxlLCBjbG9jaywKIAkJCSZs ZXZlbC0+TWluVm9sdGFnZSwgJm12ZGQpOwogCiAJUFBfQVNTRVJUX1dJVEhfQ09ERSgoMCA9PSBy ZXN1bHQpLApAQCAtMTEwNywxMiArMTExMywxOCBAQCBzdGF0aWMgaW50IHBvbGFyaXMxMF9wb3B1 bGF0ZV9zaW5nbGVfbWVtb3J5X2xldmVsKHN0cnVjdCBwcF9od21nciAqaHdtZ3IsCiAJaW50IHJl c3VsdCA9IDA7CiAJc3RydWN0IGNnc19kaXNwbGF5X2luZm8gaW5mbyA9IHswLCAwLCBOVUxMfTsK IAl1aW50MzJfdCBtY2xrX3N0dXR0ZXJfbW9kZV90aHJlc2hvbGQgPSA0MDAwMDsKKwlwaG1fcHB0 X3YxX2Nsb2NrX3ZvbHRhZ2VfZGVwZW5kZW5jeV90YWJsZSAqdmRkX2RlcF90YWJsZSA9IE5VTEw7 CiAKIAljZ3NfZ2V0X2FjdGl2ZV9kaXNwbGF5c19pbmZvKGh3bWdyLT5kZXZpY2UsICZpbmZvKTsK IAotCWlmICh0YWJsZV9pbmZvLT52ZGRfZGVwX29uX21jbGspIHsKKwlpZiAoaHdtZ3ItPm9kX2Vu YWJsZWQpCisJCXZkZF9kZXBfdGFibGUgPSAocGhtX3BwdF92MV9jbG9ja192b2x0YWdlX2RlcGVu ZGVuY3lfdGFibGUgKikmZGF0YS0+b2RuX2RwbV90YWJsZS52ZGRfZGVwZW5kZW5jeV9vbl9zY2xr OworCWVsc2UKKwkJdmRkX2RlcF90YWJsZSA9IHRhYmxlX2luZm8tPnZkZF9kZXBfb25fbWNsazsK KworCWlmICh2ZGRfZGVwX3RhYmxlKSB7CiAJCXJlc3VsdCA9IHBvbGFyaXMxMF9nZXRfZGVwZW5k ZW5jeV92b2x0X2J5X2Nsayhod21nciwKLQkJCQl0YWJsZV9pbmZvLT52ZGRfZGVwX29uX21jbGss IGNsb2NrLAorCQkJCXZkZF9kZXBfdGFibGUsIGNsb2NrLAogCQkJCSZtZW1fbGV2ZWwtPk1pblZv bHRhZ2UsICZtZW1fbGV2ZWwtPk1pbk12ZGQpOwogCQlQUF9BU1NFUlRfV0lUSF9DT0RFKCgwID09 IHJlc3VsdCksCiAJCQkJImNhbiBub3QgZmluZCBNaW5WZGRjIHZvbHRhZ2UgdmFsdWUgZnJvbSBt ZW1vcnkgIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdy L3RvbmdhX3NtdW1nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL3Rv bmdhX3NtdW1nci5jCmluZGV4IGEwM2EzNDUuLjRiM2ZkMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci90b25nYV9zbXVtZ3IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvdG9uZ2Ffc211bWdyLmMKQEAgLTYyMCwxMiAr NjIwLDE4IEBAIHN0YXRpYyBpbnQgdG9uZ2FfcG9wdWxhdGVfc2luZ2xlX2dyYXBoaWNfbGV2ZWwo c3RydWN0IHBwX2h3bWdyICpod21nciwKIAlzdHJ1Y3Qgc211N19od21nciAqZGF0YSA9IChzdHJ1 Y3Qgc211N19od21nciAqKShod21nci0+YmFja2VuZCk7CiAJc3RydWN0IHBobV9wcHRfdjFfaW5m b3JtYXRpb24gKnBwdGFibGVfaW5mbyA9CiAJCQkgICAgKHN0cnVjdCBwaG1fcHB0X3YxX2luZm9y bWF0aW9uICopKGh3bWdyLT5wcHRhYmxlKTsKKwlwaG1fcHB0X3YxX2Nsb2NrX3ZvbHRhZ2VfZGVw ZW5kZW5jeV90YWJsZSAqdmRkX2RlcF90YWJsZSA9IE5VTEw7CiAKIAlyZXN1bHQgPSB0b25nYV9j YWxjdWxhdGVfc2Nsa19wYXJhbXMoaHdtZ3IsIGVuZ2luZV9jbG9jaywgZ3JhcGhpY19sZXZlbCk7 CiAKKwlpZiAoaHdtZ3ItPm9kX2VuYWJsZWQpCisJCXZkZF9kZXBfdGFibGUgPSAocGhtX3BwdF92 MV9jbG9ja192b2x0YWdlX2RlcGVuZGVuY3lfdGFibGUgKikmZGF0YS0+b2RuX2RwbV90YWJsZS52 ZGRfZGVwZW5kZW5jeV9vbl9zY2xrOworCWVsc2UKKwkJdmRkX2RlcF90YWJsZSA9IHBwdGFibGVf aW5mby0+dmRkX2RlcF9vbl9zY2xrOworCiAJLyogcG9wdWxhdGUgZ3JhcGhpY3MgbGV2ZWxzKi8K IAlyZXN1bHQgPSB0b25nYV9nZXRfZGVwZW5kZW5jeV92b2x0X2J5X2Nsayhod21nciwKLQkJcHB0 YWJsZV9pbmZvLT52ZGRfZGVwX29uX3NjbGssIGVuZ2luZV9jbG9jaywKKwkJdmRkX2RlcF90YWJs ZSwgZW5naW5lX2Nsb2NrLAogCQkmZ3JhcGhpY19sZXZlbC0+TWluVm9sdGFnZSwgJm12ZGQpOwog CVBQX0FTU0VSVF9XSVRIX0NPREUoKCFyZXN1bHQpLAogCQkiY2FuIG5vdCBmaW5kIFZEREMgdm9s dGFnZSB2YWx1ZSBmb3IgVkREQyAiCkBAIC05NjYsMTAgKzk3MiwxNiBAQCBzdGF0aWMgaW50IHRv bmdhX3BvcHVsYXRlX3NpbmdsZV9tZW1vcnlfbGV2ZWwoCiAJdWludDMyX3QgbWNsa19zdHV0dGVy X21vZGVfdGhyZXNob2xkID0gMzAwMDA7CiAJdWludDMyX3QgbWNsa19lZGNfZW5hYmxlX3RocmVz aG9sZCA9IDQwMDAwOwogCXVpbnQzMl90IG1jbGtfc3Ryb2JlX21vZGVfdGhyZXNob2xkID0gNDAw MDA7CisJcGhtX3BwdF92MV9jbG9ja192b2x0YWdlX2RlcGVuZGVuY3lfdGFibGUgKnZkZF9kZXBf dGFibGUgPSBOVUxMOworCisJaWYgKGh3bWdyLT5vZF9lbmFibGVkKQorCQl2ZGRfZGVwX3RhYmxl ID0gKHBobV9wcHRfdjFfY2xvY2tfdm9sdGFnZV9kZXBlbmRlbmN5X3RhYmxlICopJmRhdGEtPm9k bl9kcG1fdGFibGUudmRkX2RlcGVuZGVuY3lfb25fc2NsazsKKwllbHNlCisJCXZkZF9kZXBfdGFi bGUgPSBwcHRhYmxlX2luZm8tPnZkZF9kZXBfb25fbWNsazsKIAotCWlmIChOVUxMICE9IHBwdGFi bGVfaW5mby0+dmRkX2RlcF9vbl9tY2xrKSB7CisJaWYgKE5VTEwgIT0gdmRkX2RlcF90YWJsZSkg ewogCQlyZXN1bHQgPSB0b25nYV9nZXRfZGVwZW5kZW5jeV92b2x0X2J5X2Nsayhod21nciwKLQkJ CQlwcHRhYmxlX2luZm8tPnZkZF9kZXBfb25fbWNsaywKKwkJCQl2ZGRfZGVwX3RhYmxlLAogCQkJ CW1lbW9yeV9jbG9jaywKIAkJCQkmbWVtb3J5X2xldmVsLT5NaW5Wb2x0YWdlLCAmbXZkZCk7CiAJ CVBQX0FTU0VSVF9XSVRIX0NPREUoCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbWQtZ2Z4Cg==