From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Qu Subject: [PATCH 4/6] drm/amdgpu: add BACO interfaces for vega10 Date: Thu, 10 Jan 2019 12:09:23 +0800 Message-ID: <20190110040925.25533-5-Jim.Qu@amd.com> References: <20190110040925.25533-1-Jim.Qu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190110040925.25533-1-Jim.Qu-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: Jim Qu VjI6IGRlbGF5IDIwbXMgYmVmb3JlIEJBQ08gb3V0LgpWMzogcmVuYW1lIGZ1bmN0aW9uIHRvIHZl Z2ExMF9iYWNvX3h4eAoKQ2hhbmdlLUlkOiBJYmQyYjc4YTcyM2JhNTZhOTBmZTc4YjA1MmIyN2Qw YWIwZTQ1ZjBlNQpTaWduZWQtb2ZmLWJ5OiBKaW0gUXUgPEppbS5RdUBhbWQuY29tPgpSZXZpZXdl ZC1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgpSZXZpZXdlZC1i eTogSGF3a2luZyBaaGFuZyA8SGF3a2luZy5aaGFuZ0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL01ha2VmaWxlICB8ICAgMiArLQogLi4uL2dwdS9kcm0v YW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfYmFjby5jIHwgMTM2ICsrKysrKysrKysrKysrKysr KwogLi4uL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfYmFjby5oIHwgIDMyICsr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVn YTEwX2JhY28uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2h3bWdyL3ZlZ2ExMF9iYWNvLmgKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9od21nci9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5 L2h3bWdyL01ha2VmaWxlCmluZGV4IDVhZmVjMWExMzhhYy4uZTU2MzgxMWIyZWJlIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9NYWtlZmlsZQorKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci9NYWtlZmlsZQpAQCAtMzUsNyArMzUs NyBAQCBIQVJEV0FSRV9NR1IgPSBod21nci5vIHByb2Nlc3NwcHRhYmxlcy5vIFwKIAkJdmVnYTEy X3RoZXJtYWwubyBcCiAJCXBwX292ZXJkcml2ZXIubyBzbXVfaGVscGVyLm8gXAogCQl2ZWdhMjBf cHJvY2Vzc3BwdGFibGVzLm8gdmVnYTIwX2h3bWdyLm8gdmVnYTIwX3Bvd2VydHVuZS5vIFwKLQkJ dmVnYTIwX3RoZXJtYWwubyBjb21tb25fYmFjby5vCisJCXZlZ2EyMF90aGVybWFsLm8gY29tbW9u X2JhY28ubyB2ZWdhMTBfYmFjby5vCiAKIEFNRF9QUF9IV01HUiA9ICQoYWRkcHJlZml4ICQoQU1E X1BQX1BBVEgpL2h3bWdyLywkKEhBUkRXQVJFX01HUikpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3bWdyL3ZlZ2ExMF9iYWNvLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9od21nci92ZWdhMTBfYmFjby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZjk0ZGFiMjdmNDg2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaHdtZ3IvdmVnYTEwX2JhY28uYwpAQCAtMCwwICsx LDEzNiBAQAorI2luY2x1ZGUgImFtZGdwdS5oIgorI2luY2x1ZGUgInNvYzE1LmgiCisjaW5jbHVk ZSAic29jMTVfaHdfaXAuaCIKKyNpbmNsdWRlICJ2ZWdhMTBfaXBfb2Zmc2V0LmgiCisjaW5jbHVk ZSAic29jMTVfY29tbW9uLmgiCisjaW5jbHVkZSAidmVnYTEwX2luYy5oIgorI2luY2x1ZGUgInZl Z2ExMF9wcHNtYy5oIgorI2luY2x1ZGUgInZlZ2ExMF9iYWNvLmgiCisKKworCitzdGF0aWMgY29u c3Qgc3RydWN0IHNvYzE1X2JhY29fY21kX2VudHJ5ICBwcmVfYmFjb190YmxbXSA9Cit7CisJe0NN RF9SRUFETU9ESUZZV1JJVEUsIFNPQzE1X1JFR19FTlRSWShOQklGLCAwLCBtbUJJRl9ET09SQkVM TF9DTlRMKSwgQklGX0RPT1JCRUxMX0NOVExfX0RPT1JCRUxMX01PTklUT1JfRU5fTUFTSywgQklG X0RPT1JCRUxMX0NOVExfX0RPT1JCRUxMX01PTklUT1JfRU5fX1NISUZULCAwLCAxfSwKKwl7Q01E X1dSSVRFLCBTT0MxNV9SRUdfRU5UUlkoTkJJRiwgMCwgbW1CSUZfRkJfRU4pLCAwLCAwLCAwLCAw fSwKKwl7Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKE5CSUYsIDAsIG1tQkFD T19DTlRMKSwgQkFDT19DTlRMX19CQUNPX0RTVEFURV9CWVBBU1NfTUFTSywgQkFDT19DTlRMX19C QUNPX0RTVEFURV9CWVBBU1NfX1NISUZULCAwLCAxfSwKKwl7Q01EX1JFQURNT0RJRllXUklURSwg U09DMTVfUkVHX0VOVFJZKE5CSUYsIDAsIG1tQkFDT19DTlRMKSwgQkFDT19DTlRMX19CQUNPX1JT VF9JTlRSX01BU0tfTUFTSywgQkFDT19DTlRMX19CQUNPX1JTVF9JTlRSX01BU0tfX1NISUZULCAw LCAxfQorfTsKKworc3RhdGljIGNvbnN0IHN0cnVjdCBzb2MxNV9iYWNvX2NtZF9lbnRyeSBlbnRl cl9iYWNvX3RibFtdID0KK3sKKwl7Q01EX1dBSVRGT1IsIFNPQzE1X1JFR19FTlRSWShUSE0sIDAs IG1tVEhNX0JBQ09fQ05UTCksIFRITV9CQUNPX0NOVExfX1NPQ19ET01BSU5fSURMRV9NQVNLLCBU SE1fQkFDT19DTlRMX19TT0NfRE9NQUlOX0lETEVfX1NISUZULCAweGZmZmZmZmZmLCAweDgwMDAw MDAwfSwKKwl7Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKE5CSUYsIDAsIG1t QkFDT19DTlRMKSwgQkFDT19DTlRMX19CQUNPX0VOX01BU0ssIEJBQ09fQ05UTF9fQkFDT19FTl9f U0hJRlQsIDAsIDF9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9SRUdfRU5UUlkoTkJJ RiwgMCwgbW1CQUNPX0NOVEwpLCBCQUNPX0NOVExfX0JBQ09fQklGX0xDTEtfU1dJVENIX01BU0ss IEJBQ09fQ05UTF9fQkFDT19CSUZfTENMS19TV0lUQ0hfX1NISUZULCAwLCAxfSwKKwl7Q01EX1JF QURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKE5CSUYsIDAsIG1tQkFDT19DTlRMKSwgQkFD T19DTlRMX19CQUNPX0RVTU1ZX0VOX01BU0ssIEJBQ09fQ05UTF9fQkFDT19EVU1NWV9FTl9fU0hJ RlQsIDAsIDF9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9SRUdfRU5UUlkoVEhNLCAw LCBtbVRITV9CQUNPX0NOVEwpLCBUSE1fQkFDT19DTlRMX19CQUNPX1NPQ19WRENJX1JFU0VUX01B U0ssIFRITV9CQUNPX0NOVExfX0JBQ09fU09DX1ZEQ0lfUkVTRVRfX1NISUZULCAwLCAxfSwKKwl7 Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKFRITSwgMCwgbW1USE1fQkFDT19D TlRMKSwgVEhNX0JBQ09fQ05UTF9fQkFDT19TTU5DTEtfTVVYX01BU0ssIFRITV9CQUNPX0NOVExf X0JBQ09fU01OQ0xLX01VWF9fU0hJRlQsMCwgMX0sCisJe0NNRF9SRUFETU9ESUZZV1JJVEUsIFNP QzE1X1JFR19FTlRSWShUSE0sIDAsIG1tVEhNX0JBQ09fQ05UTCksIFRITV9CQUNPX0NOVExfX0JB Q09fSVNPX0VOX01BU0ssIFRITV9CQUNPX0NOVExfX0JBQ09fSVNPX0VOX19TSElGVCwgMCwgMX0s CisJe0NNRF9SRUFETU9ESUZZV1JJVEUsIFNPQzE1X1JFR19FTlRSWShUSE0sIDAsIG1tVEhNX0JB Q09fQ05UTCksIFRITV9CQUNPX0NOVExfX0JBQ09fQUVCX0lTT19FTl9NQVNLLCBUSE1fQkFDT19D TlRMX19CQUNPX0FFQl9JU09fRU5fX1NISUZULDAsIDF9LAorCXtDTURfUkVBRE1PRElGWVdSSVRF LCBTT0MxNV9SRUdfRU5UUlkoVEhNLCAwLCBtbVRITV9CQUNPX0NOVEwpLCBUSE1fQkFDT19DTlRM X19CQUNPX0FOQV9JU09fRU5fTUFTSywgVEhNX0JBQ09fQ05UTF9fQkFDT19BTkFfSVNPX0VOX19T SElGVCwgMCwgMX0sCisJe0NNRF9SRUFETU9ESUZZV1JJVEUsIFNPQzE1X1JFR19FTlRSWShUSE0s IDAsIG1tVEhNX0JBQ09fQ05UTCksIFRITV9CQUNPX0NOVExfX0JBQ09fU09DX1JFRkNMS19PRkZf TUFTSywgICAgIFRITV9CQUNPX0NOVExfX0JBQ09fU09DX1JFRkNMS19PRkZfX1NISUZULCAwLCAx fSwKKwl7Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKE5CSUYsIDAsIG1tQkFD T19DTlRMKSwgQkFDT19DTlRMX19CQUNPX1BPV0VSX09GRl9NQVNLLCBCQUNPX0NOVExfX0JBQ09f UE9XRVJfT0ZGX19TSElGVCwgMCwgMX0sCisJe0NNRF9ERUxBWV9NUywgMCwgMCwgMCwgMCwgMCwg MCwgNSwgMH0sCisJe0NNRF9SRUFETU9ESUZZV1JJVEUsIFNPQzE1X1JFR19FTlRSWShUSE0sIDAs IG1tVEhNX0JBQ09fQ05UTCksIFRITV9CQUNPX0NOVExfX0JBQ09fUkVTRVRfRU5fTUFTSywgVEhN X0JBQ09fQ05UTF9fQkFDT19SRVNFVF9FTl9fU0hJRlQsIDAsIDF9LAorCXtDTURfUkVBRE1PRElG WVdSSVRFLCBTT0MxNV9SRUdfRU5UUlkoVEhNLCAwLCBtbVRITV9CQUNPX0NOVEwpLCBUSE1fQkFD T19DTlRMX19CQUNPX1BXUk9LUkFXX0NOVExfTUFTSywgVEhNX0JBQ09fQ05UTF9fQkFDT19QV1JP S1JBV19DTlRMX19TSElGVCwgMCwgMH0sCisJe0NNRF9XQUlURk9SLCBTT0MxNV9SRUdfRU5UUlko TkJJRiwgMCwgbW1CQUNPX0NOVEwpLCBCQUNPX0NOVExfX0JBQ09fTU9ERV9NQVNLLCBCQUNPX0NO VExfX0JBQ09fTU9ERV9fU0hJRlQsIDB4ZmZmZmZmZmYsIDB4MTAwfQorfTsKKworc3RhdGljIGNv bnN0IHN0cnVjdCBzb2MxNV9iYWNvX2NtZF9lbnRyeSBleGl0X2JhY29fdGJsW10gPQoreworCXtD TURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9SRUdfRU5UUlkoTkJJRiwgMCwgbW1CQUNPX0NOVEwp LCBCQUNPX0NOVExfX0JBQ09fUE9XRVJfT0ZGX01BU0ssIEJBQ09fQ05UTF9fQkFDT19QT1dFUl9P RkZfX1NISUZULCAwLCAwfSwKKwl7Q01EX0RFTEFZX01TLCAwLCAwLCAwLCAwLCAwLCAwLCAxMCww fSwKKwl7Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKFRITSwgMCwgbW1USE1f QkFDT19DTlRMKSwgVEhNX0JBQ09fQ05UTF9fQkFDT19TT0NfUkVGQ0xLX09GRl9NQVNLLCBUSE1f QkFDT19DTlRMX19CQUNPX1NPQ19SRUZDTEtfT0ZGX19TSElGVCwgMCwwfSwKKwl7Q01EX1JFQURN T0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKFRITSwgMCwgbW1USE1fQkFDT19DTlRMKSwgVEhN X0JBQ09fQ05UTF9fQkFDT19BTkFfSVNPX0VOX01BU0ssIFRITV9CQUNPX0NOVExfX0JBQ09fQU5B X0lTT19FTl9fU0hJRlQsIDAsIDB9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9SRUdf RU5UUlkoVEhNLCAwLCBtbVRITV9CQUNPX0NOVEwpLCBUSE1fQkFDT19DTlRMX19CQUNPX0FFQl9J U09fRU5fTUFTSywgVEhNX0JBQ09fQ05UTF9fQkFDT19BRUJfSVNPX0VOX19TSElGVCwwLCAwfSwK Kwl7Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKFRITSwgMCwgbW1USE1fQkFD T19DTlRMKSwgVEhNX0JBQ09fQ05UTF9fQkFDT19JU09fRU5fTUFTSywgVEhNX0JBQ09fQ05UTF9f QkFDT19JU09fRU5fX1NISUZULCAwLCAwfSwKKwl7Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVf UkVHX0VOVFJZKFRITSwgMCwgbW1USE1fQkFDT19DTlRMKSwgVEhNX0JBQ09fQ05UTF9fQkFDT19Q V1JPS1JBV19DTlRMX01BU0ssIFRITV9CQUNPX0NOVExfX0JBQ09fUFdST0tSQVdfQ05UTF9fU0hJ RlQsIDAsIDF9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9SRUdfRU5UUlkoVEhNLCAw LCBtbVRITV9CQUNPX0NOVEwpLCBUSE1fQkFDT19DTlRMX19CQUNPX1NNTkNMS19NVVhfTUFTSywg VEhNX0JBQ09fQ05UTF9fQkFDT19TTU5DTEtfTVVYX19TSElGVCwgMCwgMH0sCisJe0NNRF9SRUFE TU9ESUZZV1JJVEUsIFNPQzE1X1JFR19FTlRSWShUSE0sIDAsIG1tVEhNX0JBQ09fQ05UTCksIFRI TV9CQUNPX0NOVExfX0JBQ09fU09DX1ZEQ0lfUkVTRVRfTUFTSywgVEhNX0JBQ09fQ05UTF9fQkFD T19TT0NfVkRDSV9SRVNFVF9fU0hJRlQsIDAsIDB9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBT T0MxNV9SRUdfRU5UUlkoVEhNLCAwLCBtbVRITV9CQUNPX0NOVEwpLCBUSE1fQkFDT19DTlRMX19C QUNPX0VYSVRfTUFTSywgVEhNX0JBQ09fQ05UTF9fQkFDT19FWElUX19TSElGVCwgMCwgMX0sCisJ e0NNRF9SRUFETU9ESUZZV1JJVEUsIFNPQzE1X1JFR19FTlRSWShUSE0sIDAsIG1tVEhNX0JBQ09f Q05UTCksIFRITV9CQUNPX0NOVExfX0JBQ09fUkVTRVRfRU5fTUFTSywgVEhNX0JBQ09fQ05UTF9f QkFDT19SRVNFVF9FTl9fU0hJRlQsIDAsIDB9LAorCXtDTURfV0FJVEZPUiwgU09DMTVfUkVHX0VO VFJZKFRITSwgMCwgbW1USE1fQkFDT19DTlRMKSwgVEhNX0JBQ09fQ05UTF9fQkFDT19FWElUX01B U0ssIDAsIDB4ZmZmZmZmZmYsIDB9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9SRUdf RU5UUlkoVEhNLCAwLCBtbVRITV9CQUNPX0NOVEwpLCBUSE1fQkFDT19DTlRMX19CQUNPX1NCX0FY SV9GRU5DRV9NQVNLLCBUSE1fQkFDT19DTlRMX19CQUNPX1NCX0FYSV9GRU5DRV9fU0hJRlQsIDAs IDB9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9SRUdfRU5UUlkoTkJJRiwgMCwgbW1C QUNPX0NOVEwpLCBCQUNPX0NOVExfX0JBQ09fRFVNTVlfRU5fTUFTSywgQkFDT19DTlRMX19CQUNP X0RVTU1ZX0VOX19TSElGVCwgIDAsIDB9LAorCXtDTURfUkVBRE1PRElGWVdSSVRFLCBTT0MxNV9S RUdfRU5UUlkoTkJJRiwgMCwgbW1CQUNPX0NOVEwpLCBCQUNPX0NOVExfX0JBQ09fQklGX0xDTEtf U1dJVENIX01BU0sgLEJBQ09fQ05UTF9fQkFDT19CSUZfTENMS19TV0lUQ0hfX1NISUZULCAwLCAw fSwKKwl7Q01EX1JFQURNT0RJRllXUklURSwgU09DMTVfUkVHX0VOVFJZKE5CSUYsIDAsIG1tQkFD T19DTlRMKSwgQkFDT19DTlRMX19CQUNPX0VOX01BU0sgLCBCQUNPX0NOVExfX0JBQ09fRU5fX1NI SUZULCAwLDB9LAorCXtDTURfV0FJVEZPUiwgU09DMTVfUkVHX0VOVFJZKE5CSUYsIDAsIG1tQkFD T19DTlRMKSwgQkFDT19DTlRMX19CQUNPX01PREVfTUFTSywgMCwgMHhmZmZmZmZmZiwgMH0KKyB9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X2JhY29fY21kX2VudHJ5IGNsZWFuX2JhY29f dGJsW10gPQoreworCXtDTURfV1JJVEUsIFNPQzE1X1JFR19FTlRSWShOQklGLCAwLCBtbUJJT1Nf U0NSQVRDSF82KSwgMCwgMCwgMCwgMH0sCisJe0NNRF9XUklURSwgU09DMTVfUkVHX0VOVFJZKE5C SUYsIDAsIG1tQklPU19TQ1JBVENIXzcpLCAwLCAwLCAwLCAwfSwKK307CisKK2ludCB2ZWdhMTBf YmFjb19nZXRfY2FwYWJpbGl0eShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBib29sICpjYXApCit7 CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0IGFtZGdwdV9kZXZpY2UgKiko aHdtZ3ItPmFkZXYpOworCXVpbnQzMl90IHJlZywgZGF0YTsKKworCSpjYXAgPSBmYWxzZTsKKwlp ZiAoIXBobV9jYXBfZW5hYmxlZChod21nci0+cGxhdGZvcm1fZGVzY3JpcHRvci5wbGF0Zm9ybUNh cHMsIFBITV9QbGF0Zm9ybUNhcHNfQkFDTykpCisJCXJldHVybiAwOworCisJV1JFRzMyKDB4MTIw NzQsIDB4RkZGMDAwM0IpOworCWRhdGEgPSBSUkVHMzIoMHgxMjA3NSk7CisKKwlpZiAoZGF0YSA9 PSAweDEpIHsKKwkJcmVnID0gUlJFRzMyX1NPQzE1KE5CSUYsIDAsIG1tUkNDX0JJRl9TVFJBUDAp OworCisJCWlmIChyZWcgJiBSQ0NfQklGX1NUUkFQMF9fU1RSQVBfUFhfQ0FQQUJMRV9NQVNLKQor CQkJKmNhcCA9IHRydWU7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK2ludCB2ZWdhMTBfYmFjb19n ZXRfc3RhdGUoc3RydWN0IHBwX2h3bWdyICpod21nciwgZW51bSBCQUNPX1NUQVRFICpzdGF0ZSkK K3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq KShod21nci0+YWRldik7CisJdWludDMyX3QgcmVnOworCisJcmVnID0gUlJFRzMyX1NPQzE1KE5C SUYsIDAsIG1tQkFDT19DTlRMKTsKKworCWlmIChyZWcgJiBCQUNPX0NOVExfX0JBQ09fTU9ERV9N QVNLKQorCQkvKiBnZnggaGFzIGFscmVhZHkgZW50ZXJlZCBCQUNPIHN0YXRlICovCisJCSpzdGF0 ZSA9IEJBQ09fU1RBVEVfSU47CisJZWxzZQorCQkqc3RhdGUgPSBCQUNPX1NUQVRFX09VVDsKKwly ZXR1cm4gMDsKK30KKworaW50IHZlZ2ExMF9iYWNvX3NldF9zdGF0ZShzdHJ1Y3QgcHBfaHdtZ3Ig Kmh3bWdyLCBlbnVtIEJBQ09fU1RBVEUgc3RhdGUpCit7CisJZW51bSBCQUNPX1NUQVRFIGN1cl9z dGF0ZTsKKworCXZlZ2ExMF9iYWNvX2dldF9zdGF0ZShod21nciwgJmN1cl9zdGF0ZSk7CisKKwlp ZiAoY3VyX3N0YXRlID09IHN0YXRlKQorCQkvKiBhaXNjIGFscmVhZHkgaW4gdGhlIHRhcmdldCBz dGF0ZSAqLworCQlyZXR1cm4gMDsKKworCWlmIChzdGF0ZSA9PSBCQUNPX1NUQVRFX0lOKSB7CisJ CWlmIChzb2MxNV9iYWNvX3Byb2dyYW1fcmVnaXN0ZXJzKGh3bWdyLCBwcmVfYmFjb190YmwsCisJ CQkJCSAgICAgQVJSQVlfU0laRShwcmVfYmFjb190YmwpKSkgeworCQkJaWYgKHNtdW1fc2VuZF9t c2dfdG9fc21jKGh3bWdyLCBQUFNNQ19NU0dfRW50ZXJCYWNvKSkKKwkJCQlyZXR1cm4gLTE7CisK KwkJCWlmIChzb2MxNV9iYWNvX3Byb2dyYW1fcmVnaXN0ZXJzKGh3bWdyLCBlbnRlcl9iYWNvX3Ri bCwKKwkJCQkJCSAgIEFSUkFZX1NJWkUoZW50ZXJfYmFjb190YmwpKSkKKwkJCQlyZXR1cm4gMDsK KwkJfQorCX0gZWxzZSBpZiAoc3RhdGUgPT0gQkFDT19TVEFURV9PVVQpIHsKKwkJLyogSFcgcmVx dWlyZXMgYXQgbGVhc3QgMjBtcyBiZXR3ZWVuIHJlZ3VsYXRvciBvZmYgYW5kIG9uICovCisJCW1z bGVlcCgyMCk7CisJCS8qIEV4ZWN1dGUgSGFyZHdhcmUgQkFDTyBleGl0IHNlcXVlbmNlICovCisJ CWlmIChzb2MxNV9iYWNvX3Byb2dyYW1fcmVnaXN0ZXJzKGh3bWdyLCBleGl0X2JhY29fdGJsLAor CQkJCQkgICAgIEFSUkFZX1NJWkUoZXhpdF9iYWNvX3RibCkpKSB7CisJCQlpZiAoc29jMTVfYmFj b19wcm9ncmFtX3JlZ2lzdGVycyhod21nciwgY2xlYW5fYmFjb190YmwsCisJCQkJCQkgICAgIEFS UkFZX1NJWkUoY2xlYW5fYmFjb190YmwpKSkKKwkJCQlyZXR1cm4gMDsKKwkJfQorCX0KKworCXJl dHVybiAtMTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2h3 bWdyL3ZlZ2ExMF9iYWNvLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9od21nci92 ZWdhMTBfYmFjby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTkz YjFlNmQxYzY2Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvaHdtZ3IvdmVnYTEwX2JhY28uaApAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0 IDIwMTggQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j bHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMp IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAq IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAq LworI2lmbmRlZiBfX1ZFR0ExMF9CT0NPX0hfXworI2RlZmluZSBfX1ZFR0ExMF9CT0NPX0hfXwor I2luY2x1ZGUgImh3bWdyLmgiCisjaW5jbHVkZSAiY29tbW9uX2JhY28uaCIKKworZXh0ZXJuIGlu dCB2ZWdhMTBfYmFjb19nZXRfY2FwYWJpbGl0eShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBib29s ICpjYXApOworZXh0ZXJuIGludCB2ZWdhMTBfYmFjb19nZXRfc3RhdGUoc3RydWN0IHBwX2h3bWdy ICpod21nciwgZW51bSBCQUNPX1NUQVRFICpzdGF0ZSk7CitleHRlcm4gaW50IHZlZ2ExMF9iYWNv X3NldF9zdGF0ZShzdHJ1Y3QgcHBfaHdtZ3IgKmh3bWdyLCBlbnVtIEJBQ09fU1RBVEUgc3RhdGUp OworCisjZW5kaWYKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4Cg==