From patchwork Thu Apr 26 09:45:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 134437 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp2029043lji; Thu, 26 Apr 2018 02:49:34 -0700 (PDT) X-Google-Smtp-Source: AIpwx485VfbGdaQR2PGzkLyNvU2U6VscXo07g6F9B8tfPdlD2O/YMIMYqAoc/CsVjL0qxEtiqCvV X-Received: by 10.28.19.13 with SMTP id 13mr18897740wmt.89.1524736174713; Thu, 26 Apr 2018 02:49:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524736174; cv=none; d=google.com; s=arc-20160816; b=mLuUXG/Jqn0Q6/9WSf6UmoiLgX8phJ1fIElGJuYRSfb45+NRZSKLvUCSVah3bhBt35 sRnCiOGBd6wK7YJ8irg0+5tCHsrRN37Abej4VVPTooIbc70Nak5NCvJaad+FmQMuNYvK edpPEHQWLyfLH+1qBSanHhe+Ws5OPG0mPjjmD6FcOoF1g/YoxHuGz8r8H+5mE0+E33bC 8z3nopfANxI/wJeXKKmEOJmUzgeT5320cprCUQF5oTabDpyXRKmRF+HS8rpMptg+YINJ rt3fd2psQD8AtbA4gcsYu8w3zQFmVjT83cZ9B6g27ug3nFjpgZo8euEclPq1Gn3hBLK9 LbVA== 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=61b0VMc9Sc5jIDj5TUF0gDJ6hrqvBOO3TE7ddGXlIGQ=; b=v18GbpGyjtdbkrTOqP6CB0rs0vn8laviybY85N9bZFr05n7RkGHjfMTKD1+aR4I5g4 RPstgLPLukk7Yjh6BUi8vkOcgMEej2AkmOxUxgSNGh5E1rRtzc3a38tWbR24mILn6feO LclD5rf3/qpVBDi7T3dkdRVrCoaMncgCrQNXKwJuicimzjnZn03iF1+ossILnH2SvOdO jYGjXiEAgriqRfjsbOOkceXm325X/VOJ5r1Wn15xoyNcpsuazUp7F9kQy3NlGIfd0b1P lIrWg8kKNs1/ZTkJlKxGSHmgZTwBGcbjz6PXygllbqLkXOePJ0q39WyguXPanXbZ0ZDo K1VA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=D2GSG9Ro; 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 m140si4834990wmd.141.2018.04.26.02.49.34; Thu, 26 Apr 2018 02:49:34 -0700 (PDT) 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=D2GSG9Ro; 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 ADA772677D9; Thu, 26 Apr 2018 11:49:33 +0200 (CEST) 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 CE1AA2677DD; Thu, 26 Apr 2018 11:49:31 +0200 (CEST) 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-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by alsa0.perex.cz (Postfix) with ESMTP id 4FEC2267230 for ; Thu, 26 Apr 2018 11:49:29 +0200 (CEST) Received: by mail-wm0-f65.google.com with SMTP id n10so11963427wmc.1 for ; Thu, 26 Apr 2018 02:49:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=fmLSwknBi4BMV8RAqgPuQ1zKtyHJNQeA90U+wou84Ms=; b=D2GSG9RoWDxTvmF2VXylZl7cNsprITbfugWyRKPhIlTN0ZmPz17cv+5qlolRIC1juX vZPDC9OmkSB1JiIBNAaELsJAOVDut4QnfHI6wUePQEg8g3ll5Pn0yInjroOKACGNvcU5 PU0mUOhYQ2J+/YLD1h14DTAMPy4JnazTmUNu4= 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=fmLSwknBi4BMV8RAqgPuQ1zKtyHJNQeA90U+wou84Ms=; b=NClvv7yx14F5sXhHFnMvcJ/G+zLaHZXAFedXEOmO1c8X/vbcOhRspn6Y+2VwKFGGZO ekaHC2IvaXhcfbvPJRLIFvvohHLrrPIqJxjNESaZHe/4ny/A5u5MfxUdAmUyoGn8dKLz atv5Rd3hCGyre1LqWxYrvBQOcblYJFHPCvIWz+8qjHOIicNSDrCwwRcy6S0fcbGOyaXo 0wNMMx978ok2lNNm3NUTig9P+dWC5F3mSCqRZ59IxOdqGsCKqI1EGTWBxbuZe9n5kSQh CABvBAQlIXOpgGwsphiEW3AVrbcT8ZOkRTDU5E4LDKzkj3X8Ee6vHHAoKvmBFIO0nqm6 26UA== X-Gm-Message-State: ALQs6tDJNI3y2zkz2dBLcVgoCpcsfkfkipgFzI/GFGaS5PmZ14tfBCcw rokkcYqX5hV5A0wg0h0/GdmMQg== X-Received: by 10.28.220.84 with SMTP id t81mr15139103wmg.90.1524736168661; Thu, 26 Apr 2018 02:49:28 -0700 (PDT) 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 a79sm5287289wme.48.2018.04.26.02.49.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 26 Apr 2018 02:49:27 -0700 (PDT) From: srinivas.kandagatla@linaro.org To: andy.gross@linaro.org, broonie@kernel.org, linux-arm-msm@vger.kernel.org, alsa-devel@alsa-project.org, robh+dt@kernel.org, bgoswami@codeaurora.org Date: Thu, 26 Apr 2018 10:45:42 +0100 Message-Id: <20180426094606.4775-1-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.16.2 Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, rohkumar@qti.qualcomm.com, gregkh@linuxfoundation.org, plai@codeaurora.org, tiwai@suse.com, lgirdwood@gmail.com, david.brown@linaro.org, Srinivas Kandagatla , linux-arm-kernel@lists.infradead.org, spatakok@qti.qualcomm.com, linux-kernel@vger.kernel.org Subject: [alsa-devel] [PATCH v6 00/24] 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 Thankyou everyone for providing feedback and testing v5 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. 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.17-qdsp6 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 v5 (https://lkml.org/lkml/2018/4/18/553) - updated bindings as reviewed by Rob H. - added missing binding for q6core - fixed copp double count reported by Amit Pundir - Updated proper SPDX licence on headers - reorder patches to fix bisect errors reported by kbuild Srinivas Kandagatla (24): soc: qcom dt-bindings: Add APR bus bindings soc: qcom: Add APR bus driver ASoC: qdsp6: dt-bindings: Add q6core dt bindings 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: q6common: Add qdsp6 helper functions ASoC: qdsp6: q6core: Add q6core driver 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: 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 MAINTAINERS: Add myself as co-maintainer of qcom audio .../devicetree/bindings/soc/qcom/qcom,apr.txt | 84 ++ .../devicetree/bindings/sound/qcom,apq8096.txt | 109 ++ .../devicetree/bindings/sound/qcom,q6adm.txt | 33 + .../devicetree/bindings/sound/qcom,q6afe.txt | 88 ++ .../devicetree/bindings/sound/qcom,q6asm.txt | 33 + .../devicetree/bindings/sound/qcom,q6core.txt | 21 + MAINTAINERS | 1 + drivers/soc/qcom/Kconfig | 9 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/apr.c | 384 ++++++ include/dt-bindings/soc/qcom,apr.h | 28 + 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 | 130 ++ sound/soc/qcom/Kconfig | 50 + sound/soc/qcom/Makefile | 5 + sound/soc/qcom/apq8096.c | 238 ++++ sound/soc/qcom/qdsp6/Makefile | 8 + sound/soc/qcom/qdsp6/q6adm.c | 635 ++++++++++ sound/soc/qcom/qdsp6/q6adm.h | 25 + sound/soc/qcom/qdsp6/q6afe-dai.c | 752 +++++++++++ sound/soc/qcom/qdsp6/q6afe.c | 1071 ++++++++++++++++ sound/soc/qcom/qdsp6/q6afe.h | 193 +++ sound/soc/qcom/qdsp6/q6asm-dai.c | 632 ++++++++++ sound/soc/qcom/qdsp6/q6asm.c | 1312 ++++++++++++++++++++ sound/soc/qcom/qdsp6/q6asm.h | 69 + sound/soc/qcom/qdsp6/q6core.c | 380 ++++++ 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 + 34 files changed, 7502 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,q6core.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.16.2 _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel Reviewed-by: Rob Herring Reviewed-by: Rob Herring