From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH v2 04/13] drm/msm/hdmi: Clean up connector gpio usage Date: Mon, 15 Feb 2016 12:23:17 +0530 Message-ID: <1455519206-12939-5-git-send-email-architt@codeaurora.org> References: <1455519206-12939-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 70F9C6E5DF for ; Mon, 15 Feb 2016 06:54:07 +0000 (UTC) In-Reply-To: <1455519206-12939-1-git-send-email-architt@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: robdclark@gmail.com Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org TWFrZSBncGlvIGFsbG9jYXRpb24gYW5kIHVzYWdlIGl0ZXJhdGl2ZSBieSBwYXJzaW5nIHRoZSBn cGlvcyBvbiBhIGdpdmVuCnBsYXRmb3JtIGZyb20gYSBsaXN0LiBUaGlzIGdpdmVzIHVzIGZsZXhp YmlsaXR5IG92ZXIgd2hhdCBhbGwgZ3Bpb3MgZXhpc3QKZm9yIGEgcGxhdGZvcm0sIHdoZXRoZXIg dGhleSBhcmUgaW5wdXQgb3Igb3V0cHV0LCBhbmQgd2hhdCB2YWx1ZSB0aGV5CnNob3VsZCBiZSBz ZXQgdG8uCgpJbiBwYXJ0aWN1bGFyLCB0aGlzIHdpbGwgbWFrZSBIRE1JIG9uIDh4OTYgcGxhdGZv cm1zIGVhc2llciB0byBpbnRlZ3JhdGUKd2l0aCB0aGUgZHJpdmVyLCBhcyBpdCBkb2Vzbid0IGhh dmUgYSBIUEQgZ3BpbyBpbnB1dCB0byB0aGVtLiBBbHNvLCBpdApjbGVhbnMgdGhpbmdzIHVwIGEg Yml0LgoKV2Ugc3RpbGwgdXNlIHRoZSBsZWdhY3kgZ3BpbyBhcGkgaGVyZSwgYXMgd2UgbWlnaHQg bmVlZCB0byBiYWNrcG9ydCB0aGlzCmRyaXZlciB0byBkb3duc3RyZWFtIGtlcm5lbHMuCgpTaWdu ZWQtb2ZmLWJ5OiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pLmMgICAgICAgICAgIHwgIDMxICsrKysrLS0KIGRy aXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pLmggICAgICAgICAgIHwgIDExICsrLQogZHJpdmVy cy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfY29ubmVjdG9yLmMgfCAxMjkgKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDEwMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaS5j IGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWkuYwppbmRleCA1MjVmZGY5Li45ZDY1NDQy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pLmMKQEAgLTM5MCw3ICszOTAsMjEgQEAgc3RhdGljIHN0 cnVjdCBoZG1pX3BsYXRmb3JtX2NvbmZpZyBoZG1pX3R4Xzg5OTZfY29uZmlnID0gewogCQkuaHBk X2ZyZXEgICAgICA9IGhwZF9jbGtfZnJlcV84eDc0LAogfTsKIAotc3RhdGljIGludCBnZXRfZ3Bp byhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfbm9kZSwgY29uc3Qg Y2hhciAqbmFtZSkKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgeworCWNvbnN0IGNoYXIgKm5hbWU7CisJ Y29uc3QgYm9vbCBvdXRwdXQ7CisJY29uc3QgaW50IHZhbHVlOworCWNvbnN0IGNoYXIgKmxhYmVs OworfSBoZG1pX2dwaW9fcGRhdGFbXSA9IHsKKwl7ICJxY29tLGhkbWktdHgtZGRjLWNsayIsIHRy dWUsIDEsICJIRE1JX0REQ19DTEsiIH0sCisJeyAicWNvbSxoZG1pLXR4LWRkYy1kYXRhIiwgdHJ1 ZSwgMSwgIkhETUlfRERDX0RBVEEiIH0sCisJeyAicWNvbSxoZG1pLXR4LWhwZCIsIGZhbHNlLCAx LCAiSERNSV9IUEQiIH0sCisJeyAicWNvbSxoZG1pLXR4LW11eC1lbiIsIHRydWUsIDEsICJIRE1J X01VWF9FTiIgfSwKKwl7ICJxY29tLGhkbWktdHgtbXV4LXNlbCIsIHRydWUsIDAsICJIRE1JX01V WF9TRUwiIH0sCisJeyAicWNvbSxoZG1pLXR4LW11eC1scG0iLCB0cnVlLCAxLCAiSERNSV9NVVhf TFBNIiB9LAorfTsKKworc3RhdGljIGludCBnZXRfZ3BpbyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm9m X25vZGUsIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAJaW50IGdwaW8gPSBvZl9nZXRfbmFtZWRfZ3Bp byhvZl9ub2RlLCBuYW1lLCAwKTsKIAlpZiAoZ3BpbyA8IDApIHsKQEAgLTQxMyw2ICs0MjcsNyBA QCBzdGF0aWMgaW50IGhkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2Ug Km1hc3Rlciwgdm9pZCAqZGF0YSkKIAlzdGF0aWMgc3RydWN0IGhkbWlfcGxhdGZvcm1fY29uZmln ICpoZG1pX2NmZzsKIAlzdHJ1Y3QgaGRtaSAqaGRtaTsKIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm9m X25vZGUgPSBkZXYtPm9mX25vZGU7CisJaW50IGk7CiAKIAloZG1pX2NmZyA9IChzdHJ1Y3QgaGRt aV9wbGF0Zm9ybV9jb25maWcgKikKIAkJCW9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwpA QCAtNDIzLDEyICs0MzgsMTQgQEAgc3RhdGljIGludCBoZG1pX2JpbmQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCiAKIAloZG1pX2NmZy0+bW1p b19uYW1lICAgICA9ICJjb3JlX3BoeXNpY2FsIjsKIAloZG1pX2NmZy0+cWZwcm9tX21taW9fbmFt ZSA9ICJxZnByb21fcGh5c2ljYWwiOwotCWhkbWlfY2ZnLT5kZGNfY2xrX2dwaW8gID0gZ2V0X2dw aW8oZGV2LCBvZl9ub2RlLCAicWNvbSxoZG1pLXR4LWRkYy1jbGsiKTsKLQloZG1pX2NmZy0+ZGRj X2RhdGFfZ3BpbyA9IGdldF9ncGlvKGRldiwgb2Zfbm9kZSwgInFjb20saGRtaS10eC1kZGMtZGF0 YSIpOwotCWhkbWlfY2ZnLT5ocGRfZ3BpbyAgICAgID0gZ2V0X2dwaW8oZGV2LCBvZl9ub2RlLCAi cWNvbSxoZG1pLXR4LWhwZCIpOwotCWhkbWlfY2ZnLT5tdXhfZW5fZ3BpbyAgID0gZ2V0X2dwaW8o ZGV2LCBvZl9ub2RlLCAicWNvbSxoZG1pLXR4LW11eC1lbiIpOwotCWhkbWlfY2ZnLT5tdXhfc2Vs X2dwaW8gID0gZ2V0X2dwaW8oZGV2LCBvZl9ub2RlLCAicWNvbSxoZG1pLXR4LW11eC1zZWwiKTsK LQloZG1pX2NmZy0+bXV4X2xwbV9ncGlvICA9IGdldF9ncGlvKGRldiwgb2Zfbm9kZSwgInFjb20s aGRtaS10eC1tdXgtbHBtIik7CisKKwlmb3IgKGkgPSAwOyBpIDwgSERNSV9NQVhfTlVNX0dQSU87 IGkrKykgeworCQloZG1pX2NmZy0+Z3Bpb3NbaV0ubnVtID0gZ2V0X2dwaW8ob2Zfbm9kZSwKKwkJ CQkJCWhkbWlfZ3Bpb19wZGF0YVtpXS5uYW1lKTsKKwkJaGRtaV9jZmctPmdwaW9zW2ldLm91dHB1 dCA9IGhkbWlfZ3Bpb19wZGF0YVtpXS5vdXRwdXQ7CisJCWhkbWlfY2ZnLT5ncGlvc1tpXS52YWx1 ZSA9IGhkbWlfZ3Bpb19wZGF0YVtpXS52YWx1ZTsKKwkJaGRtaV9jZmctPmdwaW9zW2ldLmxhYmVs ID0gaGRtaV9ncGlvX3BkYXRhW2ldLmxhYmVsOworCX0KIAogCWRldi0+cGxhdGZvcm1fZGF0YSA9 IGhkbWlfY2ZnOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaS5o IGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWkuaAppbmRleCA3ZWIxNmJlLi4yNjM2Yzc4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaS5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pLmgKQEAgLTI3LDEwICsyNywxOCBAQAogI2luY2x1ZGUg Im1zbV9kcnYuaCIKICNpbmNsdWRlICJoZG1pLnhtbC5oIgogCisjZGVmaW5lIEhETUlfTUFYX05V TV9HUElPCTYKIAogc3RydWN0IGhkbWlfcGh5Owogc3RydWN0IGhkbWlfcGxhdGZvcm1fY29uZmln OwogCitzdHJ1Y3QgaGRtaV9ncGlvX2RhdGEgeworCWludCBudW07CisJYm9vbCBvdXRwdXQ7CisJ aW50IHZhbHVlOworCWNvbnN0IGNoYXIgKmxhYmVsOworfTsKKwogc3RydWN0IGhkbWlfYXVkaW8g ewogCWJvb2wgZW5hYmxlZDsKIAlzdHJ1Y3QgaGRtaV9hdWRpb19pbmZvZnJhbWUgaW5mb2ZyYW1l OwpAQCAtMTExLDggKzExOSw3IEBAIHN0cnVjdCBoZG1pX3BsYXRmb3JtX2NvbmZpZyB7CiAJaW50 IHB3cl9jbGtfY250OwogCiAJLyogZ3BpbydzOiAqLwotCWludCBkZGNfY2xrX2dwaW8sIGRkY19k YXRhX2dwaW8sIGhwZF9ncGlvLCBtdXhfZW5fZ3BpbywgbXV4X3NlbF9ncGlvOwotCWludCBtdXhf bHBtX2dwaW87CisJc3RydWN0IGhkbWlfZ3Bpb19kYXRhIGdwaW9zW0hETUlfTUFYX05VTV9HUElP XTsKIH07CiAKIHZvaWQgaGRtaV9zZXRfbW9kZShzdHJ1Y3QgaGRtaSAqaGRtaSwgYm9vbCBwb3dl cl9vbik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9jb25uZWN0 b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2Nvbm5lY3Rvci5jCmluZGV4IGEz YjA1YWUuLmRlZWMxZjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1p X2Nvbm5lY3Rvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2Nvbm5lY3Rv ci5jCkBAIC04MSwxMTQgKzgxLDU0IEBAIHN0YXRpYyBpbnQgZ3Bpb19jb25maWcoc3RydWN0IGhk bWkgKmhkbWksIGJvb2wgb24pCiB7CiAJc3RydWN0IGRldmljZSAqZGV2ID0gJmhkbWktPnBkZXYt PmRldjsKIAljb25zdCBzdHJ1Y3QgaGRtaV9wbGF0Zm9ybV9jb25maWcgKmNvbmZpZyA9IGhkbWkt PmNvbmZpZzsKLQlpbnQgcmV0OworCWludCByZXQsIGk7CiAKIAlpZiAob24pIHsKLQkJaWYgKGNv bmZpZy0+ZGRjX2Nsa19ncGlvICE9IC0xKSB7Ci0JCQlyZXQgPSBncGlvX3JlcXVlc3QoY29uZmln LT5kZGNfY2xrX2dwaW8sICJIRE1JX0REQ19DTEsiKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlkZXZf ZXJyKGRldiwgIiclcycoJWQpIGdwaW9fcmVxdWVzdCBmYWlsZWQ6ICVkXG4iLAotCQkJCQkiSERN SV9ERENfQ0xLIiwgY29uZmlnLT5kZGNfY2xrX2dwaW8sIHJldCk7Ci0JCQkJZ290byBlcnJvcjE7 Ci0JCQl9Ci0JCQlncGlvX3NldF92YWx1ZV9jYW5zbGVlcChjb25maWctPmRkY19jbGtfZ3Bpbywg MSk7Ci0JCX0KLQotCQlpZiAoY29uZmlnLT5kZGNfZGF0YV9ncGlvICE9IC0xKSB7Ci0JCQlyZXQg PSBncGlvX3JlcXVlc3QoY29uZmlnLT5kZGNfZGF0YV9ncGlvLCAiSERNSV9ERENfREFUQSIpOwot CQkJaWYgKHJldCkgewotCQkJCWRldl9lcnIoZGV2LCAiJyVzJyglZCkgZ3Bpb19yZXF1ZXN0IGZh aWxlZDogJWRcbiIsCi0JCQkJCSJIRE1JX0REQ19EQVRBIiwgY29uZmlnLT5kZGNfZGF0YV9ncGlv LCByZXQpOwotCQkJCWdvdG8gZXJyb3IyOwotCQkJfQotCQkJZ3Bpb19zZXRfdmFsdWVfY2Fuc2xl ZXAoY29uZmlnLT5kZGNfZGF0YV9ncGlvLCAxKTsKLQkJfQotCi0JCXJldCA9IGdwaW9fcmVxdWVz dChjb25maWctPmhwZF9ncGlvLCAiSERNSV9IUEQiKTsKLQkJaWYgKHJldCkgewotCQkJZGV2X2Vy cihkZXYsICInJXMnKCVkKSBncGlvX3JlcXVlc3QgZmFpbGVkOiAlZFxuIiwKLQkJCQkiSERNSV9I UEQiLCBjb25maWctPmhwZF9ncGlvLCByZXQpOwotCQkJZ290byBlcnJvcjM7Ci0JCX0KLQkJZ3Bp b19kaXJlY3Rpb25faW5wdXQoY29uZmlnLT5ocGRfZ3Bpbyk7Ci0JCWdwaW9fc2V0X3ZhbHVlX2Nh bnNsZWVwKGNvbmZpZy0+aHBkX2dwaW8sIDEpOwotCi0JCWlmIChjb25maWctPm11eF9lbl9ncGlv ICE9IC0xKSB7Ci0JCQlyZXQgPSBncGlvX3JlcXVlc3QoY29uZmlnLT5tdXhfZW5fZ3BpbywgIkhE TUlfTVVYX0VOIik7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJZGV2X2VycihkZXYsICInJXMnKCVkKSBn cGlvX3JlcXVlc3QgZmFpbGVkOiAlZFxuIiwKLQkJCQkJIkhETUlfTVVYX0VOIiwgY29uZmlnLT5t dXhfZW5fZ3BpbywgcmV0KTsKLQkJCQlnb3RvIGVycm9yNDsKLQkJCX0KLQkJCWdwaW9fc2V0X3Zh bHVlX2NhbnNsZWVwKGNvbmZpZy0+bXV4X2VuX2dwaW8sIDEpOwotCQl9Ci0KLQkJaWYgKGNvbmZp Zy0+bXV4X3NlbF9ncGlvICE9IC0xKSB7Ci0JCQlyZXQgPSBncGlvX3JlcXVlc3QoY29uZmlnLT5t dXhfc2VsX2dwaW8sICJIRE1JX01VWF9TRUwiKTsKLQkJCWlmIChyZXQpIHsKLQkJCQlkZXZfZXJy KGRldiwgIiclcycoJWQpIGdwaW9fcmVxdWVzdCBmYWlsZWQ6ICVkXG4iLAotCQkJCQkiSERNSV9N VVhfU0VMIiwgY29uZmlnLT5tdXhfc2VsX2dwaW8sIHJldCk7Ci0JCQkJZ290byBlcnJvcjU7CisJ CWZvciAoaSA9IDA7IGkgPCBIRE1JX01BWF9OVU1fR1BJTzsgaSsrKSB7CisJCQlzdHJ1Y3QgaGRt aV9ncGlvX2RhdGEgZ3BpbyA9IGNvbmZpZy0+Z3Bpb3NbaV07CisKKwkJCWlmIChncGlvLm51bSAh PSAtMSkgeworCQkJCXJldCA9IGdwaW9fcmVxdWVzdChncGlvLm51bSwgZ3Bpby5sYWJlbCk7CisJ CQkJaWYgKHJldCkgeworCQkJCQlkZXZfZXJyKGRldiwKKwkJCQkJCSInJXMnKCVkKSBncGlvX3Jl cXVlc3QgZmFpbGVkOiAlZFxuIiwKKwkJCQkJCWdwaW8ubGFiZWwsIGdwaW8ubnVtLCByZXQpOwor CQkJCQlnb3RvIGVycjsKKwkJCQl9CisKKwkJCQlpZiAoZ3Bpby5vdXRwdXQpIHsKKwkJCQkJZ3Bp b19kaXJlY3Rpb25fb3V0cHV0KGdwaW8ubnVtLAorCQkJCQkJCSAgICAgIGdwaW8udmFsdWUpOwor CQkJCX0gZWxzZSB7CisJCQkJCWdwaW9fZGlyZWN0aW9uX2lucHV0KGdwaW8ubnVtKTsKKwkJCQkJ Z3Bpb19zZXRfdmFsdWVfY2Fuc2xlZXAoZ3Bpby5udW0sCisJCQkJCQkJCWdwaW8udmFsdWUpOwor CQkJCX0KIAkJCX0KLQkJCWdwaW9fc2V0X3ZhbHVlX2NhbnNsZWVwKGNvbmZpZy0+bXV4X3NlbF9n cGlvLCAwKTsKIAkJfQogCi0JCWlmIChjb25maWctPm11eF9scG1fZ3BpbyAhPSAtMSkgewotCQkJ cmV0ID0gZ3Bpb19yZXF1ZXN0KGNvbmZpZy0+bXV4X2xwbV9ncGlvLAotCQkJCQkiSERNSV9NVVhf TFBNIik7Ci0JCQlpZiAocmV0KSB7Ci0JCQkJZGV2X2VycihkZXYsCi0JCQkJCSInJXMnKCVkKSBn cGlvX3JlcXVlc3QgZmFpbGVkOiAlZFxuIiwKLQkJCQkJIkhETUlfTVVYX0xQTSIsCi0JCQkJCWNv bmZpZy0+bXV4X2xwbV9ncGlvLCByZXQpOwotCQkJCWdvdG8gZXJyb3I2OwotCQkJfQotCQkJZ3Bp b19zZXRfdmFsdWVfY2Fuc2xlZXAoY29uZmlnLT5tdXhfbHBtX2dwaW8sIDEpOwotCQl9CiAJCURC RygiZ3BpbyBvbiIpOwogCX0gZWxzZSB7Ci0JCWlmIChjb25maWctPmRkY19jbGtfZ3BpbyAhPSAt MSkKLQkJCWdwaW9fZnJlZShjb25maWctPmRkY19jbGtfZ3Bpbyk7Ci0KLQkJaWYgKGNvbmZpZy0+ ZGRjX2RhdGFfZ3BpbyAhPSAtMSkKLQkJCWdwaW9fZnJlZShjb25maWctPmRkY19kYXRhX2dwaW8p OworCQlmb3IgKGkgPSAwOyBpIDwgSERNSV9NQVhfTlVNX0dQSU87IGkrKykgeworCQkJc3RydWN0 IGhkbWlfZ3Bpb19kYXRhIGdwaW8gPSBjb25maWctPmdwaW9zW2ldOwogCi0JCWdwaW9fZnJlZShj b25maWctPmhwZF9ncGlvKTsKKwkJCWlmIChncGlvLm91dHB1dCkgeworCQkJCWludCB2YWx1ZSA9 IGdwaW8udmFsdWUgPyAwIDogMTsKIAotCQlpZiAoY29uZmlnLT5tdXhfZW5fZ3BpbyAhPSAtMSkg ewotCQkJZ3Bpb19zZXRfdmFsdWVfY2Fuc2xlZXAoY29uZmlnLT5tdXhfZW5fZ3BpbywgMCk7Ci0J CQlncGlvX2ZyZWUoY29uZmlnLT5tdXhfZW5fZ3Bpbyk7Ci0JCX0KKwkJCQlncGlvX3NldF92YWx1 ZV9jYW5zbGVlcChncGlvLm51bSwgdmFsdWUpOworCQkJfQogCi0JCWlmIChjb25maWctPm11eF9z ZWxfZ3BpbyAhPSAtMSkgewotCQkJZ3Bpb19zZXRfdmFsdWVfY2Fuc2xlZXAoY29uZmlnLT5tdXhf c2VsX2dwaW8sIDEpOwotCQkJZ3Bpb19mcmVlKGNvbmZpZy0+bXV4X3NlbF9ncGlvKTsKLQkJfQor CQkJZ3Bpb19mcmVlKGdwaW8ubnVtKTsKKwkJfTsKIAotCQlpZiAoY29uZmlnLT5tdXhfbHBtX2dw aW8gIT0gLTEpIHsKLQkJCWdwaW9fc2V0X3ZhbHVlX2NhbnNsZWVwKGNvbmZpZy0+bXV4X2xwbV9n cGlvLCAwKTsKLQkJCWdwaW9fZnJlZShjb25maWctPm11eF9scG1fZ3Bpbyk7Ci0JCX0KIAkJREJH KCJncGlvIG9mZiIpOwogCX0KIAogCXJldHVybiAwOworZXJyOgorCXdoaWxlIChpLS0pCisJCWdw aW9fZnJlZShjb25maWctPmdwaW9zW2ldLm51bSk7CiAKLWVycm9yNjoKLQlpZiAoY29uZmlnLT5t dXhfc2VsX2dwaW8gIT0gLTEpCi0JCWdwaW9fZnJlZShjb25maWctPm11eF9zZWxfZ3Bpbyk7Ci1l cnJvcjU6Ci0JaWYgKGNvbmZpZy0+bXV4X2VuX2dwaW8gIT0gLTEpCi0JCWdwaW9fZnJlZShjb25m aWctPm11eF9lbl9ncGlvKTsKLWVycm9yNDoKLQlncGlvX2ZyZWUoY29uZmlnLT5ocGRfZ3Bpbyk7 Ci1lcnJvcjM6Ci0JaWYgKGNvbmZpZy0+ZGRjX2RhdGFfZ3BpbyAhPSAtMSkKLQkJZ3Bpb19mcmVl KGNvbmZpZy0+ZGRjX2RhdGFfZ3Bpbyk7Ci1lcnJvcjI6Ci0JaWYgKGNvbmZpZy0+ZGRjX2Nsa19n cGlvICE9IC0xKQotCQlncGlvX2ZyZWUoY29uZmlnLT5kZGNfY2xrX2dwaW8pOwotZXJyb3IxOgog CXJldHVybiByZXQ7CiB9CiAKQEAgLTM0NSwxMCArMjg1LDEzIEBAIHN0YXRpYyBlbnVtIGRybV9j b25uZWN0b3Jfc3RhdHVzIGRldGVjdF9yZWcoc3RydWN0IGhkbWkgKmhkbWkpCiAJCQljb25uZWN0 b3Jfc3RhdHVzX2Nvbm5lY3RlZCA6IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVkOwogfQog CisjZGVmaW5lIEhQRF9HUElPX0lOREVYCTIKIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3Rh dHVzIGRldGVjdF9ncGlvKHN0cnVjdCBoZG1pICpoZG1pKQogewogCWNvbnN0IHN0cnVjdCBoZG1p X3BsYXRmb3JtX2NvbmZpZyAqY29uZmlnID0gaGRtaS0+Y29uZmlnOwotCXJldHVybiBncGlvX2dl dF92YWx1ZShjb25maWctPmhwZF9ncGlvKSA/CisJc3RydWN0IGhkbWlfZ3Bpb19kYXRhIGhwZF9n cGlvID0gY29uZmlnLT5ncGlvc1tIUERfR1BJT19JTkRFWF07CisKKwlyZXR1cm4gZ3Bpb19nZXRf dmFsdWUoaHBkX2dwaW8ubnVtKSA/CiAJCQljb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCA6CiAJ CQljb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKIH0KLS0gClRoZSBRdWFsY29tbSBJbm5v dmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0s Cmhvc3RlZCBieSBUaGUgTGludXggRm91bmRhdGlvbgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsCg==