Received: by 10.223.164.202 with SMTP id h10csp274258wrb; Thu, 9 Nov 2017 06:12:43 -0800 (PST) X-Google-Smtp-Source: ABhQp+Tdnt7dItW+MTdA0TUGR0jYCFrzpkCojgLawnP9OvbbnEwDRx4Nt+oe6R7ty98n9SwAPFSp X-Received: by 10.101.88.140 with SMTP id d12mr631050pgu.166.1510236763120; Thu, 09 Nov 2017 06:12:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510236763; cv=none; d=google.com; s=arc-20160816; b=wuoQrx+lB6fq/VFGMoYIkVLmCc5OWqZsypaqVTLjk+a9Tnw3U9pw/scn87RU70AGuC UBafMkM8ollAvmrmjfL4pclaDKHlK092lo3Emgrvt9pfwchSd1zCZP7MloYvVqiqQT5z nexgWBosaaVZbJkoo7xW14tnJFVcaZNv86uGGkBuk0tcWCKCb4bWflEPcFXj6mgfWD8H xwFpDNNCFI1/eOz4l/rT+77eicepUg/lJKZg3MnQ6EHvI3MrlBpDQoMCyD4aaOzDGsSn 0mEzHCXgKqljXqcbjBANqtJYJgos9E8gCVZh3heQ3kUaRXVlHSl1//Ay+9JiABDfR/1W F9+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=Rp2vdqhqEExS2T5C+ZbttFApYpm3+hUu/PLqoaBqpVc=; b=bJxG4dHBgXoxPDZBATzY2ZbaB9NtSHfzNgIPGf+9vMptX8O9Z7SumFWrl6oSM+hlkQ YEPc1rbpv6/CdWvTrqVmYb7kItrII94lsUjtdVXkhe6xRIKP4l2d5GEyjvOVgc2sWIOH EvGbM0xm2Aw+ab30z8n13x0l9y6qFoVe7xO1z4tc8L2w6pu/rnCMG+WlERFgrK6UVXXC 2QGXfpCLMKN7RCeXsJulbZCzzKY2paBRVQ058Wt+t9mtQxJ0AWqON1yDcdAk+ASxBvUh Q0nNczc9bVEtzKDs1nSuETUxg954bY0AMEDwrIdHxQzXH6P6Pc/SpCYeTIRNvmH4U6p7 rx3g== ARC-Authentication-Results: i=1; mx.google.com; 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 p5si6285836pgs.84.2017.11.09.06.12.31; Thu, 09 Nov 2017 06:12:43 -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; 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 S1754833AbdKIOLw (ORCPT + 80 others); Thu, 9 Nov 2017 09:11:52 -0500 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:16647 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752759AbdKIOLu (ORCPT ); Thu, 9 Nov 2017 09:11:50 -0500 Received: from pps.filterd (m0046037.ppops.net [127.0.0.1]) by mx07-.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id vA9DxKsV001523; Thu, 9 Nov 2017 15:08:59 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2e4p118ycg-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Thu, 09 Nov 2017 15:08:59 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 82B4431; Thu, 9 Nov 2017 14:08:58 +0000 (GMT) Received: from Webmail-eu.st.com (Safex1hubcas22.st.com [10.75.90.92]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 5A57824A5; Thu, 9 Nov 2017 14:08:58 +0000 (GMT) Received: from SAFEX1HUBCAS23.st.com (10.75.90.47) by Safex1hubcas22.st.com (10.75.90.92) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 9 Nov 2017 15:08:58 +0100 Received: from localhost (10.201.23.16) by webmail-ga.st.com (10.75.90.48) with Microsoft SMTP Server (TLS) id 14.3.352.0; Thu, 9 Nov 2017 15:08:57 +0100 From: Olivier Moysan To: , , , , , , , , , , , , , CC: , Subject: [PATCH 2/2] ASoC: add mclk-fs support to audio graph card Date: Thu, 9 Nov 2017 15:07:58 +0100 Message-ID: <1510236478-2351-3-git-send-email-olivier.moysan@st.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1510236478-2351-1-git-send-email-olivier.moysan@st.com> References: <1510236478-2351-1-git-send-email-olivier.moysan@st.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.201.23.16] X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-11-09_04:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add mclk-fs support to audio graph card as it was previously implemented in simple card. Signed-off-by: Olivier Moysan --- sound/soc/generic/audio-graph-card.c | 47 ++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c index 488c52f..1b61642 100644 --- a/sound/soc/generic/audio-graph-card.c +++ b/sound/soc/generic/audio-graph-card.c @@ -29,7 +29,9 @@ struct graph_card_data { struct graph_dai_props { struct asoc_simple_dai cpu_dai; struct asoc_simple_dai codec_dai; + unsigned int mclk_fs; } *dai_props; + unsigned int mclk_fs; struct snd_soc_dai_link *dai_link; struct gpio_desc *pa_gpio; }; @@ -95,9 +97,43 @@ static void asoc_graph_card_shutdown(struct snd_pcm_substream *substream) asoc_simple_card_clk_disable(&dai_props->codec_dai); } +static int asoc_graph_card_hw_params(struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) +{ + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct snd_soc_dai *codec_dai = rtd->codec_dai; + struct snd_soc_dai *cpu_dai = rtd->cpu_dai; + struct graph_card_data *priv = snd_soc_card_get_drvdata(rtd->card); + struct graph_dai_props *dai_props = graph_priv_to_props(priv, rtd->num); + unsigned int mclk, mclk_fs = 0; + int ret = 0; + + if (priv->mclk_fs) + mclk_fs = priv->mclk_fs; + else if (dai_props->mclk_fs) + mclk_fs = dai_props->mclk_fs; + + if (mclk_fs) { + mclk = params_rate(params) * mclk_fs; + ret = snd_soc_dai_set_sysclk(codec_dai, 0, mclk, + SND_SOC_CLOCK_IN); + if (ret && ret != -ENOTSUPP) + goto err; + + ret = snd_soc_dai_set_sysclk(cpu_dai, 0, mclk, + SND_SOC_CLOCK_OUT); + if (ret && ret != -ENOTSUPP) + goto err; + } + return 0; +err: + return ret; +} + static const struct snd_soc_ops asoc_graph_card_ops = { .startup = asoc_graph_card_startup, .shutdown = asoc_graph_card_shutdown, + .hw_params = asoc_graph_card_hw_params, }; static int asoc_graph_card_dai_init(struct snd_soc_pcm_runtime *rtd) @@ -146,10 +182,7 @@ static int asoc_graph_card_dai_link_of(struct device_node *cpu_port, if (ret < 0) goto dai_link_of_err; - /* - * we need to consider "mclk-fs" around here - * see simple-card - */ + of_property_read_u32(rcpu_ep, "mclk-fs", &dai_props->mclk_fs); ret = asoc_simple_card_parse_graph_cpu(cpu_ep, dai_link); if (ret < 0) @@ -217,10 +250,8 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv) if (ret < 0) return ret; - /* - * we need to consider "mclk-fs" around here - * see simple-card - */ + /* Factor to mclk, used in hw_params() */ + of_property_read_u32(node, "mclk-fs", &priv->mclk_fs); of_for_each_phandle(&it, rc, node, "dais", NULL, 0) { ret = asoc_graph_card_dai_link_of(it.node, priv, idx++); -- 1.9.1 From 1583626259599329589@xxx Thu Nov 09 21:41:30 +0000 2017 X-GM-THRID: 1583193190987872787 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread