From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout-p-202.mailbox.org (mout-p-202.mailbox.org [80.241.56.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 58AA81350DD; Mon, 5 Feb 2024 20:34:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=80.241.56.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707165258; cv=none; b=FAK0iNDZxN+Rtsr9elqnjHrkMvNpvQHuHl1vZO/2jkgF8HvBN9WfSTqyFiK7p9V12HUMGIuWYIe8kcJsdVF6zGf3ZcWzh5lGb4AhN4amwcot10X1dOI14FVxWeF6ZPR3ieZ7Q+nVA75cTFaree+jENM1Pb+MuFdQPMMJwuVrq2M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1707165258; c=relaxed/simple; bh=N0qxgdQexW+YOk1HTnBxVMlAEbMGIRQ+C4gNI/hmAyQ=; h=References:From:To:Cc:Subject:In-reply-to:Date:Message-ID: MIME-Version:Content-Type; b=RJyfR7Kwt3EnH/hvQcnYgkb/wmGaUz7ltsBSLZZ2jLPYilasp5yHO7f2ID05Sgv683Nbu0Wytm7ZiHzg8nZxAqBrbpMYT8boz/5H/Su5B7m4Mygq23M5WTtRYdg7YIK8qbdVtWNynfBUzx8/4nJ4wbU2E2AMJfl/Gsv3JoNy92c= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oltmanns.dev; spf=pass smtp.mailfrom=oltmanns.dev; dkim=pass (2048-bit key) header.d=oltmanns.dev header.i=@oltmanns.dev header.b=R2djw1HS; arc=none smtp.client-ip=80.241.56.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oltmanns.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oltmanns.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oltmanns.dev header.i=@oltmanns.dev header.b="R2djw1HS" Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4TTJ4z2JdKz9t1g; Mon, 5 Feb 2024 21:34:11 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oltmanns.dev; s=MBO0001; t=1707165251; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JhbWLYxrCrQ3+gd4ivimBZHSQmaCXqHOjjg02OP3xx8=; b=R2djw1HS8bxFkt+EI/9CYDUBEevDM+VSAHffx73SoUKoK3bMJKRxs9VhkuAnCRK+JERH7Y 60alGLPy+4ai9716fWUmzZ646rdY6pgoqi1ZWH1GH9iUjc+596EwHN9Y+M9PjYqv1gP0I1 qcJfe5iGohVH86cGzU7SUJMotblba4oWxv6A0IeKoPsDdpMJj0NItuJrnukhNZ4sJaQIaR r1spiZSvnnbQm0XKfV+DqbIjLUMZAumVhScEj8JnzNyYsh9fX7KUCgjJe9nSr/1EUcdIVx 5Ma4zhFbM5OTlPpPhgWzfsiCyYyrdPp27xZhdsqVzRBBQ2KjB8cZgiOUdhodOQ== References: <20240205-pinephone-pll-fixes-v2-0-96a46a2d8c9b@oltmanns.dev> <20240205-pinephone-pll-fixes-v2-3-96a46a2d8c9b@oltmanns.dev> <4543794.LvFx2qVVIh@jernej-laptop> From: Frank Oltmanns To: Jernej =?utf-8?Q?=C5=A0krabec?= Cc: Michael Turquette , Stephen Boyd , Chen-Yu Tsai , Samuel Holland , Guido =?utf-8?Q?G=C3=BCnther?= , Purism Kernel Team , Ondrej Jirman , Neil Armstrong , Jessica Zhang , Sam Ravnborg , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Subject: Re: [PATCH v2 3/6] clk: sunxi-ng: nkm: Support minimum and maximum rate In-reply-to: <4543794.LvFx2qVVIh@jernej-laptop> Date: Mon, 05 Feb 2024 21:34:04 +0100 Message-ID: <87eddqzm4j.fsf@oltmanns.dev> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 2024-02-05 at 18:56:09 +0100, Jernej =C5=A0krabec wrote: > Dne ponedeljek, 05. februar 2024 ob 16:22:26 CET je Frank Oltmanns napisa= l(a): >> According to the Allwinner User Manual, the Allwinner A64 requires >> PLL-MIPI to run at 500MHz-1.4GHz. Add support for that to ccu_nkm. >> >> Signed-off-by: Frank Oltmanns >> --- >> drivers/clk/sunxi-ng/ccu_nkm.c | 13 +++++++++++++ >> drivers/clk/sunxi-ng/ccu_nkm.h | 2 ++ >> 2 files changed, 15 insertions(+) >> >> diff --git a/drivers/clk/sunxi-ng/ccu_nkm.c b/drivers/clk/sunxi-ng/ccu_n= km.c >> index 1168d894d636..7d135908d6e0 100644 >> --- a/drivers/clk/sunxi-ng/ccu_nkm.c >> +++ b/drivers/clk/sunxi-ng/ccu_nkm.c >> @@ -181,6 +181,12 @@ static unsigned long ccu_nkm_round_rate(struct ccu_= mux_internal *mux, >> if (nkm->common.features & CCU_FEATURE_FIXED_POSTDIV) >> rate *=3D nkm->fixed_post_div; >> >> + if (nkm->min_rate && rate < nkm->min_rate) >> + rate =3D nkm->min_rate; >> + >> + if (nkm->max_rate && rate > nkm->max_rate) >> + rate =3D nkm->max_rate; > > Please take a look at ccu_nm_round_rate() code. You need to consider post= div > and you can return immediately. There is a difference here insofar that ccu_nm is always connected to a fixed rate parent (at least that's my understanding). Therefore, in ccu_nm_round_rate() we can be sure that the min or max rate can really be set. In ccu_nkm we don't have that luxury, we actually have to find a rate that is approximately equal to the min and max rate, based on the parent rate. Therefore, we can't return immediately. Also, I'm not sure what you mean about me needing to consider postdiv. That's what I did. The check is after multiplying with the postdiv. It's the same as in ccu_nm_round_rate() (just minus the immediate return). > >> + >> if (!clk_hw_can_set_rate_parent(&nkm->common.hw)) >> rate =3D ccu_nkm_find_best(*parent_rate, rate, &_nkm, &nkm->common); >> else >> @@ -220,6 +226,13 @@ static int ccu_nkm_set_rate(struct clk_hw *hw, unsi= gned long rate, >> _nkm.min_m =3D 1; >> _nkm.max_m =3D nkm->m.max ?: 1 << nkm->m.width; >> >> + >> + if (nkm->min_rate && rate < nkm->min_rate) >> + rate =3D nkm->min_rate; >> + >> + if (nkm->max_rate && rate > nkm->max_rate) >> + rate =3D nkm->max_rate; >> + > > No need for this, clk subsystem calls round rate before setting actual cl= ock > rate. I'll remove the checks in V3. Best regards, Frank > > Best regards, > Jernej > >> ccu_nkm_find_best(parent_rate, rate, &_nkm, &nkm->common); >> >> spin_lock_irqsave(nkm->common.lock, flags); >> diff --git a/drivers/clk/sunxi-ng/ccu_nkm.h b/drivers/clk/sunxi-ng/ccu_n= km.h >> index c409212ee40e..358a9df6b6a0 100644 >> --- a/drivers/clk/sunxi-ng/ccu_nkm.h >> +++ b/drivers/clk/sunxi-ng/ccu_nkm.h >> @@ -27,6 +27,8 @@ struct ccu_nkm { >> struct ccu_mux_internal mux; >> >> unsigned int fixed_post_div; >> + unsigned long min_rate; >> + unsigned long max_rate; >> unsigned long max_m_n_ratio; >> unsigned long min_parent_m_ratio; >> >> >> 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 7CD7BC48292 for ; Mon, 5 Feb 2024 20:34:36 +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:MIME-Version:Message-ID:Date: In-reply-to:Subject:Cc:To:From:References:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=iR9GDzPYsfcXDtFJhRkjSjjsrsd2/42ToxM+npIO8fk=; b=oAs0tAnC9mL2g2sYRvyicq8Tjb xDrg8lEyFuejWDOW5hO5LOg5V6r0lzNGnbEI83+XHEtmUdw5alY+nSUSn/JZaB1/UDtY6s6RlZ+AI qdfI6COfc9yQ+TsfpmObEr2fmE7scAg+EwhEt4qeYPL17SCq3GKaKQibFctLRW0wOzP7QjR1d5I/L SoGlpDGsoS1s6zHbNyx3QWGlHh2i26T4GRsRsL59avCfKi78ZnQaLV7Pko00CJOwm+YpdperixmtB CwRWS1m5XC76A0BNqtUj1OGckHhtD8/flgmcIC8ZoHHqE3bxVy5ebpMIhqBdI1d/No/lxJPdxo7Q8 oRZanllg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rX5fb-000000053N0-0pa2; Mon, 05 Feb 2024 20:34:23 +0000 Received: from mout-p-202.mailbox.org ([2001:67c:2050:0:465::202]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rX5fY-000000053Lr-2WF6 for linux-arm-kernel@lists.infradead.org; Mon, 05 Feb 2024 20:34:21 +0000 Received: from smtp202.mailbox.org (smtp202.mailbox.org [10.196.197.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-202.mailbox.org (Postfix) with ESMTPS id 4TTJ4z2JdKz9t1g; Mon, 5 Feb 2024 21:34:11 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oltmanns.dev; s=MBO0001; t=1707165251; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JhbWLYxrCrQ3+gd4ivimBZHSQmaCXqHOjjg02OP3xx8=; b=R2djw1HS8bxFkt+EI/9CYDUBEevDM+VSAHffx73SoUKoK3bMJKRxs9VhkuAnCRK+JERH7Y 60alGLPy+4ai9716fWUmzZ646rdY6pgoqi1ZWH1GH9iUjc+596EwHN9Y+M9PjYqv1gP0I1 qcJfe5iGohVH86cGzU7SUJMotblba4oWxv6A0IeKoPsDdpMJj0NItuJrnukhNZ4sJaQIaR r1spiZSvnnbQm0XKfV+DqbIjLUMZAumVhScEj8JnzNyYsh9fX7KUCgjJe9nSr/1EUcdIVx 5Ma4zhFbM5OTlPpPhgWzfsiCyYyrdPp27xZhdsqVzRBBQ2KjB8cZgiOUdhodOQ== References: <20240205-pinephone-pll-fixes-v2-0-96a46a2d8c9b@oltmanns.dev> <20240205-pinephone-pll-fixes-v2-3-96a46a2d8c9b@oltmanns.dev> <4543794.LvFx2qVVIh@jernej-laptop> From: Frank Oltmanns To: Jernej =?utf-8?Q?=C5=A0krabec?= Cc: Michael Turquette , Stephen Boyd , Chen-Yu Tsai , Samuel Holland , Guido =?utf-8?Q?G=C3=BCnther?= , Purism Kernel Team , Ondrej Jirman , Neil Armstrong , Jessica Zhang , Sam Ravnborg , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Daniel Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org Subject: Re: [PATCH v2 3/6] clk: sunxi-ng: nkm: Support minimum and maximum rate In-reply-to: <4543794.LvFx2qVVIh@jernej-laptop> Date: Mon, 05 Feb 2024 21:34:04 +0100 Message-ID: <87eddqzm4j.fsf@oltmanns.dev> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240205_123420_845391_631862FF X-CRM114-Status: GOOD ( 19.91 ) 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 Ck9uIDIwMjQtMDItMDUgYXQgMTg6NTY6MDkgKzAxMDAsIEplcm5laiDFoGtyYWJlYyA8amVybmVq LnNrcmFiZWNAZ21haWwuY29tPiB3cm90ZToKPiBEbmUgcG9uZWRlbGplaywgMDUuIGZlYnJ1YXIg MjAyNCBvYiAxNjoyMjoyNiBDRVQgamUgRnJhbmsgT2x0bWFubnMgbmFwaXNhbChhKToKPj4gQWNj b3JkaW5nIHRvIHRoZSBBbGx3aW5uZXIgVXNlciBNYW51YWwsIHRoZSBBbGx3aW5uZXIgQTY0IHJl cXVpcmVzCj4+IFBMTC1NSVBJIHRvIHJ1biBhdCA1MDBNSHotMS40R0h6LiBBZGQgc3VwcG9ydCBm b3IgdGhhdCB0byBjY3VfbmttLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBGcmFuayBPbHRtYW5ucyA8 ZnJhbmtAb2x0bWFubnMuZGV2Pgo+PiAtLS0KPj4gIGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdV9u a20uYyB8IDEzICsrKysrKysrKysrKysKPj4gIGRyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdV9ua20u aCB8ICAyICsrCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKykKPj4KPj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdV9ua20uYyBiL2RyaXZlcnMvY2xrL3N1 bnhpLW5nL2NjdV9ua20uYwo+PiBpbmRleCAxMTY4ZDg5NGQ2MzYuLjdkMTM1OTA4ZDZlMCAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1X25rbS5jCj4+ICsrKyBiL2RyaXZl cnMvY2xrL3N1bnhpLW5nL2NjdV9ua20uYwo+PiBAQCAtMTgxLDYgKzE4MSwxMiBAQCBzdGF0aWMg dW5zaWduZWQgbG9uZyBjY3VfbmttX3JvdW5kX3JhdGUoc3RydWN0IGNjdV9tdXhfaW50ZXJuYWwg Km11eCwKPj4gIAlpZiAobmttLT5jb21tb24uZmVhdHVyZXMgJiBDQ1VfRkVBVFVSRV9GSVhFRF9Q T1NURElWKQo+PiAgCQlyYXRlICo9IG5rbS0+Zml4ZWRfcG9zdF9kaXY7Cj4+Cj4+ICsJaWYgKG5r bS0+bWluX3JhdGUgJiYgcmF0ZSA8IG5rbS0+bWluX3JhdGUpCj4+ICsJCXJhdGUgPSBua20tPm1p bl9yYXRlOwo+PiArCj4+ICsJaWYgKG5rbS0+bWF4X3JhdGUgJiYgcmF0ZSA+IG5rbS0+bWF4X3Jh dGUpCj4+ICsJCXJhdGUgPSBua20tPm1heF9yYXRlOwo+Cj4gUGxlYXNlIHRha2UgYSBsb29rIGF0 IGNjdV9ubV9yb3VuZF9yYXRlKCkgY29kZS4gWW91IG5lZWQgdG8gY29uc2lkZXIgcG9zdGRpdgo+ IGFuZCB5b3UgY2FuIHJldHVybiBpbW1lZGlhdGVseS4KClRoZXJlIGlzIGEgZGlmZmVyZW5jZSBo ZXJlIGluc29mYXIgdGhhdCBjY3Vfbm0gaXMgYWx3YXlzIGNvbm5lY3RlZCB0byBhCmZpeGVkIHJh dGUgcGFyZW50IChhdCBsZWFzdCB0aGF0J3MgbXkgdW5kZXJzdGFuZGluZykuIFRoZXJlZm9yZSwg aW4KY2N1X25tX3JvdW5kX3JhdGUoKSB3ZSBjYW4gYmUgc3VyZSB0aGF0IHRoZSBtaW4gb3IgbWF4 IHJhdGUgY2FuIHJlYWxseQpiZSBzZXQuIEluIGNjdV9ua20gd2UgZG9uJ3QgaGF2ZSB0aGF0IGx1 eHVyeSwgd2UgYWN0dWFsbHkgaGF2ZSB0byBmaW5kIGEKcmF0ZSB0aGF0IGlzIGFwcHJveGltYXRl bHkgZXF1YWwgdG8gdGhlIG1pbiBhbmQgbWF4IHJhdGUsIGJhc2VkIG9uIHRoZQpwYXJlbnQgcmF0 ZS4gVGhlcmVmb3JlLCB3ZSBjYW4ndCByZXR1cm4gaW1tZWRpYXRlbHkuCgpBbHNvLCBJJ20gbm90 IHN1cmUgd2hhdCB5b3UgbWVhbiBhYm91dCBtZSBuZWVkaW5nIHRvIGNvbnNpZGVyIHBvc3RkaXYu ClRoYXQncyB3aGF0IEkgZGlkLiBUaGUgY2hlY2sgaXMgYWZ0ZXIgbXVsdGlwbHlpbmcgd2l0aCB0 aGUgcG9zdGRpdi4gSXQncwp0aGUgc2FtZSBhcyBpbiBjY3Vfbm1fcm91bmRfcmF0ZSgpIChqdXN0 IG1pbnVzIHRoZSBpbW1lZGlhdGUgcmV0dXJuKS4KCj4KPj4gKwo+PiAgCWlmICghY2xrX2h3X2Nh bl9zZXRfcmF0ZV9wYXJlbnQoJm5rbS0+Y29tbW9uLmh3KSkKPj4gIAkJcmF0ZSA9IGNjdV9ua21f ZmluZF9iZXN0KCpwYXJlbnRfcmF0ZSwgcmF0ZSwgJl9ua20sICZua20tPmNvbW1vbik7Cj4+ICAJ ZWxzZQo+PiBAQCAtMjIwLDYgKzIyNiwxMyBAQCBzdGF0aWMgaW50IGNjdV9ua21fc2V0X3JhdGUo c3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcgcmF0ZSwKPj4gIAlfbmttLm1pbl9tID0g MTsKPj4gIAlfbmttLm1heF9tID0gbmttLT5tLm1heCA/OiAxIDw8IG5rbS0+bS53aWR0aDsKPj4K Pj4gKwo+PiArCWlmIChua20tPm1pbl9yYXRlICYmIHJhdGUgPCBua20tPm1pbl9yYXRlKQo+PiAr CQlyYXRlID0gbmttLT5taW5fcmF0ZTsKPj4gKwo+PiArCWlmIChua20tPm1heF9yYXRlICYmIHJh dGUgPiBua20tPm1heF9yYXRlKQo+PiArCQlyYXRlID0gbmttLT5tYXhfcmF0ZTsKPj4gKwo+Cj4g Tm8gbmVlZCBmb3IgdGhpcywgY2xrIHN1YnN5c3RlbSBjYWxscyByb3VuZCByYXRlIGJlZm9yZSBz ZXR0aW5nIGFjdHVhbCBjbG9jawo+IHJhdGUuCgpJJ2xsIHJlbW92ZSB0aGUgY2hlY2tzIGluIFYz LgoKQmVzdCByZWdhcmRzLAogIEZyYW5rCgo+Cj4gQmVzdCByZWdhcmRzLAo+IEplcm5lago+Cj4+ ICAJY2N1X25rbV9maW5kX2Jlc3QocGFyZW50X3JhdGUsIHJhdGUsICZfbmttLCAmbmttLT5jb21t b24pOwo+Pgo+PiAgCXNwaW5fbG9ja19pcnFzYXZlKG5rbS0+Y29tbW9uLmxvY2ssIGZsYWdzKTsK Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdV9ua20uaCBiL2RyaXZlcnMv Y2xrL3N1bnhpLW5nL2NjdV9ua20uaAo+PiBpbmRleCBjNDA5MjEyZWU0MGUuLjM1OGE5ZGY2YjZh MCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1X25rbS5oCj4+ICsrKyBi L2RyaXZlcnMvY2xrL3N1bnhpLW5nL2NjdV9ua20uaAo+PiBAQCAtMjcsNiArMjcsOCBAQCBzdHJ1 Y3QgY2N1X25rbSB7Cj4+ICAJc3RydWN0IGNjdV9tdXhfaW50ZXJuYWwJbXV4Owo+Pgo+PiAgCXVu c2lnbmVkIGludAkJZml4ZWRfcG9zdF9kaXY7Cj4+ICsJdW5zaWduZWQgbG9uZwkJbWluX3JhdGU7 Cj4+ICsJdW5zaWduZWQgbG9uZwkJbWF4X3JhdGU7Cj4+ICAJdW5zaWduZWQgbG9uZwkJbWF4X21f bl9yYXRpbzsKPj4gIAl1bnNpZ25lZCBsb25nCQltaW5fcGFyZW50X21fcmF0aW87Cj4+Cj4+Cj4+ CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1h cm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5v cmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0t a2VybmVsCg==