Add static channel map support between soundwire master and slave. This patch series will resolve channel mask mismatch between master and slave.
Scenario: wcd937x AMIC2 usecase
Master Slave (wcd937x) +--------------+ +--------------+ | +--------+ | | +--------+ | AMIC1 ----->| | PORT1 | | | | TX1 | |<-----------AMIC1 AMIC2 ----->| | | | | | | | | +--------+ | | +--------+ | | | | | AMIC3 ----->| +--------+ | | +--------+ | | | PORT2 | | | | TX2 | |<-----------AMIC2 | | | | | | | |<-----------AMIC3 | +--------+ | | +--------+ | | | | | | +--------+ | | +--------+ | DMIC0...DMIC3------>| | PORT3 | | | | TX3 | |<-----------DMIC0...DMIC3 | | | | | | | |<-----------MBHC | +--------+ | | +--------+ | | | | | | +--------+ | | +--------+ | DMIC4...DMIC37----->| | PORT4 | | | | TX4 | |<-----------DMIC4...DMIC7 | | | | | | | | | +--------+ | | +--------+ | | | | | +------------- + +--------------+
For AMIC2 usecase, The Slave need to configure TX2 Port with channel mask 1 and for Master required PORT1 with channel mask 2,
In existing design master and slave configured with same channel mask, it will fail AMIC2 usecase.
The New design will help to configure channel mapping between master and slave from device tree.
Mohammad Rafi Shaik (4): ASoC: dt-bindings: wcd938x-sdw: Add static channel mapping support soundwire: stream: Add set_master_channel_map() to set static channel mapping soundwire: qcom: Add static channel mapping support in soundwire master ASoC: codecs: wcd937x: Add static channel mapping support in wcd937x-sdw
.../bindings/sound/qcom,wcd937x-sdw.yaml | 28 ++++++++++ drivers/soundwire/qcom.c | 18 +++++++ drivers/soundwire/stream.c | 16 ++++++ include/linux/soundwire/sdw.h | 5 ++ sound/soc/codecs/wcd937x-sdw.c | 52 ++++++++++++++++--- sound/soc/codecs/wcd937x.c | 12 ++++- sound/soc/codecs/wcd937x.h | 6 ++- 7 files changed, 126 insertions(+), 11 deletions(-)
base-commit: 9aaeb87ce1e966169a57f53a02ba05b30880ffb8