From patchwork Tue May 1 12:07:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 134756 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp4880856lji; Tue, 1 May 2018 05:10:30 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpfXJ3dzgiRUBYwyO6HpjL8wEfuj7xBwFlQvvPRoGoYxxHFuHvvyiEXqdRZmBeac35I4scQ X-Received: by 2002:a63:5f14:: with SMTP id t20-v6mr12498366pgb.400.1525176630265; Tue, 01 May 2018 05:10:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525176630; cv=none; d=google.com; s=arc-20160816; b=ZjjL0cTLibzOGlhJyEDOK3mENErxUiEtcdNfhI2I8a25k3Uz/+IAPnhlDwLeHy6QPa E8W0Yd2WA1QAEeVplYwcXYQfYNip0+H0B3oKCVaxZV25kUoavtgVRHSQxafofWKNT1F0 b7qLCxf3+1362382dOPTICu956npwO8U8t65duEKKMO0QU0eEqJwdNLOzfQ9aGEZHxsL CWo6bMMoIUsjWry0uroMlCjiuFmumk9tyMEPxH/z/p/ap6lStIjaJqj/FWJH5Nf3K5w9 sjk7Hyxfi1CQ4piSj+dHizqk22HuMkkIINXORvP7FJ0Q/f6jI1oLyvGJEbhNb1RUB763 KTGQ== 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=zVa/810lKQYfMuQEM7xxJUg2mOGg/VISCLJH7mdUeDQ=; b=tIJvyFNBm+isev587SUt21qy5Xn7DmPSYRQhyjzYKDTP5ON1ZxNy/zXyobfyDjjdLX Eb6gmnLO6/U9Isgxq0ctj32J8LjEXKDhbpojSqiuYYr/0v9d32nXSrp2D+rmy8psdYiY /5VhO07aa2dioZJE0z1qPbzoeeOYPh7aM3/idRJiPbZ0rz7lkeoftxlvtd8Gl62e6ukj RRW0qJwrqSw4WyhV7tKyniVoILvliCDCdgZEa0Pa4l2Xfc7Y0tZ0bAlgpJOrZCRj6Ca/ 42mDQ7Q+uAUQGtnCKB654dJCwglXdhHP/qzoJpsPjkYoVcbrw6tIQId75o03k4eVLDpB //zQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=SqRcqh0u; 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 bg3-v6si9049103plb.118.2018.05.01.05.10.30; Tue, 01 May 2018 05:10:30 -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=SqRcqh0u; 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 S1754970AbeEAMK2 (ORCPT + 6 others); Tue, 1 May 2018 08:10:28 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:52916 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754907AbeEAMK0 (ORCPT ); Tue, 1 May 2018 08:10:26 -0400 Received: by mail-wm0-f67.google.com with SMTP id m70so17099851wma.2 for ; Tue, 01 May 2018 05:10:25 -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=5RJ6vOeD4OYkEFFFgB35lGkoi0ukAD6UiHKxwBINnaY=; b=SqRcqh0u4dl3oEBLSQuz69n2V4XSTBssgi9GTw2/WLvx0/G3uz9lyq4h+iTll54Cd2 XIdMrCdfMskJxO8egN2aihNepPOW7ibtoq/zmJEpR5WZrZ6mN3ndPMyDjpkcsC5rNI10 61tMFWyA2UnmQU0L2S8uIpHR0AvVy5zqWG6Zo= 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=5RJ6vOeD4OYkEFFFgB35lGkoi0ukAD6UiHKxwBINnaY=; b=SRczqEDWF/2g9QrjOOdzu7i60tb6JxC6fiNPVk8+TlzhZG9afURzIhnrO7Acjrcdal 4nl80iMFMcpnAW9GeDnt2KBKqEbJ8Vbp4spPvl2Ca212U4aWamwboX0UuZAd6OJmgUDU xNC0DUbPcrm+swjfKWJwr2yE4/6u7kF3MmSKQh0LWtagsC8lsjT1LHVU0Y5l4w/ysnr4 n2ZGCGLTXKxHd1KA/hT405MVPLLXQLqzIm6xIHyNBBkVIkPEEuSqxUN1IQ6P3TCfyl6f OVkbQlPd75yX1B3BcO8D3Q2SDUnNeGRjBTS5/T2nvTFdYtEXsuOvj0BX5Ahv6cOejZfY zjCw== X-Gm-Message-State: ALQs6tC77+fQbUfbsT9yp74gwOUYWKJCrcrJQE4DRoHXVsbsO4ua0VtS cgllPK45S8f9obhF6+9csL2J9Q== X-Received: by 10.28.227.132 with SMTP id a126mr10951222wmh.93.1525176624721; Tue, 01 May 2018 05:10:24 -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 r200sm14565124wmb.39.2018.05.01.05.10.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 01 May 2018 05:10:23 -0700 (PDT) From: Srinivas Kandagatla 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 Cc: gregkh@linuxfoundation.org, david.brown@linaro.org, mark.rutland@arm.com, lgirdwood@gmail.com, plai@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 v7 00/24] ASoC: qcom: Add support to QDSP based Audio Date: Tue, 1 May 2018 13:07:56 +0100 Message-Id: <20180501120820.11016-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 Thankyou everyone for providing feedback and testing v6 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 v6 (https://lkml.org/lkml/2018/4/26/264) - Added relevant acks and reviewed-by tags. - Update apr_pkt_send and callbacks to take structures instead of void * suggested by Bjorn - Updated q6afe bindings to explain clearly on grandchild dai node bindings, suggested by Rob H. - Fixed few typos in APR commit msg spotted by Mark B. - rebased patchset on top of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/?h=for-next 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 | 104 ++ .../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 | 378 ++++++ 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 | 128 ++ 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 | 636 +++++++++ sound/soc/qcom/qdsp6/q6adm.h | 25 + sound/soc/qcom/qdsp6/q6afe-dai.c | 752 +++++++++++ sound/soc/qcom/qdsp6/q6afe.c | 1046 +++++++++++++++ sound/soc/qcom/qdsp6/q6afe.h | 193 +++ sound/soc/qcom/qdsp6/q6asm-dai.c | 628 +++++++++ sound/soc/qcom/qdsp6/q6asm.c | 1401 ++++++++++++++++++++ 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 | 983 ++++++++++++++ sound/soc/qcom/qdsp6/q6routing.h | 9 + 34 files changed, 7572 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 -- 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 Reviewed-by: Rob Herring Reviewed-by: Banajit Goswami Reviewed-by: Banajit Goswami Reviewed-by: Banajit Goswami Reviewed-by: Banajit Goswami Reviewed-by: Bjorn Andersson Acked-by: Banajit Goswami Acked-by: Banajit Goswami Acked-by: Banajit Goswami Reviewed-by: Banajit Goswami Acked-by: Banajit Goswami Acked-by: Banajit Goswami