From: srinivas.kandagatla@linaro.org (srinivas.kandagatla at linaro.org)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 00/24] ASoC: qcom: Add support to QDSP based Audio
Date: Sat, 10 Mar 2018 02:24:32 +0000 [thread overview]
Message-ID: <20180310022456.26739-1-srinivas.kandagatla@linaro.org> (raw)
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Thankyou everyone for providing feedback on v3 patchset.
This patchset aims to provide a basic version of QCOM DSP based
audio support which is available in downstream andriod kernels.
This patchset support audio playback on HDMI-RX, MI2S, SLIMBus and
will add support to other features as we move on.
QDSP has both static and dynamic modules. static modules like AFE
(Audio FrontEnd), ADM (Audio Device Manager), ASM(Audio Stream Manager)
and CORE to provide this audio services.
All these services use APR (Asynchronous Packet Router) protocol
via smd/glink transport to communicate with Application processor.
More details on each module is availble in there respective patch.
This patchset is tested on DB820c, with HDMI audio playback, MI2S on
DB410c on top of mainline, Also tested SLIMBus analog audio using
wcd9355 with an additional patches. Previous version of these
patches are also tested on SDM845 by Rohit.
Here is my test branch incase someone want to try these patches
https://git.linaro.org/people/srinivas.kandagatla/linux.git/log/?h=v4.16-qdsp6-v4
Here is block diagram to give a quick overview of the components
+---------+ +---------+ +---------+
| q6asm | |q6routing| | q6afe |
| dais | <------> | mixers | <-----> | dais |
+---------+ +---------+ +---------+
^ ^ ^
| | |
| +------------------+----------------+ |
| | | | |
v v v v v
+---------+ +---------+ +---------+
| q6ASM | | q6ADM | | q6AFE |
+---------+ +---------+ +---------+
^ ^ ^ ^
| | | CPU Side |
------+---------------------+-------------------+--------
| | |
| |APR(smd/glink) |
| | |
| +------------------+----------------+ |
| | | | |
+-----+--+-----------------------------------+--+-------
| | | | | QDSP Side |
v v v v v v
+---------+ +---------+ +---------+
| ASM | <------> | ADM | <-----> | AFE |
+---------+ +---------+ +---------+
^
|
+-------------------+
|
---------------------------+--------------------------
| Audio I/O |
v v
+--------------------------------------------------+
| Audio devices |
| CODEC | HDMI-TX | PCM | SLIMBUS | I2S |MI2S |...|
| |
+--------------------------------------------------+
Changes since v3 (https://lkml.org/lkml/2018/2/13/719)
- Cleaned up apr and other dt bindings from comments
from various reviewers.
- Updated sndcard and dsp components to use component framework
- Fixed various locking issues spotted by Mark B.
- Removed Error to string lookup functions which can be done later.
- cleaned up the subject headers suggested by Mark B
- cleaned up Kconfig as suggested in review.
- Fixed SPDX licence commenting style, suggested by Mark.
- Made adsp command and response in sync
- moved sound node out of apr bus.
- Added more info into dsp versioning support
- Fixed issues with MI2S SD-line selection, spotted by Rohit.
- Added my self as co-maintainer for qcom audio stuff.
- Fixed q6routing issue spotted by flto and rohit.
Srinivas Kandagatla (24):
soc: qcom dt-bindings: Add APR bus bindings
soc: qcom: Add APR bus driver
ASoC: qdsp6: q6common: Add qdsp6 helper functions
ASoC: qdsp6: dt-bindings: Add q6afe dt bindings
ASoC: qdsp6: dt-bindings: Add q6adm dt bindings
ASoC: qdsp6: dt-bindings: Add q6asm dt bindings
ASoC: qdsp6: q6afe: Add q6afe driver
ASoC: qdsp6: qdafe: Add SLIMBus port Support
ASoC: qdsp6: q6afe: Add support to MI2S ports
ASoC: qdsp6: q6afe: Add support to MI2S sysclks
ASoC: qdsp6: q6adm: Add q6adm driver
ASoC: qdsp6: q6asm: Add q6asm driver
ASoC: qdsp6: q6asm: Add support to memory map and unmap
ASoC: qdsp6: q6asm: Add support to audio stream apis
ASoC: qdsp6: q6core: Add q6core driver
ASoC: qdsp6: q6routing: Add q6routing driver
ASoC: qdsp6: q6routing: Add support to all SLIMBus Mixers
ASoC: qdsp6: q6routing: Add support to MI2S Mixers
ASoC: qdsp6: q6afe: Add q6afe dai driver
ASoC: qdsp6: q6asm: Add q6asm dai driver
ASoC: qdsp6: dt-bindings: Add apq8096 machine bindings
ASoC: qcom: apq8096: Add db820c machine driver
arm64: dts: db820c: add sound card dt entry
MAINTAINERS: Add myself as co-maintainer of qcom audio
.../devicetree/bindings/soc/qcom/qcom,apr.txt | 85 ++
.../devicetree/bindings/sound/qcom,apq8096.txt | 80 ++
.../devicetree/bindings/sound/qcom,q6adm.txt | 34 +
.../devicetree/bindings/sound/qcom,q6afe.txt | 107 ++
.../devicetree/bindings/sound/qcom,q6asm.txt | 34 +
MAINTAINERS | 1 +
arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 34 +
arch/arm64/boot/dts/qcom/msm8996.dtsi | 75 +-
drivers/soc/qcom/Kconfig | 9 +
drivers/soc/qcom/Makefile | 1 +
drivers/soc/qcom/apr.c | 379 ++++++
include/dt-bindings/soc/qcom,apr.h | 27 +
include/dt-bindings/sound/qcom,q6afe.h | 31 +
include/dt-bindings/sound/qcom,q6asm.h | 22 +
include/linux/mod_devicetable.h | 11 +
include/linux/soc/qcom/apr.h | 131 ++
sound/soc/qcom/Kconfig | 50 +
sound/soc/qcom/Makefile | 5 +
sound/soc/qcom/apq8096.c | 235 ++++
sound/soc/qcom/qdsp6/Makefile | 8 +
sound/soc/qcom/qdsp6/q6adm.c | 664 ++++++++++
sound/soc/qcom/qdsp6/q6adm.h | 25 +
sound/soc/qcom/qdsp6/q6afe-dai.c | 746 +++++++++++
sound/soc/qcom/qdsp6/q6afe.c | 1067 ++++++++++++++++
sound/soc/qcom/qdsp6/q6afe.h | 193 +++
sound/soc/qcom/qdsp6/q6asm-dai.c | 632 ++++++++++
sound/soc/qcom/qdsp6/q6asm.c | 1310 ++++++++++++++++++++
sound/soc/qcom/qdsp6/q6asm.h | 69 ++
sound/soc/qcom/qdsp6/q6core.c | 381 ++++++
sound/soc/qcom/qdsp6/q6core.h | 15 +
sound/soc/qcom/qdsp6/q6dsp-common.c | 66 +
sound/soc/qcom/qdsp6/q6dsp-common.h | 24 +
sound/soc/qcom/qdsp6/q6dsp-errno.h | 51 +
sound/soc/qcom/qdsp6/q6routing.c | 982 +++++++++++++++
sound/soc/qcom/qdsp6/q6routing.h | 9 +
35 files changed, 7592 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,apr.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,apq8096.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6adm.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6afe.txt
create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6asm.txt
create mode 100644 drivers/soc/qcom/apr.c
create mode 100644 include/dt-bindings/soc/qcom,apr.h
create mode 100644 include/dt-bindings/sound/qcom,q6afe.h
create mode 100644 include/dt-bindings/sound/qcom,q6asm.h
create mode 100644 include/linux/soc/qcom/apr.h
create mode 100644 sound/soc/qcom/apq8096.c
create mode 100644 sound/soc/qcom/qdsp6/Makefile
create mode 100644 sound/soc/qcom/qdsp6/q6adm.c
create mode 100644 sound/soc/qcom/qdsp6/q6adm.h
create mode 100644 sound/soc/qcom/qdsp6/q6afe-dai.c
create mode 100644 sound/soc/qcom/qdsp6/q6afe.c
create mode 100644 sound/soc/qcom/qdsp6/q6afe.h
create mode 100644 sound/soc/qcom/qdsp6/q6asm-dai.c
create mode 100644 sound/soc/qcom/qdsp6/q6asm.c
create mode 100644 sound/soc/qcom/qdsp6/q6asm.h
create mode 100644 sound/soc/qcom/qdsp6/q6core.c
create mode 100644 sound/soc/qcom/qdsp6/q6core.h
create mode 100644 sound/soc/qcom/qdsp6/q6dsp-common.c
create mode 100644 sound/soc/qcom/qdsp6/q6dsp-common.h
create mode 100644 sound/soc/qcom/qdsp6/q6dsp-errno.h
create mode 100644 sound/soc/qcom/qdsp6/q6routing.c
create mode 100644 sound/soc/qcom/qdsp6/q6routing.h
--
2.15.1
next reply other threads:[~2018-03-10 2:24 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-10 2:24 srinivas.kandagatla at linaro.org [this message]
2018-03-10 2:24 ` [PATCH v4 01/24] soc: qcom dt-bindings: Add APR bus bindings srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 02/24] soc: qcom: Add APR bus driver srinivas.kandagatla at linaro.org
2018-03-14 14:12 ` [alsa-devel] " Rohit Kumar
2018-03-14 14:15 ` Srinivas Kandagatla
2018-03-10 2:24 ` [PATCH v4 03/24] ASoC: qdsp6: q6common: Add qdsp6 helper functions srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 04/24] ASoC: qdsp6: dt-bindings: Add q6afe dt bindings srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 05/24] ASoC: qdsp6: dt-bindings: Add q6adm " srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 06/24] ASoC: qdsp6: dt-bindings: Add q6asm " srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 07/24] ASoC: qdsp6: q6afe: Add q6afe driver srinivas.kandagatla at linaro.org
2018-03-13 11:29 ` [alsa-devel] " Rohit Kumar
2018-03-13 13:51 ` Srinivas Kandagatla
2018-03-10 2:24 ` [PATCH v4 08/24] ASoC: qdsp6: qdafe: Add SLIMBus port Support srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 09/24] ASoC: qdsp6: q6afe: Add support to MI2S ports srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 10/24] ASoC: qdsp6: q6afe: Add support to MI2S sysclks srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 11/24] ASoC: qdsp6: q6adm: Add q6adm driver srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 12/24] ASoC: qdsp6: q6asm: Add q6asm driver srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 13/24] ASoC: qdsp6: q6asm: Add support to memory map and unmap srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 14/24] ASoC: qdsp6: q6asm: Add support to audio stream apis srinivas.kandagatla at linaro.org
2018-04-09 11:53 ` [alsa-devel] " Rohit Kumar
2018-03-10 2:24 ` [PATCH v4 15/24] ASoC: qdsp6: q6core: Add q6core driver srinivas.kandagatla at linaro.org
2018-03-13 11:46 ` [alsa-devel] " Rohit Kumar
2018-03-13 13:55 ` Srinivas Kandagatla
2018-03-10 2:24 ` [PATCH v4 16/24] ASoC: qdsp6: q6routing: Add q6routing driver srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 17/24] ASoC: qdsp6: q6routing: Add support to all SLIMBus Mixers srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 18/24] ASoC: qdsp6: q6routing: Add support to MI2S Mixers srinivas.kandagatla at linaro.org
2018-05-21 15:47 ` Applied "ASoC: qdsp6: q6routing: Add support to MI2S Mixers" to the asoc tree Mark Brown
2018-03-10 2:24 ` [PATCH v4 19/24] ASoC: qdsp6: q6afe: Add q6afe dai driver srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 20/24] ASoC: qdsp6: q6asm: Add q6asm " srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 21/24] ASoC: qdsp6: dt-bindings: Add apq8096 machine bindings srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 22/24] ASoC: qcom: apq8096: Add db820c machine driver srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 23/24] arm64: dts: db820c: add sound card dt entry srinivas.kandagatla at linaro.org
2018-03-10 2:24 ` [PATCH v4 24/24] MAINTAINERS: Add myself as co-maintainer of qcom audio srinivas.kandagatla at linaro.org
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180310022456.26739-1-srinivas.kandagatla@linaro.org \
--to=srinivas.kandagatla@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).