From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: [PATCH 2/3] drm/radeon: Cleanup HDMI audio interrupt handling for evergreen Date: Tue, 16 May 2017 17:11:59 -0400 Message-ID: <20170516211202.20325-3-lyude@redhat.com> References: <20170516211202.20325-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170516211202.20325-1-lyude@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: amd-gfx@lists.freedesktop.org Cc: Lyude , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= List-Id: dri-devel@lists.freedesktop.org U2FtZSBhcyB0aGUgcHJldmlvdXMgcGF0Y2gsIGJ1dCBub3cgZm9yIGhhbmRsaW5nIEhETUkgYXVk aW8gaW50ZXJydXB0cy4KClNpZ25lZC1vZmYtYnk6IEx5dWRlIDxseXVkZUByZWRoYXQuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMgfCAxNTIgKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24u aCAgICB8ICAgNyArLQogMiBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAxMzUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4u YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKaW5kZXggMzViYWYwYS4uNzZh MmYyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5jCkBAIC00NDgxLDcgKzQ0ODEsNiBA QCBpbnQgZXZlcmdyZWVuX2lycV9zZXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJdTMy IGNwX2ludF9jbnRsID0gQ05UWF9CVVNZX0lOVF9FTkFCTEUgfCBDTlRYX0VNUFRZX0lOVF9FTkFC TEU7CiAJdTMyIGNwX2ludF9jbnRsMSA9IDAsIGNwX2ludF9jbnRsMiA9IDA7CiAJdTMyIGdyYm1f aW50X2NudGwgPSAwOwotCXUzMiBhZm10MSA9IDAsIGFmbXQyID0gMCwgYWZtdDMgPSAwLCBhZm10 NCA9IDAsIGFmbXQ1ID0gMCwgYWZtdDYgPSAwOwogCXUzMiBkbWFfY250bCwgZG1hX2NudGwxID0g MDsKIAl1MzIgdGhlcm1hbF9pbnQgPSAwOwogCkBAIC00NTA0LDEzICs0NTAzLDYgQEAgaW50IGV2 ZXJncmVlbl9pcnFfc2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCQl0aGVybWFsX2lu dCA9IFJSRUczMihDR19USEVSTUFMX0lOVCkgJgogCQkJfihUSEVSTV9JTlRfTUFTS19ISUdIIHwg VEhFUk1fSU5UX01BU0tfTE9XKTsKIAotCWFmbXQxID0gUlJFRzMyKEFGTVRfQVVESU9fUEFDS0VU X0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzBfUkVHSVNURVJfT0ZGU0VUKSAmIH5BRk1UX0FaX0ZP Uk1BVF9XVFJJR19NQVNLOwotCWFmbXQyID0gUlJFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRS T0wgKyBFVkVSR1JFRU5fQ1JUQzFfUkVHSVNURVJfT0ZGU0VUKSAmIH5BRk1UX0FaX0ZPUk1BVF9X VFJJR19NQVNLOwotCWFmbXQzID0gUlJFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBF VkVSR1JFRU5fQ1JUQzJfUkVHSVNURVJfT0ZGU0VUKSAmIH5BRk1UX0FaX0ZPUk1BVF9XVFJJR19N QVNLOwotCWFmbXQ0ID0gUlJFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBFVkVSR1JF RU5fQ1JUQzNfUkVHSVNURVJfT0ZGU0VUKSAmIH5BRk1UX0FaX0ZPUk1BVF9XVFJJR19NQVNLOwot CWFmbXQ1ID0gUlJFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JU QzRfUkVHSVNURVJfT0ZGU0VUKSAmIH5BRk1UX0FaX0ZPUk1BVF9XVFJJR19NQVNLOwotCWFmbXQ2 ID0gUlJFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBFVkVSR1JFRU5fQ1JUQzVfUkVH SVNURVJfT0ZGU0VUKSAmIH5BRk1UX0FaX0ZPUk1BVF9XVFJJR19NQVNLOwotCiAJZG1hX2NudGwg PSBSUkVHMzIoRE1BX0NOVEwpICYgflRSQVBfRU5BQkxFOwogCiAJaWYgKHJkZXYtPmZhbWlseSA+ PSBDSElQX0NBWU1BTikgewpAQCAtNDU1MywzMSArNDU0NSw2IEBAIGludCBldmVyZ3JlZW5faXJx X3NldChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJdGhlcm1hbF9pbnQgfD0gVEhFUk1f SU5UX01BU0tfSElHSCB8IFRIRVJNX0lOVF9NQVNLX0xPVzsKIAl9CiAKLQlpZiAocmRldi0+aXJx LmFmbXRbMF0pIHsKLQkJRFJNX0RFQlVHKCJldmVyZ3JlZW5faXJxX3NldDogaGRtaSAwXG4iKTsK LQkJYWZtdDEgfD0gQUZNVF9BWl9GT1JNQVRfV1RSSUdfTUFTSzsKLQl9Ci0JaWYgKHJkZXYtPmly cS5hZm10WzFdKSB7Ci0JCURSTV9ERUJVRygiZXZlcmdyZWVuX2lycV9zZXQ6IGhkbWkgMVxuIik7 Ci0JCWFmbXQyIHw9IEFGTVRfQVpfRk9STUFUX1dUUklHX01BU0s7Ci0JfQotCWlmIChyZGV2LT5p cnEuYWZtdFsyXSkgewotCQlEUk1fREVCVUcoImV2ZXJncmVlbl9pcnFfc2V0OiBoZG1pIDJcbiIp OwotCQlhZm10MyB8PSBBRk1UX0FaX0ZPUk1BVF9XVFJJR19NQVNLOwotCX0KLQlpZiAocmRldi0+ aXJxLmFmbXRbM10pIHsKLQkJRFJNX0RFQlVHKCJldmVyZ3JlZW5faXJxX3NldDogaGRtaSAzXG4i KTsKLQkJYWZtdDQgfD0gQUZNVF9BWl9GT1JNQVRfV1RSSUdfTUFTSzsKLQl9Ci0JaWYgKHJkZXYt PmlycS5hZm10WzRdKSB7Ci0JCURSTV9ERUJVRygiZXZlcmdyZWVuX2lycV9zZXQ6IGhkbWkgNFxu Iik7Ci0JCWFmbXQ1IHw9IEFGTVRfQVpfRk9STUFUX1dUUklHX01BU0s7Ci0JfQotCWlmIChyZGV2 LT5pcnEuYWZtdFs1XSkgewotCQlEUk1fREVCVUcoImV2ZXJncmVlbl9pcnFfc2V0OiBoZG1pIDVc biIpOwotCQlhZm10NiB8PSBBRk1UX0FaX0ZPUk1BVF9XVFJJR19NQVNLOwotCX0KLQogCWlmIChy ZGV2LT5mYW1pbHkgPj0gQ0hJUF9DQVlNQU4pIHsKIAkJY2F5bWFuX2NwX2ludF9jbnRsX3NldHVw KHJkZXYsIDAsIGNwX2ludF9jbnRsKTsKIAkJY2F5bWFuX2NwX2ludF9jbnRsX3NldHVwKHJkZXYs IDEsIGNwX2ludF9jbnRsMSk7CkBAIC00NjE2LDYgKzQ1ODMsMTIgQEAgaW50IGV2ZXJncmVlbl9p cnFfc2V0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCQkJCQkJIERDX0hQRHhfUlhfSU5U X0VOLAogCQkJCQkJIHJkZXYtPmlycS5ocGRbaV0sICJIUEQiLCBpKTsKIAorCQlyYWRlb25faXJx X2ttc19zZXRfaXJxX25fZW5hYmxlZChyZGV2LAorCQkJCQkJIEFGTVRfQVVESU9fUEFDS0VUX0NP TlRST0wgKworCQkJCQkJIGNydGNfb2Zmc2V0c1tpXSwKKwkJCQkJCSBBRk1UX0FaX0ZPUk1BVF9X VFJJR19NQVNLLAorCQkJCQkJIHJkZXYtPmlycS5hZm10W2ldLCAiaGRtaSIsIGkpOworCiAJCWlm IChpIDwgcmRldi0+bnVtX2NydGMpIHsKIAkJCXJhZGVvbl9pcnFfa21zX3NldF9pcnFfbl9lbmFi bGVkKAogCQkJICAgIHJkZXYsIElOVF9NQVNLICsgY3J0Y19vZmZzZXRzW2ldLCBWQkxBTktfSU5U X01BU0ssCkBAIC00NjI5LDEzICs0NjAyLDYgQEAgaW50IGV2ZXJncmVlbl9pcnFfc2V0KHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2KQogCWVsc2UKIAkJV1JFRzMyKENHX1RIRVJNQUxfSU5ULCB0 aGVybWFsX2ludCk7CiAKLQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJH UkVFTl9DUlRDMF9SRUdJU1RFUl9PRkZTRVQsIGFmbXQxKTsKLQlXUkVHMzIoQUZNVF9BVURJT19Q QUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMV9SRUdJU1RFUl9PRkZTRVQsIGFmbXQyKTsK LQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMl9SRUdJ U1RFUl9PRkZTRVQsIGFmbXQzKTsKLQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCAr IEVWRVJHUkVFTl9DUlRDM19SRUdJU1RFUl9PRkZTRVQsIGFmbXQ0KTsKLQlXUkVHMzIoQUZNVF9B VURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDNF9SRUdJU1RFUl9PRkZTRVQsIGFm bXQ1KTsKLQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRD NV9SRUdJU1RFUl9PRkZTRVQsIGFmbXQ2KTsKLQogCS8qIHBvc3RpbmcgcmVhZCAqLwogCVJSRUcz MihTUkJNX1NUQVRVUyk7CiAKQEAgLTQ2NDYsMTUgKzQ2MTIsMTkgQEAgc3RhdGljIHZvaWQgZXZl cmdyZWVuX2lycV9hY2soc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7CiAJaW50IGk7CiAJ dTMyICpkaXNwX2ludCA9IHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmRpc3BfaW50Owot CXUzMiB0bXA7CisJdTMyICphZm10X3N0YXR1cyA9IHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdy ZWVuLmFmbXRfc3RhdHVzOwogCiAJZm9yIChpID0gMDsgaSA8IEVWRVJHUkVFTl9NQVhfRElTUF9S RUdJU1RFUlM7IGkrKykgewogCQlkaXNwX2ludFtpXSA9IFJSRUczMihESVNQX0lOVEVSUlVQVF9T VEFUVVMoaSkpOworCQlhZm10X3N0YXR1c1tpXSA9IFJSRUczMihBRk1UX1NUQVRVUyArIGNydGNf b2Zmc2V0c1tpXSk7CiAKIAkJaWYgKGRpc3BfaW50W2ldICYgRENfSFBEeF9JTlRFUlJVUFQpCiAJ CQlXUkVHMzJfT1IoRENfSFBEeF9JTlRfQ09OVFJPTChpKSwgRENfSFBEeF9JTlRfQUNLKTsKIAkJ aWYgKGRpc3BfaW50W2ldICYgRENfSFBEeF9SWF9JTlRFUlJVUFQpCiAJCQlXUkVHMzJfT1IoRENf SFBEeF9JTlRfQ09OVFJPTChpKSwgRENfSFBEeF9SWF9JTlRfQUNLKTsKKwkJaWYgKGFmbXRfc3Rh dHVzW2ldICYgQUZNVF9BWl9GT1JNQVRfV1RSSUcpCisJCQlXUkVHMzJfT1IoQUZNVF9BVURJT19Q QUNLRVRfQ09OVFJPTCArIGNydGNfb2Zmc2V0c1tpXSwKKwkJCQkgIEFGTVRfQVpfRk9STUFUX1dU UklHX0FDSyk7CiAKIAkJaWYgKGkgPCByZGV2LT5udW1fY3J0YykgewogCQkJaWYgKGRpc3BfaW50 W2ldICYgTEJfRHhfVkJMQU5LX0lOVEVSUlVQVCkKQEAgLTQ2NzcsMTIgKzQ2NDcsNiBAQCBzdGF0 aWMgdm9pZCBldmVyZ3JlZW5faXJxX2FjayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAkJ cmRldi0+aXJxLnN0YXRfcmVncy5ldmVyZ3JlZW4uZDZncnBoX2ludCA9IFJSRUczMihHUlBIX0lO VF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VUKTsKIAl9CiAKLQlyZGV2 LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czEgPSBSUkVHMzIoQUZNVF9TVEFU VVMgKyBFVkVSR1JFRU5fQ1JUQzBfUkVHSVNURVJfT0ZGU0VUKTsKLQlyZGV2LT5pcnEuc3RhdF9y ZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czIgPSBSUkVHMzIoQUZNVF9TVEFUVVMgKyBFVkVSR1JF RU5fQ1JUQzFfUkVHSVNURVJfT0ZGU0VUKTsKLQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVl bi5hZm10X3N0YXR1czMgPSBSUkVHMzIoQUZNVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzJfUkVH SVNURVJfT0ZGU0VUKTsKLQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1 czQgPSBSUkVHMzIoQUZNVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzNfUkVHSVNURVJfT0ZGU0VU KTsKLQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czUgPSBSUkVHMzIo QUZNVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzRfUkVHSVNURVJfT0ZGU0VUKTsKLQlyZGV2LT5p cnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czYgPSBSUkVHMzIoQUZNVF9TVEFUVVMg KyBFVkVSR1JFRU5fQ1JUQzVfUkVHSVNURVJfT0ZGU0VUKTsKIAogCWlmIChyZGV2LT5pcnEuc3Rh dF9yZWdzLmV2ZXJncmVlbi5kMWdycGhfaW50ICYgR1JQSF9QRkxJUF9JTlRfT0NDVVJSRUQpCiAJ CVdSRUczMihHUlBIX0lOVF9TVEFUVVMgKyBFVkVSR1JFRU5fQ1JUQzBfUkVHSVNURVJfT0ZGU0VU LCBHUlBIX1BGTElQX0lOVF9DTEVBUik7CkBAIC00NzAyLDM3ICs0NjY2LDYgQEAgc3RhdGljIHZv aWQgZXZlcmdyZWVuX2lycV9hY2soc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJCWlmIChy ZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5kNmdycGhfaW50ICYgR1JQSF9QRkxJUF9JTlRf T0NDVVJSRUQpCiAJCQlXUkVHMzIoR1JQSF9JTlRfU1RBVFVTICsgRVZFUkdSRUVOX0NSVEM1X1JF R0lTVEVSX09GRlNFVCwgR1JQSF9QRkxJUF9JTlRfQ0xFQVIpOwogCX0KLQotCWlmIChyZGV2LT5p cnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czEgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJ RykgewotCQl0bXAgPSBSUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVF Tl9DUlRDMF9SRUdJU1RFUl9PRkZTRVQpOwotCQl0bXAgfD0gQUZNVF9BWl9GT1JNQVRfV1RSSUdf QUNLOwotCQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRD MF9SRUdJU1RFUl9PRkZTRVQsIHRtcCk7Ci0JfQotCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2 ZXJncmVlbi5hZm10X3N0YXR1czIgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykgewotCQl0bXAgPSBS UkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMV9SRUdJU1RF Ul9PRkZTRVQpOwotCQl0bXAgfD0gQUZNVF9BWl9GT1JNQVRfV1RSSUdfQUNLOwotCQlXUkVHMzIo QUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMV9SRUdJU1RFUl9PRkZT RVQsIHRtcCk7Ci0JfQotCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0 YXR1czMgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykgewotCQl0bXAgPSBSUkVHMzIoQUZNVF9BVURJ T19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMl9SRUdJU1RFUl9PRkZTRVQpOwotCQl0 bXAgfD0gQUZNVF9BWl9GT1JNQVRfV1RSSUdfQUNLOwotCQlXUkVHMzIoQUZNVF9BVURJT19QQUNL RVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDMl9SRUdJU1RFUl9PRkZTRVQsIHRtcCk7Ci0JfQot CWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czQgJiBBRk1UX0Fa X0ZPUk1BVF9XVFJJRykgewotCQl0bXAgPSBSUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJP TCArIEVWRVJHUkVFTl9DUlRDM19SRUdJU1RFUl9PRkZTRVQpOwotCQl0bXAgfD0gQUZNVF9BWl9G T1JNQVRfV1RSSUdfQUNLOwotCQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVW RVJHUkVFTl9DUlRDM19SRUdJU1RFUl9PRkZTRVQsIHRtcCk7Ci0JfQotCWlmIChyZGV2LT5pcnEu c3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czUgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykg ewotCQl0bXAgPSBSUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9D UlRDNF9SRUdJU1RFUl9PRkZTRVQpOwotCQl0bXAgfD0gQUZNVF9BWl9GT1JNQVRfV1RSSUdfQUNL OwotCQlXUkVHMzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDNF9S RUdJU1RFUl9PRkZTRVQsIHRtcCk7Ci0JfQotCWlmIChyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJn cmVlbi5hZm10X3N0YXR1czYgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykgewotCQl0bXAgPSBSUkVH MzIoQUZNVF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDNV9SRUdJU1RFUl9P RkZTRVQpOwotCQl0bXAgfD0gQUZNVF9BWl9GT1JNQVRfV1RSSUdfQUNLOwotCQlXUkVHMzIoQUZN VF9BVURJT19QQUNLRVRfQ09OVFJPTCArIEVWRVJHUkVFTl9DUlRDNV9SRUdJU1RFUl9PRkZTRVQs IHRtcCk7Ci0JfQogfQogCiBzdGF0aWMgdm9pZCBldmVyZ3JlZW5faXJxX2Rpc2FibGUoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYpCkBAIC00Nzc4LDcgKzQ3MTEsOCBAQCBzdGF0aWMgdTMyIGV2 ZXJncmVlbl9nZXRfaWhfd3B0cihzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIGludCBldmVy Z3JlZW5faXJxX3Byb2Nlc3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiB7CiAJdTMyICpk aXNwX2ludCA9IHJkZXYtPmlycS5zdGF0X3JlZ3MuZXZlcmdyZWVuLmRpc3BfaW50OwotCXUzMiBj cnRjX2lkeCwgaHBkX2lkeDsKKwl1MzIgKmFmbXRfc3RhdHVzID0gcmRldi0+aXJxLnN0YXRfcmVn cy5ldmVyZ3JlZW4uYWZtdF9zdGF0dXM7CisJdTMyIGNydGNfaWR4LCBocGRfaWR4LCBhZm10X2lk eDsKIAl1MzIgbWFzazsKIAl1MzIgd3B0cjsKIAl1MzIgcnB0cjsKQEAgLTQ4OTQsNTkgKzQ4Mjgs MTkgQEAgaW50IGV2ZXJncmVlbl9pcnFfcHJvY2VzcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl dikKIAogCQkJYnJlYWs7CiAJCWNhc2UgNDQ6IC8qIGhkbWkgKi8KLQkJCXN3aXRjaCAoc3JjX2Rh dGEpIHsKLQkJCWNhc2UgMDoKLQkJCQlpZiAoIShyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVl bi5hZm10X3N0YXR1czEgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykpCi0JCQkJCURSTV9ERUJVRygi SUg6IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBpcnEgYml0P1xuIik7Ci0KLQkJCQlyZGV2LT5pcnEu c3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czEgJj0gfkFGTVRfQVpfRk9STUFUX1dUUklH OwotCQkJCXF1ZXVlX2hkbWkgPSB0cnVlOwotCQkJCURSTV9ERUJVRygiSUg6IEhETUkwXG4iKTsK LQkJCQlicmVhazsKLQkJCWNhc2UgMToKLQkJCQlpZiAoIShyZGV2LT5pcnEuc3RhdF9yZWdzLmV2 ZXJncmVlbi5hZm10X3N0YXR1czIgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykpCi0JCQkJCURSTV9E RUJVRygiSUg6IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBpcnEgYml0P1xuIik7Ci0KLQkJCQlyZGV2 LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czIgJj0gfkFGTVRfQVpfRk9STUFU X1dUUklHOwotCQkJCXF1ZXVlX2hkbWkgPSB0cnVlOwotCQkJCURSTV9ERUJVRygiSUg6IEhETUkx XG4iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgMjoKLQkJCQlpZiAoIShyZGV2LT5pcnEuc3RhdF9y ZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czMgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykpCi0JCQkJ CURSTV9ERUJVRygiSUg6IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBpcnEgYml0P1xuIik7Ci0KLQkJ CQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czMgJj0gfkFGTVRfQVpf Rk9STUFUX1dUUklHOwotCQkJCXF1ZXVlX2hkbWkgPSB0cnVlOwotCQkJCURSTV9ERUJVRygiSUg6 IEhETUkyXG4iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgMzoKLQkJCQlpZiAoIShyZGV2LT5pcnEu c3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czQgJiBBRk1UX0FaX0ZPUk1BVF9XVFJJRykp Ci0JCQkJCURSTV9ERUJVRygiSUg6IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBpcnEgYml0P1xuIik7 Ci0KLQkJCQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czQgJj0gfkFG TVRfQVpfRk9STUFUX1dUUklHOwotCQkJCXF1ZXVlX2hkbWkgPSB0cnVlOwotCQkJCURSTV9ERUJV RygiSUg6IEhETUkzXG4iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgNDoKLQkJCQlpZiAoIShyZGV2 LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czUgJiBBRk1UX0FaX0ZPUk1BVF9X VFJJRykpCi0JCQkJCURSTV9ERUJVRygiSUg6IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBpcnEgYml0 P1xuIik7Ci0KLQkJCQlyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czUg Jj0gfkFGTVRfQVpfRk9STUFUX1dUUklHOwotCQkJCXF1ZXVlX2hkbWkgPSB0cnVlOwotCQkJCURS TV9ERUJVRygiSUg6IEhETUk0XG4iKTsKLQkJCQlicmVhazsKLQkJCWNhc2UgNToKLQkJCQlpZiAo IShyZGV2LT5pcnEuc3RhdF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czYgJiBBRk1UX0FaX0ZP Uk1BVF9XVFJJRykpCi0JCQkJCURSTV9ERUJVRygiSUg6IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBp cnEgYml0P1xuIik7CisJCQlhZm10X2lkeCA9IHNyY19kYXRhOworCQkJaWYgKCEoYWZtdF9zdGF0 dXNbYWZtdF9pZHhdICYgQUZNVF9BWl9GT1JNQVRfV1RSSUcpKQorCQkJCURSTV9ERUJVRygiSUg6 IElIIGV2ZW50IHcvbyBhc3NlcnRlZCBpcnEgYml0P1xuIik7CiAKLQkJCQlyZGV2LT5pcnEuc3Rh dF9yZWdzLmV2ZXJncmVlbi5hZm10X3N0YXR1czYgJj0gfkFGTVRfQVpfRk9STUFUX1dUUklHOwot CQkJCXF1ZXVlX2hkbWkgPSB0cnVlOwotCQkJCURSTV9ERUJVRygiSUg6IEhETUk1XG4iKTsKLQkJ CQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJRFJNX0VSUk9SKCJVbmhhbmRsZWQgaW50ZXJydXB0 OiAlZCAlZFxuIiwgc3JjX2lkLCBzcmNfZGF0YSk7CisJCQlpZiAoYWZtdF9pZHggPiA1KSB7CisJ CQkJRFJNX0VSUk9SKCJVbmhhbmRsZWQgaW50ZXJydXB0OiAlZCAlZFxuIiwKKwkJCQkJICBzcmNf aWQsIHNyY19kYXRhKTsKIAkJCQlicmVhazsKIAkJCX0KKwkJCWFmbXRfc3RhdHVzW2FmbXRfaWR4 XSAmPSB+QUZNVF9BWl9GT1JNQVRfV1RSSUc7CisJCQlxdWV1ZV9oZG1pID0gdHJ1ZTsKKwkJCURS TV9ERUJVRygiSUg6IEhETUklZFxuIiwgYWZtdF9pZHggKyAxKTsKKwkJCWJyZWFrOwogCQljYXNl IDk2OgogCQkJRFJNX0VSUk9SKCJTUkJNX1JFQURfRVJST1I6IDB4JXhcbiIsIFJSRUczMihTUkJN X1JFQURfRVJST1IpKTsKIAkJCVdSRUczMihTUkJNX0lOVF9BQ0ssIDB4MSk7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaAppbmRleCBiNjA4NmVlLi5lOTYxYThhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u LmgKQEAgLTc3NCwxMiArNzc0LDcgQEAgc3RydWN0IGV2ZXJncmVlbl9pcnFfc3RhdF9yZWdzIHsK IAl1MzIgZDRncnBoX2ludDsKIAl1MzIgZDVncnBoX2ludDsKIAl1MzIgZDZncnBoX2ludDsKLQl1 MzIgYWZtdF9zdGF0dXMxOwotCXUzMiBhZm10X3N0YXR1czI7Ci0JdTMyIGFmbXRfc3RhdHVzMzsK LQl1MzIgYWZtdF9zdGF0dXM0OwotCXUzMiBhZm10X3N0YXR1czU7Ci0JdTMyIGFmbXRfc3RhdHVz NjsKKwl1MzIgYWZtdF9zdGF0dXNbNl07CiB9OwogCiBzdHJ1Y3QgY2lrX2lycV9zdGF0X3JlZ3Mg ewotLSAKMi45LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=