From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH v2 15/49] drm/omap: Factor out common init/cleanup code for output devices Date: Fri, 11 Jan 2019 05:50:46 +0200 Message-ID: <20190111035120.20668-16-laurent.pinchart@ideasonboard.com> References: <20190111035120.20668-1-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7D0EF6F51A for ; Fri, 11 Jan 2019 03:51:38 +0000 (UTC) In-Reply-To: <20190111035120.20668-1-laurent.pinchart@ideasonboard.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: Tomi Valkeinen List-Id: dri-devel@lists.freedesktop.org QWxsIHRoZSBpbnRlcm5hbCBlbmNvZGVycyBzaGFyZSBjb21tb24gaW5pdCBhbmQgY2xlYW51cCBj b2RlLiBGYWN0b3IgaXQKb3V0IHRvIHNlcGFyYXRlIGZ1bmN0aW9ucy4KClNpZ25lZC1vZmYtYnk6 IExhdXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KUmV2 aWV3ZWQtYnk6IFNlYmFzdGlhbiBSZWljaGVsIDxzZWJhc3RpYW4ucmVpY2hlbEBjb2xsYWJvcmEu Y29tPgpUZXN0ZWQtYnk6IFNlYmFzdGlhbiBSZWljaGVsIDxzZWJhc3RpYW4ucmVpY2hlbEBjb2xs YWJvcmEuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kcGkuYyAgICAgfCAx NyArKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2RzaS5jICAg ICB8IDE3ICsrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRt aTQuYyAgIHwgMTcgKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rz cy9oZG1pNS5jICAgfCAxNyArKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vZHNzL29tYXBkc3MuaCB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL291 dHB1dC5jICB8IDE4ICsrKysrKysrKysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v ZHNzL3NkaS5jICAgICB8IDE3ICsrKy0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vb21h cGRybS9kc3MvdmVuYy5jICAgIHwgMTcgKysrLS0tLS0tLS0tLS0tLS0KIDggZmlsZXMgY2hhbmdl ZCwgMzYgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL29tYXBkcm0vZHNzL2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNz L2RwaS5jCmluZGV4IDc0ZTg0MWEyYjRlYi4uMGRiMDFjYWRmMDlmIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvZHBpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vZHNzL2RwaS5jCkBAIC02NDEsMTkgKzY0MSw5IEBAIHN0YXRpYyBpbnQgZHBpX2luaXRfb3V0 cHV0X3BvcnQoc3RydWN0IGRwaV9kYXRhICpkcGksIHN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydCkK IAlvdXQtPm9wcyA9ICZkcGlfb3BzOwogCW91dC0+b3duZXIgPSBUSElTX01PRFVMRTsKIAotCW91 dC0+bmV4dCA9IG9tYXBkc3Nfb2ZfZmluZF9jb25uZWN0ZWRfZGV2aWNlKG91dC0+ZGV2LT5vZl9u b2RlLCAwKTsKLQlpZiAoSVNfRVJSKG91dC0+bmV4dCkpIHsKLQkJaWYgKFBUUl9FUlIob3V0LT5u ZXh0KSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycihvdXQtPmRldiwgImZhaWxlZCB0byBm aW5kIHZpZGVvIHNpbmtcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihvdXQtPm5leHQpOwotCX0KLQot CXIgPSBvbWFwZHNzX291dHB1dF92YWxpZGF0ZShvdXQpOwotCWlmIChyKSB7Ci0JCW9tYXBkc3Nf ZGV2aWNlX3B1dChvdXQtPm5leHQpOwotCQlvdXQtPm5leHQgPSBOVUxMOworCXIgPSBvbWFwZHNz X2RldmljZV9pbml0X291dHB1dChvdXQpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7Ci0JfQog CiAJb21hcGRzc19kZXZpY2VfcmVnaXN0ZXIob3V0KTsKIApAQCAtNjY1LDkgKzY1NSw4IEBAIHN0 YXRpYyB2b2lkIGRwaV91bmluaXRfb3V0cHV0X3BvcnQoc3RydWN0IGRldmljZV9ub2RlICpwb3J0 KQogCXN0cnVjdCBkcGlfZGF0YSAqZHBpID0gcG9ydC0+ZGF0YTsKIAlzdHJ1Y3Qgb21hcF9kc3Nf ZGV2aWNlICpvdXQgPSAmZHBpLT5vdXRwdXQ7CiAKLQlpZiAob3V0LT5uZXh0KQotCQlvbWFwZHNz X2RldmljZV9wdXQob3V0LT5uZXh0KTsKIAlvbWFwZHNzX2RldmljZV91bnJlZ2lzdGVyKG91dCk7 CisJb21hcGRzc19kZXZpY2VfY2xlYW51cF9vdXRwdXQob3V0KTsKIH0KIAogc3RhdGljIGNvbnN0 IHN0cnVjdCBzb2NfZGV2aWNlX2F0dHJpYnV0ZSBkcGlfc29jX2RldmljZXNbXSA9IHsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kc2kuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9vbWFwZHJtL2Rzcy9kc2kuYwppbmRleCA0ZGFkMmJmNmI1NTEuLjRhYzMyNWU2NjRiNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2RzaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9vbWFwZHJtL2Rzcy9kc2kuYwpAQCAtNTEzMSwxOSArNTEzMSw5IEBAIHN0YXRpYyBp bnQgZHNpX2luaXRfb3V0cHV0KHN0cnVjdCBkc2lfZGF0YSAqZHNpKQogCQkgICAgICAgfCBEUk1f QlVTX0ZMQUdfREVfSElHSAogCQkgICAgICAgfCBEUk1fQlVTX0ZMQUdfU1lOQ19ORUdFREdFOwog Ci0Jb3V0LT5uZXh0ID0gb21hcGRzc19vZl9maW5kX2Nvbm5lY3RlZF9kZXZpY2Uob3V0LT5kZXYt Pm9mX25vZGUsIDApOwotCWlmIChJU19FUlIob3V0LT5uZXh0KSkgewotCQlpZiAoUFRSX0VSUihv dXQtPm5leHQpICE9IC1FUFJPQkVfREVGRVIpCi0JCQlkZXZfZXJyKG91dC0+ZGV2LCAiZmFpbGVk IHRvIGZpbmQgdmlkZW8gc2lua1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKG91dC0+bmV4dCk7Ci0J fQotCi0JciA9IG9tYXBkc3Nfb3V0cHV0X3ZhbGlkYXRlKG91dCk7Ci0JaWYgKHIpIHsKLQkJb21h cGRzc19kZXZpY2VfcHV0KG91dC0+bmV4dCk7Ci0JCW91dC0+bmV4dCA9IE5VTEw7CisJciA9IG9t YXBkc3NfZGV2aWNlX2luaXRfb3V0cHV0KG91dCk7CisJaWYgKHIgPCAwKQogCQlyZXR1cm4gcjsK LQl9CiAKIAlvbWFwZHNzX2RldmljZV9yZWdpc3RlcihvdXQpOwogCkBAIC01MTU0LDkgKzUxNDQs OCBAQCBzdGF0aWMgdm9pZCBkc2lfdW5pbml0X291dHB1dChzdHJ1Y3QgZHNpX2RhdGEgKmRzaSkK IHsKIAlzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpvdXQgPSAmZHNpLT5vdXRwdXQ7CiAKLQlpZiAo b3V0LT5uZXh0KQotCQlvbWFwZHNzX2RldmljZV9wdXQob3V0LT5uZXh0KTsKIAlvbWFwZHNzX2Rl dmljZV91bnJlZ2lzdGVyKG91dCk7CisJb21hcGRzc19kZXZpY2VfY2xlYW51cF9vdXRwdXQob3V0 KTsKIH0KIAogc3RhdGljIGludCBkc2lfcHJvYmVfb2Yoc3RydWN0IGRzaV9kYXRhICpkc2kpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTQuYyBiL2RyaXZlcnMv Z3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNC5jCmluZGV4IDZmODhmYjRkNjM0NC4uNjA3OTI5ODFh MzNmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTQuYwpAQCAtNjg3LDE5ICs2ODcsOSBA QCBzdGF0aWMgaW50IGhkbWk0X2luaXRfb3V0cHV0KHN0cnVjdCBvbWFwX2hkbWkgKmhkbWkpCiAJ b3V0LT5vZl9wb3J0cyA9IEJJVCgwKTsKIAlvdXQtPm9wc19mbGFncyA9IE9NQVBfRFNTX0RFVklD RV9PUF9FRElEOwogCi0Jb3V0LT5uZXh0ID0gb21hcGRzc19vZl9maW5kX2Nvbm5lY3RlZF9kZXZp Y2Uob3V0LT5kZXYtPm9mX25vZGUsIDApOwotCWlmIChJU19FUlIob3V0LT5uZXh0KSkgewotCQlp ZiAoUFRSX0VSUihvdXQtPm5leHQpICE9IC1FUFJPQkVfREVGRVIpCi0JCQlkZXZfZXJyKG91dC0+ ZGV2LCAiZmFpbGVkIHRvIGZpbmQgdmlkZW8gc2lua1xuIik7Ci0JCXJldHVybiBQVFJfRVJSKG91 dC0+bmV4dCk7Ci0JfQotCi0JciA9IG9tYXBkc3Nfb3V0cHV0X3ZhbGlkYXRlKG91dCk7Ci0JaWYg KHIpIHsKLQkJb21hcGRzc19kZXZpY2VfcHV0KG91dC0+bmV4dCk7Ci0JCW91dC0+bmV4dCA9IE5V TEw7CisJciA9IG9tYXBkc3NfZGV2aWNlX2luaXRfb3V0cHV0KG91dCk7CisJaWYgKHIgPCAwKQog CQlyZXR1cm4gcjsKLQl9CiAKIAlvbWFwZHNzX2RldmljZV9yZWdpc3RlcihvdXQpOwogCkBAIC03 MTAsOSArNzAwLDggQEAgc3RhdGljIHZvaWQgaGRtaTRfdW5pbml0X291dHB1dChzdHJ1Y3Qgb21h cF9oZG1pICpoZG1pKQogewogCXN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKm91dCA9ICZoZG1pLT5v dXRwdXQ7CiAKLQlpZiAob3V0LT5uZXh0KQotCQlvbWFwZHNzX2RldmljZV9wdXQob3V0LT5uZXh0 KTsKIAlvbWFwZHNzX2RldmljZV91bnJlZ2lzdGVyKG91dCk7CisJb21hcGRzc19kZXZpY2VfY2xl YW51cF9vdXRwdXQob3V0KTsKIH0KIAogc3RhdGljIGludCBoZG1pNF9wcm9iZV9vZihzdHJ1Y3Qg b21hcF9oZG1pICpoZG1pKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNz L2hkbWk1LmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTUuYwppbmRleCAyOGNm MWMzMmIxNTguLmQ3ZDMzYjRkMmJlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vZHNzL2hkbWk1LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2hkbWk1LmMK QEAgLTY3MSwxOSArNjcxLDkgQEAgc3RhdGljIGludCBoZG1pNV9pbml0X291dHB1dChzdHJ1Y3Qg b21hcF9oZG1pICpoZG1pKQogCW91dC0+b2ZfcG9ydHMgPSBCSVQoMCk7CiAJb3V0LT5vcHNfZmxh Z3MgPSBPTUFQX0RTU19ERVZJQ0VfT1BfRURJRDsKIAotCW91dC0+bmV4dCA9IG9tYXBkc3Nfb2Zf ZmluZF9jb25uZWN0ZWRfZGV2aWNlKG91dC0+ZGV2LT5vZl9ub2RlLCAwKTsKLQlpZiAoSVNfRVJS KG91dC0+bmV4dCkpIHsKLQkJaWYgKFBUUl9FUlIob3V0LT5uZXh0KSAhPSAtRVBST0JFX0RFRkVS KQotCQkJZGV2X2VycihvdXQtPmRldiwgImZhaWxlZCB0byBmaW5kIHZpZGVvIHNpbmtcbiIpOwot CQlyZXR1cm4gUFRSX0VSUihvdXQtPm5leHQpOwotCX0KLQotCXIgPSBvbWFwZHNzX291dHB1dF92 YWxpZGF0ZShvdXQpOwotCWlmIChyKSB7Ci0JCW9tYXBkc3NfZGV2aWNlX3B1dChvdXQtPm5leHQp OwotCQlvdXQtPm5leHQgPSBOVUxMOworCXIgPSBvbWFwZHNzX2RldmljZV9pbml0X291dHB1dChv dXQpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7Ci0JfQogCiAJb21hcGRzc19kZXZpY2VfcmVn aXN0ZXIob3V0KTsKIApAQCAtNjk0LDkgKzY4NCw4IEBAIHN0YXRpYyB2b2lkIGhkbWk1X3VuaW5p dF9vdXRwdXQoc3RydWN0IG9tYXBfaGRtaSAqaGRtaSkKIHsKIAlzdHJ1Y3Qgb21hcF9kc3NfZGV2 aWNlICpvdXQgPSAmaGRtaS0+b3V0cHV0OwogCi0JaWYgKG91dC0+bmV4dCkKLQkJb21hcGRzc19k ZXZpY2VfcHV0KG91dC0+bmV4dCk7CiAJb21hcGRzc19kZXZpY2VfdW5yZWdpc3RlcihvdXQpOwor CW9tYXBkc3NfZGV2aWNlX2NsZWFudXBfb3V0cHV0KG91dCk7CiB9CiAKIHN0YXRpYyBpbnQgaGRt aTVfcHJvYmVfb2Yoc3RydWN0IG9tYXBfaGRtaSAqaGRtaSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmggYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9k c3Mvb21hcGRzcy5oCmluZGV4IGZjODJiOGY1NDVhZS4uZmJkZWVhYTUyMWQ2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmgKQEAgLTQ5Myw3ICs0OTMsOCBAQCBpbnQgb21hcF9k c3NfZ2V0X251bV9vdmVybGF5cyh2b2lkKTsKICNkZWZpbmUgZm9yX2VhY2hfZHNzX291dHB1dChk KSBcCiAJd2hpbGUgKChkID0gb21hcGRzc19kZXZpY2VfbmV4dF9vdXRwdXQoZCkpICE9IE5VTEwp CiBzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpvbWFwZHNzX2RldmljZV9uZXh0X291dHB1dChzdHJ1 Y3Qgb21hcF9kc3NfZGV2aWNlICpmcm9tKTsKLWludCBvbWFwZHNzX291dHB1dF92YWxpZGF0ZShz dHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpvdXQpOworaW50IG9tYXBkc3NfZGV2aWNlX2luaXRfb3V0 cHV0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKm91dCk7Cit2b2lkIG9tYXBkc3NfZGV2aWNlX2Ns ZWFudXBfb3V0cHV0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKm91dCk7CiAKIHR5cGVkZWYgdm9p ZCAoKm9tYXBfZGlzcGNfaXNyX3QpICh2b2lkICphcmcsIHUzMiBtYXNrKTsKIGludCBvbWFwX2Rp c3BjX3JlZ2lzdGVyX2lzcihvbWFwX2Rpc3BjX2lzcl90IGlzciwgdm9pZCAqYXJnLCB1MzIgbWFz ayk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb3V0cHV0LmMgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb3V0cHV0LmMKaW5kZXggMTg1MDViYzcwZjdlLi4w YWM0MDBhNTIxZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vdXRw dXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb3V0cHV0LmMKQEAgLTI0LDgg KzI0LDE1IEBACiAjaW5jbHVkZSAiZHNzLmgiCiAjaW5jbHVkZSAib21hcGRzcy5oIgogCi1pbnQg b21hcGRzc19vdXRwdXRfdmFsaWRhdGUoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqb3V0KQoraW50 IG9tYXBkc3NfZGV2aWNlX2luaXRfb3V0cHV0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKm91dCkK IHsKKwlvdXQtPm5leHQgPSBvbWFwZHNzX29mX2ZpbmRfY29ubmVjdGVkX2RldmljZShvdXQtPmRl di0+b2Zfbm9kZSwgMCk7CisJaWYgKElTX0VSUihvdXQtPm5leHQpKSB7CisJCWlmIChQVFJfRVJS KG91dC0+bmV4dCkgIT0gLUVQUk9CRV9ERUZFUikKKwkJCWRldl9lcnIob3V0LT5kZXYsICJmYWls ZWQgdG8gZmluZCB2aWRlbyBzaW5rXG4iKTsKKwkJcmV0dXJuIFBUUl9FUlIob3V0LT5uZXh0KTsK Kwl9CisKIAlpZiAob3V0LT5uZXh0ICYmIG91dC0+b3V0cHV0X3R5cGUgIT0gb3V0LT5uZXh0LT50 eXBlKSB7CiAJCWRldl9lcnIob3V0LT5kZXYsICJvdXRwdXQgdHlwZSBhbmQgZGlzcGxheSB0eXBl IGRvbid0IG1hdGNoXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0zMyw3ICs0MCwxNCBAQCBp bnQgb21hcGRzc19vdXRwdXRfdmFsaWRhdGUoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqb3V0KQog CiAJcmV0dXJuIDA7CiB9Ci1FWFBPUlRfU1lNQk9MKG9tYXBkc3Nfb3V0cHV0X3ZhbGlkYXRlKTsK K0VYUE9SVF9TWU1CT0wob21hcGRzc19kZXZpY2VfaW5pdF9vdXRwdXQpOworCit2b2lkIG9tYXBk c3NfZGV2aWNlX2NsZWFudXBfb3V0cHV0KHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKm91dCkKK3sK KwlpZiAob3V0LT5uZXh0KQorCQlvbWFwZHNzX2RldmljZV9wdXQob3V0LT5uZXh0KTsKK30KK0VY UE9SVF9TWU1CT0wob21hcGRzc19kZXZpY2VfY2xlYW51cF9vdXRwdXQpOwogCiBpbnQgZHNzX2lu c3RhbGxfbWdyX29wcyhzdHJ1Y3QgZHNzX2RldmljZSAqZHNzLAogCQkJY29uc3Qgc3RydWN0IGRz c19tZ3Jfb3BzICptZ3Jfb3BzLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0v ZHNzL3NkaS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL3NkaS5jCmluZGV4IDIwZTg4 YzZlM2Q5OC4uNThjMTc1NjZhNGNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRy bS9kc3Mvc2RpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL3NkaS5jCkBAIC0y ODEsMTkgKzI4MSw5IEBAIHN0YXRpYyBpbnQgc2RpX2luaXRfb3V0cHV0KHN0cnVjdCBzZGlfZGV2 aWNlICpzZGkpCiAJb3V0LT5idXNfZmxhZ3MgPSBEUk1fQlVTX0ZMQUdfUElYREFUQV9QT1NFREdF CS8qIDE1LjUuOS4xLjIgKi8KIAkJICAgICAgIHwgRFJNX0JVU19GTEFHX1NZTkNfUE9TRURHRTsK IAotCW91dC0+bmV4dCA9IG9tYXBkc3Nfb2ZfZmluZF9jb25uZWN0ZWRfZGV2aWNlKG91dC0+ZGV2 LT5vZl9ub2RlLCAxKTsKLQlpZiAoSVNfRVJSKG91dC0+bmV4dCkpIHsKLQkJaWYgKFBUUl9FUlIo b3V0LT5uZXh0KSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycihvdXQtPmRldiwgImZhaWxl ZCB0byBmaW5kIHZpZGVvIHNpbmtcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihvdXQtPm5leHQpOwot CX0KLQotCXIgPSBvbWFwZHNzX291dHB1dF92YWxpZGF0ZShvdXQpOwotCWlmIChyKSB7Ci0JCW9t YXBkc3NfZGV2aWNlX3B1dChvdXQtPm5leHQpOwotCQlvdXQtPm5leHQgPSBOVUxMOworCXIgPSBv bWFwZHNzX2RldmljZV9pbml0X291dHB1dChvdXQpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7 Ci0JfQogCiAJb21hcGRzc19kZXZpY2VfcmVnaXN0ZXIob3V0KTsKIApAQCAtMzAyLDkgKzI5Miw4 IEBAIHN0YXRpYyBpbnQgc2RpX2luaXRfb3V0cHV0KHN0cnVjdCBzZGlfZGV2aWNlICpzZGkpCiAK IHN0YXRpYyB2b2lkIHNkaV91bmluaXRfb3V0cHV0KHN0cnVjdCBzZGlfZGV2aWNlICpzZGkpCiB7 Ci0JaWYgKHNkaS0+b3V0cHV0Lm5leHQpCi0JCW9tYXBkc3NfZGV2aWNlX3B1dChzZGktPm91dHB1 dC5uZXh0KTsKIAlvbWFwZHNzX2RldmljZV91bnJlZ2lzdGVyKCZzZGktPm91dHB1dCk7CisJb21h cGRzc19kZXZpY2VfY2xlYW51cF9vdXRwdXQoJnNkaS0+b3V0cHV0KTsKIH0KIAogaW50IHNkaV9p bml0X3BvcnQoc3RydWN0IGRzc19kZXZpY2UgKmRzcywgc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy92ZW5jLmMgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvdmVuYy5jCmluZGV4IGRjNDEzMzcxODg3NS4uM2Zj Nzc2YzQ1YzRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvdmVuYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy92ZW5jLmMKQEAgLTc1MiwxOSArNzUy LDkgQEAgc3RhdGljIGludCB2ZW5jX2luaXRfb3V0cHV0KHN0cnVjdCB2ZW5jX2RldmljZSAqdmVu YykKIAlvdXQtPm93bmVyID0gVEhJU19NT0RVTEU7CiAJb3V0LT5vZl9wb3J0cyA9IEJJVCgwKTsK IAotCW91dC0+bmV4dCA9IG9tYXBkc3Nfb2ZfZmluZF9jb25uZWN0ZWRfZGV2aWNlKG91dC0+ZGV2 LT5vZl9ub2RlLCAwKTsKLQlpZiAoSVNfRVJSKG91dC0+bmV4dCkpIHsKLQkJaWYgKFBUUl9FUlIo b3V0LT5uZXh0KSAhPSAtRVBST0JFX0RFRkVSKQotCQkJZGV2X2VycihvdXQtPmRldiwgImZhaWxl ZCB0byBmaW5kIHZpZGVvIHNpbmtcbiIpOwotCQlyZXR1cm4gUFRSX0VSUihvdXQtPm5leHQpOwot CX0KLQotCXIgPSBvbWFwZHNzX291dHB1dF92YWxpZGF0ZShvdXQpOwotCWlmIChyKSB7Ci0JCW9t YXBkc3NfZGV2aWNlX3B1dChvdXQtPm5leHQpOwotCQlvdXQtPm5leHQgPSBOVUxMOworCXIgPSBv bWFwZHNzX2RldmljZV9pbml0X291dHB1dChvdXQpOworCWlmIChyIDwgMCkKIAkJcmV0dXJuIHI7 Ci0JfQogCiAJb21hcGRzc19kZXZpY2VfcmVnaXN0ZXIob3V0KTsKIApAQCAtNzczLDkgKzc2Myw4 IEBAIHN0YXRpYyBpbnQgdmVuY19pbml0X291dHB1dChzdHJ1Y3QgdmVuY19kZXZpY2UgKnZlbmMp CiAKIHN0YXRpYyB2b2lkIHZlbmNfdW5pbml0X291dHB1dChzdHJ1Y3QgdmVuY19kZXZpY2UgKnZl bmMpCiB7Ci0JaWYgKHZlbmMtPm91dHB1dC5uZXh0KQotCQlvbWFwZHNzX2RldmljZV9wdXQodmVu Yy0+b3V0cHV0Lm5leHQpOwogCW9tYXBkc3NfZGV2aWNlX3VucmVnaXN0ZXIoJnZlbmMtPm91dHB1 dCk7CisJb21hcGRzc19kZXZpY2VfY2xlYW51cF9vdXRwdXQoJnZlbmMtPm91dHB1dCk7CiB9CiAK IHN0YXRpYyBpbnQgdmVuY19wcm9iZV9vZihzdHJ1Y3QgdmVuY19kZXZpY2UgKnZlbmMpCi0tIApS ZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==