lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 11 Aug 2017 15:29:43 +0200
From:   srinivas.kandagatla@...aro.org
To:     Mark Brown <broonie@...nel.org>,
        Banajit Goswami <bgoswami@...eaurora.org>,
        alsa-devel@...a-project.org
Cc:     Takashi Iwai <tiwai@...e.com>, Patrick Lai <plai@...eaurora.org>,
        linux-kernel@...r.kernel.org, kwestfie@...eaurora.org,
        linux-arm-msm@...r.kernel.org, lkasam@....qualcomm.com,
        sboyd@...eaurora.org,
        Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
Subject: [RFC PATCH 0/9] ASoC: qcom: Add support to QDSP based HDMI audio

From: Srinivas Kandagatla <srinivas.kandagatla@...aro.org>

This patchset aims to provide a very basic version of QCOM DSP based
audio support which is available in downstream andriod kernels.
This patchset only support Digital audio based for HDMI-TX and will
add support to other features as we move on.

Why do we need this now:
On All Qualcomm SOCs the audio services are usually provided by
an on chip DSP using LPASS, however LPASS is mostly tied with
a Q6DSP on most of the SOCs. So Bypassing the DSP is becoming almost
impossible with new generation of QCOM SOCs.

QDSP has 3 modules AFE (Audio FrontEnd), ADM (Audio Device Manager),
and ASM(Audio Stream Manager) 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
on top of mainline with few additional patches.

Here is block diagram to give a quick overview of the components

  +---------+          +---------+         +---------+
  |  q6pcm  |          |q6routing|         | q6hdmi  |
  | ASoC(FE | <------> | ASoC(BE | <-----> | ASoC(BE |
  | cpu dai)|          |Platform)|         | cpu dai)| 
  |         |          |         |         |         |
  +---------+          +---------+         +---------+
      ^                     ^                   ^
      |                     |                   |  
      |  +------------------+----------------+  |       
      |  |                  |                |  |       
      v  v                  v                v  v       
  +---------+          +---------+         +---------+
  |         |          |         |         |         |
  |   q6ASM |          |  q6ADM  |         |   q6AFE |
  |         |          |         |         |         |
  |         |          |         |         |         |
  +---------+          +---------+         +---------+
      ^                     ^                   ^          ^
      |                     |                   | CPU Side |
------+---------------------+-------------------+--------
      |                     |                   |
      |                     |APR(smd/glink)     | 
      |                     |                   |
      |                     |                   |  
      |  +------------------+----------------+  |       
      |  |                                   |  |       
+-----+--+-----------------------------------+--+-------
      |  |                                   |  | QDSP Side |     
      v  v                                   v  v           v
 +---------+          +---------+         +---------+  
 |         |          |         |         |         |  
 |   ASM   | <------> |   ADM   | <-----> |   AFE   |  
 |         |          |         |         |         |  
 |         |          |         |         |         |  
 +---------+          +---------+         +---------+  
                                               ^       
                                               |       
                           +-------------------+
                           |
---------------------------+--------------------------
                           |            Audio I/O |
                           v                      v
    +--------------------------------------------------+
    |                Audio devices                     |
    | CODEC | HDMI-TX | PCM  | SLIMBUS | I2S |MI2S |...|
    |                                                  | 
    +--------------------------------------------------+


Srinivas Kandagatla (9):
  soc: qcom: add support APR driver
  ASoC: qcom: qdsp6v2: Add support to Q6AFE
  ASoC: qcom: qdsp6v2: Add support to Q6ADM
  ASoC: qcom: qdsp6v2: Add support to Q6ASM
  ASoC: qcom: qdsp6v2: Add support to q6 routing driver
  ASoC: qcom: qdsp6v2: Add support to q6 HDMI dai driver
  ASoC: qcom: qdsp6v2: Add support to q6 pcm driver
  ASoC: qcom: apq8096: Add db820c machine driver
  arm64: dts: msm8996: db820c: Add sound card support

 .../devicetree/bindings/soc/qcom/qcom,apr.txt      |   66 ++
 .../devicetree/bindings/sound/qcom,apq8096.txt     |   85 ++
 .../devicetree/bindings/sound/qcom,q6adm.txt       |   15 +
 .../devicetree/bindings/sound/qcom,q6afe.txt       |   15 +
 .../devicetree/bindings/sound/qcom,q6asm.txt       |   15 +
 .../devicetree/bindings/sound/qcom,q6hdmi.txt      |   27 +
 .../bindings/sound/qcom,q6pcm-routing.txt          |   21 +
 .../devicetree/bindings/sound/qcom,q6pcm.txt       |   21 +
 arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi       |   37 +
 arch/arm64/boot/dts/qcom/msm8996.dtsi              |   67 ++
 drivers/soc/qcom/Kconfig                           |    8 +
 drivers/soc/qcom/Makefile                          |    1 +
 drivers/soc/qcom/apr.c                             |  406 ++++++++
 include/dt-bindings/sound/qcom,afe.h               |    8 +
 include/dt-bindings/sound/qcom,asm.h               |   13 +
 include/linux/soc/qcom/apr.h                       |  163 ++++
 sound/soc/qcom/Kconfig                             |   46 +
 sound/soc/qcom/Makefile                            |    5 +
 sound/soc/qcom/apq8096.c                           |  174 ++++
 sound/soc/qcom/qdsp6v2/Makefile                    |    6 +
 sound/soc/qcom/qdsp6v2/common.h                    |  225 +++++
 sound/soc/qcom/qdsp6v2/q6adm-v2.h                  |   76 ++
 sound/soc/qcom/qdsp6v2/q6adm.c                     |  603 ++++++++++++
 sound/soc/qcom/qdsp6v2/q6afe-v2.h                  |   62 ++
 sound/soc/qcom/qdsp6v2/q6afe.c                     |  499 ++++++++++
 sound/soc/qcom/qdsp6v2/q6asm-v2.h                  |  176 ++++
 sound/soc/qcom/qdsp6v2/q6asm.c                     | 1008 ++++++++++++++++++++
 sound/soc/qcom/qdsp6v2/q6hdmi.c                    |  258 +++++
 sound/soc/qcom/qdsp6v2/q6pcm.c                     |  558 +++++++++++
 sound/soc/qcom/qdsp6v2/q6routing-v2.h              |    8 +
 sound/soc/qcom/qdsp6v2/q6routing.c                 |  403 ++++++++
 31 files changed, 5075 insertions(+)
 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 Documentation/devicetree/bindings/sound/qcom,q6hdmi.txt
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6pcm-routing.txt
 create mode 100644 Documentation/devicetree/bindings/sound/qcom,q6pcm.txt
 create mode 100644 drivers/soc/qcom/apr.c
 create mode 100644 include/dt-bindings/sound/qcom,afe.h
 create mode 100644 include/dt-bindings/sound/qcom,asm.h
 create mode 100644 include/linux/soc/qcom/apr.h
 create mode 100644 sound/soc/qcom/apq8096.c
 create mode 100644 sound/soc/qcom/qdsp6v2/Makefile
 create mode 100644 sound/soc/qcom/qdsp6v2/common.h
 create mode 100644 sound/soc/qcom/qdsp6v2/q6adm-v2.h
 create mode 100644 sound/soc/qcom/qdsp6v2/q6adm.c
 create mode 100644 sound/soc/qcom/qdsp6v2/q6afe-v2.h
 create mode 100644 sound/soc/qcom/qdsp6v2/q6afe.c
 create mode 100644 sound/soc/qcom/qdsp6v2/q6asm-v2.h
 create mode 100644 sound/soc/qcom/qdsp6v2/q6asm.c
 create mode 100644 sound/soc/qcom/qdsp6v2/q6hdmi.c
 create mode 100644 sound/soc/qcom/qdsp6v2/q6pcm.c
 create mode 100644 sound/soc/qcom/qdsp6v2/q6routing-v2.h
 create mode 100644 sound/soc/qcom/qdsp6v2/q6routing.c

-- 
2.9.3

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ