From patchwork Wed Apr 18 15:31:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 133638 Delivered-To: patch@linaro.org Received: by 10.46.66.142 with SMTP id h14csp35343ljf; Wed, 18 Apr 2018 08:36:00 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/U5/nJh9m8rU7C3ef5EwoULH2AqcF0tBNcUXyx6xhQzHciQE95o6/X8jBDCfvpzjp5wQ4l X-Received: by 10.167.128.194 with SMTP id a2mr2422026pfn.130.1524065760354; Wed, 18 Apr 2018 08:36:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524065760; cv=none; d=google.com; s=arc-20160816; b=tg01JwpkLRnKcq4jACW3GK86S+KnmLlBCni4qclXGwvlVUto9xHDS+cXVU9cRIzGTc aMyIRp7nHfqRPvfc3CTzY+LVLg/pczEQLvbVdK5Esvt1uI8P9nCRuQeiUjMbNOpUe6CV dr7Q4yHfz0SxcL4JCKJXkWo/PyB3ISkRx57m6kAUKS6sgeATnPqH3AwyLp1DvBpLgvPJ A8kvgnvfs6LqLGQlppPnK7YTw8Xmv+Z8r7B3PbwZRfjh8QTUlXyWP0M1gKxHkRUirdOc +cg23g5ITvUaKkYdmeOCMr76m+PXPY4PZbzqUm7TMdNgC+uXvgns9sVHEjNX88M8j17Q CfGg== 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=ftekE2/7TZXAjb2xend5LX4rPpxa0Zj1hx29jTFGV5g=; b=u17STdZNi9vJcT3mh208XZrJFeMtE575ZnLyQVWAfgUFiTA880szV3FHSiyvuM17TO jm2bt+6GQoYtBnNWM1148XFswybH/sq3Z1NyKG5ySILT+Evi6Dmyvl71qGW+mPTfcAM/ UpNstLaBvaLfsCok1KU/M7D7lMfeObWWtjNvKirEsmdI0eaRxmB0LOW935ETvzUvggBl Vl3DJK2X8Z6L2hOigKCKkf9BtB+tX8q9t/TVjprWOMAHP5ck6jEeX1EQCx5NjvbJc7da HipZj3N8hNukYXX32d3Y1EONefKe8Yv8RZfbz0DMNfIfAOxubofbAVf9sqoZjfG0f6Tn o6aw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Hn0c6eLD; 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 e63si1277577pfg.344.2018.04.18.08.36.00; Wed, 18 Apr 2018 08:36:00 -0700 (PDT) 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=Hn0c6eLD; 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 S1752599AbeDRPf6 (ORCPT + 6 others); Wed, 18 Apr 2018 11:35:58 -0400 Received: from mail-wr0-f193.google.com ([209.85.128.193]:39072 "EHLO mail-wr0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752096AbeDRPf5 (ORCPT ); Wed, 18 Apr 2018 11:35:57 -0400 Received: by mail-wr0-f193.google.com with SMTP id q6-v6so6042510wrd.6 for ; Wed, 18 Apr 2018 08:35:56 -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=9EnCiOeYSIl/GqlIy3NOJ+ihvohwchpbM6dKX1Im4GY=; b=Hn0c6eLDhzexfz8HR7ktOhgc9F+tAB0ListwTftQczlHZ+ucXHNK8LoLb6a5mXQ4dl jSI+tVJ14opUIHDAY4x/LsrdSOELAtU6UeSEHbL1qog/dpan3Jg+vDJ5hyG743g/gQ49 1u3a3q1eZxiaxOdh9U7ILrffPRYMKLOwAMFvE= 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=9EnCiOeYSIl/GqlIy3NOJ+ihvohwchpbM6dKX1Im4GY=; b=FrSd1zanub+fpOK9fgAHDysWx5UccAKLG2JMUycb99ecalR24Sc6kcl1EXp1SefNa0 COxbyB74IjjSXac5IJefJUDdmyIBLVZ3/behTj6xlaM+MdJCjRggaV17gNyWc0HZkuSa /Vnr3bTwEfp9jYBn6eECdwgGCyLJIp13BAaJ6Lk1GEA1eh+Ak19ZgMmObFbJpZItZhpO H8TF3MMpTsWwbjhJ/t0MiutwTGGvJe3X0TQ8wMvR1qlyv+OeTOAXu4Wf+TrAEMgSDRng O5GWQfy9IQXhiiOePRUamZOf/9d0dPD6rWtgoqquNE8oa1OKr4vlimpXXqNnBjUx0u+Q dZiw== X-Gm-Message-State: ALQs6tCBUFBAC2rLl9ggsY/rxViJbswowQDFNojCQmjmOo7ig8ImrjJI yYOKvfzIu5n69jLDb5IifpOILg== X-Received: by 2002:adf:d1d1:: with SMTP id m17-v6mr2073563wri.96.1524065755821; Wed, 18 Apr 2018 08:35:55 -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 x67sm2529314wma.23.2018.04.18.08.35.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 18 Apr 2018 08:35:54 -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 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 Subject: [PATCH v5 00/23] ASoC: qcom: Add support to QDSP based Audio Date: Wed, 18 Apr 2018 16:31:34 +0100 Message-Id: <20180418153157.1960-1-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.16.2 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 v4 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-v5 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 v4 (https://lkml.org/lkml/2018/3/9/1207) - Updated dt bindings as suggested by Rob H. - removed dt patch as db820c requires some more display dt patches to get hdmi audio. - remove static flags in q6core as suggested by Rohit. - add Rohits tested and reviewed tag - fixed few static checker warnings. - use NULL topology flag as suggested by Rohit. Thanks, srini Srinivas Kandagatla (23): 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 MAINTAINERS: Add myself as co-maintainer of qcom audio .../devicetree/bindings/soc/qcom/qcom,apr.txt | 85 ++ .../devicetree/bindings/sound/qcom,apq8096.txt | 76 ++ .../devicetree/bindings/sound/qcom,q6adm.txt | 33 + .../devicetree/bindings/sound/qcom,q6afe.txt | 88 ++ .../devicetree/bindings/sound/qcom,q6asm.txt | 33 + MAINTAINERS | 1 + drivers/soc/qcom/Kconfig | 9 + drivers/soc/qcom/Makefile | 1 + drivers/soc/qcom/apr.c | 385 ++++++ 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 | 132 ++ 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 | 633 ++++++++++ sound/soc/qcom/qdsp6/q6adm.h | 25 + sound/soc/qcom/qdsp6/q6afe-dai.c | 752 +++++++++++ sound/soc/qcom/qdsp6/q6afe.c | 1068 ++++++++++++++++ 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 | 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 + 33 files changed, 7444 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 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 -- 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