[PATCH v2 0/5] soundwire: qcom: various improvements

Srinivas Kandagatla srinivas.kandagatla at linaro.org
Fri Feb 26 16:58:09 CET 2021


Thanks for reviewing v1 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.

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 v1:
	- changed bgp_count to blk_group_count as suggested by Pierre
	- used version raw value as suggested by VKoul
	- updated read fifo logic and interrupt handling to do while()
	- renamed some of the variable to make reading easy!
	- removed patch that parses version

Srinivas Kandagatla (5):
  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

 drivers/soundwire/qcom.c | 438 ++++++++++++++++++++++++++++++---------
 1 file changed, 335 insertions(+), 103 deletions(-)

-- 
2.21.0



More information about the Alsa-devel mailing list