Re: [PATCH 05/11] soundwire: bus: update multi-link definition with hw sync details
From: Pierre-Louis Bossart
Date: Wed Aug 26 2020 - 10:40:26 EST
+ * @hw_sync_min_links: Number of links used by a stream above which
+ * hardware-based synchronization is required. This value is only
+ * meaningful if multi_link is set. If set to 1, hardware-based
+ * synchronization will be used even if a stream only uses a single
+ * SoundWire segment.
Soundwire spec does not say anything about multi-link so this is left to
implementer. Assuming that value of 1 would mean hw based sync will
be used even for single stream does not make sense in generic terms.
Maybe yes for Intel but may not be true for everyone?
hw-based sync is required for Intel even for single stream. It's been
part of the recommended programming flows since the beginning but
ignored so far.
That said, this value is set by each master implementation, no one
forces non-Intel users to implement an Intel-specific requirement.
We already use m_rt_count in code for this, so the question is why is
that not sufficient?
Because as you rightly said above, Intel requires the hw_sync to be used
even for single stream, but we didn't want others to be forced to use
the hw-sync for single stream. the m_rt_count is not sufficient for Intel.
I think we are in agreement on not forcing everyone to follow what is
required by Intel, and that's precisely why we added this setting. If
you set it to two you would only use hw_sync when two masters are used.