[PATCH v6 0/9] soundwire: qcom: various improvements

From: Srinivas Kandagatla
Date: Tue Mar 30 2021 - 10:48:27 EST


Thanks for reviewing v5 of this patchset!

During testing SoundWire controller on SM8250 MTP, we found
few issues like all the interrupts are not handled,
all transport parameters are not read from device tree.
Patch to add Auto Enumeration supported by the controller
is also part of this series.

Other major issue was register read/writes which was interrupt based
was an overhead and puts lot of limitation on context it can be used from.

With previous approach number of interrupts generated
after enumeration are around 130:
$ cat /proc/interrupts | grep soundwire
21: 130 0 0 0 0 0 0 0 GICv3 234 Edge soundwire

after this patch they are just 3 interrupts
$ cat /proc/interrupts | grep soundwire
21: 3 0 0 0 0 0 0 0 GICv3 234 Edge soundwire

So this patchset add various improvements to the existing driver
to address above issues.

Tested it on SM8250 MTP with 2x WSA881x speakers, HeadPhones on
WCD938x via lpass-rx-macro and Analog MICs via lpass-tx-macro.
Also tested on DragonBoard DB845c with 2xWSA881x speakers.

Changes since v5:
- Use BIT macro in interrupt routine
- add comment for fifo write

Srinivas Kandagatla (9):
dt-bindings: soundwire: qcom: clarify data port bus parameters
soundwire: qcom: add support to missing transport params
soundwire: qcom: set continue execution flag for ignored commands
soundwire: qcom: start the clock during initialization
soundwire: qcom: update register read/write routine
soundwire: qcom: add support to new interrupts
soundwire: export sdw_compare_devid, sdw_extract_slave_id and
sdw_slave_add
soundwire: qcom: add auto enumeration support
soundwire: qcom: wait for enumeration to be complete in probe

.../bindings/soundwire/qcom,sdw.txt | 20 +
drivers/soundwire/bus.c | 4 +-
drivers/soundwire/qcom.c | 529 ++++++++++++++----
drivers/soundwire/slave.c | 1 +
include/linux/soundwire/sdw.h | 2 +
5 files changed, 443 insertions(+), 113 deletions(-)

--
2.21.0