diff options
author | Srinivas Kandagatla <srinivas.kandagatla@linaro.org> | 2021-03-30 17:47:15 +0300 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2021-03-30 20:25:07 +0300 |
commit | ddea6cf7b619ec4b9a630d0073c4fc64d0ac2b9c (patch) | |
tree | 1e52946c476a201155eeb4555b68b932d9a92065 /Kconfig | |
parent | a866a049024c789f6d6c35aefab3ae9837a2fa73 (diff) | |
download | linux-ddea6cf7b619ec4b9a630d0073c4fc64d0ac2b9c.tar.xz |
soundwire: qcom: update register read/write routine
In the existing code every soundwire register read and register write
are kinda blocked. Each of these are using a special command id that
generates interrupt after it successfully finishes. This is really
overhead, limiting and not really necessary unless we are doing
something special.
We can simply read/write the fifo that should also give exactly
what we need! This will also allow to read/write registers in
interrupt context, which was not possible with the special
command approach.
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
This has significantly not only reduced interrupting CPU during enumeration
but also during streaming!
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210330144719.13284-6-srinivas.kandagatla@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'Kconfig')
0 files changed, 0 insertions, 0 deletions