From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B76EFC43381 for ; Fri, 15 Feb 2019 02:43:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 870182192B for ; Fri, 15 Feb 2019 02:43:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1550198582; bh=N9Fz3BVOoXVEcEtRYVMw5vIqIDwOANZocd22GITVcYs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=FOUj0DEELd2ggMzYvLRB0zfGNzD4hUaHr3ken2IKUa5iT7MMPGV5wTSMqHLB81lr/ rwmRB3J5rJgXrvmo2TrMchW/TreL2CwRZjlOAs4C1lBCPY0Ze6y2GSgGVAsxhTAJdn AdwL3DDM+UjPHR9jvDxgZzJ+mpLnLjIxeZsTGfhA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726102AbfBOCm4 (ORCPT ); Thu, 14 Feb 2019 21:42:56 -0500 Received: from mail.kernel.org ([198.145.29.99]:49300 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731485AbfBOCJG (ORCPT ); Thu, 14 Feb 2019 21:09:06 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0DCF2222D9; Fri, 15 Feb 2019 02:09:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1550196545; bh=N9Fz3BVOoXVEcEtRYVMw5vIqIDwOANZocd22GITVcYs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aj6gTNoDS6lGgehRN74cxqDy9yPGPFuX5hmgwSRzWnNyiMuGsyNwqtjbo3c9o4fZ2 Dje986bZZq9Kz5iKtXrj9FLCLd4nXOng1BZOkiMrdRSkLHm/I6HFBWRkQmnCY9/wYQ qTjxEH/lTYWnELPZx5pDc5rNZvuPHQe6qQF+4G+I= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ajit Pandey , Rohit kumar , Mark Brown , Sasha Levin Subject: [PATCH AUTOSEL 4.20 06/77] ASoC: soc-core: defer card probe until all component is added to list Date: Thu, 14 Feb 2019 21:07:44 -0500 Message-Id: <20190215020855.176727-6-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190215020855.176727-1-sashal@kernel.org> References: <20190215020855.176727-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Ajit Pandey [ Upstream commit 8780cf1142a59568a3aa77959cbd76b2edb6fd81 ] DAI component probe is not called if it is not present in component list during sound card registration. Check if component is available in component list for platform and cpu dai before soundcard registration. Signed-off-by: Ajit Pandey Signed-off-by: Rohit kumar Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/soc-core.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index b29d0f65611e..74b12f90ea9b 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1027,7 +1027,6 @@ static int snd_soc_init_platform(struct snd_soc_card *card, struct snd_soc_dai_link *dai_link) { struct snd_soc_dai_link_component *platform = dai_link->platform; - /* * FIXME * @@ -1129,6 +1128,14 @@ static int soc_init_dai_link(struct snd_soc_card *card, link->name); return -EINVAL; } + + /* + * Defer card registartion if platform dai component is not added to + * component list. + */ + if (!soc_find_component(link->platform->of_node, link->platform->name)) + return -EPROBE_DEFER; + /* * CPU device may be specified by either name or OF node, but * can be left unspecified, and will be matched based on DAI @@ -1140,6 +1147,14 @@ static int soc_init_dai_link(struct snd_soc_card *card, link->name); return -EINVAL; } + + /* + * Defer card registartion if cpu dai component is not added to + * component list. + */ + if (!soc_find_component(link->cpu_of_node, link->cpu_name)) + return -EPROBE_DEFER; + /* * At least one of CPU DAI name or CPU device name/node must be * specified -- 2.19.1