From mboxrd@z Thu Jan 1 00:00:00 1970 From: Douglas Anderson Subject: [PATCH v4 2/7] drm/panel: simple: Add ability to override typical timing Date: Thu, 28 Mar 2019 10:17:05 -0700 Message-ID: <20190328171710.31949-3-dianders@chromium.org> References: <20190328171710.31949-1-dianders@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by gabe.freedesktop.org (Postfix) with ESMTPS id CEB646E4A2 for ; Thu, 28 Mar 2019 17:17:57 +0000 (UTC) Received: by mail-pl1-x641.google.com with SMTP id bf11so5267184plb.12 for ; Thu, 28 Mar 2019 10:17:57 -0700 (PDT) In-Reply-To: <20190328171710.31949-1-dianders@chromium.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thierry Reding , Heiko Stuebner , Sean Paul Cc: devicetree@vger.kernel.org, Rob Herring , David Airlie , Jeffy Chen , Doug Anderson , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Boris Brezillon , Laurent Pinchart , =?UTF-8?q?Enric=20Balletb=C3=B2?= , =?UTF-8?q?St=C3=A9phane=20Marchesin?= , Ezequiel Garcia , mka@chromium.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpUaGlzIHBhdGNoIGFkZHMg dGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgdGhlIHR5cGljYWwgZGlzcGxheSB0aW1pbmcgZm9yIGEK Z2l2ZW4gcGFuZWwuIFRoaXMgaXMgdXNlZnVsIGZvciBkZXZpY2VzIHdoaWNoIGhhdmUgdGltaW5n IGNvbnN0cmFpbnRzCnRoYXQgZG8gbm90IGFwcGx5IGFjcm9zcyB0aGUgZW50aXJlIGRpc3BsYXkg ZHJpdmVyIChlZzogdG8gYXZvaWQKY3Jvc3N0YWxrIGJldHdlZW4gcGFuZWwgYW5kIGRpZ2l0aXpl ciBvbiBjZXJ0YWluIGxhcHRvcHMpLiBUaGUgcnVsZXMgYXJlCmFzIGZvbGxvd3M6CgotIHBhbmVs IG11c3Qgbm90IHNwZWNpZnkgZml4ZWQgbW9kZSAoc2luY2UgdGhlIG92ZXJyaWRlIG1vZGUgd2ls bAogIGVpdGhlciBiZSB0aGUgc2FtZSBhcyB0aGUgZml4ZWQgbW9kZSwgb3Igd2UnbGwgYmUgdW5h YmxlIHRvCiAgY2hlY2sgdGhlIGJvdW5kcyBvZiB0aGUgb3ZlcnJpZWQpCi0gcGFuZWwgbXVzdCBz cGVjaWZ5IGF0IGxlYXN0IG9uZSBkaXNwbGF5X3RpbWluZyByYW5nZSB3aGljaCB3aWxsIGJlCiAg dXNlZCB0byBlbnN1cmUgdGhlIG92ZXJyaWRlIG1vZGUgZml0cyB3aXRoaW4gaXRzIGJvdW5kcwoK Q2hhbmdlcyBpbiB2MjoKIC0gUGFyc2UgdGhlIGZ1bGwgZGlzcGxheS10aW1pbmdzIG5vZGUgKHVz aW5nIHRoZSBuYXRpdmUtbW9kZSkgKFJvYikKQ2hhbmdlcyBpbiB2MzoKIC0gTm8gbG9uZ2VyIHBh cnNlIGRpc3BsYXktdGltaW5ncyBzdWJub2RlLCB1c2UgcGFuZWwtdGltaW5nIChSb2IpCkNoYW5n ZXMgaW4gdjQ6CiAtIERvbid0IGFkZCBtb2RlIGZyb20gdGltaW5nIGlmIG92ZXJyaWRlIHdhcyBz cGVjaWZpZWQgKFRoaWVycnkpCiAtIEFkZCB3YXJuaW5nIGlmIHRpbWluZyBhbmQgZml4ZWQgbW9k ZSB3YXMgc3BlY2lmaWVkIChUaGllcnJ5KQogLSBEb24ndCBhZGQgZml4ZWQgbW9kZSBpZiB0aW1p bmcgd2FzIHNwZWNpZmllZCAoVGhpZXJyeSkKIC0gUmVmYWN0b3IvcmVuYW1lIGEgYml0IHRvIGF2 b2lkIGV4dHJhIGluZGVudGF0aW9uIGZyb20gImlmIiB0ZXN0cwogLSBpIHNob3VsZCBiZSB1bnNp Z25lZCAoVGhpZXJyeSkKIC0gQWRkIGFubm95aW5nIFdBUk5fT05zIGZvciBzb21lIGNhc2VzIChU aGllcnJ5KQogLSBTaW1wbGlmeSAnTm8gZGlzcGxheV90aW1pbmcgZm91bmQnIGhhbmRsaW5nIChU aGllcnJ5KQogLSBSZW5hbWUgdG8gcGFuZWxfc2ltcGxlX3BhcnNlX292ZXJyaWRlX21vZGUoKSAo VGhpZXJyeSkKCkNjOiBEb3VnIEFuZGVyc29uIDxkaWFuZGVyc0BjaHJvbWl1bS5vcmc+CkNjOiBF cmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0PgpDYzogSGVpa28gU3R1ZWJuZXIgPGhlaWtvQHNu dGVjaC5kZT4KQ2M6IEplZmZ5IENoZW4gPGplZmZ5LmNoZW5Acm9jay1jaGlwcy5jb20+CkNjOiBS b2IgSGVycmluZyA8cm9iaCtkdEBrZXJuZWwub3JnPgpDYzogU3TDqXBoYW5lIE1hcmNoZXNpbiA8 bWFyY2hldUBjaHJvbWl1bS5vcmc+CkNjOiBUaGllcnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdA Z21haWwuY29tPgpDYzogZGV2aWNldHJlZUB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBj aHJvbWl1bS5vcmc+ClRlc3RlZC1ieTogRW5yaWMgQmFsbGV0Ym8gaSBTZXJyYSA8ZW5yaWMuYmFs bGV0Ym9AY29sbGFib3JhLmNvbT4KU2lnbmVkLW9mZi1ieTogRG91Z2xhcyBBbmRlcnNvbiA8ZGlh bmRlcnNAY2hyb21pdW0ub3JnPgotLS0KCiBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2lt cGxlLmMgfCAxMDkgKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg MTA0IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3BhbmVsL3BhbmVsLXNpbXBsZS5jIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVs LXNpbXBsZS5jCmluZGV4IDllODIxOGY2YTNmMi4uYWQ0ZjRhYWMyZDQ0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2ltcGxlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLXNpbXBsZS5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8ZHJtL2Ry bV9wYW5lbC5oPgogCiAjaW5jbHVkZSA8dmlkZW8vZGlzcGxheV90aW1pbmcuaD4KKyNpbmNsdWRl IDx2aWRlby9vZl9kaXNwbGF5X3RpbWluZy5oPgogI2luY2x1ZGUgPHZpZGVvL3ZpZGVvbW9kZS5o PgogCiBzdHJ1Y3QgcGFuZWxfZGVzYyB7CkBAIC05MSw2ICs5Miw4IEBAIHN0cnVjdCBwYW5lbF9z aW1wbGUgewogCXN0cnVjdCBpMmNfYWRhcHRlciAqZGRjOwogCiAJc3RydWN0IGdwaW9fZGVzYyAq ZW5hYmxlX2dwaW87CisKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBvdmVycmlkZV9tb2RlOwog fTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFuZWxfc2ltcGxlICp0b19wYW5lbF9zaW1wbGUo c3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCkBAIC05OCwxNiArMTAxLDEzIEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IHBhbmVsX3NpbXBsZSAqdG9fcGFuZWxfc2ltcGxlKHN0cnVjdCBkcm1fcGFuZWwg KnBhbmVsKQogCXJldHVybiBjb250YWluZXJfb2YocGFuZWwsIHN0cnVjdCBwYW5lbF9zaW1wbGUs IGJhc2UpOwogfQogCi1zdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9nZXRfZml4ZWRfbW9kZXMoc3Ry dWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCitzdGF0aWMgdW5zaWduZWQgaW50IHBhbmVsX3NpbXBs ZV9nZXRfdGltaW5nc19tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkKIHsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmJhc2UuY29ubmVjdG9yOwogCXN0 cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CiAJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGU7CiAJdW5zaWduZWQgaW50IGksIG51bSA9IDA7CiAKLQlpZiAoIXBhbmVs LT5kZXNjKQotCQlyZXR1cm4gMDsKLQogCWZvciAoaSA9IDA7IGkgPCBwYW5lbC0+ZGVzYy0+bnVt X3RpbWluZ3M7IGkrKykgewogCQljb25zdCBzdHJ1Y3QgZGlzcGxheV90aW1pbmcgKmR0ID0gJnBh bmVsLT5kZXNjLT50aW1pbmdzW2ldOwogCQlzdHJ1Y3QgdmlkZW9tb2RlIHZtOwpAQCAtMTMxLDYg KzEzMSwxNiBAQCBzdGF0aWMgaW50IHBhbmVsX3NpbXBsZV9nZXRfZml4ZWRfbW9kZXMoc3RydWN0 IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJCW51bSsrOwogCX0KIAorCXJldHVybiBudW07Cit9CisK K3N0YXRpYyB1bnNpZ25lZCBpbnQgcGFuZWxfc2ltcGxlX2dldF9maXhlZF9tb2RlcyhzdHJ1Y3Qg cGFuZWxfc2ltcGxlICpwYW5lbCkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y ID0gcGFuZWwtPmJhc2UuY29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwYW5l bC0+YmFzZS5kcm07CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7CisJdW5zaWduZWQg aW50IGksIG51bSA9IDA7CisKIAlmb3IgKGkgPSAwOyBpIDwgcGFuZWwtPmRlc2MtPm51bV9tb2Rl czsgaSsrKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptID0gJnBhbmVsLT5k ZXNjLT5tb2Rlc1tpXTsKIApAQCAtMTUyLDYgKzE2Miw0NCBAQCBzdGF0aWMgaW50IHBhbmVsX3Np bXBsZV9nZXRfZml4ZWRfbW9kZXMoc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwpCiAJCW51bSsr OwogCX0KIAorCXJldHVybiBudW07Cit9CisKK3N0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX2dldF9u b25fZWRpZF9tb2RlcyhzdHJ1Y3QgcGFuZWxfc2ltcGxlICpwYW5lbCkKK3sKKwlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmJhc2UuY29ubmVjdG9yOworCXN0cnVjdCBk cm1fZGV2aWNlICpkcm0gPSBwYW5lbC0+YmFzZS5kcm07CisJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGU7CisJYm9vbCBoYXNfb3ZlcnJpZGUgPSBwYW5lbC0+b3ZlcnJpZGVfbW9kZS50eXBl OworCXVuc2lnbmVkIGludCBudW0gPSAwOworCisJaWYgKCFwYW5lbC0+ZGVzYykKKwkJcmV0dXJu IDA7CisKKwlpZiAoaGFzX292ZXJyaWRlKSB7CisJCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUo ZHJtLCAmcGFuZWwtPm92ZXJyaWRlX21vZGUpOworCQlpZiAobW9kZSkgeworCQkJZHJtX21vZGVf cHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOworCQkJbnVtID0gMTsKKwkJfSBlbHNlIHsKKwkJ CWRldl9lcnIoZHJtLT5kZXYsICJmYWlsZWQgdG8gYWRkIG92ZXJyaWRlIG1vZGVcbiIpOworCQl9 CisJfQorCisJLyogT25seSBhZGQgdGltaW5ncyBpZiBvdmVycmlkZSB3YXMgbm90IHRoZXJlIG9y IGZhaWxlZCB0byB2YWxpZGF0ZSAqLworCWlmIChudW0gPT0gMCAmJiBwYW5lbC0+ZGVzYy0+bnVt X3RpbWluZ3MpCisJCW51bSA9IHBhbmVsX3NpbXBsZV9nZXRfdGltaW5nc19tb2RlcyhwYW5lbCk7 CisKKwkvKgorCSAqIE9ubHkgYWRkIGZpeGVkIG1vZGVzIGlmIHRpbWluZ3Mvb3ZlcnJpZGUgYWRk ZWQgbm8gbW9kZS4KKwkgKgorCSAqIFdlIHNob3VsZCBvbmx5IGV2ZXIgaGF2ZSBlaXRoZXIgdGhl IGRpc3BsYXkgdGltaW5ncyBzcGVjaWZpZWQKKwkgKiBvciBhIGZpeGVkIG1vZGUuIEFueXRoaW5n IGVsc2UgaXMgcmF0aGVyIGJvZ3VzLgorCSAqLworCVdBUk5fT04ocGFuZWwtPmRlc2MtPm51bV90 aW1pbmdzICYmIHBhbmVsLT5kZXNjLT5udW1fbW9kZXMpOworCWlmIChudW0gPT0gMCkKKwkJbnVt ID0gcGFuZWxfc2ltcGxlX2dldF9maXhlZF9tb2RlcyhwYW5lbCk7CisKIAljb25uZWN0b3ItPmRp c3BsYXlfaW5mby5icGMgPSBwYW5lbC0+ZGVzYy0+YnBjOwogCWNvbm5lY3Rvci0+ZGlzcGxheV9p bmZvLndpZHRoX21tID0gcGFuZWwtPmRlc2MtPnNpemUud2lkdGg7CiAJY29ubmVjdG9yLT5kaXNw bGF5X2luZm8uaGVpZ2h0X21tID0gcGFuZWwtPmRlc2MtPnNpemUuaGVpZ2h0OwpAQCAtMjY4LDcg KzMxNiw3IEBAIHN0YXRpYyBpbnQgcGFuZWxfc2ltcGxlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCkKIAl9CiAKIAkvKiBhZGQgaGFyZC1jb2RlZCBwYW5lbCBtb2RlcyAqLwotCW51 bSArPSBwYW5lbF9zaW1wbGVfZ2V0X2ZpeGVkX21vZGVzKHApOworCW51bSArPSBwYW5lbF9zaW1w bGVfZ2V0X25vbl9lZGlkX21vZGVzKHApOwogCiAJcmV0dXJuIG51bTsKIH0KQEAgLTI5OSwxMCAr MzQ3LDU4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNzIHBhbmVsX3NpbXBs ZV9mdW5jcyA9IHsKIAkuZ2V0X3RpbWluZ3MgPSBwYW5lbF9zaW1wbGVfZ2V0X3RpbWluZ3MsCiB9 OwogCisjZGVmaW5lIFBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sodG9fY2hlY2ssIGJvdW5kcywg ZmllbGQpIFwKKwkodG9fY2hlY2stPmZpZWxkLnR5cCA+PSBib3VuZHMtPmZpZWxkLm1pbiAmJiBc CisJIHRvX2NoZWNrLT5maWVsZC50eXAgPD0gYm91bmRzLT5maWVsZC5tYXgpCitzdGF0aWMgdm9p ZCBwYW5lbF9zaW1wbGVfcGFyc2Vfb3ZlcnJpZGVfbW9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsCisJ CQkJCSAgICAgc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWwsCisJCQkJCSAgICAgY29uc3Qgc3Ry dWN0IGRpc3BsYXlfdGltaW5nICpvdCkKK3sKKwljb25zdCBzdHJ1Y3QgcGFuZWxfZGVzYyAqZGVz YyA9IHBhbmVsLT5kZXNjOworCXN0cnVjdCB2aWRlb21vZGUgdm07CisJdW5zaWduZWQgaW50IGk7 CisKKwlpZiAoV0FSTl9PTihkZXNjLT5udW1fbW9kZXMpKSB7CisJCWRldl9lcnIoZGV2LCAiUmVq ZWN0IG92ZXJyaWRlIG1vZGU6IHBhbmVsIGhhcyBhIGZpeGVkIG1vZGVcbiIpOworCQlyZXR1cm47 CisJfQorCWlmIChXQVJOX09OKCFkZXNjLT5udW1fdGltaW5ncykpIHsKKwkJZGV2X2VycihkZXYs ICJSZWplY3Qgb3ZlcnJpZGUgbW9kZTogbm8gdGltaW5ncyBzcGVjaWZpZWRcbiIpOworCQlyZXR1 cm47CisJfQorCisJZm9yIChpID0gMDsgaSA8IHBhbmVsLT5kZXNjLT5udW1fdGltaW5nczsgaSsr KSB7CisJCWNvbnN0IHN0cnVjdCBkaXNwbGF5X3RpbWluZyAqZHQgPSAmcGFuZWwtPmRlc2MtPnRp bWluZ3NbaV07CisKKwkJaWYgKCFQQU5FTF9TSU1QTEVfQk9VTkRTX0NIRUNLKG90LCBkdCwgaGFj dGl2ZSkgfHwKKwkJICAgICFQQU5FTF9TSU1QTEVfQk9VTkRTX0NIRUNLKG90LCBkdCwgaGZyb250 X3BvcmNoKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCBoYmFj a19wb3JjaCkgfHwKKwkJICAgICFQQU5FTF9TSU1QTEVfQk9VTkRTX0NIRUNLKG90LCBkdCwgaHN5 bmNfbGVuKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCB2YWN0 aXZlKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCB2ZnJvbnRf cG9yY2gpIHx8CisJCSAgICAhUEFORUxfU0lNUExFX0JPVU5EU19DSEVDSyhvdCwgZHQsIHZiYWNr X3BvcmNoKSB8fAorCQkgICAgIVBBTkVMX1NJTVBMRV9CT1VORFNfQ0hFQ0sob3QsIGR0LCB2c3lu Y19sZW4pKQorCQkJY29udGludWU7CisKKwkJaWYgKG90LT5mbGFncyAhPSBkdC0+ZmxhZ3MpCisJ CQljb250aW51ZTsKKworCQl2aWRlb21vZGVfZnJvbV90aW1pbmcob3QsICZ2bSk7CisJCWRybV9k aXNwbGF5X21vZGVfZnJvbV92aWRlb21vZGUoJnZtLCAmcGFuZWwtPm92ZXJyaWRlX21vZGUpOwor CQlwYW5lbC0+b3ZlcnJpZGVfbW9kZS50eXBlIHw9IERSTV9NT0RFX1RZUEVfRFJJVkVSIHwKKwkJ CQkJICAgICBEUk1fTU9ERV9UWVBFX1BSRUZFUlJFRDsKKwkJYnJlYWs7CisJfQorCisJaWYgKFdB Uk5fT04oIXBhbmVsLT5vdmVycmlkZV9tb2RlLnR5cGUpKQorCQlkZXZfZXJyKGRldiwgIlJlamVj dCBvdmVycmlkZSBtb2RlOiBObyBkaXNwbGF5X3RpbWluZyBmb3VuZFxuIik7Cit9CisKIHN0YXRp YyBpbnQgcGFuZWxfc2ltcGxlX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3Qgc3RydWN0 IHBhbmVsX2Rlc2MgKmRlc2MpCiB7CiAJc3RydWN0IGRldmljZV9ub2RlICpiYWNrbGlnaHQsICpk ZGM7CiAJc3RydWN0IHBhbmVsX3NpbXBsZSAqcGFuZWw7CisJc3RydWN0IGRpc3BsYXlfdGltaW5n IGR0OwogCWludCBlcnI7CiAKIAlwYW5lbCA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcGFu ZWwpLCBHRlBfS0VSTkVMKTsKQEAgLTM0OCw2ICs0NDQsOSBAQCBzdGF0aWMgaW50IHBhbmVsX3Np bXBsZV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBwYW5lbF9kZXNjICpk ZXNjKQogCQl9CiAJfQogCisJaWYgKCFvZl9nZXRfZGlzcGxheV90aW1pbmcoZGV2LT5vZl9ub2Rl LCAicGFuZWwtdGltaW5nIiwgJmR0KSkKKwkJcGFuZWxfc2ltcGxlX3BhcnNlX292ZXJyaWRlX21v ZGUoZGV2LCBwYW5lbCwgJmR0KTsKKwogCWRybV9wYW5lbF9pbml0KCZwYW5lbC0+YmFzZSk7CiAJ cGFuZWwtPmJhc2UuZGV2ID0gZGV2OwogCXBhbmVsLT5iYXNlLmZ1bmNzID0gJnBhbmVsX3NpbXBs ZV9mdW5jczsKLS0gCjIuMjEuMC4zOTIuZ2Y4ZjY3ODcxNTllLWdvb2cKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==