mbox series

[v4,0/9] soundwire: qcom: various improvements

Message ID 20210312120009.22386-1-srinivas.kandagatla@linaro.org
Headers show
Series soundwire: qcom: various improvements | expand

Message

Srinivas Kandagatla March 12, 2021, noon UTC
Thanks for reviewing v3 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 v3:
	- Fixed setting assigned bit during autoenumeration

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() and sdw_extract_slave_id()
  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 ++++++++++++++----
 include/linux/soundwire/sdw.h                 |   2 +
 4 files changed, 442 insertions(+), 113 deletions(-)

-- 
2.21.0

Comments

Pierre-Louis Bossart March 12, 2021, 4:33 p.m. UTC | #1
On 3/12/21 6:00 AM, Srinivas Kandagatla wrote:
> Thanks for reviewing v3 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.


LGTM, for the series

Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>


> 

> Changes since v3:

> 	- Fixed setting assigned bit during autoenumeration

> 

> 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() and sdw_extract_slave_id()

>    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 ++++++++++++++----

>   include/linux/soundwire/sdw.h                 |   2 +

>   4 files changed, 442 insertions(+), 113 deletions(-)

>