From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 60445C433FE for ; Mon, 7 Nov 2022 17:51:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6h8iGR+3KEYFMQ4hIIi9CJVsP55Yqar9yqL3edE7IY8=; b=Swi1t/p/TM5YCA XpxR34lNnaYtNHg3DSIOFDgOTHtqDzefICzU+G7go8fueJ/tPznvV+lS7jbQXPGy38qxZhxQKdzjQ QMTO+ilrWXu+2aKUKExlph0WPZFZFtdb3y/9g6T0NdpfMp4SpU2pZFZWa98wyiN/H71p3v8Q9PwfB l2Y3E/HKt0/CcucaXSDtY8mmHFzUv+QdyfHQqKITupiNpCwICNHJC4Q7MnetRZnc5iO7YEUNN6o9N yYEUB1RM07rLvPdM3FW3y+P89wKf9a8pOZ7vkmsFZAHI+anVbKdhYsuPv9qan2w8LP/E3Om9wb5Ws yfT/JIEAzjDNrljXSvSA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1os6GK-00Gudb-Mz; Mon, 07 Nov 2022 17:50:20 +0000 Received: from smtp.domeneshop.no ([2a01:5b40:0:3005::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1os6GH-00Guaz-4F for linux-arm-kernel@lists.infradead.org; Mon, 07 Nov 2022 17:50:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tronnes.org ; s=ds202112; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=fi5PW2vDddvrBe6sz0jdt+AvkH5pl+li/RlL0LlK+ag=; b=Dn6x3v5Phsq10rSGRGpGtKsfMo /IxjpO9DiAWvWeXH+t2Km3OVvBXsBXqztlIde5c+p/J02KS6HMnaXnuCJiA0iDoL6OPBGZneBYZtF dSU/71Kw9IElmYJkLisgYrMCCerxmsFJ+nh6IkFTnx+TzmlqSqyj8mh+XXcTmeniZLP7hBKJINceq iVEmUrMr5csy1qxFhMlNwU/cIsvL92fAg3iaizmR3o3zd0ts/EJn1MqINkizliL+N+mYUGnkHIuRA cjar2EHQTeKlgnukcSshSh+OUVb2DVAUzVM4Mq7HA+ax6zi0F0ktrxtKzSsvvKrY88XkkLUq6iQd2 bqJr/LXw==; Received: from [2a01:799:95a:cb00:cca0:57ac:c55d:a485] (port=63636) by smtp.domeneshop.no with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1os6G6-0003ME-Ct; Mon, 07 Nov 2022 18:50:06 +0100 Message-ID: <9e9a8a48-89f2-35d4-b26f-afa7cc44f2f6@tronnes.org> Date: Mon, 7 Nov 2022 18:49:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: [PATCH v7 14/23] drm/modes: Properly generate a drm_display_mode from a named mode To: Maxime Ripard , Jani Nikula , Joonas Lahtinen , Tvrtko Ursulin , Ben Skeggs , Rodrigo Vivi , Maxime Ripard , Samuel Holland , Jernej Skrabec , Maarten Lankhorst , Emma Anholt , Karol Herbst , Daniel Vetter , Chen-Yu Tsai , Lyude Paul , Thomas Zimmermann , David Airlie Cc: Phil Elwell , Hans de Goede , linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, Geert Uytterhoeven , Dave Stevenson , linux-arm-kernel@lists.infradead.org, Dom Cobley , Mateusz Kwiatkowski , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= References: <20220728-rpi-analog-tv-properties-v7-0-7072a478c6b3@cerno.tech> <20220728-rpi-analog-tv-properties-v7-14-7072a478c6b3@cerno.tech> From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= In-Reply-To: <20220728-rpi-analog-tv-properties-v7-14-7072a478c6b3@cerno.tech> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221107_095017_372984_77D60154 X-CRM114-Status: GOOD ( 30.71 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CgpEZW4gMDcuMTEuMjAyMiAxNS4xNiwgc2tyZXYgTWF4aW1lIFJpcGFyZDoKPiBUaGUgZnJhbWV3 b3JrIHdpbGwgZ2V0IHRoZSBkcm1fZGlzcGxheV9tb2RlIGZyb20gdGhlIGRybV9jbWRsaW5lX21v ZGUgaXQKPiBnb3QgYnkgcGFyc2luZyB0aGUgdmlkZW8gY29tbWFuZCBsaW5lIGFyZ3VtZW50IGJ5 IGNhbGxpbmcKPiBkcm1fY29ubmVjdG9yX3BpY2tfY21kbGluZV9tb2RlKCkuCj4gCj4gVGhlIGhl YXZ5IGxpZnRpbmcgd2lsbCB0aGVuIGJlIGRvbmUgYnkgdGhlIGRybV9tb2RlX2NyZWF0ZV9mcm9t X2NtZGxpbmVfbW9kZSgpCj4gZnVuY3Rpb24uCj4gCj4gSW4gdGhlIGNhc2Ugb2YgdGhlIG5hbWVk IG1vZGVzIHRob3VnaCwgdGhlcmUncyBubyByZWFsIGNvZGUgdG8gbWFrZSB0aGF0Cj4gdHJhbnNs YXRpb24gYW5kIHdlIHJlbHkgb24gdGhlIGRyaXZlcnMgdG8gZ3Vlc3Mgd2hpY2ggYWN0dWFsIGRp c3BsYXkgbW9kZQo+IHdlIG1lYW50Lgo+IAo+IExldCdzIG1vZGlmeSBkcm1fbW9kZV9jcmVhdGVf ZnJvbV9jbWRsaW5lX21vZGUoKSB0byBwcm9wZXJseSBnZW5lcmF0ZSB0aGUKPiBkcm1fZGlzcGxh eV9tb2RlIHdlIG1lYW4gd2hlbiBwYXNzaW5nIGEgbmFtZWQgbW9kZS4KPiAKPiBTaWduZWQtb2Zm LWJ5OiBNYXhpbWUgUmlwYXJkIDxtYXhpbWVAY2Vybm8udGVjaD4KPiAKPiAtLS0KPiBDaGFuZ2Vz IGluIHY3Ogo+IC0gVXNlIHR2X21vZGVfc3BlY2lmaWVkIGluIGRybV9tb2RlX3BhcnNlX2NvbW1h bmRfbGluZV9mb3JfY29ubmVjdG9yCj4gCj4gQ2hhbmdlcyBpbiB2NjoKPiAtIEZpeCBnZXRfbW9k ZXMgdG8gcmV0dXJuIDAgaW5zdGVhZCBvZiBhbiBlcnJvciBjb2RlCj4gLSBSZW5hbWUgdGhlIHRl c3RzIHRvIGZvbGxvdyB0aGUgRFJNIHRlc3QgbmFtaW5nIGNvbnZlbnRpb24KPiAKPiBDaGFuZ2Vz IGluIHY1Ogo+IC0gU3dpdGNoZWQgdG8gS1VOSVRfQVNTRVJUX05PVF9OVUxMCj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYyAgICAgICAgICAgICAgICAgICAgIHwgMzQgKysrKysr KysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL3Rlc3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMg fCA3NyArKysrKysrKysrKysrKysrKysrKysrKystCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTA5IGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fbW9kZXMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+IGluZGV4IGRj MDM3ZjdjZWIzNy4uNDk0NDFjYWJkZDlkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fbW9kZXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZXMuYwo+IEBAIC0yNDk3 LDYgKzI0OTcsMzYgQEAgYm9vbCBkcm1fbW9kZV9wYXJzZV9jb21tYW5kX2xpbmVfZm9yX2Nvbm5l Y3Rvcihjb25zdCBjaGFyICptb2RlX29wdGlvbiwKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9t b2RlX3BhcnNlX2NvbW1hbmRfbGluZV9mb3JfY29ubmVjdG9yKTsKPiAgCj4gK3N0YXRpYyBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZHJtX25hbWVkX21vZGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiArCQkJCQkgICAgICAgc3RydWN0IGRybV9jbWRsaW5lX21vZGUgKmNtZCkKPiArewo+ICsJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gKwl1bnNpZ25lZCBpbnQgaTsKPiArCj4g Kwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkcm1fbmFtZWRfbW9kZXMpOyBpKyspIHsKPiAr CQljb25zdCBzdHJ1Y3QgZHJtX25hbWVkX21vZGUgKm5hbWVkX21vZGUgPSAmZHJtX25hbWVkX21v ZGVzW2ldOwo+ICsKPiArCQlpZiAoc3RyY21wKGNtZC0+bmFtZSwgbmFtZWRfbW9kZS0+bmFtZSkp Cj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoIWNtZC0+dHZfbW9kZV9zcGVjaWZpZWQpCj4g KwkJCWNvbnRpbnVlOwoKT25seSBhIG5hbWVkIG1vZGUgd2lsbCBzZXQgY21kLT5uYW1lLCBzbyBp cyB0aGlzIGNoZWNrIG5lY2Vzc2FyeT8KCj4gKwo+ICsJCW1vZGUgPSBkcm1fYW5hbG9nX3R2X21v ZGUoZGV2LAo+ICsJCQkJCSAgbmFtZWRfbW9kZS0+dHZfbW9kZSwKPiArCQkJCQkgIG5hbWVkX21v ZGUtPnBpeGVsX2Nsb2NrX2toeiAqIDEwMDAsCj4gKwkJCQkJICBuYW1lZF9tb2RlLT54cmVzLAo+ ICsJCQkJCSAgbmFtZWRfbW9kZS0+eXJlcywKPiArCQkJCQkgIG5hbWVkX21vZGUtPmZsYWdzICYg RFJNX01PREVfRkxBR19JTlRFUkxBQ0UpOwo+ICsJCWlmICghbW9kZSkKPiArCQkJcmV0dXJuIE5V TEw7Cj4gKwo+ICsJCXJldHVybiBtb2RlOwoKWW91IGNhbiBqdXN0IHJldHVybiB0aGUgcmVzdWx0 IGZyb20gZHJtX2FuYWxvZ190dl9tb2RlKCkgZGlyZWN0bHkuCgpXaXRoIHRob3NlIGNvbnNpZGVy ZWQ6CgpSZXZpZXdlZC1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cgo+ ICsJfQo+ICsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICAvKioKPiAgICogZHJtX21vZGVf Y3JlYXRlX2Zyb21fY21kbGluZV9tb2RlIC0gY29udmVydCBhIGNvbW1hbmQgbGluZSBtb2RlbGlu ZSBpbnRvIGEgRFJNIGRpc3BsYXkgbW9kZQo+ICAgKiBAZGV2OiBEUk0gZGV2aWNlIHRvIGNyZWF0 ZSB0aGUgbmV3IG1vZGUgZm9yCj4gQEAgLTI1MTQsNyArMjU0NCw5IEBAIGRybV9tb2RlX2NyZWF0 ZV9mcm9tX2NtZGxpbmVfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJaWYgKGNtZC0+ eHJlcyA9PSAwIHx8IGNtZC0+eXJlcyA9PSAwKQo+ICAJCXJldHVybiBOVUxMOwo+ICAKPiAtCWlm IChjbWQtPmN2dCkKPiArCWlmIChzdHJsZW4oY21kLT5uYW1lKSkKPiArCQltb2RlID0gZHJtX25h bWVkX21vZGUoZGV2LCBjbWQpOwo+ICsJZWxzZSBpZiAoY21kLT5jdnQpCj4gIAkJbW9kZSA9IGRy bV9jdnRfbW9kZShkZXYsCj4gIAkJCQkgICAgY21kLT54cmVzLCBjbWQtPnlyZXMsCj4gIAkJCQkg ICAgY21kLT5yZWZyZXNoX3NwZWNpZmllZCA/IGNtZC0+cmVmcmVzaCA6IDYwLAo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVzdHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYyBiL2Ry aXZlcnMvZ3B1L2RybS90ZXN0cy9kcm1fY2xpZW50X21vZGVzZXRfdGVzdC5jCj4gaW5kZXggM2Fh MWFjZmU3NWRmLi5mZGZlOWUyMDcwMmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rl c3RzL2RybV9jbGllbnRfbW9kZXNldF90ZXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVz dHMvZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3QuYwo+IEBAIC0yMSw3ICsyMSwyNiBAQCBzdHJ1Y3Qg ZHJtX2NsaWVudF9tb2Rlc2V0X3Rlc3RfcHJpdiB7Cj4gIAo+ICBzdGF0aWMgaW50IGRybV9jbGll bnRfbW9kZXNldF9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IpCj4gIHsKPiAtCXJldHVybiBkcm1fYWRkX21vZGVzX25vZWRpZChjb25uZWN0b3IsIDE5 MjAsIDEyMDApOwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gKwlpbnQgY291 bnQ7Cj4gKwo+ICsJY291bnQgPSBkcm1fYWRkX21vZGVzX25vZWRpZChjb25uZWN0b3IsIDE5MjAs IDEyMDApOwo+ICsKPiArCW1vZGUgPSBkcm1fbW9kZV9hbmFsb2dfbnRzY180ODBpKGNvbm5lY3Rv ci0+ZGV2KTsKPiArCWlmICghbW9kZSkKPiArCQlyZXR1cm4gY291bnQ7Cj4gKwo+ICsJZHJtX21v ZGVfcHJvYmVkX2FkZChjb25uZWN0b3IsIG1vZGUpOwo+ICsJY291bnQgKz0gMTsKPiArCj4gKwlt b2RlID0gZHJtX21vZGVfYW5hbG9nX3BhbF81NzZpKGNvbm5lY3Rvci0+ZGV2KTsKPiArCWlmICgh bW9kZSkKPiArCQlyZXR1cm4gY291bnQ7Cj4gKwo+ICsJZHJtX21vZGVfcHJvYmVkX2FkZChjb25u ZWN0b3IsIG1vZGUpOwo+ICsJY291bnQgKz0gMTsKPiArCj4gKwlyZXR1cm4gY291bnQ7Cj4gIH0K PiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgZHJt X2NsaWVudF9tb2Rlc2V0X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4gQEAgLTUyLDYgKzcx LDkgQEAgc3RhdGljIGludCBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9pbml0KHN0cnVjdCBrdW5p dCAqdGVzdCkKPiAgCj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJnByaXYtPmNvbm5lY3Rv ciwgJmRybV9jbGllbnRfbW9kZXNldF9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiAgCj4gKwlw cml2LT5jb25uZWN0b3IuaW50ZXJsYWNlX2FsbG93ZWQgPSB0cnVlOwo+ICsJcHJpdi0+Y29ubmVj dG9yLmRvdWJsZXNjYW5fYWxsb3dlZCA9IHRydWU7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIAo+ICB9 Cj4gQEAgLTg1LDkgKzEwNyw2MiBAQCBzdGF0aWMgdm9pZCBkcm1fdGVzdF9waWNrX2NtZGxpbmVf cmVzXzE5MjBfMTA4MF82MChzdHJ1Y3Qga3VuaXQgKnRlc3QpCj4gIAlLVU5JVF9FWFBFQ1RfVFJV RSh0ZXN0LCBkcm1fbW9kZV9lcXVhbChleHBlY3RlZF9tb2RlLCBtb2RlKSk7Cj4gIH0KPiAgCj4g K3N0YXRpYyB2b2lkIGRybV90ZXN0X3BpY2tfY21kbGluZV9uYW1lZF9udHNjKHN0cnVjdCBrdW5p dCAqdGVzdCkKPiArewo+ICsJc3RydWN0IGRybV9jbGllbnRfbW9kZXNldF90ZXN0X3ByaXYgKnBy aXYgPSB0ZXN0LT5wcml2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IHByaXYtPmRybTsK PiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmcHJpdi0+Y29ubmVjdG9yOwo+ ICsJc3RydWN0IGRybV9jbWRsaW5lX21vZGUgKmNtZGxpbmVfbW9kZSA9ICZjb25uZWN0b3ItPmNt ZGxpbmVfbW9kZTsKPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlOwo+ICsJY29uc3Qg Y2hhciAqY21kbGluZSA9ICJOVFNDIjsKPiArCWludCByZXQ7Cj4gKwo+ICsJS1VOSVRfQVNTRVJU X1RSVUUodGVzdCwKPiArCQkJICBkcm1fbW9kZV9wYXJzZV9jb21tYW5kX2xpbmVfZm9yX2Nvbm5l Y3RvcihjbWRsaW5lLAo+ICsJCQkJCQkJCSAgICBjb25uZWN0b3IsCj4gKwkJCQkJCQkJICAgIGNt ZGxpbmVfbW9kZSkpOwo+ICsKPiArCW11dGV4X2xvY2soJmRybS0+bW9kZV9jb25maWcubXV0ZXgp Owo+ICsJcmV0ID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVzKGNvbm5l Y3RvciwgMTkyMCwgMTA4MCk7Cj4gKwltdXRleF91bmxvY2soJmRybS0+bW9kZV9jb25maWcubXV0 ZXgpOwo+ICsJS1VOSVRfQVNTRVJUX0dUKHRlc3QsIHJldCwgMCk7Cj4gKwo+ICsJbW9kZSA9IGRy bV9jb25uZWN0b3JfcGlja19jbWRsaW5lX21vZGUoY29ubmVjdG9yKTsKPiArCUtVTklUX0FTU0VS VF9OT1RfTlVMTCh0ZXN0LCBtb2RlKTsKPiArCj4gKwlLVU5JVF9FWFBFQ1RfVFJVRSh0ZXN0LCBk cm1fbW9kZV9lcXVhbChkcm1fbW9kZV9hbmFsb2dfbnRzY180ODBpKGRybSksIG1vZGUpKTsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgZHJtX3Rlc3RfcGlja19jbWRsaW5lX25hbWVkX3BhbChzdHJ1 Y3Qga3VuaXQgKnRlc3QpCj4gK3sKPiArCXN0cnVjdCBkcm1fY2xpZW50X21vZGVzZXRfdGVzdF9w cml2ICpwcml2ID0gdGVzdC0+cHJpdjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBwcml2 LT5kcm07Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJnByaXYtPmNvbm5l Y3RvcjsKPiArCXN0cnVjdCBkcm1fY21kbGluZV9tb2RlICpjbWRsaW5lX21vZGUgPSAmY29ubmVj dG9yLT5jbWRsaW5lX21vZGU7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiAr CWNvbnN0IGNoYXIgKmNtZGxpbmUgPSAiUEFMIjsKPiArCWludCByZXQ7Cj4gKwo+ICsJS1VOSVRf QVNTRVJUX1RSVUUodGVzdCwKPiArCQkJICBkcm1fbW9kZV9wYXJzZV9jb21tYW5kX2xpbmVfZm9y X2Nvbm5lY3RvcihjbWRsaW5lLAo+ICsJCQkJCQkJCSAgICBjb25uZWN0b3IsCj4gKwkJCQkJCQkJ ICAgIGNtZGxpbmVfbW9kZSkpOwo+ICsKPiArCW11dGV4X2xvY2soJmRybS0+bW9kZV9jb25maWcu bXV0ZXgpOwo+ICsJcmV0ID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9yX21vZGVz KGNvbm5lY3RvciwgMTkyMCwgMTA4MCk7Cj4gKwltdXRleF91bmxvY2soJmRybS0+bW9kZV9jb25m aWcubXV0ZXgpOwo+ICsJS1VOSVRfQVNTRVJUX0dUKHRlc3QsIHJldCwgMCk7Cj4gKwo+ICsJbW9k ZSA9IGRybV9jb25uZWN0b3JfcGlja19jbWRsaW5lX21vZGUoY29ubmVjdG9yKTsKPiArCUtVTklU X0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBtb2RlKTsKPiArCj4gKwlLVU5JVF9FWFBFQ1RfVFJVRSh0 ZXN0LCBkcm1fbW9kZV9lcXVhbChkcm1fbW9kZV9hbmFsb2dfcGFsXzU3NmkoZHJtKSwgbW9kZSkp Owo+ICt9Cj4gIAo+ICBzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgZHJtX3Rlc3RfcGlja19jbWRs aW5lX3Rlc3RzW10gPSB7Cj4gIAlLVU5JVF9DQVNFKGRybV90ZXN0X3BpY2tfY21kbGluZV9yZXNf MTkyMF8xMDgwXzYwKSwKPiArCUtVTklUX0NBU0UoZHJtX3Rlc3RfcGlja19jbWRsaW5lX25hbWVk X250c2MpLAo+ICsJS1VOSVRfQ0FTRShkcm1fdGVzdF9waWNrX2NtZGxpbmVfbmFtZWRfcGFsKSwK PiAgCXt9Cj4gIH07Cj4gIAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=