From patchwork Thu Oct 27 07:12:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengdong.lin@linux.intel.com X-Patchwork-Id: 9399173 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9A1FD60231 for ; Thu, 27 Oct 2016 10:53:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8D5A72A074 for ; Thu, 27 Oct 2016 10:53:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 816922A0A1; Thu, 27 Oct 2016 10:53:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B50BD2A074 for ; Thu, 27 Oct 2016 10:53:27 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 9054926738B; Thu, 27 Oct 2016 12:53:26 +0200 (CEST) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 5E4AD26739D; Thu, 27 Oct 2016 12:51:08 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 64B6226731C; Thu, 27 Oct 2016 09:11:15 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by alsa0.perex.cz (Postfix) with ESMTP id 89AE726688A for ; Thu, 27 Oct 2016 09:11:09 +0200 (CEST) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga103.fm.intel.com with ESMTP; 27 Oct 2016 00:11:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,404,1473145200"; d="scan'208";a="24196279" Received: from amanda-haswell-pc.sh.intel.com ([10.239.159.21]) by fmsmga006.fm.intel.com with ESMTP; 27 Oct 2016 00:11:05 -0700 From: mengdong.lin@linux.intel.com To: alsa-devel@alsa-project.org Date: Thu, 27 Oct 2016 15:12:23 +0800 Message-Id: <03075fbd4e3aed4033075e005f260dda3d348979.1477549962.git.mengdong.lin@linux.intel.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: References: Cc: Mengdong Lin , tiwai@suse.de, hardik.t.shah@intel.com, guneshwor.o.singh@intel.com, liam.r.girdwood@linux.intel.com, vinod.koul@intel.com, broonie@kernel.org, mengdong.lin@intel.com Subject: [alsa-devel] [PATCH 08/22] topology: Define a function to build a single physical DAI link X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Mengdong Lin Code refactoring. Rename the function to build all physical links from tplg_build_link_config() to tplg_build_links(). And define a new function build_link() to build a single physical DAI link element. The function build_link() will be extended to handle more properties of a physical DAI link (e.g. backend or codec-codec link). Signed-off-by: Mengdong Lin diff --git a/src/topology/parser.c b/src/topology/parser.c index 7b2c879..ded2eb7 100644 --- a/src/topology/parser.c +++ b/src/topology/parser.c @@ -271,11 +271,11 @@ static int tplg_build_integ(snd_tplg_t *tplg) if (err < 0) return err; - err = tplg_build_link_cfg(tplg, SND_TPLG_TYPE_BE); + err = tplg_build_links(tplg, SND_TPLG_TYPE_BE); if (err < 0) return err; - err = tplg_build_link_cfg(tplg, SND_TPLG_TYPE_CC); + err = tplg_build_links(tplg, SND_TPLG_TYPE_CC); if (err < 0) return err; diff --git a/src/topology/pcm.c b/src/topology/pcm.c index 64c8fd9..08f2ca8 100644 --- a/src/topology/pcm.c +++ b/src/topology/pcm.c @@ -148,12 +148,31 @@ static int tplg_build_stream_cfg(snd_tplg_t *tplg, return 0; } +static int build_link(snd_tplg_t *tplg, struct tplg_elem *elem) +{ + struct snd_soc_tplg_link_config *link = elem->link; + struct tplg_elem *ref_elem = NULL; + struct snd_soc_tplg_link_cmpnt *codec, *cmpnt; + struct tplg_ref *ref; + struct list_head *base, *pos; + int i, num_hw_configs = 0, err = 0; + + err = tplg_build_stream_cfg(tplg, link->stream, + link->num_streams); + if (err < 0) + return err; + + /* add link to manifest */ + tplg->manifest.dai_link_elems++; + + return 0; +} + /* build BE/CC DAI link configurations */ -int tplg_build_link_cfg(snd_tplg_t *tplg, unsigned int type) +int tplg_build_links(snd_tplg_t *tplg, unsigned int type) { struct list_head *base, *pos; struct tplg_elem *elem; - struct snd_soc_tplg_link_config *link; int err = 0; switch (type) { @@ -175,9 +194,7 @@ int tplg_build_link_cfg(snd_tplg_t *tplg, unsigned int type) return -EINVAL; } - link = elem->link; - err = tplg_build_stream_cfg(tplg, link->stream, - link->num_streams); + err = build_link(tplg, elem); if (err < 0) return err; } diff --git a/src/topology/tplg_local.h b/src/topology/tplg_local.h index 3aa51ee..548f42d 100644 --- a/src/topology/tplg_local.h +++ b/src/topology/tplg_local.h @@ -284,6 +284,6 @@ int tplg_add_bytes(snd_tplg_t *tplg, struct snd_tplg_bytes_template *bytes_ctl, struct tplg_elem **e); int tplg_build_pcms(snd_tplg_t *tplg, unsigned int type); -int tplg_build_link_cfg(snd_tplg_t *tplg, unsigned int type); +int tplg_build_links(snd_tplg_t *tplg, unsigned int type); int tplg_add_link_object(snd_tplg_t *tplg, snd_tplg_obj_template_t *t); int tplg_add_pcm_object(snd_tplg_t *tplg, snd_tplg_obj_template_t *t);