alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org,
	Linux-ALSA <alsa-devel@alsa-project.org>,
	Banajit Goswami <bgoswami@codeaurora.org>,
	rohkumar@qti.qualcomm.com,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	Patrick Lai <plai@codeaurora.org>, Takashi Iwai <tiwai@suse.com>,
	Liam Girdwood <lgirdwood@gmail.com>,
	David Brown <david.brown@linaro.org>,
	Mark Brown <broonie@kernel.org>,
	"moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE"
	<linux-arm-kernel@lists.infradead.org>,
	spatakok@qti.qualcomm.com, Andy Gross <andy.gross@linaro.org>,
	"open list:ARM/QUALCOMM SUPPORT" <linux-soc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 01/25] dt-bindings: soc: qcom: Add bindings for APR bus
Date: Wed, 28 Feb 2018 18:55:15 +0000	[thread overview]
Message-ID: <62ee863c-c3e8-ac81-0d83-8162da8d0458@linaro.org> (raw)
In-Reply-To: <465a2ca7-9f74-8977-37ea-29fe3944c27c@linaro.org>



On 22/02/18 10:03, Srinivas Kandagatla wrote:
>>> Also the versions of each service are independent to each other.
>>
>> Not sure I follow the last statement. Meaning firmware updates change
>> the services?
> Sorry for not being clear, so the services like AFE, ASM, ADM have 
> different version numbers for a given SoC/firmware.
> 
> Not 100% sure if firmware updates would change the service version 
> number, even if it does, it can be queried dynamically on new B family 
> SoCs, and on older A Family SoCs I have not seen the firmware updates in 
> last 4 years.
> 
>> I don't see any versioning of services here.
> 
> Yes, Plan is that it will be part of the compatible string in cases 
> where version query is not supported on older QCOM A family SoCs.
> On B Family SoCs we can query the version dynamically.
> 
>>
>>>
>>>>>
>>>>> apr {
>>>>>           compatible = "qcom,apr-v2";
>>>>>           qcom,smd-channels = "apr_audio_svc";
>>>>>           qcom,apr-dest-domain-id = <APR_DOMAIN_ADSP>;
>>>>>
>>>>>           apr-services {
>>>>>                   q6core {
>>>>>                           qcom,apr-svc-name = "CORE";
>>>>>                           qcom,apr-svc-id = <APR_SVC_ADSP_CORE>;
>>>>>                           compatible = "qcom,q6core";
>>>>>                   };
>>>>>
>>>>>                   q6afe: q6afe {
>>>>>                           compatible = "qcom,q6afe";
>>>>>                           qcom,apr-svc-name = "AFE";
>>>>>                           qcom,apr-svc-id = <APR_SVC_AFE>;
>>>>>                           #sound-dai-cells = <1>;
>>>>>                   };
>>>>>
>>>>>                   q6asm: q6asm {
>>>>>                           compatible = "qcom,q6asm";
>>>>>                           qcom,apr-svc-name = "ASM";
>>>>>                           qcom,apr-svc-id = <APR_SVC_ASM>;
>>>>>                           #sound-dai-cells = <1>;
>>>>>                   };
>>>>>
>>>>>                   q6adm: q6adm {, "external-sleep"
>>>>>                           compatible = "qcom,q6adm";
>>>>>                           qcom,apr-svc-name = "ADM";
>>>>>                           qcom,apr-svc-id = <APR_SVC_ADM>;
>>>>>                           #sound-dai-cells = <0>;
>>>>>                   };
>>>>
>>>>
>>>> All these DAI nodes could be a single node and the cell value be the
>>>> svc-id?
>>>
> So we will have 2 cell values, one representing the apr service and 
> other the dai.
> 
>>> No, DAI's here are both backends and frontends, and some of the services
>>> like core, USM are not DAI's
>>>
>>> Are you also saying that we should have a single driver entity for 
>>> all these
>>> services?
>>
>> DT nodes do not equate driver entities. A driver can instantiate other 
>> drivers.
>>
>> Am I saying a single DT node for this? Yes, perhaps.
> Yes, I will give that a go.

I did try your suggestion of making audio services into a single node 
and it ended up more messy and non scalable.

Mainly because q6afe node has more than one interface type of backend 
dais (child nodes).

Each of this backend dai may need board specific setting ex: MI2S case 
where board could wire up specific tx and rx lines from 4 possible lines 
for that board. Also other type of dais also have some interface 
specific properties.

MI2S example:
apr {
	...
	q6afe: q6afe {
		compatible = "qcom,q6afe";
		qcom,apr-svc-name = "AFE";
		qcom,apr-svc-id = <APR_SVC_AFE>;
		pinctrl-0 = <&ext_sec_tlmm_lines_act>;
		pinctrl-names = "default";
		#sound-dai-cells = <1>;

                 mi2s_prim_rx_dai@34{
			reg = <34>;
			rx-lines = <0>;
			...
		};

		mi2s_prim_tx_dai@35{
			reg = <35>;
			tx-lines = <1 2>
			...
		};
	     	...
	};
};

Here is block diagram to give a quick overview of the components


   +---------+          +---------+         +---------+
   |  q6asm  |          |q6routing|         | q6afe   |
   |  fedai  | <------> |  mixers | <-----> | bedai   |
   +---------+          +---------+         +---------+
       ^                     ^                   ^
       |                     |                   |
       |  +------------------+----------------+  |
       |  |                  |                |  |
       v  v                  v                v  v
   +---------+          +---------+         +---------+
   |   q6ASM |          |  q6ADM  |         |   q6AFE |
   +---------+          +---------+         +---------+
       ^                     ^                   ^          ^
       |                     |                   | CPU Side |
------+---------------------+-------------------+--------
       |                     |                   |
       |APR                  |APR                |APR
       |                     |                   |
       |  +------------------+----------------+  |
       |  |                  |                |  |
+-----+--+-----------------------------------+--+-------
       |  |                  |                |  | QDSP Side |
       v  v                  v                v  v           v
  +---------+          +---------+         +---------+
  |   ASM   | <------> |   ADM   | <-----> |   AFE   |
  +---------+          +---------+         +---------+
                                                ^
                                                |
                            +-------------------+
                            |
---------------------------+--------------------------
                            |            Audio I/O |
                            v                      v
     +--------------------------------------------------+
     |                Audio devices                     |
     | CODEC | HDMI-TX | PCM  | SLIMBUS | I2S |MI2S |...|
     |                                                  |
     +--------------------------------------------------+

thanks,
srini

  reply	other threads:[~2018-02-28 18:55 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-13 16:58 [PATCH v3 00/25] ASoC: qcom: Add support to QDSP based Audio srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2018-02-13 16:58 ` [PATCH v3 01/25] dt-bindings: soc: qcom: Add bindings for APR bus srinivas.kandagatla
2018-02-13 23:12   ` Rob Herring
2018-02-14  9:13     ` Srinivas Kandagatla
2018-02-18 23:04       ` Rob Herring
2018-02-20  9:33         ` Srinivas Kandagatla
2018-02-22  0:14           ` Rob Herring
2018-02-22 10:03             ` Srinivas Kandagatla
2018-02-28 18:55               ` Srinivas Kandagatla [this message]
2018-03-01 20:34               ` Mark Brown
2018-03-02 13:13                 ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 02/25] soc: qcom: add support to APR bus driver srinivas.kandagatla
2018-02-19  3:08   ` Rob Herring
2018-02-20  9:33     ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 04/25] dt-bindings: sound: qcom: Add bindings for q6afe srinivas.kandagatla
2018-03-01 20:41   ` Mark Brown
2018-02-13 16:58 ` [PATCH v3 05/25] ASoC: qcom: qdsp6: Add support to Q6AFE srinivas.kandagatla
2018-02-19 10:30   ` [alsa-devel] " Rohit Kumar
2018-02-20  9:34     ` Srinivas Kandagatla
2018-03-01 20:42     ` Mark Brown
2018-03-01 20:59   ` Mark Brown
2018-03-02 13:13     ` Srinivas Kandagatla
2018-03-02 17:54       ` Mark Brown
2018-03-02 18:51         ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 06/25] dt-bindings: sound: qcom: Add bindings for q6adm srinivas.kandagatla
2018-02-13 16:58 ` [PATCH v3 07/25] ASoC: qcom: qdsp6: Add support to Q6ADM srinivas.kandagatla
2018-03-01 21:24   ` Mark Brown
2018-03-06  9:26     ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 08/25] dt-bindings: sound: qcom: Add bindings for q6asm srinivas.kandagatla
2018-02-13 16:58 ` [PATCH v3 09/25] ASoC: qcom: qdsp6: Add support to Q6ASM srinivas.kandagatla
2018-02-13 16:58 ` [PATCH v3 10/25] ASoC: qcom: q6asm: Add support to memory map and unmap srinivas.kandagatla
2018-03-01 21:28   ` Mark Brown
2018-03-06  9:26     ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 11/25] ASoC: qcom: q6asm: add support to audio stream apis srinivas.kandagatla
2018-03-01 21:33   ` Mark Brown
2018-03-06  9:26     ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 12/25] ASoC: qcom: qdsp6: Add support to Q6CORE srinivas.kandagatla
2018-02-19 10:33   ` [alsa-devel] " Rohit Kumar
2018-02-13 16:58 ` [PATCH v3 13/25] ASoC: qcom: qdsp6: Add support to q6routing driver srinivas.kandagatla
2018-02-13 16:58 ` [PATCH v3 14/25] ASoC: qcom: qdsp6: Add support to q6afe dai driver srinivas.kandagatla
2018-02-19 10:32   ` [alsa-devel] " Rohit Kumar
2018-02-20  9:36     ` Srinivas Kandagatla
2018-03-02 12:50   ` Mark Brown
2018-03-02 13:52     ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 15/25] ASoC: qcom: qdsp6: Add support to q6asm " srinivas.kandagatla
2018-02-21 11:14   ` Rohit Kumar
2018-02-22 11:16     ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 17/25] ASoC: qcom: q6afe-dai: add support to slim afe dais srinivas.kandagatla
2018-02-13 16:58 ` [PATCH v3 18/25] ASoC: qcom: q6routing: add support to all SLIMBus Mixers srinivas.kandagatla
2018-05-21 15:47   ` Applied "ASoC: qdsp6: q6routing: Add support to all SLIMBus Mixers" to the asoc tree Mark Brown
2018-02-13 16:58 ` [PATCH v3 19/25] ASoC: qcom: q6afe: add support to MI2S ports srinivas.kandagatla
2018-03-07  9:35   ` Rohit Kumar
2018-02-13 16:58 ` [PATCH v3 20/25] ASoC: qcom: q6afe: add support to MI2S sysclks srinivas.kandagatla
     [not found] ` <20180213165837.1620-1-srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2018-02-13 16:58   ` [PATCH v3 03/25] ASoC: qcom: qdsp6: Add common qdsp6 helper functions srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2018-03-01 21:04     ` Mark Brown
2018-02-13 16:58   ` [PATCH v3 16/25] ASoC: qcom: q6afe: add SLIMBus port Support srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2018-02-13 16:58   ` [PATCH v3 21/25] ASoC: qcom: q6afe-dai: add support to 4 MI2S ports srinivas.kandagatla-QSEj5FYQhm4dnm+yROfE0A
2018-02-13 16:58 ` [PATCH v3 22/25] ASoC: qcom: q6routing: add support to MI2S Mixers srinivas.kandagatla
2018-02-13 16:58 ` [PATCH v3 23/25] dt-bindings: sound: qcom: Add devicetree bindings for apq8096 srinivas.kandagatla
2018-02-13 16:58 ` [PATCH v3 24/25] ASoC: qcom: apq8096: Add db820c machine driver srinivas.kandagatla
2018-02-22 11:00   ` Rohit Kumar
2018-02-22 11:13     ` Srinivas Kandagatla
2018-02-13 16:58 ` [PATCH v3 25/25] arm64: dts: msm8996: db820c: Add sound card support srinivas.kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=62ee863c-c3e8-ac81-0d83-8162da8d0458@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=andy.gross@linaro.org \
    --cc=bgoswami@codeaurora.org \
    --cc=broonie@kernel.org \
    --cc=david.brown@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-soc@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=plai@codeaurora.org \
    --cc=robh@kernel.org \
    --cc=rohkumar@qti.qualcomm.com \
    --cc=spatakok@qti.qualcomm.com \
    --cc=tiwai@suse.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).