From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: [PATCH v2 29/49] drm/omap: Pass drm_display_mode to .check_timings() and .set_timings() Date: Fri, 11 Jan 2019 05:51:00 +0200 Message-ID: <20190111035120.20668-30-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 0D22D6F52F for ; Fri, 11 Jan 2019 03:51:50 +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 VGhlIG9tYXBfZHNzX2RldmljZSAuY2hlY2tfdGltaW5ncygpIGFuZCAuc2V0X3RpbWluZ3MoKSBv cGVyYXRpb25zCm9wZXJhdGUgb24gc3RydWN0IHZpZGVvbW9kZSwgd2hpbGUgdGhlIERSTSBBUEkg b3BlcmF0ZXMgb24gc3RydWN0CmRybV9kaXNwbGF5X21vZGUuIFRoaXMgZm9yY2VzIGNvbnZlcnNp b24gZnJvbSB0byB2aWRlb21vZGUgaW4gdGhlCmNhbGxlcnMuIFdoaWxlIHRoYXQncyBub3QgYSBw cm9ibGVtIHBlciBzZSwgaXQgY3JlYXRlcyBhIGRpZmZlcmVuY2Ugd2l0aAp0aGUgZHJtX2JyaWRn ZSBBUEkuCgpSZXBsYWNlIHRoZSB2aWRlb21vZGUgcGFyYW1ldGVyIHRvIHRoZSAuY2hlY2tfdGlt aW5ncygpIGFuZAouc2V0X3RpbWluZ3MoKSBvcGVyYXRpb25zIHdpdGggYSBkcm1fZGlzcGxheV9t b2RlLiBUaGlzIHB1c2hlZCB0aGUKY29udmVyc2lvbiB0byB2aWRlb21vZGUgZG93biB0byB0aGUg RFNTIGRldmljZXMgaW4gc29tZSBjYXNlcy4gSWYgbmVlZGVkCnRoZXkgd2lsbCBiZSBjb252ZXJ0 ZWQgdG8gb3BlcmF0ZSBvbiBkcm1fZGlzcGxheV9tb2RlIG5hdGl2ZWx5LgoKU2lnbmVkLW9mZi1i eTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgpU ZXN0ZWQtYnk6IFNlYmFzdGlhbiBSZWljaGVsIDxzZWJhc3RpYW4ucmVpY2hlbEBjb2xsYWJvcmEu Y29tPgotLS0KIC4uLi9ncHUvZHJtL29tYXBkcm0vZGlzcGxheXMvcGFuZWwtZHNpLWNtLmMgICB8 ICA4ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2RwaS5jICAgICAgICAgICAg IHwgMTYgKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNC5jICAg ICAgICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9oZG1pNS5jICAg ICAgICAgICB8ICA2ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9vbWFwZHNzLmgg ICAgICAgICB8ICA0ICstLQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL3NkaS5jICAgICAg ICAgICAgIHwgMTcgKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy92ZW5j LmMgICAgICAgICAgICB8IDI4ICsrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL29tYXBfY29ubmVjdG9yLmMgICAgICB8ICA3ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0v b21hcGRybS9vbWFwX2VuY29kZXIuYyAgICAgICAgfCAgMiArLQogOSBmaWxlcyBjaGFuZ2VkLCA0 NiBpbnNlcnRpb25zKCspLCA0OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5lbC1kc2ktY20uYyBiL2RyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL2Rpc3BsYXlzL3BhbmVsLWRzaS1jbS5jCmluZGV4IGNlODEyMDk0MTc3Yy4uZDlmMTBm NDFkZGZiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5l bC1kc2ktY20uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kaXNwbGF5cy9wYW5lbC1k c2ktY20uYwpAQCAtMTEyNywyMCArMTEyNywyMCBAQCBzdGF0aWMgaW50IGRzaWNtX2dldF9tb2Rl cyhzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCiB9CiAKIHN0YXRpYyBpbnQgZHNpY21f Y2hlY2tfdGltaW5ncyhzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCi0JCQkgICAgICAg c3RydWN0IHZpZGVvbW9kZSAqdm0pCisJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUpCiB7CiAJc3RydWN0IHBhbmVsX2Rydl9kYXRhICpkZGF0YSA9IHRvX3BhbmVsX2RhdGEo ZHNzZGV2KTsKIAlpbnQgcmV0ID0gMDsKIAotCWlmICh2bS0+aGFjdGl2ZSAhPSBkZGF0YS0+dm0u aGFjdGl2ZSkKKwlpZiAobW9kZS0+aGRpc3BsYXkgIT0gZGRhdGEtPnZtLmhhY3RpdmUpCiAJCXJl dCA9IC1FSU5WQUw7CiAKLQlpZiAodm0tPnZhY3RpdmUgIT0gZGRhdGEtPnZtLnZhY3RpdmUpCisJ aWYgKG1vZGUtPnZkaXNwbGF5ICE9IGRkYXRhLT52bS52YWN0aXZlKQogCQlyZXQgPSAtRUlOVkFM OwogCiAJaWYgKHJldCkgewogCQlkZXZfd2Fybihkc3NkZXYtPmRldiwgIndyb25nIHJlc29sdXRp b246ICVkIHggJWQiLAotCQkJIHZtLT5oYWN0aXZlLCB2bS0+dmFjdGl2ZSk7CisJCQkgbW9kZS0+ aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKIAkJZGV2X3dhcm4oZHNzZGV2LT5kZXYsICJwYW5l bCByZXNvbHV0aW9uOiAlZCB4ICVkIiwKIAkJCSBkZGF0YS0+dm0uaGFjdGl2ZSwgZGRhdGEtPnZt LnZhY3RpdmUpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9k cGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kcGkuYwppbmRleCAwZGIwMWNhZGYw OWYuLjBjYjNjYjcyZjE1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNz L2RwaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9kcGkuYwpAQCAtNDU5LDcg KzQ1OSw3IEBAIHN0YXRpYyB2b2lkIGRwaV9kaXNwbGF5X2Rpc2FibGUoc3RydWN0IG9tYXBfZHNz X2RldmljZSAqZHNzZGV2KQogfQogCiBzdGF0aWMgdm9pZCBkcGlfc2V0X3RpbWluZ3Moc3RydWN0 IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2LAotCQkJICAgIGNvbnN0IHN0cnVjdCB2aWRlb21vZGUg KnZtKQorCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogewogCXN0 cnVjdCBkcGlfZGF0YSAqZHBpID0gZHBpX2dldF9kYXRhX2Zyb21fZHNzZGV2KGRzc2Rldik7CiAK QEAgLTQ2NywxMyArNDY3LDEzIEBAIHN0YXRpYyB2b2lkIGRwaV9zZXRfdGltaW5ncyhzdHJ1Y3Qg b21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCiAKIAltdXRleF9sb2NrKCZkcGktPmxvY2spOwogCi0J ZHBpLT52bSA9ICp2bTsKKwlkcm1fZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZShtb2RlLCAmZHBp LT52bSk7CiAKIAltdXRleF91bmxvY2soJmRwaS0+bG9jayk7CiB9CiAKIHN0YXRpYyBpbnQgZHBp X2NoZWNrX3RpbWluZ3Moc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2LAotCQkJICAgICBz dHJ1Y3QgdmlkZW9tb2RlICp2bSkKKwkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1v ZGUpCiB7CiAJc3RydWN0IGRwaV9kYXRhICpkcGkgPSBkcGlfZ2V0X2RhdGFfZnJvbV9kc3NkZXYo ZHNzZGV2KTsKIAlpbnQgbGNrX2RpdiwgcGNrX2RpdjsKQEAgLTQ4MiwyMCArNDgyLDIwIEBAIHN0 YXRpYyBpbnQgZHBpX2NoZWNrX3RpbWluZ3Moc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2 LAogCXN0cnVjdCBkcGlfY2xrX2NhbGNfY3R4IGN0eDsKIAlib29sIG9rOwogCi0JaWYgKHZtLT5o YWN0aXZlICUgOCAhPSAwKQorCWlmIChtb2RlLT5oZGlzcGxheSAlIDggIT0gMCkKIAkJcmV0dXJu IC1FSU5WQUw7CiAKLQlpZiAodm0tPnBpeGVsY2xvY2sgPT0gMCkKKwlpZiAobW9kZS0+Y2xvY2sg PT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpZiAoZHBpLT5wbGwpIHsKLQkJb2sgPSBkcGlf cGxsX2Nsa19jYWxjKGRwaSwgdm0tPnBpeGVsY2xvY2ssICZjdHgpOworCQlvayA9IGRwaV9wbGxf Y2xrX2NhbGMoZHBpLCBtb2RlLT5jbG9jayAqIDEwMDAsICZjdHgpOwogCQlpZiAoIW9rKQogCQkJ cmV0dXJuIC1FSU5WQUw7CiAKIAkJZmNrID0gY3R4LnBsbF9jaW5mby5jbGtvdXRbY3R4LmNsa291 dF9pZHhdOwogCX0gZWxzZSB7Ci0JCW9rID0gZHBpX2Rzc19jbGtfY2FsYyhkcGksIHZtLT5waXhl bGNsb2NrLCAmY3R4KTsKKwkJb2sgPSBkcGlfZHNzX2Nsa19jYWxjKGRwaSwgbW9kZS0+Y2xvY2sg KiAxMDAwLCAmY3R4KTsKIAkJaWYgKCFvaykKIAkJCXJldHVybiAtRUlOVkFMOwogCkBAIC01MDcs NyArNTA3LDcgQEAgc3RhdGljIGludCBkcGlfY2hlY2tfdGltaW5ncyhzdHJ1Y3Qgb21hcF9kc3Nf ZGV2aWNlICpkc3NkZXYsCiAKIAlwY2sgPSBmY2sgLyBsY2tfZGl2IC8gcGNrX2RpdjsKIAotCXZt LT5waXhlbGNsb2NrID0gcGNrOworCW1vZGUtPmNsb2NrID0gcGNrIC8gMTAwMDsKIAogCXJldHVy biAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2hkbWk0LmMg Yi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvaGRtaTQuYwppbmRleCA2MDc5Mjk4MWEzM2Yu LjQzMzczODBiMWJmNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2hk bWk0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2hkbWk0LmMKQEAgLTI0OSwx NSArMjQ5LDE1IEBAIHN0YXRpYyB2b2lkIGhkbWlfcG93ZXJfb2ZmX2Z1bGwoc3RydWN0IG9tYXBf aGRtaSAqaGRtaSkKIH0KIAogc3RhdGljIHZvaWQgaGRtaV9kaXNwbGF5X3NldF90aW1pbmdzKHN0 cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiwKLQkJCQkgICAgIGNvbnN0IHN0cnVjdCB2aWRl b21vZGUgKnZtKQorCQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUp CiB7CiAJc3RydWN0IG9tYXBfaGRtaSAqaGRtaSA9IGRzc2Rldl90b19oZG1pKGRzc2Rldik7CiAK IAltdXRleF9sb2NrKCZoZG1pLT5sb2NrKTsKIAotCWhkbWktPmNmZy52bSA9ICp2bTsKKwlkcm1f ZGlzcGxheV9tb2RlX3RvX3ZpZGVvbW9kZShtb2RlLCAmaGRtaS0+Y2ZnLnZtKTsKIAotCWRpc3Bj X3NldF90dl9wY2xrKGhkbWktPmRzcy0+ZGlzcGMsIHZtLT5waXhlbGNsb2NrKTsKKwlkaXNwY19z ZXRfdHZfcGNsayhoZG1pLT5kc3MtPmRpc3BjLCBtb2RlLT5jbG9jayAqIDEwMDApOwogCiAJbXV0 ZXhfdW5sb2NrKCZoZG1pLT5sb2NrKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9v bWFwZHJtL2Rzcy9oZG1pNS5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL2hkbWk1LmMK aW5kZXggZDdkMzNiNGQyYmVkLi5iOTRmODg0YzVjMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9vbWFwZHJtL2Rzcy9oZG1pNS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rz cy9oZG1pNS5jCkBAIC0yNDgsMTUgKzI0OCwxNSBAQCBzdGF0aWMgdm9pZCBoZG1pX3Bvd2VyX29m Zl9mdWxsKHN0cnVjdCBvbWFwX2hkbWkgKmhkbWkpCiB9CiAKIHN0YXRpYyB2b2lkIGhkbWlfZGlz cGxheV9zZXRfdGltaW5ncyhzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCi0JCQkJICAg ICBjb25zdCBzdHJ1Y3QgdmlkZW9tb2RlICp2bSkKKwkJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlKQogewogCXN0cnVjdCBvbWFwX2hkbWkgKmhkbWkgPSBkc3NkZXZf dG9faGRtaShkc3NkZXYpOwogCiAJbXV0ZXhfbG9jaygmaGRtaS0+bG9jayk7CiAKLQloZG1pLT5j Zmcudm0gPSAqdm07CisJZHJtX2Rpc3BsYXlfbW9kZV90b192aWRlb21vZGUobW9kZSwgJmhkbWkt PmNmZy52bSk7CiAKLQlkaXNwY19zZXRfdHZfcGNsayhoZG1pLT5kc3MtPmRpc3BjLCB2bS0+cGl4 ZWxjbG9jayk7CisJZGlzcGNfc2V0X3R2X3BjbGsoaGRtaS0+ZHNzLT5kaXNwYywgbW9kZS0+Y2xv Y2sgKiAxMDAwKTsKIAogCW11dGV4X3VubG9jaygmaGRtaS0+bG9jayk7CiB9CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy5oIGIvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vZHNzL29tYXBkc3MuaAppbmRleCAwMTViMmRkOWZiOTkuLmE2M2IxZDRiN2E4YSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vZHNzL29tYXBkc3MuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvb21hcGRzcy5oCkBAIC0zNjYsOSArMzY2LDkgQEAg c3RydWN0IG9tYXBfZHNzX2RldmljZV9vcHMgewogCXZvaWQgKCpwb3N0X2Rpc2FibGUpKHN0cnVj dCBvbWFwX2Rzc19kZXZpY2UgKmRzc2Rldik7CiAKIAlpbnQgKCpjaGVja190aW1pbmdzKShzdHJ1 Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3NkZXYsCi0JCQkgICAgIHN0cnVjdCB2aWRlb21vZGUgKnZt KTsKKwkJCSAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwogCXZvaWQgKCpzZXRf dGltaW5ncykoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2LAotCQkJICAgIGNvbnN0IHN0 cnVjdCB2aWRlb21vZGUgKnZtKTsKKwkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSk7CiAKIAlib29sICgqZGV0ZWN0KShzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3Nk ZXYpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvc2RpLmMgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvc2RpLmMKaW5kZXggNThjMTc1NjZhNGNiLi5mMDk2 YTdmNzdlNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy9zZGkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3Mvc2RpLmMKQEAgLTIwNiwzNiArMjA2LDM3 IEBAIHN0YXRpYyB2b2lkIHNkaV9kaXNwbGF5X2Rpc2FibGUoc3RydWN0IG9tYXBfZHNzX2Rldmlj ZSAqZHNzZGV2KQogfQogCiBzdGF0aWMgdm9pZCBzZGlfc2V0X3RpbWluZ3Moc3RydWN0IG9tYXBf ZHNzX2RldmljZSAqZHNzZGV2LAotCQkJICAgIGNvbnN0IHN0cnVjdCB2aWRlb21vZGUgKnZtKQor CQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQogewogCXN0cnVjdCBz ZGlfZGV2aWNlICpzZGkgPSBkc3NkZXZfdG9fc2RpKGRzc2Rldik7CiAKLQlzZGktPnZtID0gKnZt OworCWRybV9kaXNwbGF5X21vZGVfdG9fdmlkZW9tb2RlKG1vZGUsICZzZGktPnZtKTsKIH0KIAog c3RhdGljIGludCBzZGlfY2hlY2tfdGltaW5ncyhzdHJ1Y3Qgb21hcF9kc3NfZGV2aWNlICpkc3Nk ZXYsCi0JCQkgICAgIHN0cnVjdCB2aWRlb21vZGUgKnZtKQorCQkJICAgICBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSkKIHsKIAlzdHJ1Y3Qgc2RpX2RldmljZSAqc2RpID0gZHNzZGV2X3Rv X3NkaShkc3NkZXYpOwogCXN0cnVjdCBkaXNwY19jbG9ja19pbmZvIGRpc3BjX2NpbmZvOworCXVu c2lnbmVkIGxvbmcgcGl4ZWxjbG9jayA9IG1vZGUtPmNsb2NrICogMTAwMDsKIAl1bnNpZ25lZCBs b25nIGZjazsKIAl1bnNpZ25lZCBsb25nIHBjazsKIAlpbnQgcjsKIAotCWlmICh2bS0+cGl4ZWxj bG9jayA9PSAwKQorCWlmIChwaXhlbGNsb2NrID09IDApCiAJCXJldHVybiAtRUlOVkFMOwogCi0J ciA9IHNkaV9jYWxjX2Nsb2NrX2RpdihzZGksIHZtLT5waXhlbGNsb2NrLCAmZmNrLCAmZGlzcGNf Y2luZm8pOworCXIgPSBzZGlfY2FsY19jbG9ja19kaXYoc2RpLCBwaXhlbGNsb2NrLCAmZmNrLCAm ZGlzcGNfY2luZm8pOwogCWlmIChyKQogCQlyZXR1cm4gcjsKIAogCXBjayA9IGZjayAvIGRpc3Bj X2NpbmZvLmxja19kaXYgLyBkaXNwY19jaW5mby5wY2tfZGl2OwogCi0JaWYgKHBjayAhPSB2bS0+ cGl4ZWxjbG9jaykgeworCWlmIChwY2sgIT0gcGl4ZWxjbG9jaykgewogCQlEU1NXQVJOKCJQaXhl bCBjbG9jayBhZGp1c3RlZCBmcm9tICVsdSBIeiB0byAlbHUgSHpcbiIsCi0JCQl2bS0+cGl4ZWxj bG9jaywgcGNrKTsKKwkJCXBpeGVsY2xvY2ssIHBjayk7CiAKLQkJdm0tPnBpeGVsY2xvY2sgPSBw Y2s7CisJCW1vZGUtPmNsb2NrID0gcGNrIC8gMTAwMDsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy92ZW5jLmMgYi9kcml2ZXJzL2dwdS9k cm0vb21hcGRybS9kc3MvdmVuYy5jCmluZGV4IDZjYjcwOGUxOTQ0ZS4uN2JjZTU4OTg2NTRhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9kc3MvdmVuYy5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL2Rzcy92ZW5jLmMKQEAgLTU0NCwyOSArNTQ0LDI5IEBAIHN0YXRp YyBpbnQgdmVuY19nZXRfbW9kZXMoc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2LAogCXJl dHVybiBBUlJBWV9TSVpFKG1vZGVzKTsKIH0KIAotc3RhdGljIGVudW0gdmVuY192aWRlb21vZGUg dmVuY19nZXRfdmlkZW9tb2RlKGNvbnN0IHN0cnVjdCB2aWRlb21vZGUgKnZtKQorc3RhdGljIGVu dW0gdmVuY192aWRlb21vZGUgdmVuY19nZXRfdmlkZW9tb2RlKGNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlKQogewotCWlmICghKHZtLT5mbGFncyAmIERJU1BMQVlfRkxBR1NfSU5U RVJMQUNFRCkpCisJaWYgKCEobW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkp CiAJCXJldHVybiBWRU5DX01PREVfVU5LTk9XTjsKIAotCWlmICh2bS0+cGl4ZWxjbG9jayA9PSBv bWFwX2Rzc19wYWxfdm0ucGl4ZWxjbG9jayAmJgotCSAgICB2bS0+aGFjdGl2ZSA9PSBvbWFwX2Rz c19wYWxfdm0uaGFjdGl2ZSAmJgotCSAgICB2bS0+dmFjdGl2ZSA9PSBvbWFwX2Rzc19wYWxfdm0u dmFjdGl2ZSkKKwlpZiAobW9kZS0+Y2xvY2sgPT0gb21hcF9kc3NfcGFsX3ZtLnBpeGVsY2xvY2sg LyAxMDAwICYmCisJICAgIG1vZGUtPmhkaXNwbGF5ID09IG9tYXBfZHNzX3BhbF92bS5oYWN0aXZl ICYmCisJICAgIG1vZGUtPnZkaXNwbGF5ID09IG9tYXBfZHNzX3BhbF92bS52YWN0aXZlKQogCQly ZXR1cm4gVkVOQ19NT0RFX1BBTDsKIAotCWlmICh2bS0+cGl4ZWxjbG9jayA9PSBvbWFwX2Rzc19u dHNjX3ZtLnBpeGVsY2xvY2sgJiYKLQkgICAgdm0tPmhhY3RpdmUgPT0gb21hcF9kc3NfbnRzY192 bS5oYWN0aXZlICYmCi0JICAgIHZtLT52YWN0aXZlID09IG9tYXBfZHNzX250c2Nfdm0udmFjdGl2 ZSkKKwlpZiAobW9kZS0+Y2xvY2sgPT0gb21hcF9kc3NfbnRzY192bS5waXhlbGNsb2NrIC8gMTAw MCAmJgorCSAgICBtb2RlLT5oZGlzcGxheSA9PSBvbWFwX2Rzc19udHNjX3ZtLmhhY3RpdmUgJiYK KwkgICAgbW9kZS0+dmRpc3BsYXkgPT0gb21hcF9kc3NfbnRzY192bS52YWN0aXZlKQogCQlyZXR1 cm4gVkVOQ19NT0RFX05UU0M7CiAKIAlyZXR1cm4gVkVOQ19NT0RFX1VOS05PV047CiB9CiAKIHN0 YXRpYyB2b2lkIHZlbmNfc2V0X3RpbWluZ3Moc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2 LAotCQkJICAgICBjb25zdCBzdHJ1Y3QgdmlkZW9tb2RlICp2bSkKKwkJCSAgICAgY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCiB7CiAJc3RydWN0IHZlbmNfZGV2aWNlICp2ZW5j ID0gZHNzZGV2X3RvX3ZlbmMoZHNzZGV2KTsKLQllbnVtIHZlbmNfdmlkZW9tb2RlIHZlbmNfbW9k ZSA9IHZlbmNfZ2V0X3ZpZGVvbW9kZSh2bSk7CisJZW51bSB2ZW5jX3ZpZGVvbW9kZSB2ZW5jX21v ZGUgPSB2ZW5jX2dldF92aWRlb21vZGUobW9kZSk7CiAKIAlEU1NEQkcoInZlbmNfc2V0X3RpbWlu Z3NcbiIpOwogCkBAIC01OTEsMTcgKzU5MSwxNyBAQCBzdGF0aWMgdm9pZCB2ZW5jX3NldF90aW1p bmdzKHN0cnVjdCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiwKIH0KIAogc3RhdGljIGludCB2ZW5j X2NoZWNrX3RpbWluZ3Moc3RydWN0IG9tYXBfZHNzX2RldmljZSAqZHNzZGV2LAotCQkJICAgICAg c3RydWN0IHZpZGVvbW9kZSAqdm0pCisJCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSkKIHsKIAlEU1NEQkcoInZlbmNfY2hlY2tfdGltaW5nc1xuIik7CiAKLQlzd2l0Y2ggKHZl bmNfZ2V0X3ZpZGVvbW9kZSh2bSkpIHsKKwlzd2l0Y2ggKHZlbmNfZ2V0X3ZpZGVvbW9kZShtb2Rl KSkgewogCWNhc2UgVkVOQ19NT0RFX1BBTDoKLQkJKnZtID0gb21hcF9kc3NfcGFsX3ZtOworCQlk cm1fZGlzcGxheV9tb2RlX2Zyb21fdmlkZW9tb2RlKCZvbWFwX2Rzc19wYWxfdm0sIG1vZGUpOwog CQlyZXR1cm4gMDsKIAogCWNhc2UgVkVOQ19NT0RFX05UU0M6Ci0JCSp2bSA9IG9tYXBfZHNzX250 c2Nfdm07CisJCWRybV9kaXNwbGF5X21vZGVfZnJvbV92aWRlb21vZGUoJm9tYXBfZHNzX250c2Nf dm0sIG1vZGUpOwogCQlyZXR1cm4gMDsKIAogCWRlZmF1bHQ6CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vb21hcGRybS9vbWFwX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vb21hcF9jb25uZWN0b3IuYwppbmRleCBiNjQzM2M1NTQxOWUuLjQ4NzYwM2M1NmIwOCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9jb25uZWN0b3IuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Nvbm5lY3Rvci5jCkBAIC0yNDUsMjIgKzI0NSwx OSBAQCBlbnVtIGRybV9tb2RlX3N0YXR1cyBvbWFwX2Nvbm5lY3Rvcl9tb2RlX2ZpeHVwKHN0cnVj dCBvbWFwX2Rzc19kZXZpY2UgKmRzc2RldiwKIAkJCQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKm1vZGUsCiAJCQkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl KQogewotCXN0cnVjdCB2aWRlb21vZGUgdm0gPSB7IDAgfTsKIAlpbnQgcmV0OwogCi0JZHJtX2Rp c3BsYXlfbW9kZV90b192aWRlb21vZGUobW9kZSwgJnZtKTsKKwlkcm1fbW9kZV9jb3B5KGFkanVz dGVkX21vZGUsIG1vZGUpOwogCiAJZm9yICg7IGRzc2RldjsgZHNzZGV2ID0gZHNzZGV2LT5uZXh0 KSB7CiAJCWlmICghZHNzZGV2LT5vcHMtPmNoZWNrX3RpbWluZ3MpCiAJCQljb250aW51ZTsKIAot CQlyZXQgPSBkc3NkZXYtPm9wcy0+Y2hlY2tfdGltaW5ncyhkc3NkZXYsICZ2bSk7CisJCXJldCA9 IGRzc2Rldi0+b3BzLT5jaGVja190aW1pbmdzKGRzc2RldiwgYWRqdXN0ZWRfbW9kZSk7CiAJCWlm IChyZXQpCiAJCQlyZXR1cm4gTU9ERV9CQUQ7CiAJfQogCi0JZHJtX2Rpc3BsYXlfbW9kZV9mcm9t X3ZpZGVvbW9kZSgmdm0sIGFkanVzdGVkX21vZGUpOwotCiAJcmV0dXJuIE1PREVfT0s7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZW5jb2Rlci5jIGIvZHJp dmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9lbmNvZGVyLmMKaW5kZXggMDZjYTA0ZjEzMGUwLi5h ZGNhMWIxNzU5NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZW5j b2Rlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZW5jb2Rlci5jCkBAIC0x MzQsNyArMTM0LDcgQEAgc3RhdGljIHZvaWQgb21hcF9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciwKIAogCWZvciAoZHNzZGV2ID0gb21hcF9lbmNvZGVyLT5vdXRw dXQ7IGRzc2RldjsgZHNzZGV2ID0gZHNzZGV2LT5uZXh0KSB7CiAJCWlmIChkc3NkZXYtPm9wcy0+ c2V0X3RpbWluZ3MpCi0JCQlkc3NkZXYtPm9wcy0+c2V0X3RpbWluZ3MoZHNzZGV2LCAmdm0pOwor CQkJZHNzZGV2LT5vcHMtPnNldF90aW1pbmdzKGRzc2RldiwgYWRqdXN0ZWRfbW9kZSk7CiAJfQog CiAJLyogU2V0IHRoZSBIRE1JIG1vZGUgYW5kIEhETUkgaW5mb2ZyYW1lIGlmIGFwcGxpY2FibGUu ICovCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==