From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 4/5] drm/radeon: use pcie functions for link width Date: Mon, 25 Jun 2018 16:06:05 -0500 Message-ID: <20180625210606.2736-5-alexander.deucher@amd.com> References: <20180625210606.2736-1-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180625210606.2736-1-alexander.deucher-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, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, airlied-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org Cc: Alex Deucher VGhpcyBpcyB0aGUgbGFzdCB1c2VyIG9mIGRybV9wY2llX2dldF9zcGVlZF9jYXBfbWFzay4gIFVz ZSB0aGUgcGNpCnZlcnNpb24gc28gd2UgY2FuIGRyb3AgZHJtX3BjaWVfZ2V0X3NwZWVkX2NhcF9t YXNrLgoKU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lfZHBtLmMgICB8IDIwICsrKysrKysr KysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jICAgICAgfCAyMiArKysr KysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfZHBtLmMgfCAg NCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oICAgfCAgNCArKysrCiBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgICAgICAgfCAyMiArKysrKysrKysrKystLS0tLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpX2RwbS5jICAgfCAyMCArKysrKysrKysrKysrKyst LS0tLQogNiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCAzMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2NpX2RwbS5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9jaV9kcG0uYwppbmRleCBiOTMwMmM5MTgyNzEuLmQ1ODc3NzlhODBiNCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaV9kcG0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2NpX2RwbS5jCkBAIC01Njc2LDE5ICs1Njc2LDI5IEBAIGludCBjaV9k cG1faW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAl1MTYgZGF0YV9vZmZzZXQsIHNp emU7CiAJdTggZnJldiwgY3JldjsKIAlzdHJ1Y3QgY2lfcG93ZXJfaW5mbyAqcGk7CisJZW51bSBw Y2lfYnVzX3NwZWVkIHNwZWVkX2NhcDsKKwlzdHJ1Y3QgcGNpX2RldiAqcm9vdCA9IHJkZXYtPnBk ZXYtPmJ1cy0+c2VsZjsKIAlpbnQgcmV0OwotCXUzMiBtYXNrOwogCiAJcGkgPSBremFsbG9jKHNp emVvZihzdHJ1Y3QgY2lfcG93ZXJfaW5mbyksIEdGUF9LRVJORUwpOwogCWlmIChwaSA9PSBOVUxM KQogCQlyZXR1cm4gLUVOT01FTTsKIAlyZGV2LT5wbS5kcG0ucHJpdiA9IHBpOwogCi0JcmV0ID0g ZHJtX3BjaWVfZ2V0X3NwZWVkX2NhcF9tYXNrKHJkZXYtPmRkZXYsICZtYXNrKTsKLQlpZiAocmV0 KQorCXNwZWVkX2NhcCA9IHBjaWVfZ2V0X3NwZWVkX2NhcChyb290KTsKKwlpZiAoc3BlZWRfY2Fw ID09IFBDSV9TUEVFRF9VTktOT1dOKSB7CiAJCXBpLT5zeXNfcGNpZV9tYXNrID0gMDsKLQllbHNl Ci0JCXBpLT5zeXNfcGNpZV9tYXNrID0gbWFzazsKKwl9IGVsc2UgeworCQlpZiAoc3BlZWRfY2Fw ID09IFBDSUVfU1BFRURfOF8wR1QpCisJCQlwaS0+c3lzX3BjaWVfbWFzayA9IFJBREVPTl9QQ0lF X1NQRUVEXzI1IHwKKwkJCQlSQURFT05fUENJRV9TUEVFRF81MCB8CisJCQkJUkFERU9OX1BDSUVf U1BFRURfODA7CisJCWVsc2UgaWYgKHNwZWVkX2NhcCA9PSBQQ0lFX1NQRUVEXzVfMEdUKQorCQkJ cGktPnN5c19wY2llX21hc2sgPSBSQURFT05fUENJRV9TUEVFRF8yNSB8CisJCQkJUkFERU9OX1BD SUVfU1BFRURfNTA7CisJCWVsc2UKKwkJCXBpLT5zeXNfcGNpZV9tYXNrID0gUkFERU9OX1BDSUVf U1BFRURfMjU7CisJfQogCXBpLT5mb3JjZV9wY2llX2dlbiA9IFJBREVPTl9QQ0lFX0dFTl9JTlZB TElEOwogCiAJcGktPnBjaWVfZ2VuX3BlcmZvcm1hbmNlLm1heCA9IFJBREVPTl9QQ0lFX0dFTjE7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9jaWsuYwppbmRleCA3YzczYmM3ZTJmODUuLmViY2U0NjAxYTMwNSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2Npay5jCkBAIC05NDk5LDkgKzk0OTksMTAgQEAgaW50IGNpa19zZXRfdmNlX2Nsb2Nr cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgdTMyIGV2Y2xrLCB1MzIgZWNjbGspCiBzdGF0 aWMgdm9pZCBjaWtfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikK IHsKIAlzdHJ1Y3QgcGNpX2RldiAqcm9vdCA9IHJkZXYtPnBkZXYtPmJ1cy0+c2VsZjsKKwllbnVt IHBjaV9idXNfc3BlZWQgc3BlZWRfY2FwOwogCWludCBicmlkZ2VfcG9zLCBncHVfcG9zOwotCXUz MiBzcGVlZF9jbnRsLCBtYXNrLCBjdXJyZW50X2RhdGFfcmF0ZTsKLQlpbnQgcmV0LCBpOworCXUz MiBzcGVlZF9jbnRsLCBjdXJyZW50X2RhdGFfcmF0ZTsKKwlpbnQgaTsKIAl1MTYgdG1wMTY7CiAK IAlpZiAocGNpX2lzX3Jvb3RfYnVzKHJkZXYtPnBkZXYtPmJ1cykpCkBAIC05NTE2LDIzICs5NTE3 LDI0IEBAIHN0YXRpYyB2b2lkIGNpa19wY2llX2dlbjNfZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2 aWNlICpyZGV2KQogCWlmICghKHJkZXYtPmZsYWdzICYgUkFERU9OX0lTX1BDSUUpKQogCQlyZXR1 cm47CiAKLQlyZXQgPSBkcm1fcGNpZV9nZXRfc3BlZWRfY2FwX21hc2socmRldi0+ZGRldiwgJm1h c2spOwotCWlmIChyZXQgIT0gMCkKKwlzcGVlZF9jYXAgPSBwY2llX2dldF9zcGVlZF9jYXAocm9v dCk7CisJaWYgKHNwZWVkX2NhcCA9PSBQQ0lfU1BFRURfVU5LTk9XTikKIAkJcmV0dXJuOwogCi0J aWYgKCEobWFzayAmIChEUk1fUENJRV9TUEVFRF81MCB8IERSTV9QQ0lFX1NQRUVEXzgwKSkpCisJ aWYgKChzcGVlZF9jYXAgIT0gUENJRV9TUEVFRF84XzBHVCkgJiYKKwkgICAgKHNwZWVkX2NhcCAh PSBQQ0lFX1NQRUVEXzVfMEdUKSkKIAkJcmV0dXJuOwogCiAJc3BlZWRfY250bCA9IFJSRUczMl9Q Q0lFX1BPUlQoUENJRV9MQ19TUEVFRF9DTlRMKTsKIAljdXJyZW50X2RhdGFfcmF0ZSA9IChzcGVl ZF9jbnRsICYgTENfQ1VSUkVOVF9EQVRBX1JBVEVfTUFTSykgPj4KIAkJTENfQ1VSUkVOVF9EQVRB X1JBVEVfU0hJRlQ7Ci0JaWYgKG1hc2sgJiBEUk1fUENJRV9TUEVFRF84MCkgeworCWlmIChzcGVl ZF9jYXAgPT0gUENJRV9TUEVFRF84XzBHVCkgewogCQlpZiAoY3VycmVudF9kYXRhX3JhdGUgPT0g MikgewogCQkJRFJNX0lORk8oIlBDSUUgZ2VuIDMgbGluayBzcGVlZHMgYWxyZWFkeSBlbmFibGVk XG4iKTsKIAkJCXJldHVybjsKIAkJfQogCQlEUk1fSU5GTygiZW5hYmxpbmcgUENJRSBnZW4gMyBs aW5rIHNwZWVkcywgZGlzYWJsZSB3aXRoIHJhZGVvbi5wY2llX2dlbjI9MFxuIik7Ci0JfSBlbHNl IGlmIChtYXNrICYgRFJNX1BDSUVfU1BFRURfNTApIHsKKwl9IGVsc2UgaWYgKHNwZWVkX2NhcCA9 PSBQQ0lFX1NQRUVEXzVfMEdUKSB7CiAJCWlmIChjdXJyZW50X2RhdGFfcmF0ZSA9PSAxKSB7CiAJ CQlEUk1fSU5GTygiUENJRSBnZW4gMiBsaW5rIHNwZWVkcyBhbHJlYWR5IGVuYWJsZWRcbiIpOwog CQkJcmV0dXJuOwpAQCAtOTU0OCw3ICs5NTUwLDcgQEAgc3RhdGljIHZvaWQgY2lrX3BjaWVfZ2Vu M19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCiAJaWYgKCFncHVfcG9zKQogCQly ZXR1cm47CiAKLQlpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVEXzgwKSB7CisJaWYgKHNwZWVkX2Nh cCA9PSBQQ0lFX1NQRUVEXzhfMEdUKSB7CiAJCS8qIHJlLXRyeSBlcXVhbGl6YXRpb24gaWYgZ2Vu MyBpcyBub3QgYWxyZWFkeSBlbmFibGVkICovCiAJCWlmIChjdXJyZW50X2RhdGFfcmF0ZSAhPSAy KSB7CiAJCQl1MTYgYnJpZGdlX2NmZywgZ3B1X2NmZzsKQEAgLTk2MzYsOSArOTYzOCw5IEBAIHN0 YXRpYyB2b2lkIGNpa19wY2llX2dlbjNfZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 KQogCiAJcGNpX3JlYWRfY29uZmlnX3dvcmQocmRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBf TE5LQ1RMMiwgJnRtcDE2KTsKIAl0bXAxNiAmPSB+MHhmOwotCWlmIChtYXNrICYgRFJNX1BDSUVf U1BFRURfODApCisJaWYgKHNwZWVkX2NhcCA9PSBQQ0lFX1NQRUVEXzhfMEdUKQogCQl0bXAxNiB8 PSAzOyAvKiBnZW4zICovCi0JZWxzZSBpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVEXzUwKQorCWVs c2UgaWYgKHNwZWVkX2NhcCA9PSBQQ0lFX1NQRUVEXzVfMEdUKQogCQl0bXAxNiB8PSAyOyAvKiBn ZW4yICovCiAJZWxzZQogCQl0bXAxNiB8PSAxOyAvKiBnZW4xICovCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfZHBtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2 MDBfZHBtLmMKaW5kZXggNzNkNGM1MzQ4MTE2Li41ZTA0NGM5OGZjYTIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9kcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3I2MDBfZHBtLmMKQEAgLTEzMjcsOSArMTMyNyw5IEBAIGVudW0gcmFkZW9uX3BjaWVfZ2Vu IHI2MDBfZ2V0X3BjaWVfZ2VuX3N1cHBvcnQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJ Y2FzZSBSQURFT05fUENJRV9HRU4zOgogCQlyZXR1cm4gUkFERU9OX1BDSUVfR0VOMzsKIAlkZWZh dWx0OgotCQlpZiAoKHN5c19tYXNrICYgRFJNX1BDSUVfU1BFRURfODApICYmIChkZWZhdWx0X2dl biA9PSBSQURFT05fUENJRV9HRU4zKSkKKwkJaWYgKChzeXNfbWFzayAmIFJBREVPTl9QQ0lFX1NQ RUVEXzgwKSAmJiAoZGVmYXVsdF9nZW4gPT0gUkFERU9OX1BDSUVfR0VOMykpCiAJCQlyZXR1cm4g UkFERU9OX1BDSUVfR0VOMzsKLQkJZWxzZSBpZiAoKHN5c19tYXNrICYgRFJNX1BDSUVfU1BFRURf NTApICYmIChkZWZhdWx0X2dlbiA9PSBSQURFT05fUENJRV9HRU4yKSkKKwkJZWxzZSBpZiAoKHN5 c19tYXNrICYgUkFERU9OX1BDSUVfU1BFRURfNTApICYmIChkZWZhdWx0X2dlbiA9PSBSQURFT05f UENJRV9HRU4yKSkKIAkJCXJldHVybiBSQURFT05fUENJRV9HRU4yOwogCQllbHNlCiAJCQlyZXR1 cm4gUkFERU9OX1BDSUVfR0VOMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCmluZGV4IDRhMmViNDA5 YWFjYy4uMWE2ZjZlZGIzNTE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uLmgKQEAgLTE2NTMsNiAr MTY1MywxMCBAQCBzdHJ1Y3QgcmFkZW9uX3BtIHsKIAlzdHJ1Y3QgcmFkZW9uX2RwbSAgICAgICBk cG07CiB9OwogCisjZGVmaW5lIFJBREVPTl9QQ0lFX1NQRUVEXzI1IDEKKyNkZWZpbmUgUkFERU9O X1BDSUVfU1BFRURfNTAgMgorI2RlZmluZSBSQURFT05fUENJRV9TUEVFRF84MCA0CisKIGludCBy YWRlb25fcG1fZ2V0X3R5cGVfaW5kZXgoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJCQkg ICAgIGVudW0gcmFkZW9uX3BtX3N0YXRlX3R5cGUgcHNfdHlwZSwKIAkJCSAgICAgaW50IGluc3Rh bmNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2kuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vc2kuYwppbmRleCAxOTA3Yzk1MGQ3NmYuLjg1YzYwNGQyOTIzNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vc2kuYwpAQCAtNzA4Miw5ICs3MDgyLDEwIEBAIGludCBzaV9zZXRfdXZkX2Nsb2Nr cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgdTMyIHZjbGssIHUzMiBkY2xrKQogc3RhdGlj IHZvaWQgc2lfcGNpZV9nZW4zX2VuYWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIHsK IAlzdHJ1Y3QgcGNpX2RldiAqcm9vdCA9IHJkZXYtPnBkZXYtPmJ1cy0+c2VsZjsKKwllbnVtIHBj aV9idXNfc3BlZWQgc3BlZWRfY2FwOwogCWludCBicmlkZ2VfcG9zLCBncHVfcG9zOwotCXUzMiBz cGVlZF9jbnRsLCBtYXNrLCBjdXJyZW50X2RhdGFfcmF0ZTsKLQlpbnQgcmV0LCBpOworCXUzMiBz cGVlZF9jbnRsLCBjdXJyZW50X2RhdGFfcmF0ZTsKKwlpbnQgaTsKIAl1MTYgdG1wMTY7CiAKIAlp ZiAocGNpX2lzX3Jvb3RfYnVzKHJkZXYtPnBkZXYtPmJ1cykpCkBAIC03MDk5LDIzICs3MTAwLDI0 IEBAIHN0YXRpYyB2b2lkIHNpX3BjaWVfZ2VuM19lbmFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2Ug KnJkZXYpCiAJaWYgKCEocmRldi0+ZmxhZ3MgJiBSQURFT05fSVNfUENJRSkpCiAJCXJldHVybjsK IAotCXJldCA9IGRybV9wY2llX2dldF9zcGVlZF9jYXBfbWFzayhyZGV2LT5kZGV2LCAmbWFzayk7 Ci0JaWYgKHJldCAhPSAwKQorCXNwZWVkX2NhcCA9IHBjaWVfZ2V0X3NwZWVkX2NhcChyb290KTsK KwlpZiAoc3BlZWRfY2FwID09IFBDSV9TUEVFRF9VTktOT1dOKQogCQlyZXR1cm47CiAKLQlpZiAo IShtYXNrICYgKERSTV9QQ0lFX1NQRUVEXzUwIHwgRFJNX1BDSUVfU1BFRURfODApKSkKKwlpZiAo KHNwZWVkX2NhcCAhPSBQQ0lFX1NQRUVEXzhfMEdUKSAmJgorCSAgICAoc3BlZWRfY2FwICE9IFBD SUVfU1BFRURfNV8wR1QpKQogCQlyZXR1cm47CiAKIAlzcGVlZF9jbnRsID0gUlJFRzMyX1BDSUVf UE9SVChQQ0lFX0xDX1NQRUVEX0NOVEwpOwogCWN1cnJlbnRfZGF0YV9yYXRlID0gKHNwZWVkX2Nu dGwgJiBMQ19DVVJSRU5UX0RBVEFfUkFURV9NQVNLKSA+PgogCQlMQ19DVVJSRU5UX0RBVEFfUkFU RV9TSElGVDsKLQlpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVEXzgwKSB7CisJaWYgKHNwZWVkX2Nh cCA9PSBQQ0lFX1NQRUVEXzhfMEdUKSB7CiAJCWlmIChjdXJyZW50X2RhdGFfcmF0ZSA9PSAyKSB7 CiAJCQlEUk1fSU5GTygiUENJRSBnZW4gMyBsaW5rIHNwZWVkcyBhbHJlYWR5IGVuYWJsZWRcbiIp OwogCQkJcmV0dXJuOwogCQl9CiAJCURSTV9JTkZPKCJlbmFibGluZyBQQ0lFIGdlbiAzIGxpbmsg c3BlZWRzLCBkaXNhYmxlIHdpdGggcmFkZW9uLnBjaWVfZ2VuMj0wXG4iKTsKLQl9IGVsc2UgaWYg KG1hc2sgJiBEUk1fUENJRV9TUEVFRF81MCkgeworCX0gZWxzZSBpZiAoc3BlZWRfY2FwID09IFBD SUVfU1BFRURfNV8wR1QpIHsKIAkJaWYgKGN1cnJlbnRfZGF0YV9yYXRlID09IDEpIHsKIAkJCURS TV9JTkZPKCJQQ0lFIGdlbiAyIGxpbmsgc3BlZWRzIGFscmVhZHkgZW5hYmxlZFxuIik7CiAJCQly ZXR1cm47CkBAIC03MTMxLDcgKzcxMzMsNyBAQCBzdGF0aWMgdm9pZCBzaV9wY2llX2dlbjNfZW5h YmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCWlmICghZ3B1X3BvcykKIAkJcmV0dXJu OwogCi0JaWYgKG1hc2sgJiBEUk1fUENJRV9TUEVFRF84MCkgeworCWlmIChzcGVlZF9jYXAgPT0g UENJRV9TUEVFRF84XzBHVCkgewogCQkvKiByZS10cnkgZXF1YWxpemF0aW9uIGlmIGdlbjMgaXMg bm90IGFscmVhZHkgZW5hYmxlZCAqLwogCQlpZiAoY3VycmVudF9kYXRhX3JhdGUgIT0gMikgewog CQkJdTE2IGJyaWRnZV9jZmcsIGdwdV9jZmc7CkBAIC03MjE5LDkgKzcyMjEsOSBAQCBzdGF0aWMg dm9pZCBzaV9wY2llX2dlbjNfZW5hYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQogCiAJ cGNpX3JlYWRfY29uZmlnX3dvcmQocmRldi0+cGRldiwgZ3B1X3BvcyArIFBDSV9FWFBfTE5LQ1RM MiwgJnRtcDE2KTsKIAl0bXAxNiAmPSB+MHhmOwotCWlmIChtYXNrICYgRFJNX1BDSUVfU1BFRURf ODApCisJaWYgKHNwZWVkX2NhcCA9PSBQQ0lFX1NQRUVEXzhfMEdUKQogCQl0bXAxNiB8PSAzOyAv KiBnZW4zICovCi0JZWxzZSBpZiAobWFzayAmIERSTV9QQ0lFX1NQRUVEXzUwKQorCWVsc2UgaWYg KHNwZWVkX2NhcCA9PSBQQ0lFX1NQRUVEXzVfMEdUKQogCQl0bXAxNiB8PSAyOyAvKiBnZW4yICov CiAJZWxzZQogCQl0bXAxNiB8PSAxOyAvKiBnZW4xICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3NpX2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaV9kcG0uYwpp bmRleCBmZWE4ODA3OGNmOGUuLjhmYjYwYjNhZjAxNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9zaV9kcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpX2RwbS5j CkBAIC02ODk5LDggKzY4OTksOSBAQCBpbnQgc2lfZHBtX2luaXQoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpCiAJc3RydWN0IG5pX3Bvd2VyX2luZm8gKm5pX3BpOwogCXN0cnVjdCBzaV9wb3dl cl9pbmZvICpzaV9waTsKIAlzdHJ1Y3QgYXRvbV9jbG9ja19kaXZpZGVycyBkaXZpZGVyczsKKwll bnVtIHBjaV9idXNfc3BlZWQgc3BlZWRfY2FwOworCXN0cnVjdCBwY2lfZGV2ICpyb290ID0gcmRl di0+cGRldi0+YnVzLT5zZWxmOwogCWludCByZXQ7Ci0JdTMyIG1hc2s7CiAKIAlzaV9waSA9IGt6 YWxsb2Moc2l6ZW9mKHN0cnVjdCBzaV9wb3dlcl9pbmZvKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKHNp X3BpID09IE5VTEwpCkBAIC02OTEwLDExICs2OTExLDIwIEBAIGludCBzaV9kcG1faW5pdChzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikKIAllZ19waSA9ICZuaV9waS0+ZWc7CiAJcGkgPSAmZWdf cGktPnJ2N3h4OwogCi0JcmV0ID0gZHJtX3BjaWVfZ2V0X3NwZWVkX2NhcF9tYXNrKHJkZXYtPmRk ZXYsICZtYXNrKTsKLQlpZiAocmV0KQorCXNwZWVkX2NhcCA9IHBjaWVfZ2V0X3NwZWVkX2NhcChy b290KTsKKwlpZiAoc3BlZWRfY2FwID09IFBDSV9TUEVFRF9VTktOT1dOKSB7CiAJCXNpX3BpLT5z eXNfcGNpZV9tYXNrID0gMDsKLQllbHNlCi0JCXNpX3BpLT5zeXNfcGNpZV9tYXNrID0gbWFzazsK Kwl9IGVsc2UgeworCQlpZiAoc3BlZWRfY2FwID09IFBDSUVfU1BFRURfOF8wR1QpCisJCQlzaV9w aS0+c3lzX3BjaWVfbWFzayA9IFJBREVPTl9QQ0lFX1NQRUVEXzI1IHwKKwkJCQlSQURFT05fUENJ RV9TUEVFRF81MCB8CisJCQkJUkFERU9OX1BDSUVfU1BFRURfODA7CisJCWVsc2UgaWYgKHNwZWVk X2NhcCA9PSBQQ0lFX1NQRUVEXzVfMEdUKQorCQkJc2lfcGktPnN5c19wY2llX21hc2sgPSBSQURF T05fUENJRV9TUEVFRF8yNSB8CisJCQkJUkFERU9OX1BDSUVfU1BFRURfNTA7CisJCWVsc2UKKwkJ CXNpX3BpLT5zeXNfcGNpZV9tYXNrID0gUkFERU9OX1BDSUVfU1BFRURfMjU7CisJfQogCXNpX3Bp LT5mb3JjZV9wY2llX2dlbiA9IFJBREVPTl9QQ0lFX0dFTl9JTlZBTElEOwogCXNpX3BpLT5ib290 X3BjaWVfZ2VuID0gc2lfZ2V0X2N1cnJlbnRfcGNpZV9zcGVlZChyZGV2KTsKIAotLSAKMi4xMy42 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4 IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK