From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (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 989233382FC; Wed, 23 Sep 2026 11:24:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790162674; cv=none; b=NTd4OHn6SHkZ931//TO3kRB79fPPKQqGtTKKE84JN8JgiHjuKBTEUMbRRaXaL5jA1dKB4CaPBvkRIZiBC5PhJaAOWdNlhumGoLIiM+9rJujtcthRwSMzSlPv7DthV9tvxm5qymo1rPgncuTdXO7ytIrqAxB8vS9DK3jRUgeEOKQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790162674; c=relaxed/simple; bh=TEEwf0OK3ASPSQ/u04eQKbrq0RLcv3gmB/qHYc3605M=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=CPCeTbKeKY7aBhHG5ILKr1hNjqcSpfxRoT1cVT8VHI4+oR//yV/haeOg9dEJBOOGBgCwR6yLU2fNSarl6ZUkR8DMSKo20taEu9Pq8ol7eaJNGs3syGdLE/E2ypGzfyI1eW9uYgqo5KwBmIbqGRgG+zbTi30Fv35/5Wci3bsyNbY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=KyJ8rRaI; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="KyJ8rRaI" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 925B71F00893; Wed, 23 Sep 2026 11:24:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790162672; bh=J9g2a92wrndbH9rSV6qvGEKxGUNXcugHf6a+Io4Iz8E=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=KyJ8rRaILNB9t8PP3PtkE1Rg/mUv+22FzJBP2/s2DM/QQgO9rcw6ZVTaI45/Rvx8S CShvtx94RNl7mBFLzM+u5VmLjpX5jf6R0kHeyJVc1XdE/18Zw3Y6uGz/VljEXmQ0z1 hn3FNbdFyqvt/5iBQVRP7zeREDztcINP4MLpKvstPOZtWccYCY/+vG3m0NUh3bwwp1 N68fSlPLtI4q1W/5+ixgndvUEPaDG3wP5+QJaJLmL2Y/7I7J/LgaySl6bJvQWoziSF Gis2eTOXqphk/GMbT6eZ0aqWgegMNId+NtFKvetgr0AHlmoU+acT1NE3iEcgrYl5ox 2DTx3o9qgxeeg== From: sashiko-bot@kernel.org Subject: Re: [PATCH RFC 1/3] clk: meson: pll: Remove the dedicated n parameter Reply-To: sashiko-reviews@lists.linux.dev To: "Jian Hu" Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, linux-clk@vger.kernel.org, neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org In-Reply-To: <20260923-meson_refactor_n-v1-1-3a8ce27121a2@amlogic.com> References: <20260923-meson_refactor_n-v1-0-3a8ce27121a2@amlogic.com> <20260923-meson_refactor_n-v1-1-3a8ce27121a2@amlogic.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Wed, 23 Sep 2026 11:24:31 +0000 Message-Id: <20260923112431.925B71F00893@smtp.kernel.org> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 3 potential issue(= s) to consider: - [Critical] clk: meson: struct meson_clk_pll_data removal of 'n' breaks co= mpilation - [High] clk: meson: pll unconditionally requires range, breaking table-bas= ed PLLs - [High] clk: meson: external pre-divider violates PLL disable/reset sequen= cing -- commit 9a0d9eb075576d244c161f62134109ad2353a8b7 Author: Jian Hu clk: meson: pll: Remove the dedicated n parameter The Meson PLL framework models the PLL pre-divider (N) using a dedicated field in struct meson_clk_pll_data. Since the common clock framework already provides a generic divider implementation, this patch removes the dedicated n parameter from the framework and simplifies the PLL rate calculation. > --- a/drivers/clk/meson/clk-pll.c > +++ b/drivers/clk/meson/clk-pll.c [ ... ] > @@ -119,145 +107,48 @@ static unsigned int __pll_params_with_frac(unsigne= d long rate, [ ... ] > -static int meson_clk_get_pll_table_index(unsigned int index, > - unsigned int *m, > - unsigned int *n, > - struct meson_clk_pll_data *pll) > +static int meson_clk_get_pll_multiplier(unsigned long rate, > + unsigned long parent_rate, > + unsigned int *m, > + struct meson_clk_pll_data *pll) > { > - if (!pll->table[index].n) > + if (!pll->range) > return -EINVAL; [Severity: High] Does this unconditionally reject any PLL that lacks a .range definition? Many table-based PLLs in Meson SoC drivers (like axg_gp0_pll_dco) leave .range as NULL and rely strictly on .table. Without .range, rate calculatio= ns for these PLLs will deterministically fail at runtime. [ ... ] > @@ -420,7 +311,7 @@ static int meson_clk_pll_set_rate(struct clk_hw *hw, = unsigned long rate, [ ... ] > enabled =3D meson_parm_read(clk->map, &pll->en); > if (enabled) > meson_clk_pll_disable(hw); > =20 > - meson_parm_write(clk->map, &pll->n, n); [Severity: High] Does stripping the write to the N pre-divider from this protected atomic section violate the hardware requirement to place the PLL in a disabled and reset state before its input frequency changes? By modelling the pre-divider as an external generic CCF clk_divider, its .set_rate will modify the hardware register immediately without notifying the running downstream PLL. Can this cause the active PLL to lose lock and produce an unstable clock, potentially locking up the system? > meson_parm_write(clk->map, &pll->m, m); > =20 > if (MESON_PARM_APPLICABLE(&pll->frac)) { > --- a/drivers/clk/meson/clk-pll.h > +++ b/drivers/clk/meson/clk-pll.h > @@ -11,29 +11,17 @@ > #include > #include "parm.h" > =20 > -struct pll_params_table { > - unsigned int m; > - unsigned int n; > -}; > - [Severity: High] Does removing pll_params_table also remove the framework's capability to enforce non-contiguous PLL multiplier rules? > struct pll_mult_range { > unsigned int min; > unsigned int max; > }; [ ... ] > struct meson_clk_pll_data { > struct parm en; > struct parm m; > - struct parm n; [Severity: Critical] Does removing the n and table fields from struct meson_clk_pll_data break the build for untouched SoC platform drivers? Drivers such as axg.c continue to initialize these fields in their static P= LL definitions (like axg_sys_pll_dco): static struct clk_regmap axg_sys_pll_dco =3D { .data =3D &(struct meson_clk_pll_data){ ... .n =3D { .reg_off =3D HHI_SYS_PLL_CNTL, .shift =3D 9, .width =3D 5, }, This will cause an immediate compiler error because the types have been removed. Will this breakage persist and break git bisect? > struct parm frac; > struct parm l; > struct parm rst; [ ... ] > @@ -41,7 +29,6 @@ struct meson_clk_pll_data { > struct parm l_detect; > const struct reg_sequence *init_regs; > unsigned int init_count; > - const struct pll_params_table *table; > const struct pll_mult_range *range; > unsigned int frac_max; > u8 flags; --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260923-meson_refa= ctor_n-v1-0-3a8ce27121a2@amlogic.com?part=3D1 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 6CAF9C982EA for ; Wed, 23 Sep 2026 11:24:38 +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:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=+jPulJaYG2fHPboNE5FVeX4MlFLXYKZlZqO+CO3yEQU=; b=tZGZ4/hYWgAXOb DGvb3dNtqDO+KVJ0QFlqPa64CAVx7iaIKminoG3ylo2de0Yr7y5gUFBOYX6CBYipvThag5X3+/8sJ 7S17gl+f2BkyWJlFsP5DlRPZhPn2HdhFf3l4K516ixrf8j4aVaQIrHRZj5W9Z/terZeqZxISBeez2 9In5/SsIrPDT8qUYWFSq2eQc1eh1CuaU/G57gf3puhYELwn3JvFiBSwlauWmv0dvdemJop/TQ28+z XGclo47eyCmOTxRaoTSR8hCHY9qiSwy54GKhovI/H5ILQZ4RfjDMHZ2+6uESXQdA6hrudPcYRnYby XNAKtxK9PkR9z5QPgtng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9L5X-000000083lE-04NQ; Wed, 23 Sep 2026 11:24:35 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9L5V-000000083kt-0Vw9 for linux-amlogic@lists.infradead.org; Wed, 23 Sep 2026 11:24:33 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 45BD0601FB; Wed, 23 Sep 2026 11:24:32 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 925B71F00893; Wed, 23 Sep 2026 11:24:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790162672; bh=J9g2a92wrndbH9rSV6qvGEKxGUNXcugHf6a+Io4Iz8E=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=KyJ8rRaILNB9t8PP3PtkE1Rg/mUv+22FzJBP2/s2DM/QQgO9rcw6ZVTaI45/Rvx8S CShvtx94RNl7mBFLzM+u5VmLjpX5jf6R0kHeyJVc1XdE/18Zw3Y6uGz/VljEXmQ0z1 hn3FNbdFyqvt/5iBQVRP7zeREDztcINP4MLpKvstPOZtWccYCY/+vG3m0NUh3bwwp1 N68fSlPLtI4q1W/5+ixgndvUEPaDG3wP5+QJaJLmL2Y/7I7J/LgaySl6bJvQWoziSF Gis2eTOXqphk/GMbT6eZ0aqWgegMNId+NtFKvetgr0AHlmoU+acT1NE3iEcgrYl5ox 2DTx3o9qgxeeg== From: sashiko-bot@kernel.org Subject: Re: [PATCH RFC 1/3] clk: meson: pll: Remove the dedicated n parameter To: "Jian Hu" Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, linux-clk@vger.kernel.org, neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org In-Reply-To: <20260923-meson_refactor_n-v1-1-3a8ce27121a2@amlogic.com> References: <20260923-meson_refactor_n-v1-0-3a8ce27121a2@amlogic.com> <20260923-meson_refactor_n-v1-1-3a8ce27121a2@amlogic.com> Date: Wed, 23 Sep 2026 11:24:31 +0000 Message-Id: <20260923112431.925B71F00893@smtp.kernel.org> X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0NyaXRpY2FsXSBjbGs6IG1lc29u OiBzdHJ1Y3QgbWVzb25fY2xrX3BsbF9kYXRhIHJlbW92YWwgb2YgJ24nIGJyZWFrcyBjb21waWxh dGlvbgotIFtIaWdoXSBjbGs6IG1lc29uOiBwbGwgdW5jb25kaXRpb25hbGx5IHJlcXVpcmVzIHJh bmdlLCBicmVha2luZyB0YWJsZS1iYXNlZCBQTExzCi0gW0hpZ2hdIGNsazogbWVzb246IGV4dGVy bmFsIHByZS1kaXZpZGVyIHZpb2xhdGVzIFBMTCBkaXNhYmxlL3Jlc2V0IHNlcXVlbmNpbmcKLS0K CmNvbW1pdCA5YTBkOWViMDc1NTc2ZDI0NGMxNjFmNjIxMzQxMDlhZDIzNTNhOGI3CkF1dGhvcjog SmlhbiBIdSA8amlhbi5odUBhbWxvZ2ljLmNvbT4KCmNsazogbWVzb246IHBsbDogUmVtb3ZlIHRo ZSBkZWRpY2F0ZWQgbiBwYXJhbWV0ZXIKClRoZSBNZXNvbiBQTEwgZnJhbWV3b3JrIG1vZGVscyB0 aGUgUExMIHByZS1kaXZpZGVyIChOKSB1c2luZyBhIGRlZGljYXRlZApmaWVsZCBpbiBzdHJ1Y3Qg bWVzb25fY2xrX3BsbF9kYXRhLiBTaW5jZSB0aGUgY29tbW9uIGNsb2NrIGZyYW1ld29yayBhbHJl YWR5CnByb3ZpZGVzIGEgZ2VuZXJpYyBkaXZpZGVyIGltcGxlbWVudGF0aW9uLCB0aGlzIHBhdGNo IHJlbW92ZXMgdGhlIGRlZGljYXRlZApuIHBhcmFtZXRlciBmcm9tIHRoZSBmcmFtZXdvcmsgYW5k IHNpbXBsaWZpZXMgdGhlIFBMTCByYXRlIGNhbGN1bGF0aW9uLgoKPiAtLS0gYS9kcml2ZXJzL2Ns ay9tZXNvbi9jbGstcGxsLmMKPiArKysgYi9kcml2ZXJzL2Nsay9tZXNvbi9jbGstcGxsLmMKWyAu Li4gXQo+IEBAIC0xMTksMTQ1ICsxMDcsNDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBfX3BsbF9w YXJhbXNfd2l0aF9mcmFjKHVuc2lnbmVkIGxvbmcgcmF0ZSwKWyAuLi4gXQo+IC1zdGF0aWMgaW50 IG1lc29uX2Nsa19nZXRfcGxsX3RhYmxlX2luZGV4KHVuc2lnbmVkIGludCBpbmRleCwKPiAtCQkJ CQkgdW5zaWduZWQgaW50ICptLAo+IC0JCQkJCSB1bnNpZ25lZCBpbnQgKm4sCj4gLQkJCQkJIHN0 cnVjdCBtZXNvbl9jbGtfcGxsX2RhdGEgKnBsbCkKPiArc3RhdGljIGludCBtZXNvbl9jbGtfZ2V0 X3BsbF9tdWx0aXBsaWVyKHVuc2lnbmVkIGxvbmcgcmF0ZSwKPiArCQkJCQl1bnNpZ25lZCBsb25n IHBhcmVudF9yYXRlLAo+ICsJCQkJCXVuc2lnbmVkIGludCAqbSwKPiArCQkJCQlzdHJ1Y3QgbWVz b25fY2xrX3BsbF9kYXRhICpwbGwpCj4gIHsKPiAtCWlmICghcGxsLT50YWJsZVtpbmRleF0ubikK PiArCWlmICghcGxsLT5yYW5nZSkKPiAgCQlyZXR1cm4gLUVJTlZBTDsKCltTZXZlcml0eTogSGln aF0KRG9lcyB0aGlzIHVuY29uZGl0aW9uYWxseSByZWplY3QgYW55IFBMTCB0aGF0IGxhY2tzIGEg LnJhbmdlIGRlZmluaXRpb24/CgpNYW55IHRhYmxlLWJhc2VkIFBMTHMgaW4gTWVzb24gU29DIGRy aXZlcnMgKGxpa2UgYXhnX2dwMF9wbGxfZGNvKSBsZWF2ZQoucmFuZ2UgYXMgTlVMTCBhbmQgcmVs eSBzdHJpY3RseSBvbiAudGFibGUuIFdpdGhvdXQgLnJhbmdlLCByYXRlIGNhbGN1bGF0aW9ucwpm b3IgdGhlc2UgUExMcyB3aWxsIGRldGVybWluaXN0aWNhbGx5IGZhaWwgYXQgcnVudGltZS4KClsg Li4uIF0KPiBAQCAtNDIwLDcgKzMxMSw3IEBAIHN0YXRpYyBpbnQgbWVzb25fY2xrX3BsbF9zZXRf cmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyByYXRlLApbIC4uLiBdCj4gIAll bmFibGVkID0gbWVzb25fcGFybV9yZWFkKGNsay0+bWFwLCAmcGxsLT5lbik7Cj4gIAlpZiAoZW5h YmxlZCkKPiAgCQltZXNvbl9jbGtfcGxsX2Rpc2FibGUoaHcpOwo+ICAKPiAtCW1lc29uX3Bhcm1f d3JpdGUoY2xrLT5tYXAsICZwbGwtPm4sIG4pOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHN0cmlw cGluZyB0aGUgd3JpdGUgdG8gdGhlIE4gcHJlLWRpdmlkZXIgZnJvbSB0aGlzIHByb3RlY3RlZCBh dG9taWMKc2VjdGlvbiB2aW9sYXRlIHRoZSBoYXJkd2FyZSByZXF1aXJlbWVudCB0byBwbGFjZSB0 aGUgUExMIGluIGEgZGlzYWJsZWQgYW5kCnJlc2V0IHN0YXRlIGJlZm9yZSBpdHMgaW5wdXQgZnJl cXVlbmN5IGNoYW5nZXM/CgpCeSBtb2RlbGxpbmcgdGhlIHByZS1kaXZpZGVyIGFzIGFuIGV4dGVy bmFsIGdlbmVyaWMgQ0NGIGNsa19kaXZpZGVyLAppdHMgLnNldF9yYXRlIHdpbGwgbW9kaWZ5IHRo ZSBoYXJkd2FyZSByZWdpc3RlciBpbW1lZGlhdGVseSB3aXRob3V0Cm5vdGlmeWluZyB0aGUgcnVu bmluZyBkb3duc3RyZWFtIFBMTC4gQ2FuIHRoaXMgY2F1c2UgdGhlIGFjdGl2ZSBQTEwgdG8KbG9z ZSBsb2NrIGFuZCBwcm9kdWNlIGFuIHVuc3RhYmxlIGNsb2NrLCBwb3RlbnRpYWxseSBsb2NraW5n IHVwIHRoZSBzeXN0ZW0/Cgo+ICAJbWVzb25fcGFybV93cml0ZShjbGstPm1hcCwgJnBsbC0+bSwg bSk7Cj4gIAo+ICAJaWYgKE1FU09OX1BBUk1fQVBQTElDQUJMRSgmcGxsLT5mcmFjKSkgewo+IC0t LSBhL2RyaXZlcnMvY2xrL21lc29uL2Nsay1wbGwuaAo+ICsrKyBiL2RyaXZlcnMvY2xrL21lc29u L2Nsay1wbGwuaAo+IEBAIC0xMSwyOSArMTEsMTcgQEAKPiAgI2luY2x1ZGUgPGxpbnV4L3JlZ21h cC5oPgo+ICAjaW5jbHVkZSAicGFybS5oIgo+ICAKPiAtc3RydWN0IHBsbF9wYXJhbXNfdGFibGUg ewo+IC0JdW5zaWduZWQgaW50CW07Cj4gLQl1bnNpZ25lZCBpbnQJbjsKPiAtfTsKPiAtCgpbU2V2 ZXJpdHk6IEhpZ2hdCkRvZXMgcmVtb3ZpbmcgcGxsX3BhcmFtc190YWJsZSBhbHNvIHJlbW92ZSB0 aGUgZnJhbWV3b3JrJ3MgY2FwYWJpbGl0eSB0bwplbmZvcmNlIG5vbi1jb250aWd1b3VzIFBMTCBt dWx0aXBsaWVyIHJ1bGVzPwoKPiAgc3RydWN0IHBsbF9tdWx0X3JhbmdlIHsKPiAgCXVuc2lnbmVk IGludAltaW47Cj4gIAl1bnNpZ25lZCBpbnQJbWF4Owo+ICB9OwpbIC4uLiBdCj4gIHN0cnVjdCBt ZXNvbl9jbGtfcGxsX2RhdGEgewo+ICAJc3RydWN0IHBhcm0gZW47Cj4gIAlzdHJ1Y3QgcGFybSBt Owo+IC0Jc3RydWN0IHBhcm0gbjsKCltTZXZlcml0eTogQ3JpdGljYWxdCkRvZXMgcmVtb3Zpbmcg dGhlIG4gYW5kIHRhYmxlIGZpZWxkcyBmcm9tIHN0cnVjdCBtZXNvbl9jbGtfcGxsX2RhdGEgYnJl YWsKdGhlIGJ1aWxkIGZvciB1bnRvdWNoZWQgU29DIHBsYXRmb3JtIGRyaXZlcnM/CgpEcml2ZXJz IHN1Y2ggYXMgYXhnLmMgY29udGludWUgdG8gaW5pdGlhbGl6ZSB0aGVzZSBmaWVsZHMgaW4gdGhl aXIgc3RhdGljIFBMTApkZWZpbml0aW9ucyAobGlrZSBheGdfc3lzX3BsbF9kY28pOgoKc3RhdGlj IHN0cnVjdCBjbGtfcmVnbWFwIGF4Z19zeXNfcGxsX2RjbyA9IHsKCS5kYXRhID0gJihzdHJ1Y3Qg bWVzb25fY2xrX3BsbF9kYXRhKXsKCQkuLi4KCQkubiA9IHsKCQkJLnJlZ19vZmYgPSBISElfU1lT X1BMTF9DTlRMLAoJCQkuc2hpZnQgICA9IDksCgkJCS53aWR0aCAgID0gNSwKCQl9LAoKVGhpcyB3 aWxsIGNhdXNlIGFuIGltbWVkaWF0ZSBjb21waWxlciBlcnJvciBiZWNhdXNlIHRoZSB0eXBlcyBo YXZlIGJlZW4KcmVtb3ZlZC4gV2lsbCB0aGlzIGJyZWFrYWdlIHBlcnNpc3QgYW5kIGJyZWFrIGdp dCBiaXNlY3Q/Cgo+ICAJc3RydWN0IHBhcm0gZnJhYzsKPiAgCXN0cnVjdCBwYXJtIGw7Cj4gIAlz dHJ1Y3QgcGFybSByc3Q7ClsgLi4uIF0KPiBAQCAtNDEsNyArMjksNiBAQCBzdHJ1Y3QgbWVzb25f Y2xrX3BsbF9kYXRhIHsKPiAgCXN0cnVjdCBwYXJtIGxfZGV0ZWN0Owo+ICAJY29uc3Qgc3RydWN0 IHJlZ19zZXF1ZW5jZSAqaW5pdF9yZWdzOwo+ICAJdW5zaWduZWQgaW50IGluaXRfY291bnQ7Cj4g LQljb25zdCBzdHJ1Y3QgcGxsX3BhcmFtc190YWJsZSAqdGFibGU7Cj4gIAljb25zdCBzdHJ1Y3Qg cGxsX211bHRfcmFuZ2UgKnJhbmdlOwo+ICAJdW5zaWduZWQgaW50IGZyYWNfbWF4Owo+ICAJdTgg ZmxhZ3M7CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3Bh dGNoc2V0LzIwMjYwOTIzLW1lc29uX3JlZmFjdG9yX24tdjEtMC0zYThjZTI3MTIxYTJAYW1sb2dp Yy5jb20/cGFydD0xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hbWxvZ2ljIG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hbWxvZ2ljCg==