From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 2/5] drm/amdgpu: store pcie gen mask and link width Date: Thu, 12 Nov 2015 11:48:13 -0500 Message-ID: <1447346896-1577-2-git-send-email-alexander.deucher@amd.com> References: <1447346896-1577-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f45.google.com (mail-qg0-f45.google.com [209.85.192.45]) by gabe.freedesktop.org (Postfix) with ESMTPS id E2F416E3A0 for ; Thu, 12 Nov 2015 08:48:25 -0800 (PST) Received: by qgad10 with SMTP id d10so51098235qga.3 for ; Thu, 12 Nov 2015 08:48:25 -0800 (PST) In-Reply-To: <1447346896-1577-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Alex Deucher List-Id: dri-devel@lists.freedesktop.org V2UnbGwgbmVlZCB0aGlzIGxhdGVyIGZvciBwY2llIGRwbS4KClNpZ25lZC1vZmYtYnk6IEFsZXgg RGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgfCAgNCArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2RldmljZS5jIHwgNzggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWsuYyAgICAgICAgICAgfCAyNCArKysrLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmMgICAgICAgICAgICB8IDEzICsrLS0t CiA0IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKaW5kZXggZGNiN2M4Ny4uM2ZiYWI5MCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKQEAgLTE1OTEsOCArMTU5MSwxMiBAQCBzdHJ1Y3Qg YW1kZ3B1X3BtIHsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUJKmZ3OwkvKiBTTUMgZmlybXdhcmUg Ki8KIAl1aW50MzJfdCAgICAgICAgICAgICAgICBmd192ZXJzaW9uOwogCWNvbnN0IHN0cnVjdCBh bWRncHVfZHBtX2Z1bmNzICpmdW5jczsKKwl1aW50MzJfdCAgICAgICAgICAgICAgICBwY2llX2dl bl9tYXNrOworCXVpbnQzMl90ICAgICAgICAgICAgICAgIHBjaWVfbWx3X21hc2s7CiB9OwogCit2 b2lkIGFtZGdwdV9nZXRfcGNpZV9pbmZvKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKKwog LyoKICAqIFVWRAogICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNl LmMKaW5kZXggZDViNDIxMy4uOGI4MWEyOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kZXZpY2UuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImFtZGdwdV9pMmMu aCIKICNpbmNsdWRlICJhdG9tLmgiCiAjaW5jbHVkZSAiYW1kZ3B1X2F0b21iaW9zLmgiCisjaW5j bHVkZSAiYW1kX3BjaWUuaCIKICNpZmRlZiBDT05GSUdfRFJNX0FNREdQVV9DSUsKICNpbmNsdWRl ICJjaWsuaCIKICNlbmRpZgpAQCAtMTg4MSw2ICsxODgyLDgzIEBAIHJldHJ5OgogCXJldHVybiBy OwogfQogCit2b2lkIGFtZGdwdV9nZXRfcGNpZV9pbmZvKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQoreworCXUzMiBtYXNrOworCWludCByZXQ7CisKKwlpZiAocGNpX2lzX3Jvb3RfYnVzKGFk ZXYtPnBkZXYtPmJ1cykpCisJCXJldHVybjsKKworCWlmIChhbWRncHVfcGNpZV9nZW4yID09IDAp CisJCXJldHVybjsKKworCWlmIChhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpCisJCXJldHVybjsK KworCXJldCA9IGRybV9wY2llX2dldF9zcGVlZF9jYXBfbWFzayhhZGV2LT5kZGV2LCAmbWFzayk7 CisJaWYgKCFyZXQpIHsKKwkJYWRldi0+cG0ucGNpZV9nZW5fbWFzayA9IChDQUlMX0FTSUNfUENJ RV9MSU5LX1NQRUVEX1NVUFBPUlRfR0VOMSB8CisJCQkJCSAgQ0FJTF9BU0lDX1BDSUVfTElOS19T UEVFRF9TVVBQT1JUX0dFTjIgfAorCQkJCQkgIENBSUxfQVNJQ19QQ0lFX0xJTktfU1BFRURfU1VQ UE9SVF9HRU4zKTsKKworCQlpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVEXzI1KQorCQkJYWRldi0+ cG0ucGNpZV9nZW5fbWFzayB8PSBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjE7CisJ CWlmIChtYXNrICYgRFJNX1BDSUVfU1BFRURfNTApCisJCQlhZGV2LT5wbS5wY2llX2dlbl9tYXNr IHw9IENBSUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRfR0VOMjsKKwkJaWYgKG1hc2sgJiBEUk1f UENJRV9TUEVFRF84MCkKKwkJCWFkZXYtPnBtLnBjaWVfZ2VuX21hc2sgfD0gQ0FJTF9QQ0lFX0xJ TktfU1BFRURfU1VQUE9SVF9HRU4zOworCX0KKwlyZXQgPSBkcm1fcGNpZV9nZXRfbWF4X2xpbmtf d2lkdGgoYWRldi0+ZGRldiwgJm1hc2spOworCWlmICghcmV0KSB7CisJCXN3aXRjaCAobWFzaykg eworCQljYXNlIDMyOgorCQkJYWRldi0+cG0ucGNpZV9tbHdfbWFzayA9IChDQUlMX1BDSUVfTElO S19XSURUSF9TVVBQT1JUX1gzMiB8CisJCQkJCQkgIENBSUxfUENJRV9MSU5LX1dJRFRIX1NVUFBP UlRfWDE2IHwKKwkJCQkJCSAgQ0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YMTIgfAorCQkJ CQkJICBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1g4IHwKKwkJCQkJCSAgQ0FJTF9QQ0lF X0xJTktfV0lEVEhfU1VQUE9SVF9YNCB8CisJCQkJCQkgIENBSUxfUENJRV9MSU5LX1dJRFRIX1NV UFBPUlRfWDIgfAorCQkJCQkJICBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gxKTsKKwkJ CWJyZWFrOworCQljYXNlIDE2OgorCQkJYWRldi0+cG0ucGNpZV9tbHdfbWFzayA9IChDQUlMX1BD SUVfTElOS19XSURUSF9TVVBQT1JUX1gxNiB8CisJCQkJCQkgIENBSUxfUENJRV9MSU5LX1dJRFRI X1NVUFBPUlRfWDEyIHwKKwkJCQkJCSAgQ0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YOCB8 CisJCQkJCQkgIENBSUxfUENJRV9MSU5LX1dJRFRIX1NVUFBPUlRfWDQgfAorCQkJCQkJICBDQUlM X1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gyIHwKKwkJCQkJCSAgQ0FJTF9QQ0lFX0xJTktfV0lE VEhfU1VQUE9SVF9YMSk7CisJCQlicmVhazsKKwkJY2FzZSAxMjoKKwkJCWFkZXYtPnBtLnBjaWVf bWx3X21hc2sgPSAoQ0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YMTIgfAorCQkJCQkJICBD QUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1g4IHwKKwkJCQkJCSAgQ0FJTF9QQ0lFX0xJTktf V0lEVEhfU1VQUE9SVF9YNCB8CisJCQkJCQkgIENBSUxfUENJRV9MSU5LX1dJRFRIX1NVUFBPUlRf WDIgfAorCQkJCQkJICBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gxKTsKKwkJCWJyZWFr OworCQljYXNlIDg6CisJCQlhZGV2LT5wbS5wY2llX21sd19tYXNrID0gKENBSUxfUENJRV9MSU5L X1dJRFRIX1NVUFBPUlRfWDggfAorCQkJCQkJICBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JU X1g0IHwKKwkJCQkJCSAgQ0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9SVF9YMiB8CisJCQkJCQkg IENBSUxfUENJRV9MSU5LX1dJRFRIX1NVUFBPUlRfWDEpOworCQkJYnJlYWs7CisJCWNhc2UgNDoK KwkJCWFkZXYtPnBtLnBjaWVfbWx3X21hc2sgPSAoQ0FJTF9QQ0lFX0xJTktfV0lEVEhfU1VQUE9S VF9YNCB8CisJCQkJCQkgIENBSUxfUENJRV9MSU5LX1dJRFRIX1NVUFBPUlRfWDIgfAorCQkJCQkJ ICBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gxKTsKKwkJCWJyZWFrOworCQljYXNlIDI6 CisJCQlhZGV2LT5wbS5wY2llX21sd19tYXNrID0gKENBSUxfUENJRV9MSU5LX1dJRFRIX1NVUFBP UlRfWDIgfAorCQkJCQkJICBDQUlMX1BDSUVfTElOS19XSURUSF9TVVBQT1JUX1gxKTsKKwkJCWJy ZWFrOworCQljYXNlIDE6CisJCQlhZGV2LT5wbS5wY2llX21sd19tYXNrID0gQ0FJTF9QQ0lFX0xJ TktfV0lEVEhfU1VQUE9SVF9YMTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJYnJlYWs7CisJ CX0KKwl9Cit9CiAKIC8qCiAgKiBEZWJ1Z2ZzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9jaWsuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npay5jCmluZGV4 IGM4YjdiZWYuLmFkYWZlZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2Npay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npay5jCkBAIC0zMiw2ICsz Miw3IEBACiAjaW5jbHVkZSAiYW1kZ3B1X3ZjZS5oIgogI2luY2x1ZGUgImNpa2QuaCIKICNpbmNs dWRlICJhdG9tLmgiCisjaW5jbHVkZSAiYW1kX3BjaWUuaCIKIAogI2luY2x1ZGUgImNpay5oIgog I2luY2x1ZGUgImdtY192N18wLmgiCkBAIC0xNTY0LDggKzE1NjUsOCBAQCBzdGF0aWMgdm9pZCBj aWtfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKIAlzdHJ1 Y3QgcGNpX2RldiAqcm9vdCA9IGFkZXYtPnBkZXYtPmJ1cy0+c2VsZjsKIAlpbnQgYnJpZGdlX3Bv cywgZ3B1X3BvczsKLQl1MzIgc3BlZWRfY250bCwgbWFzaywgY3VycmVudF9kYXRhX3JhdGU7Ci0J aW50IHJldCwgaTsKKwl1MzIgc3BlZWRfY250bCwgY3VycmVudF9kYXRhX3JhdGU7CisJaW50IGk7 CiAJdTE2IHRtcDE2OwogCiAJaWYgKHBjaV9pc19yb290X2J1cyhhZGV2LT5wZGV2LT5idXMpKQpA QCAtMTU3NywyMyArMTU3OCwyMCBAQCBzdGF0aWMgdm9pZCBjaWtfcGNpZV9nZW4zX2VuYWJsZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAlpZiAoYWRldi0+ZmxhZ3MgJiBBTURfSVNfQVBV KQogCQlyZXR1cm47CiAKLQlyZXQgPSBkcm1fcGNpZV9nZXRfc3BlZWRfY2FwX21hc2soYWRldi0+ ZGRldiwgJm1hc2spOwotCWlmIChyZXQgIT0gMCkKLQkJcmV0dXJuOwotCi0JaWYgKCEobWFzayAm IChEUk1fUENJRV9TUEVFRF81MCB8IERSTV9QQ0lFX1NQRUVEXzgwKSkpCisJaWYgKCEoYWRldi0+ cG0ucGNpZV9nZW5fbWFzayAmIChDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjIgfAor CQkJCQlDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjMpKSkKIAkJcmV0dXJuOwogCiAJ c3BlZWRfY250bCA9IFJSRUczMl9QQ0lFKGl4UENJRV9MQ19TUEVFRF9DTlRMKTsKIAljdXJyZW50 X2RhdGFfcmF0ZSA9IChzcGVlZF9jbnRsICYgUENJRV9MQ19TUEVFRF9DTlRMX19MQ19DVVJSRU5U X0RBVEFfUkFURV9NQVNLKSA+PgogCQlQQ0lFX0xDX1NQRUVEX0NOVExfX0xDX0NVUlJFTlRfREFU QV9SQVRFX19TSElGVDsKLQlpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVEXzgwKSB7CisJaWYgKGFk ZXYtPnBtLnBjaWVfZ2VuX21hc2sgJiBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjMp IHsKIAkJaWYgKGN1cnJlbnRfZGF0YV9yYXRlID09IDIpIHsKIAkJCURSTV9JTkZPKCJQQ0lFIGdl biAzIGxpbmsgc3BlZWRzIGFscmVhZHkgZW5hYmxlZFxuIik7CiAJCQlyZXR1cm47CiAJCX0KIAkJ RFJNX0lORk8oImVuYWJsaW5nIFBDSUUgZ2VuIDMgbGluayBzcGVlZHMsIGRpc2FibGUgd2l0aCBh bWRncHUucGNpZV9nZW4yPTBcbiIpOwotCX0gZWxzZSBpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVE XzUwKSB7CisJfSBlbHNlIGlmIChhZGV2LT5wbS5wY2llX2dlbl9tYXNrICYgQ0FJTF9QQ0lFX0xJ TktfU1BFRURfU1VQUE9SVF9HRU4yKSB7CiAJCWlmIChjdXJyZW50X2RhdGFfcmF0ZSA9PSAxKSB7 CiAJCQlEUk1fSU5GTygiUENJRSBnZW4gMiBsaW5rIHNwZWVkcyBhbHJlYWR5IGVuYWJsZWRcbiIp OwogCQkJcmV0dXJuOwpAQCAtMTYwOSw3ICsxNjA3LDcgQEAgc3RhdGljIHZvaWQgY2lrX3BjaWVf Z2VuM19lbmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJaWYgKCFncHVfcG9zKQog CQlyZXR1cm47CiAKLQlpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVEXzgwKSB7CisJaWYgKGFkZXYt PnBtLnBjaWVfZ2VuX21hc2sgJiBDQUlMX1BDSUVfTElOS19TUEVFRF9TVVBQT1JUX0dFTjMpIHsK IAkJLyogcmUtdHJ5IGVxdWFsaXphdGlvbiBpZiBnZW4zIGlzIG5vdCBhbHJlYWR5IGVuYWJsZWQg Ki8KIAkJaWYgKGN1cnJlbnRfZGF0YV9yYXRlICE9IDIpIHsKIAkJCXUxNiBicmlkZ2VfY2ZnLCBn cHVfY2ZnOwpAQCAtMTcwNCw5ICsxNzAyLDkgQEAgc3RhdGljIHZvaWQgY2lrX3BjaWVfZ2VuM19l bmFibGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAKIAlwY2lfcmVhZF9jb25maWdfd29y ZChhZGV2LT5wZGV2LCBncHVfcG9zICsgUENJX0VYUF9MTktDVEwyLCAmdG1wMTYpOwogCXRtcDE2 ICY9IH4weGY7Ci0JaWYgKG1hc2sgJiBEUk1fUENJRV9TUEVFRF84MCkKKwlpZiAoYWRldi0+cG0u cGNpZV9nZW5fbWFzayAmIENBSUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRfR0VOMykKIAkJdG1w MTYgfD0gMzsgLyogZ2VuMyAqLwotCWVsc2UgaWYgKG1hc2sgJiBEUk1fUENJRV9TUEVFRF81MCkK KwllbHNlIGlmIChhZGV2LT5wbS5wY2llX2dlbl9tYXNrICYgQ0FJTF9QQ0lFX0xJTktfU1BFRURf U1VQUE9SVF9HRU4yKQogCQl0bXAxNiB8PSAyOyAvKiBnZW4yICovCiAJZWxzZQogCQl0bXAxNiB8 PSAxOyAvKiBnZW4xICovCkBAIC0yNDE4LDYgKzI0MTYsOCBAQCBzdGF0aWMgaW50IGNpa19jb21t b25fZWFybHlfaW5pdCh2b2lkICpoYW5kbGUpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCWFt ZGdwdV9nZXRfcGNpZV9pbmZvKGFkZXYpOworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS92aS5jCmluZGV4IDI0OTcwY2UuLjU3MDA1MzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3ZpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmku YwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImFtZGdwdV92Y2UuaCIKICNpbmNsdWRlICJh bWRncHVfdWNvZGUuaCIKICNpbmNsdWRlICJhdG9tLmgiCisjaW5jbHVkZSAiYW1kX3BjaWUuaCIK IAogI2luY2x1ZGUgImdtYy9nbWNfOF8xX2QuaCIKICNpbmNsdWRlICJnbWMvZ21jXzhfMV9zaF9t YXNrLmgiCkBAIC0xMDIwLDkgKzEwMjEsNiBAQCBzdGF0aWMgaW50IHZpX3NldF92Y2VfY2xvY2tz KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgZXZjbGssIHUzMiBlY2NsaykKIAogc3Rh dGljIHZvaWQgdmlfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK IHsKLQl1MzIgbWFzazsKLQlpbnQgcmV0OwotCiAJaWYgKHBjaV9pc19yb290X2J1cyhhZGV2LT5w ZGV2LT5idXMpKQogCQlyZXR1cm47CiAKQEAgLTEwMzIsMTEgKzEwMzAsOCBAQCBzdGF0aWMgdm9p ZCB2aV9wY2llX2dlbjNfZW5hYmxlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCWlmIChh ZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpCiAJCXJldHVybjsKIAotCXJldCA9IGRybV9wY2llX2dl dF9zcGVlZF9jYXBfbWFzayhhZGV2LT5kZGV2LCAmbWFzayk7Ci0JaWYgKHJldCAhPSAwKQotCQly ZXR1cm47Ci0KLQlpZiAoIShtYXNrICYgKERSTV9QQ0lFX1NQRUVEXzUwIHwgRFJNX1BDSUVfU1BF RURfODApKSkKKwlpZiAoIShhZGV2LT5wbS5wY2llX2dlbl9tYXNrICYgKENBSUxfUENJRV9MSU5L X1NQRUVEX1NVUFBPUlRfR0VOMiB8CisJCQkJCUNBSUxfUENJRV9MSU5LX1NQRUVEX1NVUFBPUlRf R0VOMykpKQogCQlyZXR1cm47CiAKIAkvKiB0b2RvICovCkBAIC0xNDQzLDYgKzE0MzgsOCBAQCBz dGF0aWMgaW50IHZpX2NvbW1vbl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKIAlpZiAoYW1kZ3B1 X3NtY19sb2FkX2Z3ICYmIHNtY19lbmFibGVkKQogCQlhZGV2LT5maXJtd2FyZS5zbXVfbG9hZCA9 IHRydWU7CiAKKwlhbWRncHVfZ2V0X3BjaWVfaW5mbyhhZGV2KTsKKwogCXJldHVybiAwOwogfQog Ci0tIAoxLjguMy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bAo=