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 BE7EAE7B604 for ; Wed, 4 Oct 2023 12:31:25 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=pf56XpOtZc/JYP7aQftpiMQZ17HMAGvPC1IaCQV+GaQ=; b=wfV1AVwwlih8ly dA6u72roAqqOv6pm55F9aTznQ5N7SvcfFH8J79qKmxHIJget1PS/2gWwlD/drbCy1VXbjerOPz1Jk bb4fcbTB3nhyurAGHFGwh9fWnjXK7t8/y0jSJUnwHXJArD0T1CS4bzLlD56CTFkGYD6QdwI15mLtv c2zRYmVJHeDkohb7DrZVoVmJx3V14qJ6CcSCOzhxx3eaERjYVE0W9BQMWCmXw2uLQIPJCAXghhaNz oR6dSjzoPCfdrep9+1GjO2BcjBpTrAMoJpuzlPd2Bc+stcx9EDpTZOJUVFDhmpiz59LPlX59QY7nC Hht0HT6p8kXbkN1+oS1A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qo11g-0000qC-1z; Wed, 04 Oct 2023 12:30:52 +0000 Received: from mail-yb1-f174.google.com ([209.85.219.174]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qo11d-0000p3-1P for linux-arm-kernel@lists.infradead.org; Wed, 04 Oct 2023 12:30:51 +0000 Received: by mail-yb1-f174.google.com with SMTP id 3f1490d57ef6-d81dd7d76e0so2286245276.1 for ; Wed, 04 Oct 2023 05:30:46 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696422645; x=1697027445; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=n+olLsWy4li2GDhejH+HbPOUf9oScrcKtWtNDWsUV2U=; b=dTaoDOgNN9mKQX1BsaR5T3sI7OzUVlFjKizFT1zNKI+XlFOzHcajP7pW8NZytRvVmJ mlzy4IAHuC9BqG6BPbtV+FwJefZIKbs88N8GOBKLHArtGBUizNkblKMY0FL6nmAel/rO XKygmIReqYWNfPN/I0bG1tBCu7FlZ0in0Zy+vcgfBzy8z12UcrU8qwSsWuXtVYQ8ekEb QL82HaR1C1JLXYgShru1vacwFTsVW0jjuQD9hhXODb9yuLO3LIZFvLTDrWwZedcYviI+ P8cGysVCj2Q3Sqwjed/VYmBFKHtOXyl27Csq2SB4NuNPrnCun/qo/Dt4enjhZeCMb+KA WuTw== X-Gm-Message-State: AOJu0Ywa10IaF/RVNu8BgzDWhtdKbDarZWTG8bpaMVwX/x3N36JZlDyn 78qOAUngcQJwhcjoraWrMDqJwUHqv4Vx5Q== X-Google-Smtp-Source: AGHT+IFkb6m4h/tfxVQiPWpdV1BXB6HcB+/LvzOQnPwnD68gIfbTnsw4Vl3UWH5AWnc7KoRMhiV0yg== X-Received: by 2002:a25:c057:0:b0:d54:b34c:1c7b with SMTP id c84-20020a25c057000000b00d54b34c1c7bmr1670079ybf.59.1696422645299; Wed, 04 Oct 2023 05:30:45 -0700 (PDT) Received: from mail-yw1-f170.google.com (mail-yw1-f170.google.com. [209.85.128.170]) by smtp.gmail.com with ESMTPSA id l128-20020a252586000000b00d1dd5c6c035sm1014919ybl.62.2023.10.04.05.30.43 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Oct 2023 05:30:43 -0700 (PDT) Received: by mail-yw1-f170.google.com with SMTP id 00721157ae682-59f7f46b326so23501977b3.0 for ; Wed, 04 Oct 2023 05:30:43 -0700 (PDT) X-Received: by 2002:a0d:dd94:0:b0:58f:96d8:e7ad with SMTP id g142-20020a0ddd94000000b0058f96d8e7admr2393828ywe.18.1696422643238; Wed, 04 Oct 2023 05:30:43 -0700 (PDT) MIME-Version: 1.0 References: <20230929053915.1530607-1-claudiu.beznea@bp.renesas.com> <20230929053915.1530607-12-claudiu.beznea@bp.renesas.com> In-Reply-To: <20230929053915.1530607-12-claudiu.beznea@bp.renesas.com> From: Geert Uytterhoeven Date: Wed, 4 Oct 2023 14:30:30 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 11/28] clk: renesas: rzg2l: add a divider clock for RZ/G3S To: Claudiu Cc: mturquette@baylibre.com, sboyd@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, linus.walleij@linaro.org, gregkh@linuxfoundation.org, jirislaby@kernel.org, magnus.damm@gmail.com, catalin.marinas@arm.com, will@kernel.org, quic_bjorande@quicinc.com, konrad.dybcio@linaro.org, arnd@arndb.de, neil.armstrong@linaro.org, prabhakar.mahadev-lad.rj@bp.renesas.com, biju.das.jz@bp.renesas.com, linux-renesas-soc@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231004_053049_493387_EC83EC46 X-CRM114-Status: GOOD ( 42.74 ) 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 SGkgQ2xhdWRpdSwKCk9uIEZyaSwgU2VwIDI5LCAyMDIzIGF0IDc6MznigK9BTSBDbGF1ZGl1IDxj bGF1ZGl1LmJlem5lYUB0dXhvbi5kZXY+IHdyb3RlOgo+IEZyb206IENsYXVkaXUgQmV6bmVhIDxj bGF1ZGl1LmJlem5lYS51akBicC5yZW5lc2FzLmNvbT4KPgo+IEFkZCBhIGRpdmlkZXIgY2xvY2sg ZHJpdmVyIGZvciBSWi9HM1MuIFRoaXMgd2lsbCBiZSB1c2VkIGluIFJaL0czUwo+IGJ5IFNESEks IFNQSSwgT0NUQSwgSSwgSTIsIEkzLCBQMCwgUDEsIFAyLCBQMyBjb3JlIGNsb2Nrcy4KPiBUaGUg ZGl2aWRlciBoYXMgc29tZSBsaW1pdGF0aW9uIGZvciBTREhJIGFuZCBPQ1RBIGNsb2NrczoKPiAt IFNEIGRpdiBjYW5ub3QgYmUgMSBpZiBwYXJlbnQgcmF0ZSBpcyA4MDBNSHoKPiAtIE9DVEEgZGl2 IGNhbm5vdCBiZSAxIGlmIHBhcmVudCByYXRlIGlzIDQwME1Iego+IEZvciB0aGVzZSBjbG9ja3Mg YSBub3RpZmllciBjb3VsZCBiZSByZWdpc3RlcmVkIGZyb20gcGxhdGZvcm0gc3BlY2lmaWMKPiBj bG9jayBkcml2ZXIgYW5kIHByb3BlciBhY3Rpb25zIGFyZSB0YWtlbiBiZWZvcmUgY2xvY2sgcmF0 ZSBpcyBjaGFuZ2VkLAo+IGlmIG5lZWRlZC4KPgo+IFNpZ25lZC1vZmYtYnk6IENsYXVkaXUgQmV6 bmVhIDxjbGF1ZGl1LmJlem5lYS51akBicC5yZW5lc2FzLmNvbT4KPiAtLS0KPgo+IENoYW5nZXMg aW4gdjI6Cj4gLSByZW1vdmVkIERJVl9OT1RJRiBtYWNybwoKVGhhbmtzIGZvciB0aGUgdXBkYXRl IQoKPiAtLS0gYS9kcml2ZXJzL2Nsay9yZW5lc2FzL3J6ZzJsLWNwZy5jCj4gKysrIGIvZHJpdmVy cy9jbGsvcmVuZXNhcy9yemcybC1jcGcuYwo+IEBAIC05MSw2ICs5MSwyMiBAQCBzdHJ1Y3Qgc2Rf bXV4X2h3X2RhdGEgewo+Cj4gICNkZWZpbmUgdG9fc2RfbXV4X2h3X2RhdGEoX2h3KSBjb250YWlu ZXJfb2YoX2h3LCBzdHJ1Y3Qgc2RfbXV4X2h3X2RhdGEsIGh3X2RhdGEpCj4KPiArLyoqCj4gKyAq IHN0cnVjdCBkaXZfaHdfZGF0YSAtIGRpdmlkZXIgY2xvY2sgaGFyZHdhcmUgZGF0YQo+ICsgKiBA aHdfZGF0YTogY2xvY2sgaHcgZGF0YQo+ICsgKiBAZHRhYmxlOiBwb2ludGVyIHRvIGRpdmlkZXIg dGFibGUKPiArICogQGludmFsaWRfcmF0ZTogaW52YWxpZCByYXRlIGZvciBkaXZpZGVyCj4gKyAq IEB3aWR0aDogZGl2aWRlciB3aWR0aAo+ICsgKi8KPiArc3RydWN0IGRpdl9od19kYXRhIHsKPiAr ICAgICAgIHN0cnVjdCBjbGtfaHdfZGF0YSBod19kYXRhOwo+ICsgICAgICAgY29uc3Qgc3RydWN0 IGNsa19kaXZfdGFibGUgKmR0YWJsZTsKPiArICAgICAgIHVuc2lnbmVkIGxvbmcgaW52YWxpZF9y YXRlOwo+ICsgICAgICAgdTMyIHdpZHRoOwo+ICt9Owo+ICsKPiArI2RlZmluZSB0b19kaXZfaHdf ZGF0YShfaHcpICAgIGNvbnRhaW5lcl9vZihfaHcsIHN0cnVjdCBkaXZfaHdfZGF0YSwgaHdfZGF0 YSkKPiArCj4gIHN0cnVjdCByemcybF9wbGw1X3BhcmFtIHsKPiAgICAgICAgIHUzMiBwbDVfZnJh Y2luOwo+ICAgICAgICAgdTggcGw1X3JlZmRpdjsKPiBAQCAtMjAwLDYgKzIxNiw1NCBAQCBpbnQg cnpnMmxfY3BnX3NkX211eF9jbGtfbm90aWZpZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwg dW5zaWduZWQgbG9uZyBldmVudAo+ICAgICAgICAgcmV0dXJuIHJldDsKPiAgfQo+Cj4gK2ludCBy emczc19jcGdfZGl2X2Nsa19ub3RpZmllcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNp Z25lZCBsb25nIGV2ZW50LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpk YXRhKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgY2xrX25vdGlmaWVyX2RhdGEgKmNuZCA9IGRhdGE7 Cj4gKyAgICAgICBzdHJ1Y3QgY2xrX2h3ICpodyA9IF9fY2xrX2dldF9odyhjbmQtPmNsayk7Cj4g KyAgICAgICBzdHJ1Y3QgY2xrX2h3X2RhdGEgKmNsa19od19kYXRhID0gdG9fY2xrX2h3X2RhdGEo aHcpOwo+ICsgICAgICAgc3RydWN0IGRpdl9od19kYXRhICpkaXZfaHdfZGF0YSA9IHRvX2Rpdl9o d19kYXRhKGNsa19od19kYXRhKTsKPiArICAgICAgIHN0cnVjdCByemcybF9jcGdfcHJpdiAqcHJp diA9IGNsa19od19kYXRhLT5wcml2Owo+ICsgICAgICAgdTMyIG9mZiA9IEdFVF9SRUdfT0ZGU0VU KGNsa19od19kYXRhLT5jb25mKTsKPiArICAgICAgIHUzMiBzaGlmdCA9IEdFVF9TSElGVChjbGtf aHdfZGF0YS0+Y29uZik7Cj4gKyAgICAgICB1MzIgYml0bWFzayA9IEdFTk1BU0soR0VUX1dJRFRI KGNsa19od19kYXRhLT5jb25mKSAtIDEsIDApOwo+ICsgICAgICAgdW5zaWduZWQgbG9uZyBmbGFn czsKPiArICAgICAgIGludCByZXQgPSAwOwo+ICsgICAgICAgdTMyIHZhbDsKPiArCj4gKyAgICAg ICBpZiAoZXZlbnQgIT0gUFJFX1JBVEVfQ0hBTkdFIHx8ICFkaXZfaHdfZGF0YS0+aW52YWxpZF9y YXRlIHx8Cj4gKyAgICAgICAgICAgZGl2X2h3X2RhdGEtPmludmFsaWRfcmF0ZSAlIGNuZC0+bmV3 X3JhdGUpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOwoKTk9USUZZX0RPTkUgZm9yIGV2ZW50 ICE9IFBSRV9SQVRFX0NIQU5HRQpOT1RJRllfT0sgZm9yIHRoZSBvdGhlciBjYXNlcwoKPiArCj4g KyAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJpdi0+cm13X2xvY2ssIGZsYWdzKTsKPiArCj4g KyAgICAgICB2YWwgPSByZWFkbChwcml2LT5iYXNlICsgb2ZmKTsKPiArICAgICAgIHZhbCA+Pj0g c2hpZnQ7Cj4gKyAgICAgICB2YWwgJj0gYml0bWFzazsKPiArCj4gKyAgICAgICAvKgo+ICsgICAg ICAgICogVGhlcmUgYXJlIGRpZmZlcmVudCBjb25zdHJhaW50cyBmb3IgdGhlIHVzZXIgb2YgdGhp cyBub3RpZmllcnMgYXMgZm9sbG93czoKPiArICAgICAgICAqIDEvIFNEIGRpdiBjYW5ub3QgYmUg MSAodmFsID09IDApIGlmIHBhcmVudCByYXRlIGlzIDgwME1Iego+ICsgICAgICAgICogMi8gT0NU QSBkaXYgY2Fubm90IGJlIDEgKHZhbCA9PSAwKSBpZiBwYXJlbnQgcmF0ZSBpcyA0MDBNSHoKPiAr ICAgICAgICAqIEFzIFNEIGNhbiBoYXZlIG9ubHkgb25lIHBhcmVudCBoYXZpbmcgODAwTUh6IGFu ZCBPQ1RBIGRpdiBjYW4gaGF2ZQo+ICsgICAgICAgICogb25seSBvbmUgcGFyZW50IGhhdmluZyA0 MDBNSHogd2UgdG9vayBpbnRvIGFjY291bnQgdGhlIHBhcmVudCByYXRlCj4gKyAgICAgICAgKiBh dCB0aGUgYmVnaW5uaW5nIG9mIGZ1bmN0aW9uIChieSBjaGVja2luZyBpbnZhbGlkX3JhdGUgJSBu ZXdfcmF0ZSkuCj4gKyAgICAgICAgKiBOb3cgaXQgaXMgdGltZSB0byBjaGVjayB0aGUgaGFyZHdh cmUgZGl2aWRlciBhbmQgdXBkYXRlIGl0IGFjY29yZGluZ2x5Lgo+ICsgICAgICAgICovCj4gKyAg ICAgICBpZiAoIXZhbCkgewo+ICsgICAgICAgICAgICAgICB3cml0ZWwoKChiaXRtYXNrIDw8IHNo aWZ0KSA8PCAxNikgfCBCSVQoc2hpZnQpLCBwcml2LT5iYXNlICsgb2ZmKTsKCkhhdmVuJ3QgeW91 IGV4Y2hhbmdlZCB0aGUgKHNpbmdsZSkgd3JpdGUtZW5hYmxlIGJpdCBhbmQgdGhlIChtdWx0aS1i aXQpCmRpdmlzaW9uIHJhdGlvIHNldHRpbmc/ICBBY2NvcmRpbmcgdG8gdGhlIGRvY3MsIHRoZSB3 cml0ZS1lbmFibGUgYml0CmlzIGF0IDE2ICsgc2hpZnQsIHdoaWxlIHRoZSBkaXZpc2lvbiByYXRp byBpcyBhdCBzaGlmdC4KCkFsc28sIHVzaW5nIGJpdG1hc2sgYXMgdGhlIGRpdmlzaW9uIHJhdGlv IG1lYW5zIHRoZSBtYXhpbXVtIHZhbHVlCnRoYXQgZml0cyBpbiB0aGUgYml0ZmllbGQsIHdoaWNo IHdvdWxkIGJlIGEgcHJvaGliaXRlZCBzZXR0aW5nIGluIGNhc2UKb2YgRElWX09DVEEuCgpOb3cs IGxvb2tpbmcgYXQgcnpnM3NfZGl2X2Nsa19zZXRfcmF0ZSgpIGJlbG93LCBwZXJoYXBzIHlvdSBq dXN0IHdhbnRlZAp0byBzZXQgdGhlIHJhdGlvIHRvIHZhbHVlIHRvIDEsIGJ1dCB1c2VkIHRoZSB3 cm9uZyBzaXplIGZvciBiaXRtYXNrPwoKPiArICAgICAgICAgICAgICAgLyogV2FpdCBmb3IgdGhl IHVwZGF0ZSBkb25lLiAqLwo+ICsgICAgICAgICAgICAgICByZXQgPSByemcybF9jcGdfd2FpdF9j bGtfdXBkYXRlX2RvbmUocHJpdi0+YmFzZSwgY2xrX2h3X2RhdGEtPnNjb25mKTsKPiArICAgICAg IH0KPiArCj4gKyAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcml2LT5ybXdfbG9jaywg ZmxhZ3MpOwo+ICsKPiArICAgICAgIGlmIChyZXQpCj4gKyAgICAgICAgICAgICAgIGRldl9lcnIo cHJpdi0+ZGV2LCAiRmFpbGVkIHRvIGRvd25ncmFkZSB0aGUgZGl2XG4iKTsKCmFuZCByZXR1cm4g Tk9USUZZX0JBRAoKPiArCj4gKyAgICAgICByZXR1cm4gcmV0OwoKTk9USUZZX09LCgo+ICt9Cj4g Kwo+ICBzdGF0aWMgaW50IHJ6ZzJsX3JlZ2lzdGVyX25vdGlmaWVyKHN0cnVjdCBjbGtfaHcgKmh3 LCBjb25zdCBzdHJ1Y3QgY3BnX2NvcmVfY2xrICpjb3JlLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHJ6ZzJsX2NwZ19wcml2ICpwcml2KQo+ICB7Cj4gQEAgLTIx Nyw2ICsyODEsMTQ2IEBAIHN0YXRpYyBpbnQgcnpnMmxfcmVnaXN0ZXJfbm90aWZpZXIoc3RydWN0 IGNsa19odyAqaHcsIGNvbnN0IHN0cnVjdCBjcGdfY29yZV9jbGsKPiAgICAgICAgIHJldHVybiBj bGtfbm90aWZpZXJfcmVnaXN0ZXIoaHctPmNsaywgbmIpOwo+ICB9Cj4KPiArc3RhdGljIHVuc2ln bmVkIGxvbmcgcnpnM3NfZGl2X2Nsa19yZWNhbGNfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgcGFyZW50X3JhdGUpCj4gK3sKPiArICAgICAgIHN0cnVjdCBjbGtfaHdfZGF0YSAqY2xrX2h3 X2RhdGEgPSB0b19jbGtfaHdfZGF0YShodyk7Cj4gKyAgICAgICBzdHJ1Y3QgZGl2X2h3X2RhdGEg KmRpdl9od19kYXRhID0gdG9fZGl2X2h3X2RhdGEoY2xrX2h3X2RhdGEpOwo+ICsgICAgICAgc3Ry dWN0IHJ6ZzJsX2NwZ19wcml2ICpwcml2ID0gY2xrX2h3X2RhdGEtPnByaXY7Cj4gKyAgICAgICB1 MzIgdmFsOwo+ICsKPiArICAgICAgIHZhbCA9IHJlYWRsKHByaXYtPmJhc2UgKyBHRVRfUkVHX09G RlNFVChjbGtfaHdfZGF0YS0+Y29uZikpOwo+ICsgICAgICAgdmFsID4+PSBHRVRfU0hJRlQoY2xr X2h3X2RhdGEtPmNvbmYpOwo+ICsgICAgICAgdmFsICY9IEdFTk1BU0soR0VUX1dJRFRIKGNsa19o d19kYXRhLT5jb25mKSAtIDEsIDApOwo+ICsKPiArICAgICAgIHJldHVybiBkaXZpZGVyX3JlY2Fs Y19yYXRlKGh3LCBwYXJlbnRfcmF0ZSwgdmFsLCBkaXZfaHdfZGF0YS0+ZHRhYmxlLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0xLX0RJVklERVJfUk9VTkRfQ0xPU0VTVCwg ZGl2X2h3X2RhdGEtPndpZHRoKTsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wgcnpnM3NfZGl2X2Ns a19pc19yYXRlX3ZhbGlkKGNvbnN0IHVuc2lnbmVkIGxvbmcgaW52YWxpZF9yYXRlLCB1bnNpZ25l ZCBsb25nIHJhdGUpCj4gK3sKPiArICAgICAgIGlmIChpbnZhbGlkX3JhdGUgJiYgcmF0ZSA+PSBp bnZhbGlkX3JhdGUpCj4gKyAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiArCj4gKyAgICAg ICByZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiArc3RhdGljIGxvbmcgcnpnM3NfZGl2X2Nsa19yb3Vu ZF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNpZ25lZCBsb25nIHJhdGUsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKnBhcmVudF9yYXRlKQo+ ICt7Cj4gKyAgICAgICBzdHJ1Y3QgY2xrX2h3X2RhdGEgKmNsa19od19kYXRhID0gdG9fY2xrX2h3 X2RhdGEoaHcpOwo+ICsgICAgICAgc3RydWN0IGRpdl9od19kYXRhICpkaXZfaHdfZGF0YSA9IHRv X2Rpdl9od19kYXRhKGNsa19od19kYXRhKTsKPiArICAgICAgIGxvbmcgcm91bmRfcmF0ZTsKPiAr Cj4gKyAgICAgICByb3VuZF9yYXRlID0gZGl2aWRlcl9yb3VuZF9yYXRlKGh3LCByYXRlLCBwYXJl bnRfcmF0ZSwgZGl2X2h3X2RhdGEtPmR0YWJsZSwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGl2X2h3X2RhdGEtPndpZHRoLCBDTEtfRElWSURFUl9ST1VORF9DTE9T RVNUKTsKPiArCj4gKyAgICAgICBpZiAoIXJ6ZzNzX2Rpdl9jbGtfaXNfcmF0ZV92YWxpZChkaXZf aHdfZGF0YS0+aW52YWxpZF9yYXRlLCByb3VuZF9yYXRlKSkKPiArICAgICAgICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CgpTaG91bGRuJ3QgdGhpcyByZXR1cm4gdGhlIGNsb3Nlc3QgcmF0ZSB0aGF0 IGlzIGFjdHVhbGx5IHN1cHBvcnRlZCBpbnN0ZWFkPwoKPiArCj4gKyAgICAgICByZXR1cm4gcm91 bmRfcmF0ZTsKPiArfQoKQnV0IHBsZWFzZSBpbXBsZW1lbnQgLmRldGVybWluZV9yYXRlKCkgaW5z dGVhZCBvZiAucm91bmRfcmF0ZSgpIGluCm5ldyBkcml2ZXJzLgoKPiArCj4gK3N0YXRpYyBpbnQg cnpnM3NfZGl2X2Nsa19zZXRfcmF0ZShzdHJ1Y3QgY2xrX2h3ICpodywgdW5zaWduZWQgbG9uZyBy YXRlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBh cmVudF9yYXRlKQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgY2xrX2h3X2RhdGEgKmNsa19od19kYXRh ID0gdG9fY2xrX2h3X2RhdGEoaHcpOwo+ICsgICAgICAgc3RydWN0IGRpdl9od19kYXRhICpkaXZf aHdfZGF0YSA9IHRvX2Rpdl9od19kYXRhKGNsa19od19kYXRhKTsKPiArICAgICAgIHN0cnVjdCBy emcybF9jcGdfcHJpdiAqcHJpdiA9IGNsa19od19kYXRhLT5wcml2Owo+ICsgICAgICAgdTMyIG9m ZiA9IEdFVF9SRUdfT0ZGU0VUKGNsa19od19kYXRhLT5jb25mKTsKPiArICAgICAgIHUzMiBzaGlm dCA9IEdFVF9TSElGVChjbGtfaHdfZGF0YS0+Y29uZik7Cj4gKyAgICAgICB1bnNpZ25lZCBsb25n IGZsYWdzOwo+ICsgICAgICAgdTMyIGJpdG1hc2ssIHZhbDsKPiArICAgICAgIGludCByZXQ7Cj4g Kwo+ICsgICAgICAgLyoKPiArICAgICAgICAqIFNvbWUgZGl2aWRlcnMgY2Fubm90IHN1cHBvcnQg c29tZSByYXRlczoKPiArICAgICAgICAqIC0gU0QgZGl2IGNhbm5vdCBzdXBwb3J0IDgwMCBNSHog d2hlbiBwYXJlbnQgaXMgQDgwME1IeiBhbmQgZGl2ID0gMQo+ICsgICAgICAgICogLSBPQ1RBIGRp diBjYW5ub3Qgc3VwcG9ydCA0MDAgTUh6IHdoZW4gcGFyZW50IGlzIEA0MDBNSHogYW5kIGRpdiA9 IDEKPiArICAgICAgICAqIENoZWNrIHRoZXNlIHNjZW5hcmlvcy4KPiArICAgICAgICAqLwo+ICsg ICAgICAgaWYgKCFyemczc19kaXZfY2xrX2lzX3JhdGVfdmFsaWQoZGl2X2h3X2RhdGEtPmludmFs aWRfcmF0ZSwgcmF0ZSkpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwoKQ2FuIHRo aXMgYWN0dWFsbHkgaGFwcGVuPyBXb3VsZG4ndCB0aGUgbm90aWZpZXIgaGF2ZSBwcmV2ZW50ZWQg dXMgZnJvbQpnZXR0aW5nIGhlcmU/Cgo+ICsKPiArICAgICAgIHZhbCA9IGRpdmlkZXJfZ2V0X3Zh bChyYXRlLCBwYXJlbnRfcmF0ZSwgZGl2X2h3X2RhdGEtPmR0YWJsZSwgZGl2X2h3X2RhdGEtPndp ZHRoLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENMS19ESVZJREVSX1JPVU5EX0NM T1NFU1QpOwo+ICsKPiArICAgICAgIGJpdG1hc2sgPSAoR0VOTUFTSyhHRVRfV0lEVEgoY2xrX2h3 X2RhdGEtPmNvbmYpIC0gMSwgMCkgPDwgc2hpZnQpIDw8IDE2OwoKSXMgYml0bWFzayB0aGUgKHNp bmdsZSkgd3JpdGUtZW5hYmxlIGJpdD8KCklmIHllcywgdGhhdCBzaG91bGQgYmUgQklUKDE2ICsg c2hpZnQpLCBhbmQgdGhlIHZhcmlhYmxlIHNob3VsZCBiZQpyZW5hbWVkIHRvIHJlZmxlY3QgdGhh dC4KCkkgZ3Vlc3MgdGhlcmUgc2hvdWxkIGJlIGEgZ2VuZXJhbCAiI2RlZmluZSBDUEdfV0VOIEJJ VCgxNikiLCB0aGVuIHlvdQpjYW4gc2ltcGx5IHVzZQoKICAgIHdyaXRlbCgoQ1BHX1dFTiB8IHZh bCkgPDwgc2hpZnQsIC4uLik7Cgo+ICsKPiArICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcml2 LT5ybXdfbG9jaywgZmxhZ3MpOwo+ICsgICAgICAgd3JpdGVsKGJpdG1hc2sgfCAodmFsIDw8IHNo aWZ0KSwgcHJpdi0+YmFzZSArIG9mZik7Cj4gKyAgICAgICAvKiBXYWl0IGZvciB0aGUgdXBkYXRl IGRvbmUuICovCj4gKyAgICAgICByZXQgPSByemcybF9jcGdfd2FpdF9jbGtfdXBkYXRlX2RvbmUo cHJpdi0+YmFzZSwgY2xrX2h3X2RhdGEtPnNjb25mKTsKPiArICAgICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJnByaXYtPnJtd19sb2NrLCBmbGFncyk7Cj4gKwo+ICsgICAgICAgcmV0dXJuIHJl dDsKPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjbGtfb3BzIHJ6ZzNzX2Rpdl9jbGtf b3BzID0gewo+ICsgICAgICAgLnJlY2FsY19yYXRlID0gcnpnM3NfZGl2X2Nsa19yZWNhbGNfcmF0 ZSwKPiArICAgICAgIC5yb3VuZF9yYXRlID0gcnpnM3NfZGl2X2Nsa19yb3VuZF9yYXRlLAo+ICsg ICAgICAgLnNldF9yYXRlID0gcnpnM3NfZGl2X2Nsa19zZXRfcmF0ZSwKPiArfTsKPiArCj4gK3N0 YXRpYyBzdHJ1Y3QgY2xrICogX19pbml0Cj4gK3J6ZzNzX2NwZ19kaXZfY2xrX3JlZ2lzdGVyKGNv bnN0IHN0cnVjdCBjcGdfY29yZV9jbGsgKmNvcmUsIHN0cnVjdCBjbGsgKipjbGtzLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIHZvaWQgX19pb21lbSAqYmFzZSwgc3RydWN0IHJ6ZzJsX2Nw Z19wcml2ICpwcml2KQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgZGl2X2h3X2RhdGEgKmRpdl9od19k YXRhOwo+ICsgICAgICAgc3RydWN0IGNsa19pbml0X2RhdGEgaW5pdCA9IHt9Owo+ICsgICAgICAg Y29uc3Qgc3RydWN0IGNsa19kaXZfdGFibGUgKmNsa3Q7Cj4gKyAgICAgICBzdHJ1Y3QgY2xrX2h3 ICpjbGtfaHc7Cj4gKyAgICAgICBjb25zdCBzdHJ1Y3QgY2xrICpwYXJlbnQ7Cj4gKyAgICAgICBj b25zdCBjaGFyICpwYXJlbnRfbmFtZTsKPiArICAgICAgIHUzMiBtYXg7Cj4gKyAgICAgICBpbnQg cmV0Owo+ICsKPiArICAgICAgIHBhcmVudCA9IGNsa3NbY29yZS0+cGFyZW50ICYgMHhmZmZmXTsK PiArICAgICAgIGlmIChJU19FUlIocGFyZW50KSkKPiArICAgICAgICAgICAgICAgcmV0dXJuIEVS Ul9DQVNUKHBhcmVudCk7Cj4gKwo+ICsgICAgICAgcGFyZW50X25hbWUgPSBfX2Nsa19nZXRfbmFt ZShwYXJlbnQpOwo+ICsKPiArICAgICAgIGRpdl9od19kYXRhID0gZGV2bV9remFsbG9jKHByaXYt PmRldiwgc2l6ZW9mKCpkaXZfaHdfZGF0YSksIEdGUF9LRVJORUwpOwo+ICsgICAgICAgaWYgKCFk aXZfaHdfZGF0YSkKPiArICAgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4g Kwo+ICsgICAgICAgaW5pdC5uYW1lID0gY29yZS0+bmFtZTsKPiArICAgICAgIGluaXQuZmxhZ3Mg PSBjb3JlLT5mbGFnOwo+ICsgICAgICAgaW5pdC5vcHMgPSAmcnpnM3NfZGl2X2Nsa19vcHM7Cj4g KyAgICAgICBpbml0LnBhcmVudF9uYW1lcyA9ICZwYXJlbnRfbmFtZTsKPiArICAgICAgIGluaXQu bnVtX3BhcmVudHMgPSAxOwo+ICsKPiArICAgICAgIC8qIEdldCB0aGUgbWF4aW11bSBkaXZpZGVy IHRvIHJldHJpZXZlIGRpdiB3aWR0aC4gKi8KPiArICAgICAgIGZvciAoY2xrdCA9IGNvcmUtPmR0 YWJsZTsgY2xrdC0+ZGl2OyBjbGt0KyspIHsKPiArICAgICAgICAgICAgICAgaWYgKG1heCA8IGNs a3QtPmRpdikKCiJtYXgiIGlzIHVzZWQgdW5pbml0aWFsaXplZAoKPiArICAgICAgICAgICAgICAg ICAgICAgICBtYXggPSBjbGt0LT5kaXY7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgZGl2X2h3 X2RhdGEtPmh3X2RhdGEucHJpdiA9IHByaXY7Cj4gKyAgICAgICBkaXZfaHdfZGF0YS0+aHdfZGF0 YS5jb25mID0gY29yZS0+Y29uZjsKPiArICAgICAgIGRpdl9od19kYXRhLT5od19kYXRhLnNjb25m ID0gY29yZS0+c2NvbmY7Cj4gKyAgICAgICBkaXZfaHdfZGF0YS0+ZHRhYmxlID0gY29yZS0+ZHRh YmxlOwo+ICsgICAgICAgZGl2X2h3X2RhdGEtPmludmFsaWRfcmF0ZSA9IGNvcmUtPmludmFsaWRf cmF0ZTsKPiArICAgICAgIGRpdl9od19kYXRhLT53aWR0aCA9IGZscyhtYXgpIC0gMTsKCklzbid0 IHRoYXQKPiArCj4gKyAgICAgICBjbGtfaHcgPSAmZGl2X2h3X2RhdGEtPmh3X2RhdGEuaHc7Cj4g KyAgICAgICBjbGtfaHctPmluaXQgPSAmaW5pdDsKPiArCj4gKyAgICAgICByZXQgPSBkZXZtX2Ns a19od19yZWdpc3Rlcihwcml2LT5kZXYsIGNsa19odyk7Cj4gKyAgICAgICBpZiAocmV0KQo+ICsg ICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsKPiArICAgICAgIHJldCA9IHJ6 ZzJsX3JlZ2lzdGVyX25vdGlmaWVyKGNsa19odywgY29yZSwgcHJpdik7Cj4gKyAgICAgICBpZiAo cmV0KSB7Cj4gKyAgICAgICAgICAgICAgIGRldl9lcnIocHJpdi0+ZGV2LCAiRmFpbGVkIHRvIHJl Z2lzdGVyIG5vdGlmaWVyIGZvciAlc1xuIiwKPiArICAgICAgICAgICAgICAgICAgICAgICBjb3Jl LT5uYW1lKTsKPiArICAgICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIocmV0KTsKPiArICAgICAg IH0KPiArCj4gKyAgICAgICByZXR1cm4gY2xrX2h3LT5jbGs7Cj4gK30KCkdye29ldGplLGVldGlu Z31zLAoKICAgICAgICAgICAgICAgICAgICAgICAgR2VlcnQKCi0tIApHZWVydCBVeXR0ZXJob2V2 ZW4gLS0gVGhlcmUncyBsb3RzIG9mIExpbnV4IGJleW9uZCBpYTMyIC0tIGdlZXJ0QGxpbnV4LW02 OGsub3JnCgpJbiBwZXJzb25hbCBjb252ZXJzYXRpb25zIHdpdGggdGVjaG5pY2FsIHBlb3BsZSwg SSBjYWxsIG15c2VsZiBhIGhhY2tlci4gQnV0CndoZW4gSSdtIHRhbGtpbmcgdG8gam91cm5hbGlz dHMgSSBqdXN0IHNheSAicHJvZ3JhbW1lciIgb3Igc29tZXRoaW5nIGxpa2UgdGhhdC4KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBMaW51cyBUb3J2YWxkcwoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWls aW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=