Received: by 10.223.176.5 with SMTP id f5csp582394wra; Wed, 7 Feb 2018 04:16:57 -0800 (PST) X-Google-Smtp-Source: AH8x2260IUOILDQajdQjr4Hc4Hdc6hXuBv5SAuY/XSRZ5TehpWQ8+ZlekP2KWGFdfxlilEf3wKth X-Received: by 10.98.47.193 with SMTP id v184mr5786969pfv.90.1518005817325; Wed, 07 Feb 2018 04:16:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518005817; cv=none; d=google.com; s=arc-20160816; b=KoHIQXPg9DD4r9oLNx5xy0N1fCCI6LzY98ymSalYHhy+tdf9Yig8u9LVRg52hUzQ2l LLVY8pbMt63xSWCfogBgJ5s3hePmK4tazPMjU/TLgHDbiflZ530PSV//JsQx65r18lJp ESYlkES6CFZNfxounBGqZCO6rOQYpz8u9Oex/uR2JB5cSXtjGLcEDr3etjOSKq7mB5b2 umVjfXxTn+8WcIxsT1ZNK20PmVA0cC6Wsfq+kiPwBuU0w0qFZDcMXGqzul//E8Ml2kb4 BBb/DlVllcwY44tNEUhf1yFtGEBrwrwmAHsqfGd7L6q+Krh52+dsX7AbBOBTBPqBIdsb EYcw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-language :content-transfer-encoding:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dmarc-filter :dkim-signature:dkim-signature:arc-authentication-results; bh=TXiUy2YhNWHABvTjxhThBmSZjbeJrfrfb0c1FugK+xI=; b=GjtdgKV2BNvlwq2UrZYiqoP4kzFfncSo1tliNrJVx+rf0OFuR/FHOFS6rsgEXHF1g2 I5Wnn2ahKao9wT/PoYLM3sTl07yUvEfcrWNaSqhu0ZdNFm3L47g+QStCfX7MD9wnCMKm 3g0rsmDEByoKfmLTHU4OQf7oT/mE72p6Rt6RUpRXK5qyWANDr/rgLNYnwYtaxauwwfsZ PqIoTWv1NclmYvwSKmlSlJnTiLNU9/eZBy+XvS/jJ5jUPMii57/cIg0G/oWeMfaPoiUL 4H5mR6WiHfOnEnIg5AMVX5OF6UhHI57IkHzApsl9aCC8mUvf4ewyae85WvaXFutqGWMs lpEA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=MJak5OBb; dkim=pass header.i=@codeaurora.org header.s=default header.b=NIoP0bqK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o15si871377pgc.48.2018.02.07.04.16.42; Wed, 07 Feb 2018 04:16:57 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=MJak5OBb; dkim=pass header.i=@codeaurora.org header.s=default header.b=NIoP0bqK; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753809AbeBGMQD (ORCPT + 99 others); Wed, 7 Feb 2018 07:16:03 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:48116 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753539AbeBGMQB (ORCPT ); Wed, 7 Feb 2018 07:16:01 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 2D11C60117; Wed, 7 Feb 2018 12:16:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1518005761; bh=LYAFt3SiHC6pZD7TTu8N4Zxlp3pee2zsGLoKfT6Ry38=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=MJak5OBb+PVoEZbxdqXoNEt8gEPlaMEWPZdqars5u7D80iE47u3Uw4YAbQpdSzIid moh1ghQx9C+DmZo3BKJdipJX0AKLOxJN4FIKD88Djmgf0DamtK36CVrD+PqxPTu6Zo KAhl0dtS7jN7+89i+eRM2dws1b9cA/6eaiXlGAWQ= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from [10.204.110.93] (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: rohitkr@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id D57D660117; Wed, 7 Feb 2018 12:15:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1518005760; bh=LYAFt3SiHC6pZD7TTu8N4Zxlp3pee2zsGLoKfT6Ry38=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=NIoP0bqKROiHBbz590HR6gDDexajNJa+cLvW/41ZO+seuWLUhSZO/Vja81USOrlnn +L0L0bE1twsf3SACWaszjre6q8PoZHlfnImedywre8Pv2rxLiskaaFfZnQEK4vHfxw FgTO/fBYK24OEHnBUELCbfKoskwcmdQoKs8BTi7g= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org D57D660117 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=rohitkr@codeaurora.org Subject: Re: [alsa-devel] [RESEND PATCH v2 09/15] ASoC: qcom: qdsp6: Add support to Q6CORE To: srinivas.kandagatla@linaro.org, Andy Gross , Mark Brown , linux-arm-msm@vger.kernel.org, alsa-devel@alsa-project.org Cc: Mark Rutland , devicetree@vger.kernel.org, Banajit Goswami , linux-kernel@vger.kernel.org, Patrick Lai , Takashi Iwai , sboyd@codeaurora.org, Liam Girdwood , David Brown , Rob Herring , linux-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: <20171214173402.19074-1-srinivas.kandagatla@linaro.org> <20171214173402.19074-10-srinivas.kandagatla@linaro.org> From: Rohit Kumar Message-ID: <39d78468-db2b-05ce-9602-c76b083d7f75@codeaurora.org> Date: Wed, 7 Feb 2018 17:45:53 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20171214173402.19074-10-srinivas.kandagatla@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/14/2017 11:03 PM, srinivas.kandagatla@linaro.org wrote: > From: Srinivas Kandagatla > > This patch adds support to core apr service, which is used to query > status of other static and dynamic services on the dsp. > > Signed-off-by: Srinivas Kandagatla > --- > sound/soc/qcom/Kconfig | 5 + > sound/soc/qcom/qdsp6/Makefile | 1 + > sound/soc/qcom/qdsp6/q6core.c | 227 ++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 233 insertions(+) > create mode 100644 sound/soc/qcom/qdsp6/q6core.c > > diff --git a/sound/soc/qcom/Kconfig b/sound/soc/qcom/Kconfig > index 7ebdb879a8a3..121b9c957024 100644 > --- a/sound/soc/qcom/Kconfig > +++ b/sound/soc/qcom/Kconfig > @@ -56,11 +56,16 @@ config SND_SOC_QDSP6_ASM > tristate > default n > > +config SND_SOC_QDSP6_CORE > + tristate > + default n > + > config SND_SOC_QDSP6 > tristate "SoC ALSA audio driver for QDSP6" > select SND_SOC_QDSP6_AFE > select SND_SOC_QDSP6_ADM > select SND_SOC_QDSP6_ASM > + select SND_SOC_QDSP6_CORE > help > To add support for MSM QDSP6 Soc Audio. > This will enable sound soc platform specific > diff --git a/sound/soc/qcom/qdsp6/Makefile b/sound/soc/qcom/qdsp6/Makefile > index 49dd3ccab27b..ad7f10691e54 100644 > --- a/sound/soc/qcom/qdsp6/Makefile > +++ b/sound/soc/qcom/qdsp6/Makefile > @@ -1,3 +1,4 @@ > obj-$(CONFIG_SND_SOC_QDSP6_AFE) += q6afe.o > obj-$(CONFIG_SND_SOC_QDSP6_ADM) += q6adm.o > obj-$(CONFIG_SND_SOC_QDSP6_ASM) += q6asm.o > +obj-$(CONFIG_SND_SOC_QDSP6_CORE) += q6core.o > diff --git a/sound/soc/qcom/qdsp6/q6core.c b/sound/soc/qcom/qdsp6/q6core.c > new file mode 100644 > index 000000000000..d4e2dbc62489 > --- /dev/null > +++ b/sound/soc/qcom/qdsp6/q6core.c > @@ -0,0 +1,227 @@ > +/* SPDX-License-Identifier: GPL-2.0 > +* Copyright (c) 2017, Linaro Limited > +*/ > +#include > +#include > +#include > +#include > +#include > +#include [..] > + > + dev_set_drvdata(&adev->dev, core); > + > + core->adev = adev; > + init_waitqueue_head(&core->wait); > + > + do { > + if (!q6core_is_adsp_ready(core)) { > + dev_info(&adev->dev, "ADSP Audio isn't ready\n"); > + } else { > + dev_info(&adev->dev, "ADSP Audio is ready\n"); > + If q6core_is_adsp_ready() return failure, then we should not call and ADSP API. > + ret = q6core_get_svc_versions(core); > + if (!ret) > + q6core_add_static_services(core); > + > + break; > + } > + } while (time_after(timeout, jiffies)); > + I think we should defer probe if q6core_is_adsp_ready() returns failure and timeouts. > + return ret; > +} > + > +static int q6core_exit(struct apr_device *adev) > +{ > + return 0; > +} > + > +static const struct apr_device_id core_id[] = { > + {"Q6CORE", APR_DOMAIN_ADSP, APR_SVC_ADSP_CORE, APR_CLIENT_AUDIO}, > + { }, > +}; > + > +static struct apr_driver qcom_q6core_driver = { > + .probe = q6core_probe, > + .remove = q6core_exit, > + .callback = core_callback, > + .id_table = core_id, > + .driver = { > + .name = "qcom-q6core", > + }, > +}; > + > +module_apr_driver(qcom_q6core_driver); > + > +MODULE_AUTHOR("Srinivas Kandagatla +MODULE_DESCRIPTION("q6 core"); > +MODULE_LICENSE("GPL v2");