Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp8083857rwd; Tue, 20 Jun 2023 09:57:14 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7WpoMhE09YQ29VNWSKel8rP+es+OOiY5wk8V3rSRvscuY1+ZTxkja+Em2kC+CS2bs2MJxD X-Received: by 2002:a05:6358:41b:b0:129:c2c2:4447 with SMTP id 27-20020a056358041b00b00129c2c24447mr7775098rwd.4.1687280234188; Tue, 20 Jun 2023 09:57:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687280234; cv=none; d=google.com; s=arc-20160816; b=nPEQdsfu8wwTttCj+cdtfyDgdp78mwcAFZdUiYDJexnp4Yly/y7GXXe3LMuQZ4/sJq DRE3QpV/kLhhTMLGRelh6VF5TVK2YPFFWz3/W0fXIJNCUUx4rmqIPQ+7C1qu96tNuQkb rIOSKpoa9N+YupXUYpee+9VNKxuQ4Flimfj1UGmVYUvuNC4824mExJ3nXFgWVbOG61x7 rhHGXHpv5zmtFy3hOIFN97l+v83w9BlUQDJOiCkja3ieN/+5fEmKPAgFPp5Xi0KEvBU5 7cnbNjp8et3Bj8DY/6KiM2pPEaGRPna+6jar6eQWi3E4/3SXznhCl7882JkJKrf32Hbf uZtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=kT1YFstuywJVPB798irUDy36Wr+aEIAFzfF3nsUOllk=; b=Bzo+RDiDJLf/kS2QubzCU5sbgJeWny9CgMj7TjHfGX3vsi3UPaIO7/bvI7owSkR9Wu tIyL4+M6xWwQ7L9NQ5Ae1L3syS+NFHnKdqzwYNGUmv5TALU+7WYufExn37u8C3KC77MT a7p24VQ+O6dQWJyWH6SNVx8vsDpaNZfagxY5bNQwshFP8EQ6JxFerpmwvWF/rBFWDUJ3 tIOEanNoFtERZQhKTZQFnGJaWCQJx1AhEv2DSIdLo0PRH8n2bj3hJCROYw9kFaCIvmTW C5I/VR4x9moP042wMFlXCkdLCu6d+eNxRGzVnPvdm2nTWgu5XBSdqO56Ule52sxL7j/p x5EQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=Vf3K1+F7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bk13-20020a056a02028d00b0055384329027si2066750pgb.566.2023.06.20.09.56.59; Tue, 20 Jun 2023 09:57:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=Vf3K1+F7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232560AbjFTQcS (ORCPT + 99 others); Tue, 20 Jun 2023 12:32:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231948AbjFTQb5 (ORCPT ); Tue, 20 Jun 2023 12:31:57 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0DBB1FE7; Tue, 20 Jun 2023 09:31:11 -0700 (PDT) Received: from notapiano (zone.collabora.co.uk [167.235.23.81]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: nfraprado) by madras.collabora.co.uk (Postfix) with ESMTPSA id 2D5FD6600873; Tue, 20 Jun 2023 17:31:06 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1687278669; bh=Y9tvPReig8gmKXdmzgK1D+yZ0bHJi1pX+/SYM0CaaCQ=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Vf3K1+F7Y1XW2cVGXJmAn9KJj9mP5Epmo3LI1I5+xTE73Yqh5QgptpZv5v2f/lGZf xh74/x7jKjp0g06k3QYw7oDfGwJT0WmnC1aPXCuXaiolPKDVbZTbaqpLv9ku/nyV5a Dkh3fNuZlWN872H4KcidPxRI6iufj1fBDptlXqh6lBGsRvlOzM0u9cTxN2OA5R2iFM eT5iL/l8x2UE3TiF++xHqLYwHgGX2iJDPp4yAcSX2RPt6IQiL9EAh3J0O2bdvgvn/v RF/ArBZ3zEEjzdZJPQ6jzPdzVDNB0HkYKRcXmgTwzft5LrbfGn3s04WCRclDh7Nwv5 EwO5rEpF3MoRw== Date: Tue, 20 Jun 2023 12:31:02 -0400 From: =?utf-8?B?TsOtY29sYXMgRi4gUi4gQS4=?= Prado To: Krzysztof Kozlowski Cc: Matthias Brugger , Hans Verkuil , AngeloGioacchino Del Regno , kernel@collabora.com, Andrew-CT Chen , Conor Dooley , Krzysztof Kozlowski , Mauro Carvalho Chehab , Rob Herring , Tiffany Lin , Yunfei Dong , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org Subject: Re: [PATCH v3 3/6] media: dt-bindings: mediatek,vcodec: Remove VDEC_SYS for mt8183 Message-ID: <6b41c5e4-bae9-4c99-8a28-7272c8a598a3@notapiano> References: <20230620000349.2122191-1-nfraprado@collabora.com> <20230620000349.2122191-4-nfraprado@collabora.com> <8b5e4a9b-7496-02a1-d3b6-a0be8ea85798@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 20, 2023 at 03:00:00PM +0200, Krzysztof Kozlowski wrote: > On 20/06/2023 14:46, N?colas F. R. A. Prado wrote: > > On Tue, Jun 20, 2023 at 10:12:14AM +0200, Krzysztof Kozlowski wrote: > >> On 20/06/2023 02:03, N?colas F. R. A. Prado wrote: > >>> The binding expects the first register space to be VDEC_SYS. But on > >>> mt8183, which uses the stateless decoders, this space is used only for > >>> controlling clocks and resets, which are better described as separate > >>> clock-controller and reset-controller nodes. > >>> > >>> In fact, in mt8173's devicetree there are already such separate > >>> clock-controller nodes, which cause duplicate addresses between the > >>> vdecsys node and the vcodec node. But for this SoC, since the stateful > >>> decoder code makes other uses of the VDEC_SYS register space, it's not > >>> straightforward to remove it. > >>> > >>> In order to avoid the same address conflict to happen on mt8183, > >>> since the only current use of the VDEC_SYS register space in > >>> the driver is to read the status of a hardware controlled clock, remove > >>> the VDEC_SYS register space from the binding and describe an extra > >>> syscon that will be used to directly check the hardware status. > >>> > >>> Also add reg-names to be able to tell that this new register schema is > >>> used, so the driver can keep backward compatibility. > >>> > >>> Signed-off-by: N?colas F. R. A. Prado > >>> > >>> --- > >>> I dropped the tags from this commit since a syscon is now used instead > >>> of an extra clock. > >>> > >>> Changes in v3: > >>> - Removed the active clock > >>> - Added a mediatek,vdecsys syscon property > >>> > >>> Changes in v2: > >>> - Merged with patch 1 (media: dt-bindings: mediatek,vcodec: Allow single > >>> clock for mt8183) to avoid changing number of clocks twice > >>> - Added maxItems to reg-names > >>> - Constrained clocks for each compatible > >>> - Reordered properties for each compatible > >>> > >>> .../media/mediatek,vcodec-decoder.yaml | 30 +++++++++++++++++++ > >>> 1 file changed, 30 insertions(+) > >>> > >>> diff --git a/Documentation/devicetree/bindings/media/mediatek,vcodec-decoder.yaml b/Documentation/devicetree/bindings/media/mediatek,vcodec-decoder.yaml > >>> index 1e56ece44aee..2f625c50bbfe 100644 > >>> --- a/Documentation/devicetree/bindings/media/mediatek,vcodec-decoder.yaml > >>> +++ b/Documentation/devicetree/bindings/media/mediatek,vcodec-decoder.yaml > >>> @@ -21,8 +21,13 @@ properties: > >>> - mediatek,mt8183-vcodec-dec > >>> > >>> reg: > >>> + minItems: 11 > >>> maxItems: 12 > >>> > >>> + reg-names: > >>> + minItems: 11 > >>> + maxItems: 11 > >> > >> maxItems: 12 > >> > >>> + > >>> interrupts: > >>> maxItems: 1 > >>> > >>> @@ -60,6 +65,10 @@ properties: > >>> description: > >>> Describes point to scp. > >>> > >>> + mediatek,vdecsys: > >>> + $ref: /schemas/types.yaml#/definitions/phandle > >>> + description: Phandle to the vdecsys syscon node. > >>> + > >>> required: > >>> - compatible > >>> - reg > >>> @@ -79,8 +88,26 @@ allOf: > >>> then: > >>> required: > >>> - mediatek,scp > >>> + - mediatek,vdecsys > >>> > >>> properties: > >>> + reg: > >>> + maxItems: 11 > >>> + > >>> + reg-names: > >>> + items: > >>> + - const: misc > >>> + - const: ld > >>> + - const: top > >>> + - const: cm > >>> + - const: ad > >>> + - const: av > >>> + - const: pp > >>> + - const: hwd > >>> + - const: hwq > >>> + - const: hwb > >>> + - const: hwg > >>> + > >>> clocks: > >>> minItems: 1 > >>> maxItems: 1 > >>> @@ -101,6 +128,9 @@ allOf: > >>> - mediatek,vpu > >>> > >>> properties: > >>> + reg: > >>> + minItems: 12 > >> > >> > >> What about reg-names here? They should be also defined and in sync with > >> regs. > > > > That's intentional. As described in the commit message, mt8173 will keep having > > the VDEC_SYS iospace, while mt8183 won't. And we use the presence of reg-names > > to tell them apart. > > > > So, mt8173 has 12 regs, no reg-names and no syscon, while mt8183 has 11 regs, > > with reg-names and the syscon. > > reg-names is not the way to tell apart variants. Compatible is. If you > add reg-names for one variant, it's expected to have it defined for > other as well, because the order of items in reg is always fixed. But differentiating with compatible in this case would be wrong, since it's not not something inherent to the SoC. We really just want to be able to tell whether the vdecsys iospace is supplied as a reg or as a syscon. This series focuses on getting the mt8183 decoder working, and as part of that introduces the binding and DT node for mt8183 with vdecsys as a syscon instead of a reg, to avoid introducing new 'duplicate unit-address' DT warnings. But in a separate series we could drop vdecsys from mt8173's reg as well, passing it as a syscon instead, which would solve the warning on that platform, though some more driver changes would be needed to be able to handle it for that SoC. The newer SoCs like mt8192, mt8195, etc, should also get vdecsys dropped from their regs to have a correct memory description. Thanks, N?colas