All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
To: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>,
	robh@kernel.org, vkoul@kernel.org
Cc: krzk+dt@kernel.org, conor+dt@kernel.org, srini@kernel.org,
	yung-chuan.liao@linux.intel.com,
	prasad.kumpatla@oss.qualcomm.com, jingyi.wang@oss.qualcomm.com,
	sibi.sankar@oss.qualcomm.com, quic_srivasam@quicinc.com,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-sound@vger.kernel.org
Subject: Re: [PATCH v2 2/3] soundwire: qcom: add multi-master support
Date: Fri, 2 Oct 2026 09:36:27 +0200	[thread overview]
Message-ID: <5363165a-fdc2-451d-96f0-43d2d70e19de@linux.dev> (raw)
In-Reply-To: <586046f1-8439-4353-b60d-dab6356de3ba@oss.qualcomm.com>

On 10/1/26 13:06, Srinivas Kandagatla wrote:
> 
> 
> On 10/1/26 11:53 AM, Pierre-Louis Bossart wrote:
>>
>>> @@ -192,6 +194,13 @@ struct qcom_swrm_ctrl {
>>>  	const unsigned int *reg_layout;
>>>  	void __iomem *mmio;
>>>  	struct reset_control *audio_cgcr;
>>> +	u8 num_lanes;
>>> +	bool is_dependent;
>>> +	struct qcom_swrm_ctrl *peer_ctrl;
>>> +	u8 peer_first_lane;
>>> +	u8 num_peer_lanes;
>>> +	bool is_primary;
>>> +	u32 peer_dpn_offset;
>>
>> nit-pick: do you need both is_dependent and is_primary? One would think
>> that a single variable would be enough, no?
> I did try to do that which made the code bit confusing to read.

ok

>> also without context it's hard to understand if lanes are independent in
>> terms of transport or not, not sure what 'peer' means in a multi-master
>> setup with a primary controller and N dependent ones? Code like this
> For now its one, but Yes, technically we could have more dependent ones,
> I wanted to keep the patchset simple and right now the only have one
> peer and i dont know if we have other setups with more dependent
> controrllers.

even with 2 controllers, the 'peer' naming conveys a concept of equal
status/rank/ability, which isn't quite the case, is it?

>> function below is a bit cryptic...
>>
>>> +static struct qcom_swrm_ctrl *
>>> +qcom_swrm_port_target(struct qcom_swrm_ctrl *ctrl, u8 port_num, u32 *reg)
>>> +{
>>> +	u8 lane = ctrl->pconfig[port_num].lane_control;
>>> +
>>> +	if (ctrl->peer_ctrl && lane >= ctrl->peer_first_lane &&
>>> +	    lane < ctrl->peer_first_lane + ctrl->num_peer_lanes) {

and what I meant here is that it looks like there's a special
distribution of traffic between lanes?

This is not really well-documented in the MIPI spec. On the Intel side
traffic can be moved at will between lanes, but it's not a requirement.
There's also no MIPI guidance on how lanes are used e.g.
a) a new lane is used only when bandwidth is exhausted on existing lanes or
b) all lanes are used and clock is scaled according to bandwidth needs.

>>> +		*reg -= ctrl->peer_dpn_offset;
>>> +		return ctrl->peer_ctrl;
>>> +	}
>>> +	return ctrl;
>>> +}
>>
>>
> 


  reply	other threads:[~2026-10-02  7:37 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-01  9:38 [PATCH v2 0/3] soundwire: qcom: add multi-master support Srinivas Kandagatla
2026-10-01  9:38 ` [PATCH v2 1/3] dt-bindings: soundwire: qcom: describe multi-master Srinivas Kandagatla
2026-10-01  9:38 ` [PATCH v2 2/3] soundwire: qcom: add multi-master support Srinivas Kandagatla
2026-10-01 10:02   ` sashiko-bot
2026-10-01 10:53   ` Pierre-Louis Bossart
2026-10-01 11:06     ` Srinivas Kandagatla
2026-10-02  7:36       ` Pierre-Louis Bossart [this message]
2026-10-03  7:41       ` Vinod Koul
2026-10-01  9:38 ` [PATCH v2 3/3] soundwire: qcom: program MM_SYNC for multi-master 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=5363165a-fdc2-451d-96f0-43d2d70e19de@linux.dev \
    --to=pierre-louis.bossart@linux.dev \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jingyi.wang@oss.qualcomm.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sound@vger.kernel.org \
    --cc=prasad.kumpatla@oss.qualcomm.com \
    --cc=quic_srivasam@quicinc.com \
    --cc=robh@kernel.org \
    --cc=sibi.sankar@oss.qualcomm.com \
    --cc=srini@kernel.org \
    --cc=srinivas.kandagatla@oss.qualcomm.com \
    --cc=vkoul@kernel.org \
    --cc=yung-chuan.liao@linux.intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.