Re: [PATCH v6 07/10] soundwire: keep track of Masters in a stream

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/16/18 1:47 PM, Sanyog Kale wrote:
From: Shreyas NC <shreyas.nc@xxxxxxxxx>

A multi link bankswitch can be done if the hardware supports and
the stream is handled by multiple Master(s).

This preparatory patch adds support to track m_rt in a stream.

The order of the patches seems off, you are adding the definition of m_rt_count in patch 7 but using it in patch 6, that'll break git bisect.
What am i missing?

It'd also make more sense to have the reference counts in the same patch, it's hard to track otherwise, so maybe one patch to add the definitions and inits and the second to increase/decrease+use the value as needed.


Signed-off-by: Shreyas NC <shreyas.nc@xxxxxxxxx>
Signed-off-by: Sanyog Kale <sanyog.r.kale@xxxxxxxxx>
---
  drivers/soundwire/stream.c    | 2 ++
  include/linux/soundwire/sdw.h | 2 ++
  2 files changed, 4 insertions(+)

diff --git a/drivers/soundwire/stream.c b/drivers/soundwire/stream.c
index 7e75a400d03e..539b98ec18d9 100644
--- a/drivers/soundwire/stream.c
+++ b/drivers/soundwire/stream.c
@@ -759,6 +759,7 @@ struct sdw_stream_runtime *sdw_alloc_stream(char *stream_name)
  	stream->name = stream_name;
  	INIT_LIST_HEAD(&stream->master_list);
  	stream->state = SDW_STREAM_ALLOCATED;
+	stream->m_rt_count = 0;
return stream;
  }
@@ -963,6 +964,7 @@ int sdw_stream_remove_master(struct sdw_bus *bus,
sdw_master_port_release(bus, m_rt);
  		sdw_release_master_stream(m_rt, stream);
+		stream->m_rt_count--;
  	}
if (list_empty(&stream->master_list))
diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h
index 03df709fb8ef..214e14604d9f 100644
--- a/include/linux/soundwire/sdw.h
+++ b/include/linux/soundwire/sdw.h
@@ -771,6 +771,7 @@ struct sdw_stream_params {
   * @master_list: List of Master runtime(s) in this stream.
   * master_list can contain only one m_rt per Master instance
   * for a stream
+ * @m_rt_count: Count of Master runtime(s) in this stream
   */
  struct sdw_stream_runtime {
  	char *name;
@@ -778,6 +779,7 @@ struct sdw_stream_runtime {
  	enum sdw_stream_state state;
  	enum sdw_stream_type type;
  	struct list_head master_list;
+	int m_rt_count;
  };
struct sdw_stream_runtime *sdw_alloc_stream(char *stream_name);


_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux