From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH v2 03/24] drm/msm: dpu: Remove dpu_power_client Date: Fri, 16 Nov 2018 13:42:13 -0500 Message-ID: <20181116184238.170034-4-sean@poorly.run> References: <20181116184238.170034-1-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181116184238.170034-1-sean@poorly.run> 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, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: Sean Paul List-Id: linux-arm-msm@vger.kernel.org RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpUaGVyZSdzIG9ubHkgb25l IGNsaWVudCAtLSBjb3JlLCBhbmQgaXQncyBvbmx5IHVzZWQgZm9yIHJ1bnRpbWUgcG0gd2hpY2gK aXMgYWxyZWFkeSByZWZjb3VudGVkLgoKQ2hhbmdlcyBpbiB2MjoKLSBOb25lCgpSZXZpZXdlZC1i eTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KU2lnbmVkLW9mZi1i eTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jICAgICAgIHwgMjIgKy0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaCAgICAgICB8ICAxIC0KIC4uLi9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jICB8IDk2ICstLS0tLS0tLS0tLS0tLS0tLS0KIC4u Li9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oICB8IDg2ICstLS0tLS0t LS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMTk5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMu YyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwppbmRleCA5ODVjODU1 Nzk2YWUuLjIzMDk0ZDEwOGU4MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2ttcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9r bXMuYwpAQCAtNjc2LDExICs2NzYsNiBAQCBzdGF0aWMgdm9pZCBfZHB1X2ttc19od19kZXN0cm95 KHN0cnVjdCBkcHVfa21zICpkcHVfa21zKQogCQlkcHVfaHdfY2F0YWxvZ19kZWluaXQoZHB1X2tt cy0+Y2F0YWxvZyk7CiAJZHB1X2ttcy0+Y2F0YWxvZyA9IE5VTEw7CiAKLQlpZiAoZHB1X2ttcy0+ Y29yZV9jbGllbnQpCi0JCWRwdV9wb3dlcl9jbGllbnRfZGVzdHJveSgmZHB1X2ttcy0+cGhhbmRs ZSwKLQkJCWRwdV9rbXMtPmNvcmVfY2xpZW50KTsKLQlkcHVfa21zLT5jb3JlX2NsaWVudCA9IE5V TEw7Ci0KIAlpZiAoZHB1X2ttcy0+dmJpZltWQklGX05SVF0pCiAJCWRldm1faW91bm1hcCgmZHB1 X2ttcy0+cGRldi0+ZGV2LCBkcHVfa21zLT52YmlmW1ZCSUZfTlJUXSk7CiAJZHB1X2ttcy0+dmJp ZltWQklGX05SVF0gPSBOVUxMOwpAQCAtOTEzLDE3ICs5MDgsNiBAQCBzdGF0aWMgaW50IGRwdV9r bXNfaHdfaW5pdChzdHJ1Y3QgbXNtX2ttcyAqa21zKQogCQlkcHVfa21zLT5yZWdfZG1hX2xlbiA9 IGRwdV9pb21hcF9zaXplKGRwdV9rbXMtPnBkZXYsICJyZWdkbWEiKTsKIAl9CiAKLQlkcHVfa21z LT5jb3JlX2NsaWVudCA9IGRwdV9wb3dlcl9jbGllbnRfY3JlYXRlKCZkcHVfa21zLT5waGFuZGxl LAotCQkJCQkiY29yZSIpOwotCWlmIChJU19FUlJfT1JfTlVMTChkcHVfa21zLT5jb3JlX2NsaWVu dCkpIHsKLQkJcmMgPSBQVFJfRVJSKGRwdV9rbXMtPmNvcmVfY2xpZW50KTsKLQkJaWYgKCFkcHVf a21zLT5jb3JlX2NsaWVudCkKLQkJCXJjID0gLUVJTlZBTDsKLQkJRFBVX0VSUk9SKCJkcHUgcG93 ZXIgY2xpZW50IGNyZWF0ZSBmYWlsZWQ6ICVkXG4iLCByYyk7Ci0JCWRwdV9rbXMtPmNvcmVfY2xp ZW50ID0gTlVMTDsKLQkJZ290byBlcnJvcjsKLQl9Ci0KIAlwbV9ydW50aW1lX2dldF9zeW5jKCZk cHVfa21zLT5wZGV2LT5kZXYpOwogCiAJX2RwdV9rbXNfY29yZV9od19yZXZfaW5pdChkcHVfa21z KTsKQEAgLTExNTcsOCArMTE0MSw3IEBAIHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZHB1X3J1 bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJCXJldHVybiByYzsKIAl9CiAKLQly YyA9IGRwdV9wb3dlcl9yZXNvdXJjZV9lbmFibGUoJmRwdV9rbXMtPnBoYW5kbGUsCi0JCQlkcHVf a21zLT5jb3JlX2NsaWVudCwgZmFsc2UpOworCXJjID0gZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJs ZSgmZHB1X2ttcy0+cGhhbmRsZSwgZmFsc2UpOwogCWlmIChyYykKIAkJRFBVX0VSUk9SKCJyZXNv dXJjZSBkaXNhYmxlIGZhaWxlZDogJWRcbiIsIHJjKTsKIApAQCAtMTE4OSw4ICsxMTcyLDcgQEAg c3RhdGljIGludCBfX21heWJlX3VudXNlZCBkcHVfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmlj ZSAqZGV2KQogCQlyZXR1cm4gcmM7CiAJfQogCi0JcmMgPSBkcHVfcG93ZXJfcmVzb3VyY2VfZW5h YmxlKCZkcHVfa21zLT5waGFuZGxlLAotCQkJZHB1X2ttcy0+Y29yZV9jbGllbnQsIHRydWUpOwor CXJjID0gZHB1X3Bvd2VyX3Jlc291cmNlX2VuYWJsZSgmZHB1X2ttcy0+cGhhbmRsZSwgdHJ1ZSk7 CiAJaWYgKHJjKQogCQlEUFVfRVJST1IoInJlc291cmNlIGVuYWJsZSBmYWlsZWQ6ICVkXG4iLCBy Yyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMu aCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaAppbmRleCAyYTM2MjVl ZWY2ZDMuLmYyYzc4ZGViMDg1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2ttcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9r bXMuaApAQCAtMTE0LDcgKzExNCw2IEBAIHN0cnVjdCBkcHVfa21zIHsKIAlzdHJ1Y3QgZHB1X21k c3NfY2ZnICpjYXRhbG9nOwogCiAJc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgcGhhbmRsZTsKLQlz dHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqY29yZV9jbGllbnQ7CiAJc3RydWN0IGRwdV9wb3dlcl9l dmVudCAqcG93ZXJfZXZlbnQ7CiAKIAkvKiBkaXJlY3RvcnkgZW50cnkgZm9yIGRlYnVnZnMgKi8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5k bGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYwpp bmRleCA4YzZmOTJhYWFmODcuLjhlNjRmMGE1MjE0NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYwpAQCAtMzUsNTkgKzM1LDExIEBAIHN0 YXRpYyB2b2lkIGRwdV9wb3dlcl9ldmVudF90cmlnZ2VyX2xvY2tlZChzdHJ1Y3QgZHB1X3Bvd2Vy X2hhbmRsZSAqcGhhbmRsZSwKIAl9CiB9CiAKLXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpkcHVf cG93ZXJfY2xpZW50X2NyZWF0ZSgKLQlzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwg Y2hhciAqY2xpZW50X25hbWUpCi17Ci0Jc3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKmNsaWVudDsK LQlzdGF0aWMgdTMyIGlkOwotCi0JaWYgKCFjbGllbnRfbmFtZSB8fCAhcGhhbmRsZSkgewotCQlw cl9lcnIoImNsaWVudCBuYW1lIGlzIG51bGwgb3IgaW52YWxpZCBwb3dlciBkYXRhXG4iKTsKLQkJ cmV0dXJuIEVSUl9QVFIoLUVJTlZBTCk7Ci0JfQotCi0JY2xpZW50ID0ga3phbGxvYyhzaXplb2Yo c3RydWN0IGRwdV9wb3dlcl9jbGllbnQpLCBHRlBfS0VSTkVMKTsKLQlpZiAoIWNsaWVudCkKLQkJ cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Ci0KLQltdXRleF9sb2NrKCZwaGFuZGxlLT5waGFuZGxl X2xvY2spOwotCXN0cmxjcHkoY2xpZW50LT5uYW1lLCBjbGllbnRfbmFtZSwgTUFYX0NMSUVOVF9O QU1FX0xFTik7Ci0JY2xpZW50LT51c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfRElTQUJMRTsKLQlj bGllbnQtPmlkID0gaWQ7Ci0JY2xpZW50LT5hY3RpdmUgPSB0cnVlOwotCXByX2RlYnVnKCJjbGll bnQgJXMgY3JlYXRlZDolcEsgaWQgOiVkXG4iLCBjbGllbnRfbmFtZSwKLQkJY2xpZW50LCBpZCk7 Ci0JaWQrKzsKLQlsaXN0X2FkZCgmY2xpZW50LT5saXN0LCAmcGhhbmRsZS0+cG93ZXJfY2xpZW50 X2NsaXN0KTsKLQltdXRleF91bmxvY2soJnBoYW5kbGUtPnBoYW5kbGVfbG9jayk7Ci0KLQlyZXR1 cm4gY2xpZW50OwotfQotCi12b2lkIGRwdV9wb3dlcl9jbGllbnRfZGVzdHJveShzdHJ1Y3QgZHB1 X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKLQlzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqY2xpZW50 KQotewotCWlmICghY2xpZW50ICB8fCAhcGhhbmRsZSkgewotCQlwcl9lcnIoInJlZyBidXMgdm90 ZTogaW52YWxpZCBjbGllbnQgaGFuZGxlXG4iKTsKLQl9IGVsc2UgaWYgKCFjbGllbnQtPmFjdGl2 ZSkgewotCQlwcl9lcnIoImRwdSBwb3dlciBkZWluaXQgYWxyZWFkeSBkb25lXG4iKTsKLQkJa2Zy ZWUoY2xpZW50KTsKLQl9IGVsc2UgewotCQlwcl9kZWJ1ZygiYnVzIHZvdGUgY2xpZW50ICVzIGRl c3Ryb3llZDolcEsgaWQ6JXVcbiIsCi0JCQljbGllbnQtPm5hbWUsIGNsaWVudCwgY2xpZW50LT5p ZCk7Ci0JCW11dGV4X2xvY2soJnBoYW5kbGUtPnBoYW5kbGVfbG9jayk7Ci0JCWxpc3RfZGVsX2lu aXQoJmNsaWVudC0+bGlzdCk7Ci0JCW11dGV4X3VubG9jaygmcGhhbmRsZS0+cGhhbmRsZV9sb2Nr KTsKLQkJa2ZyZWUoY2xpZW50KTsKLQl9Ci19Ci0KIHZvaWQgZHB1X3Bvd2VyX3Jlc291cmNlX2lu aXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAlzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRs ZSAqcGhhbmRsZSkKIHsKIAlwaGFuZGxlLT5kZXYgPSAmcGRldi0+ZGV2OwogCi0JSU5JVF9MSVNU X0hFQUQoJnBoYW5kbGUtPnBvd2VyX2NsaWVudF9jbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJnBo YW5kbGUtPmV2ZW50X2xpc3QpOwogCiAJbXV0ZXhfaW5pdCgmcGhhbmRsZS0+cGhhbmRsZV9sb2Nr KTsKQEAgLTk2LDcgKzQ4LDYgQEAgdm9pZCBkcHVfcG93ZXJfcmVzb3VyY2VfaW5pdChzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpwZGV2LAogdm9pZCBkcHVfcG93ZXJfcmVzb3VyY2VfZGVpbml0KHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBo YW5kbGUpCiB7Ci0Jc3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKmN1cnJfY2xpZW50LCAqbmV4dF9j bGllbnQ7CiAJc3RydWN0IGRwdV9wb3dlcl9ldmVudCAqY3Vycl9ldmVudCwgKm5leHRfZXZlbnQ7 CiAKIAlpZiAoIXBoYW5kbGUgfHwgIXBkZXYpIHsKQEAgLTEwNSwxNSArNTYsNiBAQCB2b2lkIGRw dV9wb3dlcl9yZXNvdXJjZV9kZWluaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAl9 CiAKIAltdXRleF9sb2NrKCZwaGFuZGxlLT5waGFuZGxlX2xvY2spOwotCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZShjdXJyX2NsaWVudCwgbmV4dF9jbGllbnQsCi0JCQkmcGhhbmRsZS0+cG93ZXJf Y2xpZW50X2NsaXN0LCBsaXN0KSB7Ci0JCXByX2VycigiY2xpZW50OiVzLSVkIHN0aWxsIHJlZ2lz dGVyZWQgd2l0aCByZWZjb3VudDolZFxuIiwKLQkJCQljdXJyX2NsaWVudC0+bmFtZSwgY3Vycl9j bGllbnQtPmlkLAotCQkJCWN1cnJfY2xpZW50LT5yZWZjb3VudCk7Ci0JCWN1cnJfY2xpZW50LT5h Y3RpdmUgPSBmYWxzZTsKLQkJbGlzdF9kZWwoJmN1cnJfY2xpZW50LT5saXN0KTsKLQl9Ci0KIAls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY3Vycl9ldmVudCwgbmV4dF9ldmVudCwKIAkJCSZwaGFu ZGxlLT5ldmVudF9saXN0LCBsaXN0KSB7CiAJCXByX2VycigiZXZlbnQ6JWQsIGNsaWVudDolcyBz dGlsbCByZWdpc3RlcmVkXG4iLApAQCAtMTI1LDUzICs2NywyMSBAQCB2b2lkIGRwdV9wb3dlcl9y ZXNvdXJjZV9kZWluaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAltdXRleF91bmxv Y2soJnBoYW5kbGUtPnBoYW5kbGVfbG9jayk7CiB9CiAKLWludCBkcHVfcG93ZXJfcmVzb3VyY2Vf ZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAotCXN0cnVjdCBkcHVfcG93 ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSkKK2ludCBkcHVfcG93ZXJfcmVzb3VyY2Vf ZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLCBib29sIGVuYWJsZSkKIHsK LQlib29sIGNoYW5nZWQgPSBmYWxzZTsKLQl1MzIgbWF4X3VzZWNhc2VfbmR4ID0gVk9URV9JTkRF WF9ESVNBQkxFLCBwcmV2X3VzZWNhc2VfbmR4OwotCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpj bGllbnQ7CiAJdTMyIGV2ZW50X3R5cGU7CiAKLQlpZiAoIXBoYW5kbGUgfHwgIXBjbGllbnQpIHsK KwlpZiAoIXBoYW5kbGUpIHsKIAkJcHJfZXJyKCJpbnZhbGlkIGlucHV0IGFyZ3VtZW50XG4iKTsK IAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCiAJbXV0ZXhfbG9jaygmcGhhbmRsZS0+cGhhbmRsZV9s b2NrKTsKLQlpZiAoZW5hYmxlKQotCQlwY2xpZW50LT5yZWZjb3VudCsrOwotCWVsc2UgaWYgKHBj bGllbnQtPnJlZmNvdW50KQotCQlwY2xpZW50LT5yZWZjb3VudC0tOwotCi0JaWYgKHBjbGllbnQt PnJlZmNvdW50KQotCQlwY2xpZW50LT51c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfTE9XOwotCWVs c2UKLQkJcGNsaWVudC0+dXNlY2FzZV9uZHggPSBWT1RFX0lOREVYX0RJU0FCTEU7Ci0KLQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGNsaWVudCwgJnBoYW5kbGUtPnBvd2VyX2NsaWVudF9jbGlzdCwgbGlz dCkgewotCQlpZiAoY2xpZW50LT51c2VjYXNlX25keCA8IFZPVEVfSU5ERVhfTUFYICYmCi0JCSAg ICBjbGllbnQtPnVzZWNhc2VfbmR4ID4gbWF4X3VzZWNhc2VfbmR4KQotCQkJbWF4X3VzZWNhc2Vf bmR4ID0gY2xpZW50LT51c2VjYXNlX25keDsKLQl9Ci0KLQlpZiAocGhhbmRsZS0+Y3VycmVudF91 c2VjYXNlX25keCAhPSBtYXhfdXNlY2FzZV9uZHgpIHsKLQkJY2hhbmdlZCA9IHRydWU7Ci0JCXBy ZXZfdXNlY2FzZV9uZHggPSBwaGFuZGxlLT5jdXJyZW50X3VzZWNhc2VfbmR4OwotCQlwaGFuZGxl LT5jdXJyZW50X3VzZWNhc2VfbmR4ID0gbWF4X3VzZWNhc2VfbmR4OwotCX0KLQotCXByX2RlYnVn KCIlcFM6IGNoYW5nZWQ9JWQgY3VycmVudCBpZHg9JWQgcmVxdWVzdCBjbGllbnQgJXMgaWQ6JXUg ZW5hYmxlOiVkIHJlZmNvdW50OiVkXG4iLAotCQlfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCks IGNoYW5nZWQsIG1heF91c2VjYXNlX25keCwKLQkJcGNsaWVudC0+bmFtZSwgcGNsaWVudC0+aWQs IGVuYWJsZSwgcGNsaWVudC0+cmVmY291bnQpOwotCi0JaWYgKCFjaGFuZ2VkKQotCQlnb3RvIGVu ZDsKIAogCWV2ZW50X3R5cGUgPSBlbmFibGUgPyBEUFVfUE9XRVJfRVZFTlRfRU5BQkxFIDogRFBV X1BPV0VSX0VWRU5UX0RJU0FCTEU7CiAKIAlkcHVfcG93ZXJfZXZlbnRfdHJpZ2dlcl9sb2NrZWQo cGhhbmRsZSwJZXZlbnRfdHlwZSk7Ci1lbmQ6CisKIAltdXRleF91bmxvY2soJnBoYW5kbGUtPnBo YW5kbGVfbG9jayk7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmgKaW5kZXggZjYyN2FlMjhlYzY4Li4xMjRlYmM5M2M4 NzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9o YW5kbGUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFu ZGxlLmgKQEAgLTI3LDMwICsyNyw2IEBACiAjZGVmaW5lIERQVV9QT1dFUl9FVkVOVF9ESVNBQkxF CUJJVCgwKQogI2RlZmluZSBEUFVfUE9XRVJfRVZFTlRfRU5BQkxFCUJJVCgxKQogCi0vKioKLSAq IG1kc3NfYnVzX3ZvdGVfdHlwZTogcmVnaXN0ZXIgYnVzIHZvdGUgdHlwZQotICogVk9URV9JTkRF WF9ESVNBQkxFOiByZW1vdmVzIHRoZSBjbGllbnQgdm90ZQotICogVk9URV9JTkRFWF9MT1c6IGtl ZXBzIHRoZSBsb3dlc3Qgdm90ZSBmb3IgcmVnaXN0ZXIgYnVzCi0gKiBWT1RFX0lOREVYX01BWDog aW52YWxpZAotICovCi1lbnVtIG1kc3NfYnVzX3ZvdGVfdHlwZSB7Ci0JVk9URV9JTkRFWF9ESVNB QkxFLAotCVZPVEVfSU5ERVhfTE9XLAotCVZPVEVfSU5ERVhfTUFYLAotfTsKLQotLyoqCi0gKiBl bnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xpZW50IC0gdHlwZSBvZiBheGkgYnVzIGNs aWVudHMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9SVDogY29yZSByZWFs LXRpbWUgYnVzIGNsaWVudAotICogQERQVV9QT1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5UX05S VDogY29yZSBub24tcmVhbC10aW1lIGJ1cyBjbGllbnQKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RB VEFfQlVTX0NMSUVOVF9NQVg6IG1heGltdW0gbnVtYmVyIG9mIGJ1cyBjbGllbnQgdHlwZQotICov Ci1lbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xpZW50IHsKLQlEUFVfUE9XRVJfSEFO RExFX0RBVEFfQlVTX0NMSUVOVF9SVCwKLQlEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVO VF9OUlQsCi0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFYCi19OwotCiAvKioK ICAqIGVudW0gRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEIC0gZGF0YSBidXMgaWRlbnRpZmllcgog ICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DOiBEUFUvTU5PQyBkYXRhIGJ1cwpAQCAt NjQsMzEgKzQwLDYgQEAgZW51bSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSUQgewogCURQVV9QT1dF Ul9IQU5ETEVfREJVU19JRF9NQVgsCiB9OwogCi0vKioKLSAqIHN0cnVjdCBkcHVfcG93ZXJfY2xp ZW50OiBzdG9yZXMgdGhlIHBvd2VyIGNsaWVudCBmb3IgZHB1IGRyaXZlcgotICogQG5hbWU6CW5h bWUgb2YgdGhlIGNsaWVudAotICogQHVzZWNhc2VfbmR4OiBjdXJyZW50IHJlZ3MgYnVzIHZvdGUg dHlwZQotICogQHJlZmNvdW50OgljdXJyZW50IHJlZmNvdW50IGlmIG11bHRpcGxlIG1vZHVsZXMg YXJlIHVzaW5nIHNhbWUKLSAqICAgICAgICAgICAgICBzYW1lIGNsaWVudCBmb3IgZW5hYmxlL2Rp c2FibGUuIFBvd2VyIG1vZHVsZSB3aWxsCi0gKiAgICAgICAgICAgICAgYWdncmVnYXRlIHRoZSBy ZWZjb3VudCBhbmQgdm90ZSBhY2NvcmRpbmdseSBmb3IgdGhpcwotICogICAgICAgICAgICAgIGNs aWVudC4KLSAqIEBpZDoJCWFzc2lnbmVkIGR1cmluZyBjcmVhdGUuIGhlbHBzIGZvciBkZWJ1Z2dp bmcuCi0gKiBAbGlzdDoJbGlzdCB0byBhdHRhY2ggcG93ZXIgaGFuZGxlIG1hc3RlciBsaXN0Ci0g KiBAYWI6ICAgICAgICAgYXJiaXRyYXRlZCBiYW5kd2lkdGggZm9yIGVhY2ggYnVzIGNsaWVudAot ICogQGliOiAgICAgICAgIGluc3RhbnRhbmVvdXMgYmFuZHdpZHRoIGZvciBlYWNoIGJ1cyBjbGll bnQKLSAqIEBhY3RpdmU6CWluaWRjYXRlcyB0aGUgc3RhdGUgb2YgZHB1IHBvd2VyIGhhbmRsZQot ICovCi1zdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCB7Ci0JY2hhciBuYW1lW01BWF9DTElFTlRfTkFN RV9MRU5dOwotCXNob3J0IHVzZWNhc2VfbmR4OwotCXNob3J0IHJlZmNvdW50OwotCXUzMiBpZDsK LQlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7Ci0JdTY0IGFiW0RQVV9QT1dFUl9IQU5ETEVfREFUQV9C VVNfQ0xJRU5UX01BWF07Ci0JdTY0IGliW0RQVV9QT1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5U X01BWF07Ci0JYm9vbCBhY3RpdmU7Ci19OwotCiAvKgogICogc3RydWN0IGRwdV9wb3dlcl9ldmVu dCAtIGxvY2FsIGV2ZW50IHJlZ2lzdHJhdGlvbiBzdHJ1Y3R1cmUKICAqIEBjbGllbnRfbmFtZTog bmFtZSBvZiB0aGUgY2xpZW50IHJlZ2lzdGVyaW5nCkBAIC0xMDksMTQgKzYwLDEyIEBAIHN0cnVj dCBkcHVfcG93ZXJfZXZlbnQgewogCiAvKioKICAqIHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlOiBw b3dlciBoYW5kbGUgbWFpbiBzdHJ1Y3QKLSAqIEBjbGllbnRfY2xpc3Q6IG1hc3RlciBsaXN0IHRv IHN0b3JlIGFsbCBjbGllbnRzCiAgKiBAcGhhbmRsZV9sb2NrOiBsb2NrIHRvIHN5bmNocm9uaXpl IHRoZSBlbmFibGUvZGlzYWJsZQogICogQGRldjogcG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJl CiAgKiBAdXNlY2FzZV9uZHg6IGN1cnJlbnQgdXNlY2FzZSBpbmRleAogICogQGV2ZW50X2xpc3Q6 IGN1cnJlbnQgcG93ZXIgaGFuZGxlIGV2ZW50IGxpc3QKICAqLwogc3RydWN0IGRwdV9wb3dlcl9o YW5kbGUgewotCXN0cnVjdCBsaXN0X2hlYWQgcG93ZXJfY2xpZW50X2NsaXN0OwogCXN0cnVjdCBt dXRleCBwaGFuZGxlX2xvY2s7CiAJc3RydWN0IGRldmljZSAqZGV2OwogCXUzMiBjdXJyZW50X3Vz ZWNhc2VfbmR4OwpAQCAtMTQxLDQ3ICs5MCwxNCBAQCB2b2lkIGRwdV9wb3dlcl9yZXNvdXJjZV9p bml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiB2b2lkIGRwdV9wb3dlcl9yZXNvdXJj ZV9kZWluaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwKIAlzdHJ1Y3QgZHB1X3Bvd2Vy X2hhbmRsZSAqcGRhdGEpOwogCi0vKioKLSAqIGRwdV9wb3dlcl9jbGllbnRfY3JlYXRlKCkgLSBj cmVhdGUgdGhlIGNsaWVudCBvbiBwb3dlciBoYW5kbGUKLSAqIEBwZGF0YTogIHBvd2VyIGhhbmRs ZSBjb250YWluaW5nIHRoZSByZXNvdXJjZXMKLSAqIEBjbGllbnRfbmFtZTogbmV3IGNsaWVudCBu YW1lIGZvciByZWdpc3RyYXRpb24KLSAqCi0gKiBSZXR1cm46IGVycm9yIGNvZGUuCi0gKi8KLXN0 cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpkcHVfcG93ZXJfY2xpZW50X2NyZWF0ZShzdHJ1Y3QgZHB1 X3Bvd2VyX2hhbmRsZSAqcGRhdGEsCi0JY2hhciAqY2xpZW50X25hbWUpOwotCi0vKioKLSAqIGRw dV9wb3dlcl9jbGllbnRfZGVzdHJveSgpIC0gZGVzdHJveSB0aGUgY2xpZW50IG9uIHBvd2VyIGhh bmRsZQotICogQHBkYXRhOiAgcG93ZXIgaGFuZGxlIGNvbnRhaW5pbmcgdGhlIHJlc291cmNlcwot ICogQGNsaWVudF9uYW1lOiBuZXcgY2xpZW50IG5hbWUgZm9yIHJlZ2lzdHJhdGlvbgotICoKLSAq IFJldHVybjogbm9uZQotICovCi12b2lkIGRwdV9wb3dlcl9jbGllbnRfZGVzdHJveShzdHJ1Y3Qg ZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKLQlzdHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqY2xp ZW50KTsKLQogLyoqCiAgKiBkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxlKCkgLSBlbmFibGUvZGlz YWJsZSB0aGUgcG93ZXIgcmVzb3VyY2VzCiAgKiBAcGRhdGE6ICBwb3dlciBoYW5kbGUgY29udGFp bmluZyB0aGUgcmVzb3VyY2VzCi0gKiBAY2xpZW50OiBjbGllbnQgaW5mb3JtYXRpb24gdG8gZW5h YmxlL2Rpc2FibGUgaXRzIHZvdGUKICAqIEBlbmFibGU6IGJvb2xlYW4gcmVxdWVzdCBmb3IgZW5h YmxlL2Rpc2FibGUKICAqCiAgKiBSZXR1cm46IGVycm9yIGNvZGUuCiAgKi8KLWludCBkcHVfcG93 ZXJfcmVzb3VyY2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwZGF0YSwKLQlzdHJ1 Y3QgZHB1X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwgYm9vbCBlbmFibGUpOwotCi0vKioKLSAqIGRw dV9wb3dlcl9kYXRhX2J1c19iYW5kd2lkdGhfY3RybCgpIC0gY29udHJvbCBkYXRhIGJ1cyBiYW5k d2lkdGggZW5hYmxlCi0gKiBAcGhhbmRsZTogIHBvd2VyIGhhbmRsZSBjb250YWluaW5nIHRoZSBy ZXNvdXJjZXMKLSAqIEBjbGllbnQ6IGNsaWVudCBpbmZvcm1hdGlvbiB0byBiYW5kd2lkdGggY29u dHJvbAotICogQGVuYWJsZTogdHJ1ZSB0byBlbmFibGUgYmFuZHdpZHRoIGZvciBkYXRhIGJhc2UK LSAqCi0gKiBSZXR1cm46IG5vbmUKLSAqLwotdm9pZCBkcHVfcG93ZXJfZGF0YV9idXNfYmFuZHdp ZHRoX2N0cmwoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCi0JCXN0cnVjdCBkcHVf cG93ZXJfY2xpZW50ICpwY2xpZW50LCBpbnQgZW5hYmxlKTsKK2ludCBkcHVfcG93ZXJfcmVzb3Vy Y2VfZW5hYmxlKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlICpwZGF0YSwgYm9vbCBlbmFibGUpOwog CiAvKioKICAqIGRwdV9wb3dlcl9oYW5kbGVfcmVnaXN0ZXJfZXZlbnQgLSByZWdpc3RlciBhIGNh bGxiYWNrIGZ1bmN0aW9uIGZvciBhbiBldmVudC4KLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5n aW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9kcmktZGV2ZWwK