Re: [alsa-devel] [RFC PATCH 3/6] soundwire: core: define SDW_MAX_PORT

From: Cezary Rojewski
Date: Sat Jun 08 2019 - 16:09:12 EST



On 2019-06-07 14:31, Pierre-Louis Bossart wrote:
On 6/7/19 3:56 AM, Srinivas Kandagatla wrote:
This patch adds SDW_MAX_PORT so that other driver can use it.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxx>
---
 include/linux/soundwire/sdw.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h
index aac68e879fae..80ca997e4e5d 100644
--- a/include/linux/soundwire/sdw.h
+++ b/include/linux/soundwire/sdw.h
@@ -36,6 +36,7 @@ struct sdw_slave;
 #define SDW_FRAME_CTRL_BITS 48
 #define SDW_MAX_DEVICES 11
+#define SDW_MAX_PORTSÂÂÂ 14

That's an ambiguous definition.
You can have 16 ports per the SoundWire spec, but DP0 is reserved for control and DP15 is an alias for all ports (same idea as device 15 for broadcast operations but limited to a single device), which leaves 14 ports for audio usages.

In the MIPI specs, specifically the DisCo part, the difference is called about with the the DP0 and DPn notations, so this could be SDW_MAX_DPn. Alternatively you could use SDW_MAX_AUDIO_PORTS which is more self-explanatory and does not require in-depth familiarity with the spec.


This ambiguity spreads even further. Look at the name of #define below.
DP0 is by no means invalid. It's specific and has some optional registers, yes, but that's because of its engagement in BPT.

Given the fact SDW does not care about type of data being transported, even "AUDIO" seems misleading here. Though it's still better than no specifier at all.

 #define SDW_VALID_PORT_RANGE(n) ((n) <= 14 && (n) >= 1)
 #define SDW_DAI_ID_RANGE_START 100