From patchwork Tue Feb 13 16:58:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 128260 Delivered-To: patch@linaro.org Received: by 10.46.124.24 with SMTP id x24csp4456937ljc; Tue, 13 Feb 2018 09:01:24 -0800 (PST) X-Google-Smtp-Source: AH8x226xo3vrP13XeTLiEVrydd684kImg06fJVhaHqWSgzX5QdzniqNwA/xZ9WyWUhB1GRwJ6bsI X-Received: by 10.28.52.4 with SMTP id b4mr2057911wma.90.1518541284487; Tue, 13 Feb 2018 09:01:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518541284; cv=none; d=google.com; s=arc-20160816; b=ZemMUxeOdZcTu8oRfy/n2OZh1SAZqTbnMM0oQl1muGKGqTHZDtK8QI3UgynijuS6ix uUrgngW6Vdc7WbVfvOBwMZCFA0pGps8qjQ2NhTbge0hT80QCKs1hMngzvekwjJD0+dJC zRj5WOZJKszcYIFsSTvU9ly5jl5vS6aSNbdtyirc++aszF9az5u+lvaEiQ3gI8K86LKb f9acJk+J4Er6J9mxIdBb1sQaVdTS7z9PfWl62LprHC+oHg5VZqz6nMCd5UanHBE/XzwG ZC633yvIHIG2hymcva2TW187WcYFWoLqv4EjqqaHIUnNHvjWl+YLKF8jOPEuBc9VGgyD tIFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:cc:message-id:date:to:from :dkim-signature:delivered-to:arc-authentication-results; bh=NoriyVru5MCAr3E7PE98BcEZuNw4OxTe6cW4IRQd6EI=; b=rSljpuzUXk9FMthxU8S4q3y+48mAB4phkkWBA/TbG6y01/1fh3ASFoC3xqmBm4FmQC ENTVkHIG+TThc7EnKgpu+agr20sdkXgIhphIIeVbLC2fGSMYCAVm06MpZq5xIZHV6pJy bcuPwM+FkeZ5QElfbGlX4FkIqGX+aQauNQy6HyrQmEsnkc2kXmZngWBC1Re2lIQ3PfDE jTHrYlhIHRYoAxmhTzSDNQtaUQVfKyR3Ql85+ZTvUiq2mQj/ntM1llwf4L2+cWDePXos yzngGJthG5QFUM8ZDVDJugU8jJxQA58i9b5kJUSwi3yLb3XT+djuCBbxvx8fWwzHxV5/ WGwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=PXqPo5VH; spf=pass (google.com: domain of alsa-devel-bounces@alsa-project.org designates 77.48.224.243 as permitted sender) smtp.mailfrom=alsa-devel-bounces@alsa-project.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from alsa0.perex.cz (alsa0.perex.cz. [77.48.224.243]) by mx.google.com with ESMTP id r9si5489296wme.262.2018.02.13.09.01.23; Tue, 13 Feb 2018 09:01:24 -0800 (PST) Received-SPF: pass (google.com: domain of alsa-devel-bounces@alsa-project.org designates 77.48.224.243 as permitted sender) client-ip=77.48.224.243; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=PXqPo5VH; spf=pass (google.com: domain of alsa-devel-bounces@alsa-project.org designates 77.48.224.243 as permitted sender) smtp.mailfrom=alsa-devel-bounces@alsa-project.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id D744026774B; Tue, 13 Feb 2018 18:01:21 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id CE09126774A; Tue, 13 Feb 2018 18:01:19 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail1.perex.cz X-Spam-Level: X-Spam-Status: No, score=-0.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS autolearn=disabled version=3.4.0 Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by alsa0.perex.cz (Postfix) with ESMTP id 0C64E26753C for ; Tue, 13 Feb 2018 18:01:15 +0100 (CET) Received: by mail-wm0-f67.google.com with SMTP id j199so5221695wmj.2 for ; Tue, 13 Feb 2018 09:01:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=GxrGNRd+iYZdX7kfRYuAA+3tTquaccSSyfT+yH1nUTg=; b=PXqPo5VH2uEAd3X0+otn1STmkuumSkU365MBU141NFsf38TKhhSDV9G0Z2e+hdMuut 1lb8ygIs7FvHXpv+4ldnGHRDoMCG4tlUzCkK6aDiKFonZvX7zobXr/UdNRgFaqUNOy/6 FtZe7XRysUtoczMTVVteXasCdM12SJNhmDzd4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=GxrGNRd+iYZdX7kfRYuAA+3tTquaccSSyfT+yH1nUTg=; b=L/NhZunM9sMBZPQ8sXVJ43a8/OyQC/J6AZbjFLhS06XL7rNKRX4j9hyivZdNslSFBZ Wg1LDJf4KJk0BWqSJwx8Iez6ULaTeKe4EcNrThzz96qKeYEMYx3RcFU5nZcEWX0+GoYU WBjvneK2hKaRNiunjEljpL1HupFjaHPrY6jH7qPP2NDKgKPpGkGHNsHhxAArMAfdTMgZ k29eHHwNfxj0KTcY95JYRqsnjQUlDiwKfJ2EasQUcHgToaN+4zkNDFpghzH6X55tO/Lu Fi2MTnhAqVCKtcAqcTr6g+z997oHTjUQx2akWSZ54Pt5YbOlKBV3hqgY1mHrqYHJrWUS 8XCA== X-Gm-Message-State: APf1xPBW8SRRSbsr+U9n6OWwQySgpsn9LLI+b67YPMfvF5DmCVrqtjEp qfqOD2p0YnqZj9qS4zkDe7rCMw== X-Received: by 10.28.236.77 with SMTP id k74mr1992280wmh.36.1518541275265; Tue, 13 Feb 2018 09:01:15 -0800 (PST) Received: from localhost.localdomain (cpc90716-aztw32-2-0-cust92.18-1.cable.virginm.net. [86.26.100.93]) by smtp.gmail.com with ESMTPSA id y145sm7432723wmd.43.2018.02.13.09.01.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 13 Feb 2018 09:01:14 -0800 (PST) From: srinivas.kandagatla@linaro.org To: andy.gross@linaro.org, broonie@kernel.org, linux-arm-msm@vger.kernel.org, alsa-devel@alsa-project.org Date: Tue, 13 Feb 2018 16:58:12 +0000 Message-Id: <20180213165837.1620-1-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.15.1 Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, bgoswami@codeaurora.org, rohkumar@qti.qualcomm.com, linux-kernel@vger.kernel.org, plai@codeaurora.org, tiwai@suse.com, lgirdwood@gmail.com, david.brown@linaro.org, robh+dt@kernel.org, Srinivas Kandagatla , spatakok@qti.qualcomm.com, linux-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [alsa-devel] [PATCH v3 00/25] ASoC: qcom: Add support to QDSP based Audio X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org From: Srinivas Kandagatla 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. Here is my test branch incase somone want to try these patches https://git.linaro.org/people/srinivas.kandagatla/linux.git/log/?h=v4.16-rc1-dsp-audio-v3 Here is block diagram to give a quick overview of the components +---------+ +---------+ +---------+ | q6asm | |q6routing| | q6afe | | fedai | <------> | mixers | <-----> | bedai | +---------+ +---------+ +---------+ ^ ^ ^ | | | | +------------------+----------------+ | | | | | | 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 v2 (https://lwn.net/Articles/741472/) - fixed locking issues with ASM and APR. - Added support to MI2S and SLIMBus ports - moved dma device to apr. - added dt bindings for ASM, ADM, AFE. - Fixed dt bindings for msm8996 sound card. - added compatible strings to ASM, ADM, AFE modules. - Cleaned up common code as suggested in review. - converted sound card driver to proper apr client driver. - Fixed various issues spotted by Banajit and Kasam. - Tested on DB410c, DB820c for both analog and digital playbacks. - Exported q6core functions as suggested by Rohit. - Fixed various issues with dsp carsh/recover usecase. - Added multiple ASM streams as requested in review. Srinivas Kandagatla (25): dt-bindings: soc: qcom: Add bindings for APR bus soc: qcom: add support to APR bus driver ASoC: qcom: qdsp6: Add common qdsp6 helper functions dt-bindings: sound: qcom: Add bindings for q6afe ASoC: qcom: qdsp6: Add support to Q6AFE dt-bindings: sound: qcom: Add bindings for q6adm ASoC: qcom: qdsp6: Add support to Q6ADM dt-bindings: sound: qcom: Add bindings for q6asm ASoC: qcom: qdsp6: Add support to Q6ASM ASoC: qcom: q6asm: Add support to memory map and unmap ASoC: qcom: q6asm: add support to audio stream apis ASoC: qcom: qdsp6: Add support to Q6CORE ASoC: qcom: qdsp6: Add support to q6routing driver ASoC: qcom: qdsp6: Add support to q6afe dai driver ASoC: qcom: qdsp6: Add support to q6asm dai driver ASoC: qcom: q6afe: add SLIMBus port Support ASoC: qcom: q6afe-dai: add support to slim afe dais ASoC: qcom: q6routing: add support to all SLIMBus Mixers ASoC: qcom: q6afe: add support to MI2S ports ASoC: qcom: q6afe: add support to MI2S sysclks ASoC: qcom: q6afe-dai: add support to 4 MI2S ports ASoC: qcom: q6routing: add support to MI2S Mixers dt-bindings: sound: qcom: Add devicetree bindings for apq8096 ASoC: qcom: apq8096: Add db820c machine driver arm64: dts: msm8996: db820c: Add sound card support .../devicetree/bindings/soc/qcom/qcom,apr.txt | 83 ++ .../devicetree/bindings/sound/qcom,apq8096.txt | 89 ++ .../devicetree/bindings/sound/qcom,q6adm.txt | 31 + .../devicetree/bindings/sound/qcom,q6afe.txt | 38 + .../devicetree/bindings/sound/qcom,q6asm.txt | 38 + arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi | 44 +- arch/arm64/boot/dts/qcom/msm8996.dtsi | 62 ++ drivers/soc/qcom/Kconfig | 9 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/apr.c | 381 +++++++ include/dt-bindings/soc/qcom,apr.h | 27 + include/dt-bindings/sound/qcom,q6afe.h | 33 + 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 | 42 + sound/soc/qcom/Makefile | 5 + sound/soc/qcom/apq8096.c | 173 ++++ sound/soc/qcom/qdsp6/Makefile | 5 + sound/soc/qcom/qdsp6/q6adm.c | 634 ++++++++++++ sound/soc/qcom/qdsp6/q6adm.h | 29 + sound/soc/qcom/qdsp6/q6afe-dai.c | 645 ++++++++++++ sound/soc/qcom/qdsp6/q6afe.c | 875 ++++++++++++++++ sound/soc/qcom/qdsp6/q6afe.h | 74 ++ sound/soc/qcom/qdsp6/q6asm-dai.c | 621 ++++++++++++ sound/soc/qcom/qdsp6/q6asm.c | 1063 ++++++++++++++++++++ sound/soc/qcom/qdsp6/q6asm.h | 66 ++ sound/soc/qcom/qdsp6/q6core.c | 235 +++++ sound/soc/qcom/qdsp6/q6core.h | 9 + sound/soc/qcom/qdsp6/q6dsp-common.c | 67 ++ sound/soc/qcom/qdsp6/q6dsp-common.h | 24 + sound/soc/qcom/qdsp6/q6dsp-errno.h | 97 ++ sound/soc/qcom/qdsp6/q6routing.c | 758 ++++++++++++++ sound/soc/qcom/qdsp6/q6routing.h | 9 + 34 files changed, 6430 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 _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel