Received: by 10.223.176.5 with SMTP id f5csp1062150wra; Tue, 6 Feb 2018 11:57:47 -0800 (PST) X-Google-Smtp-Source: AH8x224FntZofaXEaqT+yFJgit7hz3PVH2Df4YC4o0d3HVfQ1PpZy5sHJkbw008UhoomuwKOiPee X-Received: by 10.99.171.69 with SMTP id k5mr8338pgp.287.1517947067022; Tue, 06 Feb 2018 11:57:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517947066; cv=none; d=google.com; s=arc-20160816; b=FViVgfn8i4c5OoCg8C7Zc5ET5NFWf1Hpqf3yG11O93KWaXCLmdvQyydrw/OxNGx7iO SCMOFOSzyEWK7dlb5bfXPSgRS+SMhUokz/guSpmCkZhHRw71CYh5IOJQ9fyzEo6okDoc HkHrse50rkAgp5K9rLztt74Tt5BkXk0olTK77VS1DzVMHbMv7LE2JksiNKZrijukx4uO +W84iiMAq7+G9bBSRtwl4PLx2/fxuOo2g9IxNou/H7CSLWRs/5f6xq3hkM8hshyjkEWX iLF9gMQwgn7GUBN3Vkj3BqToF5ykTW9AalwjkyP3/Ws97750w0O8KMeg0stoR5rK2fYJ wzYw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:references :in-reply-to:subject:cc:to:from:date:content-transfer-encoding :mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=d0jmMFDOiWXAlsQU7F7QReFklcyhgRLCWfN+080NSi4=; b=E+3cVlioxjkTSrU02wWp8GWmH+ysIEkuq4apfEyA1A2puL86ut4tUbUOGcIoG6zCEP TaAMd0X/wf1czQV0yOe+BxqKf3XHY/GMs5zyWTM5G+o2/xXjD0HbX5OCnOV8ThWwwQHh Jby4rmUMKMQEf27Vp7kPBKyaKs8nGiInjkkQWct4KlvYGxjcmJb9jXfMggwOJW1xf/4E 5S4jJNqchT+w8DWXuA3fcTts6qkYGU7CjemqLdmAQcOq9RKMlQqIrwpTUFPEXmoxcTCT lbb2pXuPuPrQ7JW4b3e/03y/UgrXeC4RcZHgVZIwztSnhrHgpZCJJ95pSGakWLI3voX2 UCKQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=Cl6Onoh3; dkim=pass header.i=@codeaurora.org header.s=default header.b=b1qZMgk9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t1si53304pgu.470.2018.02.06.11.57.32; Tue, 06 Feb 2018 11:57:46 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=Cl6Onoh3; dkim=pass header.i=@codeaurora.org header.s=default header.b=b1qZMgk9; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752564AbeBFT4y (ORCPT + 99 others); Tue, 6 Feb 2018 14:56:54 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:44010 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751555AbeBFT4v (ORCPT ); Tue, 6 Feb 2018 14:56:51 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 5B78860A00; Tue, 6 Feb 2018 19:56:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1517947011; bh=OQj/zXLjm2ZPdHrkbgpHQzYuIW70VH22UBjTzKqr4BM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Cl6Onoh3Bjv6Mo0+LtdOo5wz3s5LP/bspIoILrpUbts53F/T7z9psluIM5FCN578W PIBG340C+QrQWGUbnmArq6OrUO1p1Ppgkq/erOqJL/FlOSxeMRZLiVRDWfWp7KY/Mp Xe2xRRvBcXjii5TyRo0EBolLTi22JlkpTFC1yoIE= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.codeaurora.org (Postfix) with ESMTP id D639D60767; Tue, 6 Feb 2018 19:56:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1517947010; bh=OQj/zXLjm2ZPdHrkbgpHQzYuIW70VH22UBjTzKqr4BM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=b1qZMgk90lEqEFi+nLVqfMRJgIJ/cJpazynASXojfStURgp4PzyG1jsIvMzw2nPE6 8PURSNGQJFYo3Ej1Fd85X155eP1oE3W0e5VT5vGnmLFHLBe1DjqNpqOYDV14J5927E f8Xgnl2LzMwwmKuAfm2ZsmWBwq9OPuDL97huyCXY= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 06 Feb 2018 11:56:50 -0800 From: Channa To: Mark Rutland Cc: linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-arm@lists.infradead.org, linux-kernel@vger.kernel.org, tsoni@codeaurora.org, sboyd@codeaurora.org, kyan@codeaurora.org Subject: Re: [PATCH 1/2] dt-bindings: Documentation for qcom,llcc In-Reply-To: <20180202110532.n2eez3zqbmf2jelr@lakrids.cambridge.arm.com> References: <1516924513-20183-1-git-send-email-ckadabi@codeaurora.org> <1516924513-20183-2-git-send-email-ckadabi@codeaurora.org> <20180201104434.7j27fl2hb4glqd3v@lakrids.cambridge.arm.com> <20180202110532.n2eez3zqbmf2jelr@lakrids.cambridge.arm.com> Message-ID: <2801cac8583d56260a9df0cdf7f41f47@codeaurora.org> X-Sender: ckadabi@codeaurora.org User-Agent: Roundcube Webmail/1.2.5 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018-02-02 03:05, Mark Rutland wrote: > On Thu, Feb 01, 2018 at 12:39:09PM -0800, Channa wrote: >> On 2018-02-01 02:44, Mark Rutland wrote: >> > On Thu, Jan 25, 2018 at 03:55:12PM -0800, Channagoud Kadabi wrote: >> > > Documentation for last level cache controller device tree bindings, >> > > client bindings usage examples. >> > > >> > > Signed-off-by: Channagoud Kadabi >> > > --- >> > > .../devicetree/bindings/arm/msm/qcom,llcc.txt | 93 >> > > ++++++++++++++++++++++ >> > > 1 file changed, 93 insertions(+) >> > > create mode 100644 >> > > Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >> > > >> > > diff --git a/Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >> > > b/Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >> > > new file mode 100644 >> > > index 0000000..d433b0c >> > > --- /dev/null >> > > +++ b/Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt >> > > @@ -0,0 +1,93 @@ >> > > +* LLCC (Last Level Cache Controller) >> > > + >> > > +Properties: >> > > +- compatible: >> > > + Usage: required >> > > + Value type: >> > > + Definition: must be "qcom,llcc-core" >> > > + >> > > +- reg: >> > > + Usage: required >> > > + Value Type: >> > > + Definition: must be addresses and sizes of the LLCC registers >> > > + >> > > +- llcc-bank-off: >> > > + Usage: required >> > > + Value Type: >> > > + Definition: Offsets of llcc banks from llcc base address starting >> > > from >> > > + LLCC bank0. >> > > + >> > > +- llcc-broadcast-off: >> > > + Usage: required >> > > + Value Type: >> > > + Definition: Offset of broadcast register from LLCC bank0 address. >> > >> > Please could we use "offset" rather than "off" for both of these? That >> > way it's obvious these aren't properties for disabling some feature. >> > >> > How variable are these offsets in practice? Is the memory map not fixed? >> >> The offsets depends on the number of LLCC HW blocks. These number of >> HW >> blocks vary from >> chipset to chipset and new registers could be added that changes the >> offset. > > Surely if new registers are added, we need a new compatible string? > > Can't we encode the number of LLCC HW blocks, instead? Presumably that > would give enough information to cover both llcc-bank-off and > llcc-broadcast-off. > > [...] Are you suggesting to move these offset handing out of DTS files and manage in the driver? > >> > > + >> > > +compatible devices: >> > > + qcom,sdm845-llcc >> > >> > Huh? The "qcom,sdm845-llcc" bindings wasn't described above, and it's >> > not clear what this means. >> > >> > > + >> > > +Example: >> > > + >> > > + qcom,system-cache@1300000 { >> > > + compatible = "qcom,llcc-core", "syscon", "simple-mfd"; >> > >> > This looks very wrong. Why do you need syscon and simple-mfd? >> >> LLCC HW block has 3 functionalities: >> System cache core, ECC & AMON drivers for debugging. >> All three drivers use the same register space for configuration, >> status etc. >> In order to avoid remapping the same address region across multiple >> drivers, >> I have implemented this driver as a syncon and simple-mfd. > > Please don't do that; that's completely dependent on Linux > implementation details. Why do you think simple-mfd is not good here? The LLCC HW clock is outside of CPUSS and has multiple functional blocks. > > Have one top level driver for the whole LLCC block, which maps the > registers, and provides an API for accessing them. When that probes, it > can cause the other drivers to be probed (e.g. with a platform device), > and those can access the LLCC registers via that API. > >> > > + reg = <0x1300000 0x50000>; >> > > + reg-names = "llcc_base"; >> > > + >> > > + llcc: qcom,sdm845-llcc { >> > > + compatible = "qcom,sdm845-llcc"; >> > >> > Why is this a sub-node? >> qcom,sdm845-llcc: This core driver as mentioned in the list above. >> > >> > Why isn't the top-level node just "qcom,sdm845-llcc" ? >> > >> > > + #cache-cells = <1>; >> > > + max-slices = <32>; >> > > + }; >> > > + >> > > + qcom,llcc-ecc { >> > > + compatible = "qcom,llcc-ecc"; >> > > + }; >> >> qcom,llcc-ecc: Driver #2 for ECC >> >> > > + >> > > + qcom,llcc-amon { >> > > + compatible = "qcom,llcc-amon"; >> > > + qcom,fg-cnt = <0x7>; >> > > + }; >> > > + >> >> qcom,llcc-amon: Driver #3 for AMON > > Please describe the HW, not the drivers. > > As above, I don't believe you need multiple nodes here. Linux can > instantiate the drivers as necessary. > > [...] > >> > > +- cache-slices: >> > > + Usage: required >> > > + Value type: >> > > + Definition: The tuple has phandle to llcc device as the first >> > > argument and the >> > > + second argument is the usecase id of the client. >> > >> > What is a "usecase id" ? >> >> Usecase id for use case that wants to use system cache for eg: >> video-encode >> and video-decode > > Sure, but how is the value used? Is it the index of a slice? Or > something more abstract? This is used as an index to the SCT (System cache Table) configuration data that controls the behavior of each cache slice. > > Thanks, > Mark. -- -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project