summaryrefslogtreecommitdiff
path: root/samples
diff options
context:
space:
mode:
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2021-03-30 17:47:15 +0300
committerVinod Koul <vkoul@kernel.org>2021-03-30 20:25:07 +0300
commitddea6cf7b619ec4b9a630d0073c4fc64d0ac2b9c (patch)
tree1e52946c476a201155eeb4555b68b932d9a92065 /samples
parenta866a049024c789f6d6c35aefab3ae9837a2fa73 (diff)
downloadlinux-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 'samples')
0 files changed, 0 insertions, 0 deletions