From patchwork Sat Mar 10 02:24:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 131256 Delivered-To: patch@linaro.org Received: by 10.46.66.2 with SMTP id p2csp1690194lja; Fri, 9 Mar 2018 18:27:48 -0800 (PST) X-Google-Smtp-Source: AG47ELvxV+VXyaa2QlFemZs8f6nV2xG7FWYSClqV3CcaJBkaebsFoTEWdzqeqt3m09gmgNcsrxAT X-Received: by 2002:a17:902:b58d:: with SMTP id a13-v6mr603199pls.123.1520648868046; Fri, 09 Mar 2018 18:27:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520648868; cv=none; d=google.com; s=arc-20160816; b=YAUn/9bhKRIehtFvb+n2BoPNIBBCTRNCUmGjUVYKpk5YCmMe7R3Rwo6AIHzI8BWGp3 iuxD483EcEJIvIUxOwYg7ECROg238FpZJ2em7ipDWUZuyteP8XnLfDaeINAhuBCcBbDF i0yNnOHiIxo+ccAlfIMOPrrlXvF7MNDv1YXwVOsCQkHqrRT2zW5DTx70rYi079Tn3Zhp 2ZCz5+R5tGPiC7OkWnRYWqe+ujU8jsnfpwpc6tonYuFMCuu+lVS6YONCY2GJN10dJtHq q3yYDsAU96qeAMBZZzWiJX9IOu76XSljthBEpl2wk1hw7Zat2VEDOKYqDAdM/Yr9jVuF DqGg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=ksutWxKMpmGt2XTqzmJEL8bVan28s5/6AFY5Jgx96iI=; b=Fp4X/lkts8HixjcUprs4PHWhSP0B2lZxPhFeoAzVUAOW+aino3XnDOChSKdLxTN3s1 eD0RTtubvCsPGedrVrcSBm35ma5NGL802H1UiwkfiYr+czcE+fG4FUnx7h+2Br8Aktsn aWpPI/1XdgiRC1Nd8/de49nMgv1evmwcs+XpTHoal1QmnGh7uxNlGt/8E7NryP0bmHQT oAbLrZEo9wIJS+Mv5maf5TxyY/RbG/OdXVU+GmzLoZe60vCczuwhyNdmi3xXQonK+aAx kzw/30u8/+T0YIMpVnQoB09Zm2nisA1bmQ6oV3RNA7+/zhIRs4EiFSMsz707awdl/FQz aNAg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=T97RTaBv; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r20si1623702pgu.423.2018.03.09.18.27.46; Fri, 09 Mar 2018 18:27:48 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=T97RTaBv; spf=pass (google.com: best guess record for domain of devicetree-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932257AbeCJC1p (ORCPT + 6 others); Fri, 9 Mar 2018 21:27:45 -0500 Received: from mail-wr0-f194.google.com ([209.85.128.194]:44077 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751434AbeCJC1n (ORCPT ); Fri, 9 Mar 2018 21:27:43 -0500 Received: by mail-wr0-f194.google.com with SMTP id v65so10675690wrc.11 for ; Fri, 09 Mar 2018 18:27:43 -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=FmOk4ag6ygCIh3kRQvSOEpIrbzyL/lG42jdfNF0lpJk=; b=T97RTaBv1IFPP5H45jGPsaccMG9JaAim8Cd1vXNpDBlHhHHQxyHi60OlS6GBXugnAq +GRDgQga99oyX5EoLDLt6aoIDrGzg018VXdwadresA8UaJ5MWKObk6PJ70yqh6TnJ/kY 49FpeyFf31P+9FOhyAl3Y60Elu41hQYycVQ+M= 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=FmOk4ag6ygCIh3kRQvSOEpIrbzyL/lG42jdfNF0lpJk=; b=Sqg+C1t5ZGvChv+nDBqKP57nQGUUiujaPb8IL/wtA8+7l0Vy/B7MUMUBlELxlva8Jf T9SmIVgcXCiWo+4mdAmzWrRwUWu5DWOnplx0RyOrDA/4kgKwFq5JyM9DV1FrQk6a5d9E 07TkD5IOHqFm0609BqZbjgGniTPbn6pSoqZP0lV5IL2imeuqq9SPUWJNMSG4YSDc74Jf nmn+XAfp0PSBvbGUmpT3/dhcBH+oveltvStR5zQ7I5vKgkbiFT/muP562A28l2EqeMy9 K8AyG1x6uaqrxt7tYildzegk5kZa9SnQN1J6CBbsyvYlL8FLFKdYzutwGTE2cnkpLWdm xx8w== X-Gm-Message-State: AElRT7HIxr/dKBlnwE+W+OvemjjeFJwuD/UCPH0ntMbstuO2mptNNujl +SHF+cq2vUdXs07FbWfikSDmhA== X-Received: by 10.223.139.68 with SMTP id v4mr433851wra.23.1520648862420; Fri, 09 Mar 2018 18:27:42 -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 g78sm21489wmc.31.2018.03.09.18.27.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 09 Mar 2018 18:27:41 -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, robh+dt@kernel.org Cc: gregkh@linuxfoundation.org, david.brown@linaro.org, mark.rutland@arm.com, lgirdwood@gmail.com, plai@codeaurora.org, bgoswami@codeaurora.org, tiwai@suse.com, perex@perex.cz, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, rohkumar@qti.qualcomm.com, spatakok@qti.qualcomm.com, srinivas.kandagatla@linaro.org Subject: [PATCH v4 00/24] ASoC: qcom: Add support to QDSP based Audio Date: Sat, 10 Mar 2018 02:24:32 +0000 Message-Id: <20180310022456.26739-1-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.15.1 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org From: Srinivas Kandagatla 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 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html