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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8427DC4332F for ; Fri, 4 Mar 2022 23:55:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229445AbiCDX4f (ORCPT ); Fri, 4 Mar 2022 18:56:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57844 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230089AbiCDX4e (ORCPT ); Fri, 4 Mar 2022 18:56:34 -0500 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1866527C504 for ; Fri, 4 Mar 2022 15:55:45 -0800 (PST) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: dmitry.osipenko) with ESMTPSA id C8F251F46E3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1646438143; bh=IUw5jFkv39jqcPQCo/oRiqH/4ARuLA0Q4Zt6gaiOlhM=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=HNF/gPoA3dcCx/RvyZJPlcMcVoLUzr4SEeIA/3z4PmW3iYql2H1xwb7ZzyDnsMZq2 xgE1vIuTQuEPU0Bmjl82Kc8fPAf6i/MBVOnaLi9hIj3+zDoW0vAVS7JRJrUgwfsZCt DoFqlwwYBa2Ir/kucA3Fek9ObQYfieGaFdf5mZfunoV1dSqIMbnvT4ZVLkdBiAsP3i 3pPmB5vV3TGwjW3Jbkd9PGRLuejthXs9Y5sY3IKmy2f0BKGvsjIjvCNkOf6x3BKNLc GHCSnY6NzntQPhZzWRg7cYHm3qqLLfGsPMyWm690TDHVXt2UxDGc+P1WTLCbeVE0KR XNBRe7r69/erA== Message-ID: <9ea0134e-aac7-60e1-5c58-ae31b4e1c422@collabora.com> Date: Sat, 5 Mar 2022 02:55:40 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v7 10/24] drm/rockchip: dw_hdmi: Add support for hclk Content-Language: en-US To: Sascha Hauer , Robin Murphy , Andy Yan Cc: devicetree@vger.kernel.org, Benjamin Gaignard , kernel@pengutronix.de, Sandy Huang , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Michael Riesch , Peter Geis , Dmitry Osipenko , linux-arm-kernel@lists.infradead.org References: <20220225075150.2729401-1-s.hauer@pengutronix.de> <20220225075150.2729401-11-s.hauer@pengutronix.de> <47ddcaf3-4544-2b7c-a2f6-1f6346907f33@gmail.com> <20220225104924.GC19585@pengutronix.de> <78207d97-b5a1-9792-8ec9-11fcf2e00370@gmail.com> <90c61299-f02c-607b-4734-7134852ef0a6@arm.com> <20220225131154.GE19585@pengutronix.de> <20220228141921.GN19585@pengutronix.de> <5184ecf2-8734-3121-cbbc-5dcfcf0d02f8@arm.com> <20220302112528.GV19585@pengutronix.de> <20220304142235.GL22780@pengutronix.de> From: Dmitry Osipenko In-Reply-To: <20220304142235.GL22780@pengutronix.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On 3/4/22 17:22, Sascha Hauer wrote: > On Wed, Mar 02, 2022 at 12:25:28PM +0100, Sascha Hauer wrote: >> On Tue, Mar 01, 2022 at 01:39:31PM +0000, Robin Murphy wrote: >>> On 2022-02-28 14:19, Sascha Hauer wrote: >>>> On Fri, Feb 25, 2022 at 02:11:54PM +0100, Sascha Hauer wrote: >>>>> On Fri, Feb 25, 2022 at 12:41:23PM +0000, Robin Murphy wrote: >>>>>> On 2022-02-25 11:10, Dmitry Osipenko wrote: >>>>>>> 25.02.2022 13:49, Sascha Hauer пишет: >>>>>>>> On Fri, Feb 25, 2022 at 01:26:14PM +0300, Dmitry Osipenko wrote: >>>>>>>>> 25.02.2022 10:51, Sascha Hauer пишет: >>>>>>>>>> The rk3568 HDMI has an additional clock that needs to be enabled for the >>>>>>>>>> HDMI controller to work. The purpose of that clock is not clear. It is >>>>>>>>>> named "hclk" in the downstream driver, so use the same name. >>>>>>>>>> >>>>>>>>>> Signed-off-by: Sascha Hauer >>>>>>>>>> --- >>>>>>>>>> >>>>>>>>>> Notes: >>>>>>>>>> Changes since v5: >>>>>>>>>> - Use devm_clk_get_optional rather than devm_clk_get >>>>>>>>>> >>>>>>>>>> drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 16 ++++++++++++++++ >>>>>>>>>> 1 file changed, 16 insertions(+) >>>>>>>>>> >>>>>>>>>> diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c >>>>>>>>>> index fe4f9556239ac..c6c00e8779ab5 100644 >>>>>>>>>> --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c >>>>>>>>>> +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c >>>>>>>>>> @@ -76,6 +76,7 @@ struct rockchip_hdmi { >>>>>>>>>> const struct rockchip_hdmi_chip_data *chip_data; >>>>>>>>>> struct clk *ref_clk; >>>>>>>>>> struct clk *grf_clk; >>>>>>>>>> + struct clk *hclk_clk; >>>>>>>>>> struct dw_hdmi *hdmi; >>>>>>>>>> struct regulator *avdd_0v9; >>>>>>>>>> struct regulator *avdd_1v8; >>>>>>>>>> @@ -229,6 +230,14 @@ static int rockchip_hdmi_parse_dt(struct rockchip_hdmi *hdmi) >>>>>>>>>> return PTR_ERR(hdmi->grf_clk); >>>>>>>>>> } >>>>>>>>>> + hdmi->hclk_clk = devm_clk_get_optional(hdmi->dev, "hclk"); >>>>>>>>>> + if (PTR_ERR(hdmi->hclk_clk) == -EPROBE_DEFER) { >>>>>>>>> >>>>>>>>> Have you tried to investigate the hclk? I'm still thinking that's not >>>>>>>>> only HDMI that needs this clock and then the hardware description >>>>>>>>> doesn't look correct. >>>>>>>> >>>>>>>> I am still not sure what you mean. Yes, it's not only the HDMI that >>>>>>>> needs this clock. The VOP2 needs it as well and the driver handles that. >>>>>>> >>>>>>> I'm curious whether DSI/DP also need that clock to be enabled. If they >>>>>>> do, then you aren't modeling h/w properly AFAICS. >>>>>> >>>>>> Assuming nobody at Rockchip decided to make things needlessly inconsistent >>>>>> with previous SoCs, HCLK_VOP should be the clock for the VOP's AHB slave >>>>>> interface. Usually, if that affected anything other than accessing VOP >>>>>> registers, indeed it would smell of something being wrong in the clock tree, >>>>>> but in this case I'd also be suspicious of whether it might have ended up >>>>>> clocking related GRF registers as well (either directly, or indirectly via >>>>>> some gate that the clock driver hasn't modelled yet). >>>>> >>>>> Ok, I am beginning to understand. I verified that hdmi, mipi and dp are >>>>> hanging when HCLK_VOP is disabled by disabling that clock via sysfs >>>>> using CLOCK_ALLOW_WRITE_DEBUGFS. When it's disabled then the registers >>>>> of that units can't be accessed. However, when I disable HCLK_VOP by >>>>> directly writing to the gate bit RK3568_CLKGATE_CON(20) then only >>>>> accessing VOP registers hangs, the other units stay functional. >>>>> So it seems it must be the parent clock which must be enabled. The >>>>> parent clock is hclk_vo. This clock should be handled as part of the >>>>> RK3568_PD_VO power domain: >>>>> >>>>> power-domain@RK3568_PD_VO { >>>>> reg = ; >>>>> clocks = <&cru HCLK_VO>, >>>>> <&cru PCLK_VO>, >>>>> <&cru ACLK_VOP_PRE>; >>>>> pm_qos = <&qos_hdcp>, >>>>> <&qos_vop_m0>, >>>>> <&qos_vop_m1>; >>>>> #power-domain-cells = <0>; >>>>> }; >>>> >>>> Forget this. The clocks in this node are only enabled during enabling or >>>> disabling the power domain, they are disabled again immediately afterwards. >>>> >>>> OK, I need HCLK_VO to access the HDMI registers. I verified that by >>>> disabling HCLK_VO at register level (CRU_GATE_CON(20) BIT(1)). The >>>> HDMI registers become inaccessible then. This means I'll replace >>>> HCLK_VOP in the HDMI node with HCLK_VO. Does this sound sane? >>> >>> Well, it's still a mystery hack overall, and in some ways it seems even more >>> suspect to be claiming a whole branch of the clock tree rather than a leaf >>> gate with a specific purpose. I'm really starting to think that the >>> underlying issue here is a bug in the clock driver, or a hardware mishap >>> that should logically be worked around by the clock driver, rather than >>> individual the consumers. >>> >>> Does it work if you hack the clock driver to think that PCLK_VO is a child >>> of HCLK_VO? Even if that's not technically true, it would seem to >>> effectively match the observed behaviour (i.e. all 3 things whose register >>> access apparently *should* be enabled by a gate off PCLK_VO, seem to also >>> require HCLK_VO). >> >> Yes, that works as expected. I am not sure though if we really want to >> go that path. The pclk rates will become completely bogus with this and >> should we have to play with the rates in the future we might regret this >> step. > > How do we proceed here? I can include a patch which makes PCLK_VO a > child of HCLK_VO if that's what we agree upon. Couldn't Andy clarify the actual clock tree structure of the h/w for us? This will be the best option because datasheet doesn't give the clear answer, or at least I couldn't find it. Technically, PCLK indeed should be a child of the HCLK in general, so Robin could be right. 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 19975C433F5 for ; Fri, 4 Mar 2022 23:56:04 +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=zMyA5ix5I5Z8l4jtfq+ZGDVYdSLcXDXBOPrp1Xwickk=; b=S79+9jRla761mu 7P4ljzu3xQBGFwGk+1sARZv0gcGdzeJWN3Eq0eM2Zk3Uo5XSi3LrSdEer/856MLvJC+L0oAlJFQvF 2tahTvDaesuyOUiED0r4T7DTaNWfM52hRcsHEj1A2x1g4VJWu4eILLDsSZN/dvuHKtyXXYZGVWdCl 7eVzeM/1Yi8ek1GtRTgchcWsa6abA9wBwI101hn4h2gTK3UXzS3fcPmTHYB/RXGm/vyF5wUl0kBPi t45VbZ13e8lFwMkeD6MOclZGXdYqcfGoxL8IVJC1HV6e8lN4EXNEu0n/Dx4qanFNeKk4y1RYtxKF+ j16BxPe/97WhTNs7fQQg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nQHmC-00CPX7-4K; Fri, 04 Mar 2022 23:56:00 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nQHlz-00CPRn-4l; Fri, 04 Mar 2022 23:55:49 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: dmitry.osipenko) with ESMTPSA id C8F251F46E3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1646438143; bh=IUw5jFkv39jqcPQCo/oRiqH/4ARuLA0Q4Zt6gaiOlhM=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=HNF/gPoA3dcCx/RvyZJPlcMcVoLUzr4SEeIA/3z4PmW3iYql2H1xwb7ZzyDnsMZq2 xgE1vIuTQuEPU0Bmjl82Kc8fPAf6i/MBVOnaLi9hIj3+zDoW0vAVS7JRJrUgwfsZCt DoFqlwwYBa2Ir/kucA3Fek9ObQYfieGaFdf5mZfunoV1dSqIMbnvT4ZVLkdBiAsP3i 3pPmB5vV3TGwjW3Jbkd9PGRLuejthXs9Y5sY3IKmy2f0BKGvsjIjvCNkOf6x3BKNLc GHCSnY6NzntQPhZzWRg7cYHm3qqLLfGsPMyWm690TDHVXt2UxDGc+P1WTLCbeVE0KR XNBRe7r69/erA== Message-ID: <9ea0134e-aac7-60e1-5c58-ae31b4e1c422@collabora.com> Date: Sat, 5 Mar 2022 02:55:40 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v7 10/24] drm/rockchip: dw_hdmi: Add support for hclk Content-Language: en-US To: Sascha Hauer , Robin Murphy , Andy Yan Cc: devicetree@vger.kernel.org, Benjamin Gaignard , kernel@pengutronix.de, Sandy Huang , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Michael Riesch , Peter Geis , Dmitry Osipenko , linux-arm-kernel@lists.infradead.org References: <20220225075150.2729401-1-s.hauer@pengutronix.de> <20220225075150.2729401-11-s.hauer@pengutronix.de> <47ddcaf3-4544-2b7c-a2f6-1f6346907f33@gmail.com> <20220225104924.GC19585@pengutronix.de> <78207d97-b5a1-9792-8ec9-11fcf2e00370@gmail.com> <90c61299-f02c-607b-4734-7134852ef0a6@arm.com> <20220225131154.GE19585@pengutronix.de> <20220228141921.GN19585@pengutronix.de> <5184ecf2-8734-3121-cbbc-5dcfcf0d02f8@arm.com> <20220302112528.GV19585@pengutronix.de> <20220304142235.GL22780@pengutronix.de> From: Dmitry Osipenko In-Reply-To: <20220304142235.GL22780@pengutronix.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220304_155547_516107_0614B6C5 X-CRM114-Status: GOOD ( 33.67 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org T24gMy80LzIyIDE3OjIyLCBTYXNjaGEgSGF1ZXIgd3JvdGU6Cj4gT24gV2VkLCBNYXIgMDIsIDIw MjIgYXQgMTI6MjU6MjhQTSArMDEwMCwgU2FzY2hhIEhhdWVyIHdyb3RlOgo+PiBPbiBUdWUsIE1h ciAwMSwgMjAyMiBhdCAwMTozOTozMVBNICswMDAwLCBSb2JpbiBNdXJwaHkgd3JvdGU6Cj4+PiBP biAyMDIyLTAyLTI4IDE0OjE5LCBTYXNjaGEgSGF1ZXIgd3JvdGU6Cj4+Pj4gT24gRnJpLCBGZWIg MjUsIDIwMjIgYXQgMDI6MTE6NTRQTSArMDEwMCwgU2FzY2hhIEhhdWVyIHdyb3RlOgo+Pj4+PiBP biBGcmksIEZlYiAyNSwgMjAyMiBhdCAxMjo0MToyM1BNICswMDAwLCBSb2JpbiBNdXJwaHkgd3Jv dGU6Cj4+Pj4+PiBPbiAyMDIyLTAyLTI1IDExOjEwLCBEbWl0cnkgT3NpcGVua28gd3JvdGU6Cj4+ Pj4+Pj4gMjUuMDIuMjAyMiAxMzo0OSwgU2FzY2hhIEhhdWVyINC/0LjRiNC10YI6Cj4+Pj4+Pj4+ IE9uIEZyaSwgRmViIDI1LCAyMDIyIGF0IDAxOjI2OjE0UE0gKzAzMDAsIERtaXRyeSBPc2lwZW5r byB3cm90ZToKPj4+Pj4+Pj4+IDI1LjAyLjIwMjIgMTA6NTEsIFNhc2NoYSBIYXVlciDQv9C40YjQ tdGCOgo+Pj4+Pj4+Pj4+IFRoZSByazM1NjggSERNSSBoYXMgYW4gYWRkaXRpb25hbCBjbG9jayB0 aGF0IG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIHRoZQo+Pj4+Pj4+Pj4+IEhETUkgY29udHJvbGxl ciB0byB3b3JrLiBUaGUgcHVycG9zZSBvZiB0aGF0IGNsb2NrIGlzIG5vdCBjbGVhci4gSXQgaXMK Pj4+Pj4+Pj4+PiBuYW1lZCAiaGNsayIgaW4gdGhlIGRvd25zdHJlYW0gZHJpdmVyLCBzbyB1c2Ug dGhlIHNhbWUgbmFtZS4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNhc2No YSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KPj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4+IE5vdGVzOgo+Pj4+Pj4+Pj4+ICAgICAgIENoYW5nZXMgc2luY2UgdjU6Cj4+ Pj4+Pj4+Pj4gICAgICAgLSBVc2UgZGV2bV9jbGtfZ2V0X29wdGlvbmFsIHJhdGhlciB0aGFuIGRl dm1fY2xrX2dldAo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2R3X2hkbWktcm9ja2NoaXAuYyB8IDE2ICsrKysrKysrKysrKysrKysKPj4+Pj4+Pj4+PiAg ICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCj4+Pj4+Pj4+Pj4g aW5kZXggZmU0Zjk1NTYyMzlhYy4uYzZjMDBlODc3OWFiNSAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCj4+Pj4+Pj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYwo+Pj4+Pj4+ Pj4+IEBAIC03Niw2ICs3Niw3IEBAIHN0cnVjdCByb2NrY2hpcF9oZG1pIHsKPj4+Pj4+Pj4+PiAg ICAJY29uc3Qgc3RydWN0IHJvY2tjaGlwX2hkbWlfY2hpcF9kYXRhICpjaGlwX2RhdGE7Cj4+Pj4+ Pj4+Pj4gICAgCXN0cnVjdCBjbGsgKnJlZl9jbGs7Cj4+Pj4+Pj4+Pj4gICAgCXN0cnVjdCBjbGsg KmdyZl9jbGs7Cj4+Pj4+Pj4+Pj4gKwlzdHJ1Y3QgY2xrICpoY2xrX2NsazsKPj4+Pj4+Pj4+PiAg ICAJc3RydWN0IGR3X2hkbWkgKmhkbWk7Cj4+Pj4+Pj4+Pj4gICAgCXN0cnVjdCByZWd1bGF0b3Ig KmF2ZGRfMHY5Owo+Pj4+Pj4+Pj4+ICAgIAlzdHJ1Y3QgcmVndWxhdG9yICphdmRkXzF2ODsKPj4+ Pj4+Pj4+PiBAQCAtMjI5LDYgKzIzMCwxNCBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2hkbWlfcGFy c2VfZHQoc3RydWN0IHJvY2tjaGlwX2hkbWkgKmhkbWkpCj4+Pj4+Pj4+Pj4gICAgCQlyZXR1cm4g UFRSX0VSUihoZG1pLT5ncmZfY2xrKTsKPj4+Pj4+Pj4+PiAgICAJfQo+Pj4+Pj4+Pj4+ICsJaGRt aS0+aGNsa19jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWwoaGRtaS0+ZGV2LCAiaGNsayIpOwo+ Pj4+Pj4+Pj4+ICsJaWYgKFBUUl9FUlIoaGRtaS0+aGNsa19jbGspID09IC1FUFJPQkVfREVGRVIp IHsKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBIYXZlIHlvdSB0cmllZCB0byBpbnZlc3RpZ2F0ZSB0aGUg aGNsaz8gSSdtIHN0aWxsIHRoaW5raW5nIHRoYXQncyBub3QKPj4+Pj4+Pj4+IG9ubHkgSERNSSB0 aGF0IG5lZWRzIHRoaXMgY2xvY2sgYW5kIHRoZW4gdGhlIGhhcmR3YXJlIGRlc2NyaXB0aW9uCj4+ Pj4+Pj4+PiBkb2Vzbid0IGxvb2sgY29ycmVjdC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gSSBhbSBzdGls bCBub3Qgc3VyZSB3aGF0IHlvdSBtZWFuLiBZZXMsIGl0J3Mgbm90IG9ubHkgdGhlIEhETUkgdGhh dAo+Pj4+Pj4+PiBuZWVkcyB0aGlzIGNsb2NrLiBUaGUgVk9QMiBuZWVkcyBpdCBhcyB3ZWxsIGFu ZCB0aGUgZHJpdmVyIGhhbmRsZXMgdGhhdC4KPj4+Pj4+Pgo+Pj4+Pj4+IEknbSBjdXJpb3VzIHdo ZXRoZXIgRFNJL0RQIGFsc28gbmVlZCB0aGF0IGNsb2NrIHRvIGJlIGVuYWJsZWQuIElmIHRoZXkK Pj4+Pj4+PiBkbywgdGhlbiB5b3UgYXJlbid0IG1vZGVsaW5nIGgvdyBwcm9wZXJseSBBRkFJQ1Mu Cj4+Pj4+Pgo+Pj4+Pj4gQXNzdW1pbmcgbm9ib2R5IGF0IFJvY2tjaGlwIGRlY2lkZWQgdG8gbWFr ZSB0aGluZ3MgbmVlZGxlc3NseSBpbmNvbnNpc3RlbnQKPj4+Pj4+IHdpdGggcHJldmlvdXMgU29D cywgSENMS19WT1Agc2hvdWxkIGJlIHRoZSBjbG9jayBmb3IgdGhlIFZPUCdzIEFIQiBzbGF2ZQo+ Pj4+Pj4gaW50ZXJmYWNlLiBVc3VhbGx5LCBpZiB0aGF0IGFmZmVjdGVkIGFueXRoaW5nIG90aGVy IHRoYW4gYWNjZXNzaW5nIFZPUAo+Pj4+Pj4gcmVnaXN0ZXJzLCBpbmRlZWQgaXQgd291bGQgc21l bGwgb2Ygc29tZXRoaW5nIGJlaW5nIHdyb25nIGluIHRoZSBjbG9jayB0cmVlLAo+Pj4+Pj4gYnV0 IGluIHRoaXMgY2FzZSBJJ2QgYWxzbyBiZSBzdXNwaWNpb3VzIG9mIHdoZXRoZXIgaXQgbWlnaHQg aGF2ZSBlbmRlZCB1cAo+Pj4+Pj4gY2xvY2tpbmcgcmVsYXRlZCBHUkYgcmVnaXN0ZXJzIGFzIHdl bGwgKGVpdGhlciBkaXJlY3RseSwgb3IgaW5kaXJlY3RseSB2aWEKPj4+Pj4+IHNvbWUgZ2F0ZSB0 aGF0IHRoZSBjbG9jayBkcml2ZXIgaGFzbid0IG1vZGVsbGVkIHlldCkuCj4+Pj4+Cj4+Pj4+IE9r LCBJIGFtIGJlZ2lubmluZyB0byB1bmRlcnN0YW5kLiBJIHZlcmlmaWVkIHRoYXQgaGRtaSwgbWlw aSBhbmQgZHAgYXJlCj4+Pj4+IGhhbmdpbmcgd2hlbiBIQ0xLX1ZPUCBpcyBkaXNhYmxlZCBieSBk aXNhYmxpbmcgdGhhdCBjbG9jayB2aWEgc3lzZnMKPj4+Pj4gdXNpbmcgQ0xPQ0tfQUxMT1dfV1JJ VEVfREVCVUdGUy4gV2hlbiBpdCdzIGRpc2FibGVkIHRoZW4gdGhlIHJlZ2lzdGVycwo+Pj4+PiBv ZiB0aGF0IHVuaXRzIGNhbid0IGJlIGFjY2Vzc2VkLiBIb3dldmVyLCB3aGVuIEkgZGlzYWJsZSBI Q0xLX1ZPUCBieQo+Pj4+PiBkaXJlY3RseSB3cml0aW5nIHRvIHRoZSBnYXRlIGJpdCBSSzM1Njhf Q0xLR0FURV9DT04oMjApIHRoZW4gb25seQo+Pj4+PiBhY2Nlc3NpbmcgVk9QIHJlZ2lzdGVycyBo YW5ncywgdGhlIG90aGVyIHVuaXRzIHN0YXkgZnVuY3Rpb25hbC4KPj4+Pj4gU28gaXQgc2VlbXMg aXQgbXVzdCBiZSB0aGUgcGFyZW50IGNsb2NrIHdoaWNoIG11c3QgYmUgZW5hYmxlZC4gVGhlCj4+ Pj4+IHBhcmVudCBjbG9jayBpcyBoY2xrX3ZvLiBUaGlzIGNsb2NrIHNob3VsZCBiZSBoYW5kbGVk IGFzIHBhcnQgb2YgdGhlCj4+Pj4+IFJLMzU2OF9QRF9WTyBwb3dlciBkb21haW46Cj4+Pj4+Cj4+ Pj4+IAlwb3dlci1kb21haW5AUkszNTY4X1BEX1ZPIHsKPj4+Pj4gICAgICAgICAgICAgICAgICBy ZWcgPSA8UkszNTY4X1BEX1ZPPjsKPj4+Pj4gICAgICAgICAgICAgICAgICBjbG9ja3MgPSA8JmNy dSBIQ0xLX1ZPPiwKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICA8JmNydSBQQ0xLX1ZP PiwKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICA8JmNydSBBQ0xLX1ZPUF9QUkU+Owo+ Pj4+PiAgICAgICAgICAgICAgICAgICBwbV9xb3MgPSA8JnFvc19oZGNwPiwKPj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPCZxb3Nfdm9wX20wPiwKPj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPCZxb3Nfdm9wX20xPjsKPj4+Pj4gICAgICAgICAgICAgICAgICAgI3Bvd2Vy LWRvbWFpbi1jZWxscyA9IDwwPjsKPj4+Pj4gICAgICAgICAgfTsKPj4+Pgo+Pj4+IEZvcmdldCB0 aGlzLiBUaGUgY2xvY2tzIGluIHRoaXMgbm9kZSBhcmUgb25seSBlbmFibGVkIGR1cmluZyBlbmFi bGluZyBvcgo+Pj4+IGRpc2FibGluZyB0aGUgcG93ZXIgZG9tYWluLCB0aGV5IGFyZSBkaXNhYmxl ZCBhZ2FpbiBpbW1lZGlhdGVseSBhZnRlcndhcmRzLgo+Pj4+Cj4+Pj4gT0ssIEkgbmVlZCBIQ0xL X1ZPIHRvIGFjY2VzcyB0aGUgSERNSSByZWdpc3RlcnMuIEkgdmVyaWZpZWQgdGhhdCBieQo+Pj4+ IGRpc2FibGluZyBIQ0xLX1ZPIGF0IHJlZ2lzdGVyIGxldmVsIChDUlVfR0FURV9DT04oMjApIEJJ VCgxKSkuIFRoZQo+Pj4+IEhETUkgcmVnaXN0ZXJzIGJlY29tZSBpbmFjY2Vzc2libGUgdGhlbi4g VGhpcyBtZWFucyBJJ2xsIHJlcGxhY2UKPj4+PiBIQ0xLX1ZPUCBpbiB0aGUgSERNSSBub2RlIHdp dGggSENMS19WTy4gRG9lcyB0aGlzIHNvdW5kIHNhbmU/Cj4+Pgo+Pj4gV2VsbCwgaXQncyBzdGls bCBhIG15c3RlcnkgaGFjayBvdmVyYWxsLCBhbmQgaW4gc29tZSB3YXlzIGl0IHNlZW1zIGV2ZW4g bW9yZQo+Pj4gc3VzcGVjdCB0byBiZSBjbGFpbWluZyBhIHdob2xlIGJyYW5jaCBvZiB0aGUgY2xv Y2sgdHJlZSByYXRoZXIgdGhhbiBhIGxlYWYKPj4+IGdhdGUgd2l0aCBhIHNwZWNpZmljIHB1cnBv c2UuIEknbSByZWFsbHkgc3RhcnRpbmcgdG8gdGhpbmsgdGhhdCB0aGUKPj4+IHVuZGVybHlpbmcg aXNzdWUgaGVyZSBpcyBhIGJ1ZyBpbiB0aGUgY2xvY2sgZHJpdmVyLCBvciBhIGhhcmR3YXJlIG1p c2hhcAo+Pj4gdGhhdCBzaG91bGQgbG9naWNhbGx5IGJlIHdvcmtlZCBhcm91bmQgYnkgdGhlIGNs b2NrIGRyaXZlciwgcmF0aGVyIHRoYW4KPj4+IGluZGl2aWR1YWwgdGhlIGNvbnN1bWVycy4KPj4+ Cj4+PiBEb2VzIGl0IHdvcmsgaWYgeW91IGhhY2sgdGhlIGNsb2NrIGRyaXZlciB0byB0aGluayB0 aGF0IFBDTEtfVk8gaXMgYSBjaGlsZAo+Pj4gb2YgSENMS19WTz8gRXZlbiBpZiB0aGF0J3Mgbm90 IHRlY2huaWNhbGx5IHRydWUsIGl0IHdvdWxkIHNlZW0gdG8KPj4+IGVmZmVjdGl2ZWx5IG1hdGNo IHRoZSBvYnNlcnZlZCBiZWhhdmlvdXIgKGkuZS4gYWxsIDMgdGhpbmdzIHdob3NlIHJlZ2lzdGVy Cj4+PiBhY2Nlc3MgYXBwYXJlbnRseSAqc2hvdWxkKiBiZSBlbmFibGVkIGJ5IGEgZ2F0ZSBvZmYg UENMS19WTywgc2VlbSB0byBhbHNvCj4+PiByZXF1aXJlIEhDTEtfVk8pLgo+Pgo+PiBZZXMsIHRo YXQgd29ya3MgYXMgZXhwZWN0ZWQuIEkgYW0gbm90IHN1cmUgdGhvdWdoIGlmIHdlIHJlYWxseSB3 YW50IHRvCj4+IGdvIHRoYXQgcGF0aC4gVGhlIHBjbGsgcmF0ZXMgd2lsbCBiZWNvbWUgY29tcGxl dGVseSBib2d1cyB3aXRoIHRoaXMgYW5kCj4+IHNob3VsZCB3ZSBoYXZlIHRvIHBsYXkgd2l0aCB0 aGUgcmF0ZXMgaW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCByZWdyZXQgdGhpcwo+PiBzdGVwLgo+IAo+ IEhvdyBkbyB3ZSBwcm9jZWVkIGhlcmU/IEkgY2FuIGluY2x1ZGUgYSBwYXRjaCB3aGljaCBtYWtl cyBQQ0xLX1ZPIGEKPiBjaGlsZCBvZiBIQ0xLX1ZPIGlmIHRoYXQncyB3aGF0IHdlIGFncmVlIHVw b24uCgpDb3VsZG4ndCBBbmR5IGNsYXJpZnkgdGhlIGFjdHVhbCBjbG9jayB0cmVlIHN0cnVjdHVy ZSBvZiB0aGUgaC93IGZvciB1cz8KClRoaXMgd2lsbCBiZSB0aGUgYmVzdCBvcHRpb24gYmVjYXVz ZSBkYXRhc2hlZXQgZG9lc24ndCBnaXZlIHRoZSBjbGVhcgphbnN3ZXIsIG9yIGF0IGxlYXN0IEkg Y291bGRuJ3QgZmluZCBpdC4gVGVjaG5pY2FsbHksIFBDTEsgaW5kZWVkIHNob3VsZApiZSBhIGNo aWxkIG9mIHRoZSBIQ0xLIGluIGdlbmVyYWwsIHNvIFJvYmluIGNvdWxkIGJlIHJpZ2h0LgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtcm9ja2No aXAgbWFpbGluZyBsaXN0CkxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAo= 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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 90591C433F5 for ; Fri, 4 Mar 2022 23:55:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id BC90210E602; Fri, 4 Mar 2022 23:55:46 +0000 (UTC) Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [46.235.227.227]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1FEC710E2FC for ; Fri, 4 Mar 2022 23:55:45 +0000 (UTC) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: dmitry.osipenko) with ESMTPSA id C8F251F46E3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1646438143; bh=IUw5jFkv39jqcPQCo/oRiqH/4ARuLA0Q4Zt6gaiOlhM=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=HNF/gPoA3dcCx/RvyZJPlcMcVoLUzr4SEeIA/3z4PmW3iYql2H1xwb7ZzyDnsMZq2 xgE1vIuTQuEPU0Bmjl82Kc8fPAf6i/MBVOnaLi9hIj3+zDoW0vAVS7JRJrUgwfsZCt DoFqlwwYBa2Ir/kucA3Fek9ObQYfieGaFdf5mZfunoV1dSqIMbnvT4ZVLkdBiAsP3i 3pPmB5vV3TGwjW3Jbkd9PGRLuejthXs9Y5sY3IKmy2f0BKGvsjIjvCNkOf6x3BKNLc GHCSnY6NzntQPhZzWRg7cYHm3qqLLfGsPMyWm690TDHVXt2UxDGc+P1WTLCbeVE0KR XNBRe7r69/erA== Message-ID: <9ea0134e-aac7-60e1-5c58-ae31b4e1c422@collabora.com> Date: Sat, 5 Mar 2022 02:55:40 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v7 10/24] drm/rockchip: dw_hdmi: Add support for hclk Content-Language: en-US To: Sascha Hauer , Robin Murphy , Andy Yan References: <20220225075150.2729401-1-s.hauer@pengutronix.de> <20220225075150.2729401-11-s.hauer@pengutronix.de> <47ddcaf3-4544-2b7c-a2f6-1f6346907f33@gmail.com> <20220225104924.GC19585@pengutronix.de> <78207d97-b5a1-9792-8ec9-11fcf2e00370@gmail.com> <90c61299-f02c-607b-4734-7134852ef0a6@arm.com> <20220225131154.GE19585@pengutronix.de> <20220228141921.GN19585@pengutronix.de> <5184ecf2-8734-3121-cbbc-5dcfcf0d02f8@arm.com> <20220302112528.GV19585@pengutronix.de> <20220304142235.GL22780@pengutronix.de> From: Dmitry Osipenko In-Reply-To: <20220304142235.GL22780@pengutronix.de> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Benjamin Gaignard , Peter Geis , Sandy Huang , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Michael Riesch , kernel@pengutronix.de, Dmitry Osipenko , linux-arm-kernel@lists.infradead.org Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On 3/4/22 17:22, Sascha Hauer wrote: > On Wed, Mar 02, 2022 at 12:25:28PM +0100, Sascha Hauer wrote: >> On Tue, Mar 01, 2022 at 01:39:31PM +0000, Robin Murphy wrote: >>> On 2022-02-28 14:19, Sascha Hauer wrote: >>>> On Fri, Feb 25, 2022 at 02:11:54PM +0100, Sascha Hauer wrote: >>>>> On Fri, Feb 25, 2022 at 12:41:23PM +0000, Robin Murphy wrote: >>>>>> On 2022-02-25 11:10, Dmitry Osipenko wrote: >>>>>>> 25.02.2022 13:49, Sascha Hauer пишет: >>>>>>>> On Fri, Feb 25, 2022 at 01:26:14PM +0300, Dmitry Osipenko wrote: >>>>>>>>> 25.02.2022 10:51, Sascha Hauer пишет: >>>>>>>>>> The rk3568 HDMI has an additional clock that needs to be enabled for the >>>>>>>>>> HDMI controller to work. The purpose of that clock is not clear. It is >>>>>>>>>> named "hclk" in the downstream driver, so use the same name. >>>>>>>>>> >>>>>>>>>> Signed-off-by: Sascha Hauer >>>>>>>>>> --- >>>>>>>>>> >>>>>>>>>> Notes: >>>>>>>>>> Changes since v5: >>>>>>>>>> - Use devm_clk_get_optional rather than devm_clk_get >>>>>>>>>> >>>>>>>>>> drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 16 ++++++++++++++++ >>>>>>>>>> 1 file changed, 16 insertions(+) >>>>>>>>>> >>>>>>>>>> diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c >>>>>>>>>> index fe4f9556239ac..c6c00e8779ab5 100644 >>>>>>>>>> --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c >>>>>>>>>> +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c >>>>>>>>>> @@ -76,6 +76,7 @@ struct rockchip_hdmi { >>>>>>>>>> const struct rockchip_hdmi_chip_data *chip_data; >>>>>>>>>> struct clk *ref_clk; >>>>>>>>>> struct clk *grf_clk; >>>>>>>>>> + struct clk *hclk_clk; >>>>>>>>>> struct dw_hdmi *hdmi; >>>>>>>>>> struct regulator *avdd_0v9; >>>>>>>>>> struct regulator *avdd_1v8; >>>>>>>>>> @@ -229,6 +230,14 @@ static int rockchip_hdmi_parse_dt(struct rockchip_hdmi *hdmi) >>>>>>>>>> return PTR_ERR(hdmi->grf_clk); >>>>>>>>>> } >>>>>>>>>> + hdmi->hclk_clk = devm_clk_get_optional(hdmi->dev, "hclk"); >>>>>>>>>> + if (PTR_ERR(hdmi->hclk_clk) == -EPROBE_DEFER) { >>>>>>>>> >>>>>>>>> Have you tried to investigate the hclk? I'm still thinking that's not >>>>>>>>> only HDMI that needs this clock and then the hardware description >>>>>>>>> doesn't look correct. >>>>>>>> >>>>>>>> I am still not sure what you mean. Yes, it's not only the HDMI that >>>>>>>> needs this clock. The VOP2 needs it as well and the driver handles that. >>>>>>> >>>>>>> I'm curious whether DSI/DP also need that clock to be enabled. If they >>>>>>> do, then you aren't modeling h/w properly AFAICS. >>>>>> >>>>>> Assuming nobody at Rockchip decided to make things needlessly inconsistent >>>>>> with previous SoCs, HCLK_VOP should be the clock for the VOP's AHB slave >>>>>> interface. Usually, if that affected anything other than accessing VOP >>>>>> registers, indeed it would smell of something being wrong in the clock tree, >>>>>> but in this case I'd also be suspicious of whether it might have ended up >>>>>> clocking related GRF registers as well (either directly, or indirectly via >>>>>> some gate that the clock driver hasn't modelled yet). >>>>> >>>>> Ok, I am beginning to understand. I verified that hdmi, mipi and dp are >>>>> hanging when HCLK_VOP is disabled by disabling that clock via sysfs >>>>> using CLOCK_ALLOW_WRITE_DEBUGFS. When it's disabled then the registers >>>>> of that units can't be accessed. However, when I disable HCLK_VOP by >>>>> directly writing to the gate bit RK3568_CLKGATE_CON(20) then only >>>>> accessing VOP registers hangs, the other units stay functional. >>>>> So it seems it must be the parent clock which must be enabled. The >>>>> parent clock is hclk_vo. This clock should be handled as part of the >>>>> RK3568_PD_VO power domain: >>>>> >>>>> power-domain@RK3568_PD_VO { >>>>> reg = ; >>>>> clocks = <&cru HCLK_VO>, >>>>> <&cru PCLK_VO>, >>>>> <&cru ACLK_VOP_PRE>; >>>>> pm_qos = <&qos_hdcp>, >>>>> <&qos_vop_m0>, >>>>> <&qos_vop_m1>; >>>>> #power-domain-cells = <0>; >>>>> }; >>>> >>>> Forget this. The clocks in this node are only enabled during enabling or >>>> disabling the power domain, they are disabled again immediately afterwards. >>>> >>>> OK, I need HCLK_VO to access the HDMI registers. I verified that by >>>> disabling HCLK_VO at register level (CRU_GATE_CON(20) BIT(1)). The >>>> HDMI registers become inaccessible then. This means I'll replace >>>> HCLK_VOP in the HDMI node with HCLK_VO. Does this sound sane? >>> >>> Well, it's still a mystery hack overall, and in some ways it seems even more >>> suspect to be claiming a whole branch of the clock tree rather than a leaf >>> gate with a specific purpose. I'm really starting to think that the >>> underlying issue here is a bug in the clock driver, or a hardware mishap >>> that should logically be worked around by the clock driver, rather than >>> individual the consumers. >>> >>> Does it work if you hack the clock driver to think that PCLK_VO is a child >>> of HCLK_VO? Even if that's not technically true, it would seem to >>> effectively match the observed behaviour (i.e. all 3 things whose register >>> access apparently *should* be enabled by a gate off PCLK_VO, seem to also >>> require HCLK_VO). >> >> Yes, that works as expected. I am not sure though if we really want to >> go that path. The pclk rates will become completely bogus with this and >> should we have to play with the rates in the future we might regret this >> step. > > How do we proceed here? I can include a patch which makes PCLK_VO a > child of HCLK_VO if that's what we agree upon. Couldn't Andy clarify the actual clock tree structure of the h/w for us? This will be the best option because datasheet doesn't give the clear answer, or at least I couldn't find it. Technically, PCLK indeed should be a child of the HCLK in general, so Robin could be right. 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 4D861C433F5 for ; Fri, 4 Mar 2022 23:57:08 +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=A6/YfVGElpzsFCXYzZaQylo5fVFej6nkEaPH9DfmGAM=; b=Iepec3RsVo2OEm iPQC+8P5j+U1lfBFzwaIhvUneS9Znz3qJ5ck4sJitp9Rk8ZoGNnGEbRPcI/BQNvvNmj3V7FijWUVz KPeNFHkkEOX5HdHxtYT7XLVY/Ii+XSLm0EPXUIJHOjYe6BCmeFGRhb2T0DLuevIip4R/ZyO46NXu1 rHK3aAqW2+xlZKASeZPFtaJJsF7wRxFBlgyguik5ns0GUo9LDC6ciC4gsY2v5TiLTZ59dL3y4/tyV nkcIhQsmv9RU1OROsVC8b76ujKwYfnx3WMR3KiIcC0ax74TYQFZu44elnCUXJYMIe+Ix0EnVrLWAC r8U8co0mlHtuFoh8yTeQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nQHm3-00CPUo-8Z; Fri, 04 Mar 2022 23:55:51 +0000 Received: from bhuna.collabora.co.uk ([46.235.227.227]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nQHlz-00CPRn-4l; Fri, 04 Mar 2022 23:55:49 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: dmitry.osipenko) with ESMTPSA id C8F251F46E3C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1646438143; bh=IUw5jFkv39jqcPQCo/oRiqH/4ARuLA0Q4Zt6gaiOlhM=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=HNF/gPoA3dcCx/RvyZJPlcMcVoLUzr4SEeIA/3z4PmW3iYql2H1xwb7ZzyDnsMZq2 xgE1vIuTQuEPU0Bmjl82Kc8fPAf6i/MBVOnaLi9hIj3+zDoW0vAVS7JRJrUgwfsZCt DoFqlwwYBa2Ir/kucA3Fek9ObQYfieGaFdf5mZfunoV1dSqIMbnvT4ZVLkdBiAsP3i 3pPmB5vV3TGwjW3Jbkd9PGRLuejthXs9Y5sY3IKmy2f0BKGvsjIjvCNkOf6x3BKNLc GHCSnY6NzntQPhZzWRg7cYHm3qqLLfGsPMyWm690TDHVXt2UxDGc+P1WTLCbeVE0KR XNBRe7r69/erA== Message-ID: <9ea0134e-aac7-60e1-5c58-ae31b4e1c422@collabora.com> Date: Sat, 5 Mar 2022 02:55:40 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [PATCH v7 10/24] drm/rockchip: dw_hdmi: Add support for hclk Content-Language: en-US To: Sascha Hauer , Robin Murphy , Andy Yan Cc: devicetree@vger.kernel.org, Benjamin Gaignard , kernel@pengutronix.de, Sandy Huang , dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, Michael Riesch , Peter Geis , Dmitry Osipenko , linux-arm-kernel@lists.infradead.org References: <20220225075150.2729401-1-s.hauer@pengutronix.de> <20220225075150.2729401-11-s.hauer@pengutronix.de> <47ddcaf3-4544-2b7c-a2f6-1f6346907f33@gmail.com> <20220225104924.GC19585@pengutronix.de> <78207d97-b5a1-9792-8ec9-11fcf2e00370@gmail.com> <90c61299-f02c-607b-4734-7134852ef0a6@arm.com> <20220225131154.GE19585@pengutronix.de> <20220228141921.GN19585@pengutronix.de> <5184ecf2-8734-3121-cbbc-5dcfcf0d02f8@arm.com> <20220302112528.GV19585@pengutronix.de> <20220304142235.GL22780@pengutronix.de> From: Dmitry Osipenko In-Reply-To: <20220304142235.GL22780@pengutronix.de> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220304_155547_516107_0614B6C5 X-CRM114-Status: GOOD ( 33.67 ) 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 T24gMy80LzIyIDE3OjIyLCBTYXNjaGEgSGF1ZXIgd3JvdGU6Cj4gT24gV2VkLCBNYXIgMDIsIDIw MjIgYXQgMTI6MjU6MjhQTSArMDEwMCwgU2FzY2hhIEhhdWVyIHdyb3RlOgo+PiBPbiBUdWUsIE1h ciAwMSwgMjAyMiBhdCAwMTozOTozMVBNICswMDAwLCBSb2JpbiBNdXJwaHkgd3JvdGU6Cj4+PiBP biAyMDIyLTAyLTI4IDE0OjE5LCBTYXNjaGEgSGF1ZXIgd3JvdGU6Cj4+Pj4gT24gRnJpLCBGZWIg MjUsIDIwMjIgYXQgMDI6MTE6NTRQTSArMDEwMCwgU2FzY2hhIEhhdWVyIHdyb3RlOgo+Pj4+PiBP biBGcmksIEZlYiAyNSwgMjAyMiBhdCAxMjo0MToyM1BNICswMDAwLCBSb2JpbiBNdXJwaHkgd3Jv dGU6Cj4+Pj4+PiBPbiAyMDIyLTAyLTI1IDExOjEwLCBEbWl0cnkgT3NpcGVua28gd3JvdGU6Cj4+ Pj4+Pj4gMjUuMDIuMjAyMiAxMzo0OSwgU2FzY2hhIEhhdWVyINC/0LjRiNC10YI6Cj4+Pj4+Pj4+ IE9uIEZyaSwgRmViIDI1LCAyMDIyIGF0IDAxOjI2OjE0UE0gKzAzMDAsIERtaXRyeSBPc2lwZW5r byB3cm90ZToKPj4+Pj4+Pj4+IDI1LjAyLjIwMjIgMTA6NTEsIFNhc2NoYSBIYXVlciDQv9C40YjQ tdGCOgo+Pj4+Pj4+Pj4+IFRoZSByazM1NjggSERNSSBoYXMgYW4gYWRkaXRpb25hbCBjbG9jayB0 aGF0IG5lZWRzIHRvIGJlIGVuYWJsZWQgZm9yIHRoZQo+Pj4+Pj4+Pj4+IEhETUkgY29udHJvbGxl ciB0byB3b3JrLiBUaGUgcHVycG9zZSBvZiB0aGF0IGNsb2NrIGlzIG5vdCBjbGVhci4gSXQgaXMK Pj4+Pj4+Pj4+PiBuYW1lZCAiaGNsayIgaW4gdGhlIGRvd25zdHJlYW0gZHJpdmVyLCBzbyB1c2Ug dGhlIHNhbWUgbmFtZS4KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNhc2No YSBIYXVlciA8cy5oYXVlckBwZW5ndXRyb25peC5kZT4KPj4+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4+IE5vdGVzOgo+Pj4+Pj4+Pj4+ICAgICAgIENoYW5nZXMgc2luY2UgdjU6Cj4+ Pj4+Pj4+Pj4gICAgICAgLSBVc2UgZGV2bV9jbGtfZ2V0X29wdGlvbmFsIHJhdGhlciB0aGFuIGRl dm1fY2xrX2dldAo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL3JvY2tj aGlwL2R3X2hkbWktcm9ja2NoaXAuYyB8IDE2ICsrKysrKysrKysrKysrKysKPj4+Pj4+Pj4+PiAg ICAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCj4+Pj4+Pj4+Pj4g aW5kZXggZmU0Zjk1NTYyMzlhYy4uYzZjMDBlODc3OWFiNSAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1yb2NrY2hpcC5jCj4+Pj4+Pj4+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYwo+Pj4+Pj4+ Pj4+IEBAIC03Niw2ICs3Niw3IEBAIHN0cnVjdCByb2NrY2hpcF9oZG1pIHsKPj4+Pj4+Pj4+PiAg ICAJY29uc3Qgc3RydWN0IHJvY2tjaGlwX2hkbWlfY2hpcF9kYXRhICpjaGlwX2RhdGE7Cj4+Pj4+ Pj4+Pj4gICAgCXN0cnVjdCBjbGsgKnJlZl9jbGs7Cj4+Pj4+Pj4+Pj4gICAgCXN0cnVjdCBjbGsg KmdyZl9jbGs7Cj4+Pj4+Pj4+Pj4gKwlzdHJ1Y3QgY2xrICpoY2xrX2NsazsKPj4+Pj4+Pj4+PiAg ICAJc3RydWN0IGR3X2hkbWkgKmhkbWk7Cj4+Pj4+Pj4+Pj4gICAgCXN0cnVjdCByZWd1bGF0b3Ig KmF2ZGRfMHY5Owo+Pj4+Pj4+Pj4+ICAgIAlzdHJ1Y3QgcmVndWxhdG9yICphdmRkXzF2ODsKPj4+ Pj4+Pj4+PiBAQCAtMjI5LDYgKzIzMCwxNCBAQCBzdGF0aWMgaW50IHJvY2tjaGlwX2hkbWlfcGFy c2VfZHQoc3RydWN0IHJvY2tjaGlwX2hkbWkgKmhkbWkpCj4+Pj4+Pj4+Pj4gICAgCQlyZXR1cm4g UFRSX0VSUihoZG1pLT5ncmZfY2xrKTsKPj4+Pj4+Pj4+PiAgICAJfQo+Pj4+Pj4+Pj4+ICsJaGRt aS0+aGNsa19jbGsgPSBkZXZtX2Nsa19nZXRfb3B0aW9uYWwoaGRtaS0+ZGV2LCAiaGNsayIpOwo+ Pj4+Pj4+Pj4+ICsJaWYgKFBUUl9FUlIoaGRtaS0+aGNsa19jbGspID09IC1FUFJPQkVfREVGRVIp IHsKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBIYXZlIHlvdSB0cmllZCB0byBpbnZlc3RpZ2F0ZSB0aGUg aGNsaz8gSSdtIHN0aWxsIHRoaW5raW5nIHRoYXQncyBub3QKPj4+Pj4+Pj4+IG9ubHkgSERNSSB0 aGF0IG5lZWRzIHRoaXMgY2xvY2sgYW5kIHRoZW4gdGhlIGhhcmR3YXJlIGRlc2NyaXB0aW9uCj4+ Pj4+Pj4+PiBkb2Vzbid0IGxvb2sgY29ycmVjdC4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gSSBhbSBzdGls bCBub3Qgc3VyZSB3aGF0IHlvdSBtZWFuLiBZZXMsIGl0J3Mgbm90IG9ubHkgdGhlIEhETUkgdGhh dAo+Pj4+Pj4+PiBuZWVkcyB0aGlzIGNsb2NrLiBUaGUgVk9QMiBuZWVkcyBpdCBhcyB3ZWxsIGFu ZCB0aGUgZHJpdmVyIGhhbmRsZXMgdGhhdC4KPj4+Pj4+Pgo+Pj4+Pj4+IEknbSBjdXJpb3VzIHdo ZXRoZXIgRFNJL0RQIGFsc28gbmVlZCB0aGF0IGNsb2NrIHRvIGJlIGVuYWJsZWQuIElmIHRoZXkK Pj4+Pj4+PiBkbywgdGhlbiB5b3UgYXJlbid0IG1vZGVsaW5nIGgvdyBwcm9wZXJseSBBRkFJQ1Mu Cj4+Pj4+Pgo+Pj4+Pj4gQXNzdW1pbmcgbm9ib2R5IGF0IFJvY2tjaGlwIGRlY2lkZWQgdG8gbWFr ZSB0aGluZ3MgbmVlZGxlc3NseSBpbmNvbnNpc3RlbnQKPj4+Pj4+IHdpdGggcHJldmlvdXMgU29D cywgSENMS19WT1Agc2hvdWxkIGJlIHRoZSBjbG9jayBmb3IgdGhlIFZPUCdzIEFIQiBzbGF2ZQo+ Pj4+Pj4gaW50ZXJmYWNlLiBVc3VhbGx5LCBpZiB0aGF0IGFmZmVjdGVkIGFueXRoaW5nIG90aGVy IHRoYW4gYWNjZXNzaW5nIFZPUAo+Pj4+Pj4gcmVnaXN0ZXJzLCBpbmRlZWQgaXQgd291bGQgc21l bGwgb2Ygc29tZXRoaW5nIGJlaW5nIHdyb25nIGluIHRoZSBjbG9jayB0cmVlLAo+Pj4+Pj4gYnV0 IGluIHRoaXMgY2FzZSBJJ2QgYWxzbyBiZSBzdXNwaWNpb3VzIG9mIHdoZXRoZXIgaXQgbWlnaHQg aGF2ZSBlbmRlZCB1cAo+Pj4+Pj4gY2xvY2tpbmcgcmVsYXRlZCBHUkYgcmVnaXN0ZXJzIGFzIHdl bGwgKGVpdGhlciBkaXJlY3RseSwgb3IgaW5kaXJlY3RseSB2aWEKPj4+Pj4+IHNvbWUgZ2F0ZSB0 aGF0IHRoZSBjbG9jayBkcml2ZXIgaGFzbid0IG1vZGVsbGVkIHlldCkuCj4+Pj4+Cj4+Pj4+IE9r LCBJIGFtIGJlZ2lubmluZyB0byB1bmRlcnN0YW5kLiBJIHZlcmlmaWVkIHRoYXQgaGRtaSwgbWlw aSBhbmQgZHAgYXJlCj4+Pj4+IGhhbmdpbmcgd2hlbiBIQ0xLX1ZPUCBpcyBkaXNhYmxlZCBieSBk aXNhYmxpbmcgdGhhdCBjbG9jayB2aWEgc3lzZnMKPj4+Pj4gdXNpbmcgQ0xPQ0tfQUxMT1dfV1JJ VEVfREVCVUdGUy4gV2hlbiBpdCdzIGRpc2FibGVkIHRoZW4gdGhlIHJlZ2lzdGVycwo+Pj4+PiBv ZiB0aGF0IHVuaXRzIGNhbid0IGJlIGFjY2Vzc2VkLiBIb3dldmVyLCB3aGVuIEkgZGlzYWJsZSBI Q0xLX1ZPUCBieQo+Pj4+PiBkaXJlY3RseSB3cml0aW5nIHRvIHRoZSBnYXRlIGJpdCBSSzM1Njhf Q0xLR0FURV9DT04oMjApIHRoZW4gb25seQo+Pj4+PiBhY2Nlc3NpbmcgVk9QIHJlZ2lzdGVycyBo YW5ncywgdGhlIG90aGVyIHVuaXRzIHN0YXkgZnVuY3Rpb25hbC4KPj4+Pj4gU28gaXQgc2VlbXMg aXQgbXVzdCBiZSB0aGUgcGFyZW50IGNsb2NrIHdoaWNoIG11c3QgYmUgZW5hYmxlZC4gVGhlCj4+ Pj4+IHBhcmVudCBjbG9jayBpcyBoY2xrX3ZvLiBUaGlzIGNsb2NrIHNob3VsZCBiZSBoYW5kbGVk IGFzIHBhcnQgb2YgdGhlCj4+Pj4+IFJLMzU2OF9QRF9WTyBwb3dlciBkb21haW46Cj4+Pj4+Cj4+ Pj4+IAlwb3dlci1kb21haW5AUkszNTY4X1BEX1ZPIHsKPj4+Pj4gICAgICAgICAgICAgICAgICBy ZWcgPSA8UkszNTY4X1BEX1ZPPjsKPj4+Pj4gICAgICAgICAgICAgICAgICBjbG9ja3MgPSA8JmNy dSBIQ0xLX1ZPPiwKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICA8JmNydSBQQ0xLX1ZP PiwKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICA8JmNydSBBQ0xLX1ZPUF9QUkU+Owo+ Pj4+PiAgICAgICAgICAgICAgICAgICBwbV9xb3MgPSA8JnFvc19oZGNwPiwKPj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgPCZxb3Nfdm9wX20wPiwKPj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgPCZxb3Nfdm9wX20xPjsKPj4+Pj4gICAgICAgICAgICAgICAgICAgI3Bvd2Vy LWRvbWFpbi1jZWxscyA9IDwwPjsKPj4+Pj4gICAgICAgICAgfTsKPj4+Pgo+Pj4+IEZvcmdldCB0 aGlzLiBUaGUgY2xvY2tzIGluIHRoaXMgbm9kZSBhcmUgb25seSBlbmFibGVkIGR1cmluZyBlbmFi bGluZyBvcgo+Pj4+IGRpc2FibGluZyB0aGUgcG93ZXIgZG9tYWluLCB0aGV5IGFyZSBkaXNhYmxl ZCBhZ2FpbiBpbW1lZGlhdGVseSBhZnRlcndhcmRzLgo+Pj4+Cj4+Pj4gT0ssIEkgbmVlZCBIQ0xL X1ZPIHRvIGFjY2VzcyB0aGUgSERNSSByZWdpc3RlcnMuIEkgdmVyaWZpZWQgdGhhdCBieQo+Pj4+ IGRpc2FibGluZyBIQ0xLX1ZPIGF0IHJlZ2lzdGVyIGxldmVsIChDUlVfR0FURV9DT04oMjApIEJJ VCgxKSkuIFRoZQo+Pj4+IEhETUkgcmVnaXN0ZXJzIGJlY29tZSBpbmFjY2Vzc2libGUgdGhlbi4g VGhpcyBtZWFucyBJJ2xsIHJlcGxhY2UKPj4+PiBIQ0xLX1ZPUCBpbiB0aGUgSERNSSBub2RlIHdp dGggSENMS19WTy4gRG9lcyB0aGlzIHNvdW5kIHNhbmU/Cj4+Pgo+Pj4gV2VsbCwgaXQncyBzdGls bCBhIG15c3RlcnkgaGFjayBvdmVyYWxsLCBhbmQgaW4gc29tZSB3YXlzIGl0IHNlZW1zIGV2ZW4g bW9yZQo+Pj4gc3VzcGVjdCB0byBiZSBjbGFpbWluZyBhIHdob2xlIGJyYW5jaCBvZiB0aGUgY2xv Y2sgdHJlZSByYXRoZXIgdGhhbiBhIGxlYWYKPj4+IGdhdGUgd2l0aCBhIHNwZWNpZmljIHB1cnBv c2UuIEknbSByZWFsbHkgc3RhcnRpbmcgdG8gdGhpbmsgdGhhdCB0aGUKPj4+IHVuZGVybHlpbmcg aXNzdWUgaGVyZSBpcyBhIGJ1ZyBpbiB0aGUgY2xvY2sgZHJpdmVyLCBvciBhIGhhcmR3YXJlIG1p c2hhcAo+Pj4gdGhhdCBzaG91bGQgbG9naWNhbGx5IGJlIHdvcmtlZCBhcm91bmQgYnkgdGhlIGNs b2NrIGRyaXZlciwgcmF0aGVyIHRoYW4KPj4+IGluZGl2aWR1YWwgdGhlIGNvbnN1bWVycy4KPj4+ Cj4+PiBEb2VzIGl0IHdvcmsgaWYgeW91IGhhY2sgdGhlIGNsb2NrIGRyaXZlciB0byB0aGluayB0 aGF0IFBDTEtfVk8gaXMgYSBjaGlsZAo+Pj4gb2YgSENMS19WTz8gRXZlbiBpZiB0aGF0J3Mgbm90 IHRlY2huaWNhbGx5IHRydWUsIGl0IHdvdWxkIHNlZW0gdG8KPj4+IGVmZmVjdGl2ZWx5IG1hdGNo IHRoZSBvYnNlcnZlZCBiZWhhdmlvdXIgKGkuZS4gYWxsIDMgdGhpbmdzIHdob3NlIHJlZ2lzdGVy Cj4+PiBhY2Nlc3MgYXBwYXJlbnRseSAqc2hvdWxkKiBiZSBlbmFibGVkIGJ5IGEgZ2F0ZSBvZmYg UENMS19WTywgc2VlbSB0byBhbHNvCj4+PiByZXF1aXJlIEhDTEtfVk8pLgo+Pgo+PiBZZXMsIHRo YXQgd29ya3MgYXMgZXhwZWN0ZWQuIEkgYW0gbm90IHN1cmUgdGhvdWdoIGlmIHdlIHJlYWxseSB3 YW50IHRvCj4+IGdvIHRoYXQgcGF0aC4gVGhlIHBjbGsgcmF0ZXMgd2lsbCBiZWNvbWUgY29tcGxl dGVseSBib2d1cyB3aXRoIHRoaXMgYW5kCj4+IHNob3VsZCB3ZSBoYXZlIHRvIHBsYXkgd2l0aCB0 aGUgcmF0ZXMgaW4gdGhlIGZ1dHVyZSB3ZSBtaWdodCByZWdyZXQgdGhpcwo+PiBzdGVwLgo+IAo+ IEhvdyBkbyB3ZSBwcm9jZWVkIGhlcmU/IEkgY2FuIGluY2x1ZGUgYSBwYXRjaCB3aGljaCBtYWtl cyBQQ0xLX1ZPIGEKPiBjaGlsZCBvZiBIQ0xLX1ZPIGlmIHRoYXQncyB3aGF0IHdlIGFncmVlIHVw b24uCgpDb3VsZG4ndCBBbmR5IGNsYXJpZnkgdGhlIGFjdHVhbCBjbG9jayB0cmVlIHN0cnVjdHVy ZSBvZiB0aGUgaC93IGZvciB1cz8KClRoaXMgd2lsbCBiZSB0aGUgYmVzdCBvcHRpb24gYmVjYXVz ZSBkYXRhc2hlZXQgZG9lc24ndCBnaXZlIHRoZSBjbGVhcgphbnN3ZXIsIG9yIGF0IGxlYXN0IEkg Y291bGRuJ3QgZmluZCBpdC4gVGVjaG5pY2FsbHksIFBDTEsgaW5kZWVkIHNob3VsZApiZSBhIGNo aWxkIG9mIHRoZSBIQ0xLIGluIGdlbmVyYWwsIHNvIFJvYmluIGNvdWxkIGJlIHJpZ2h0LgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=