From patchwork Wed Apr 22 04:48:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 11502899 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AB353913 for ; Wed, 22 Apr 2020 04:48:27 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 867062072D for ; Wed, 22 Apr 2020 04:48:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="tDhDPuAc" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 867062072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=renesas.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:To: Subject:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=6QSlU0tWhNzs7GvDKzxrnx3rxsfKxAaJG6xnH+XhAOE=; b=tDhDPuAcnjtD1v +z4Z4KaGxICAUmOr8ubEnGTF4a0eVg/aACFa+NmU+t8KNPoupw8yjPxdPcpwXIhKX/AHdxr+r5qQS 37iOitflCRzBb6sPIslDACmwv0Z+9XAuW4+v+AiQXLH9+3cuLbtBKgyVLqtcRw3fMjqpKuqAo6P3d MMCoaDcaFxBaCTKfAp7Sa9rHMaaScykVO3mZl1xHzTVA96zWFNNTjhlccIE8/res/5WwF1h1tFkIH PQC/yD0rdC/+CKmpD4zocV8lE5L/WE+sZVDHSiWXbJUKDw6WEF2dyiVoIOtL7q3RZHH0hPyy0UWrj kQa5cpmZ8wa/Wu0pX5NA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7J9-0006k4-MN; Wed, 22 Apr 2020 04:48:23 +0000 Received: from relmlor2.renesas.com ([210.160.252.172] helo=relmlie6.idc.renesas.com) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7Iu-0006Xl-2v; Wed, 22 Apr 2020 04:48:10 +0000 Date: 22 Apr 2020 13:48:06 +0900 X-IronPort-AV: E=Sophos;i="5.72,412,1580742000"; d="scan'208";a="45169016" Received: from unknown (HELO relmlir6.idc.renesas.com) ([10.200.68.152]) by relmlie6.idc.renesas.com with ESMTP; 22 Apr 2020 13:48:06 +0900 Received: from mercury.renesas.com (unknown [10.166.252.133]) by relmlir6.idc.renesas.com (Postfix) with ESMTP id F3EEA41C1DAA; Wed, 22 Apr 2020 13:48:05 +0900 (JST) Message-ID: <87blnkunw9.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 1/4] ASoC: mediatek: don't use snd_soc_rtdcom_lookup() User-Agent: Wanderlust/2.15.9 Emacs/25.2 Mule/6.0 To: Mark Brown In-Reply-To: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> References: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200421_214808_478806_4693D042 X-CRM114-Status: GOOD ( 11.75 ) X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [210.160.252.172 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kate Stewart , Cezary Rojewski , Jie Yang , alsa-devel@alsa-project.org, Jaroslav Kysela , Liam Girdwood , Richard Fontana , Shunli Wang , YueHaibing , Pierre-Louis Bossart , Jiaxin Yu , linux-arm-kernel@lists.infradead.org, Vijendar Mukunda , Stephen Boyd , linux-mediatek@lists.infradead.org, Eason Yen , Matthias Brugger , Thomas Gleixner , Allison Randal , Takashi Iwai , Ravulapati Vishnu vardhan rao , Colin Ian King Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org From: Kuninori Morimoto We shouldn't use snd_soc_rtdcom_lookup() as much as possible. It works today, but, will not work in the future if we support multi CPU/Codec/Platform, because 1 rtd might have multiple same driver named component. mediatek drivers are using snd_soc_rtdcom_lookup() at afe->memif_fs and/or afe->irq_fs to get component. But, caller knows it via dai->component. We don't need to use snd_soc_rtdcom_lookup(). This patch fixup it. Signed-off-by: Kuninori Morimoto --- sound/soc/mediatek/common/mtk-afe-fe-dai.c | 12 +++++------- sound/soc/mediatek/common/mtk-afe-fe-dai.h | 3 ++- sound/soc/mediatek/common/mtk-base-afe.h | 6 ++++-- sound/soc/mediatek/mt2701/mt2701-afe-pcm.c | 6 ++++-- sound/soc/mediatek/mt6797/mt6797-afe-pcm.c | 11 ++++------- sound/soc/mediatek/mt8173/mt8173-afe-pcm.c | 7 ++++--- sound/soc/mediatek/mt8183/mt8183-afe-pcm.c | 11 ++++------- 7 files changed, 27 insertions(+), 29 deletions(-) diff --git a/sound/soc/mediatek/common/mtk-afe-fe-dai.c b/sound/soc/mediatek/common/mtk-afe-fe-dai.c index 375e3b492922..8ee7206aa63d 100644 --- a/sound/soc/mediatek/common/mtk-afe-fe-dai.c +++ b/sound/soc/mediatek/common/mtk-afe-fe-dai.c @@ -162,7 +162,7 @@ int mtk_afe_fe_hw_params(struct snd_pcm_substream *substream, } /* set rate */ - ret = mtk_memif_set_rate_substream(substream, id, rate); + ret = mtk_memif_set_rate_substream(dai->component, substream, id, rate); if (ret) { dev_err(afe->dev, "%s(), error, id %d, set rate %d, ret %d\n", __func__, id, rate, ret); @@ -225,7 +225,7 @@ int mtk_afe_fe_trigger(struct snd_pcm_substream *substream, int cmd, irq_data->irq_cnt_shift); /* set irq fs */ - fs = afe->irq_fs(substream, runtime->rate); + fs = afe->irq_fs(dai->component, substream, runtime->rate); if (fs < 0) return -EINVAL; @@ -502,12 +502,10 @@ int mtk_memif_set_rate(struct mtk_base_afe *afe, } EXPORT_SYMBOL_GPL(mtk_memif_set_rate); -int mtk_memif_set_rate_substream(struct snd_pcm_substream *substream, +int mtk_memif_set_rate_substream(struct snd_soc_component *component, + struct snd_pcm_substream *substream, int id, unsigned int rate) { - struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = - snd_soc_rtdcom_lookup(rtd, AFE_PCM_NAME); struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component); int fs = 0; @@ -518,7 +516,7 @@ int mtk_memif_set_rate_substream(struct snd_pcm_substream *substream, return -EINVAL; } - fs = afe->memif_fs(substream, rate); + fs = afe->memif_fs(component, substream, rate); if (fs < 0) return -EINVAL; diff --git a/sound/soc/mediatek/common/mtk-afe-fe-dai.h b/sound/soc/mediatek/common/mtk-afe-fe-dai.h index 8cec90671827..d8fab806dbd0 100644 --- a/sound/soc/mediatek/common/mtk-afe-fe-dai.h +++ b/sound/soc/mediatek/common/mtk-afe-fe-dai.h @@ -44,7 +44,8 @@ int mtk_memif_set_channel(struct mtk_base_afe *afe, int id, unsigned int channel); int mtk_memif_set_rate(struct mtk_base_afe *afe, int id, unsigned int rate); -int mtk_memif_set_rate_substream(struct snd_pcm_substream *substream, +int mtk_memif_set_rate_substream(struct snd_soc_component *component, + struct snd_pcm_substream *substream, int id, unsigned int rate); int mtk_memif_set_format(struct mtk_base_afe *afe, int id, snd_pcm_format_t format); diff --git a/sound/soc/mediatek/common/mtk-base-afe.h b/sound/soc/mediatek/common/mtk-base-afe.h index a8cf44d98244..c5e3c680332d 100644 --- a/sound/soc/mediatek/common/mtk-base-afe.h +++ b/sound/soc/mediatek/common/mtk-base-afe.h @@ -97,9 +97,11 @@ struct mtk_base_afe { unsigned int num_dai_drivers; const struct snd_pcm_hardware *mtk_afe_hardware; - int (*memif_fs)(struct snd_pcm_substream *substream, + int (*memif_fs)(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate); - int (*irq_fs)(struct snd_pcm_substream *substream, + int (*irq_fs)(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate); int (*get_dai_fs)(struct mtk_base_afe *afe, int dai_id, unsigned int rate); diff --git a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c index f0250b0dd734..456f3a0b98f9 100644 --- a/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c +++ b/sound/soc/mediatek/mt2701/mt2701-afe-pcm.c @@ -491,7 +491,8 @@ static int mt2701_dlm_fe_trigger(struct snd_pcm_substream *substream, } } -static int mt2701_memif_fs(struct snd_pcm_substream *substream, +static int mt2701_memif_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { struct snd_soc_pcm_runtime *rtd = substream->private_data; @@ -505,7 +506,8 @@ static int mt2701_memif_fs(struct snd_pcm_substream *substream, return fs; } -static int mt2701_irq_fs(struct snd_pcm_substream *substream, unsigned int rate) +static int mt2701_irq_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { return mt2701_afe_i2s_fs(rate); } diff --git a/sound/soc/mediatek/mt6797/mt6797-afe-pcm.c b/sound/soc/mediatek/mt6797/mt6797-afe-pcm.c index 7f930556d961..7a0bbaaad677 100644 --- a/sound/soc/mediatek/mt6797/mt6797-afe-pcm.c +++ b/sound/soc/mediatek/mt6797/mt6797-afe-pcm.c @@ -136,23 +136,20 @@ static const struct snd_pcm_hardware mt6797_afe_hardware = { .fifo_size = 0, }; -static int mt6797_memif_fs(struct snd_pcm_substream *substream, +static int mt6797_memif_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = - snd_soc_rtdcom_lookup(rtd, AFE_PCM_NAME); struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component); int id = asoc_rtd_to_cpu(rtd, 0)->id; return mt6797_rate_transform(afe->dev, rate, id); } -static int mt6797_irq_fs(struct snd_pcm_substream *substream, unsigned int rate) +static int mt6797_irq_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { - struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = - snd_soc_rtdcom_lookup(rtd, AFE_PCM_NAME); struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component); return mt6797_general_rate_transform(afe->dev, rate); diff --git a/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c b/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c index 1e3f2d786066..6262e2c69107 100644 --- a/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c +++ b/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c @@ -479,11 +479,11 @@ static int mt8173_afe_hdmi_trigger(struct snd_pcm_substream *substream, int cmd, } } -static int mt8173_memif_fs(struct snd_pcm_substream *substream, +static int mt8173_memif_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, AFE_PCM_NAME); struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component); struct mtk_base_afe_memif *memif = &afe->memif[asoc_rtd_to_cpu(rtd, 0)->id]; int fs; @@ -509,7 +509,8 @@ static int mt8173_memif_fs(struct snd_pcm_substream *substream, return fs; } -static int mt8173_irq_fs(struct snd_pcm_substream *substream, unsigned int rate) +static int mt8173_irq_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { return mt8173_afe_i2s_fs(rate); } diff --git a/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c b/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c index c8ded53bde1d..5071f38fba29 100644 --- a/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c +++ b/sound/soc/mediatek/mt8183/mt8183-afe-pcm.c @@ -139,23 +139,20 @@ static const struct snd_pcm_hardware mt8183_afe_hardware = { .fifo_size = 0, }; -static int mt8183_memif_fs(struct snd_pcm_substream *substream, +static int mt8183_memif_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = - snd_soc_rtdcom_lookup(rtd, AFE_PCM_NAME); struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component); int id = asoc_rtd_to_cpu(rtd, 0)->id; return mt8183_rate_transform(afe->dev, rate, id); } -static int mt8183_irq_fs(struct snd_pcm_substream *substream, unsigned int rate) +static int mt8183_irq_fs(struct snd_soc_component *component, + struct snd_pcm_substream *substream, unsigned int rate) { - struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = - snd_soc_rtdcom_lookup(rtd, AFE_PCM_NAME); struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component); return mt8183_general_rate_transform(afe->dev, rate); From patchwork Wed Apr 22 04:48:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 11502903 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B92A3913 for ; Wed, 22 Apr 2020 04:48:46 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7B8FE2072D for ; Wed, 22 Apr 2020 04:48:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="iTOQJIuD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7B8FE2072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=renesas.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:To: Subject:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=u5HJttIBLUQQZheerOFncXC/ewqpvR55fev9YAXbWTk=; b=iTOQJIuDsu5Ei6 VA8U7aUpWVK47+dxze2kbsJxQYMHR/ENoIW+k31q8dYPXTGrT9PvXlrwDtOKPMg2hRYf0dfzQ6Pnw pWsiOTVmXDtg0Ajamdd/94Hthf4fBNhkuCKxgJ/71GxekrPRqmwvm0kOYfC29TjsVQDgpQWcVSSdt JMQWFr02jdmkfZCaprnqsLLFs13ueq2A1pR4BGk581ogAskdCESo1hjaXwHeBbyIDVDTpDnTQ+Pl6 aqRsYGFDfpIDyAzxdmXJ0nMsxXQB+8hurl3/5EY80/uqedrPqlN05SKjGFygWCCpVbdxjIppK2+IH e6KxUWkMx1FAE8c9xrlA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7JU-00070J-DH; Wed, 22 Apr 2020 04:48:44 +0000 Received: from relmlor2.renesas.com ([210.160.252.172] helo=relmlie6.idc.renesas.com) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7Iy-0006Xl-K6; Wed, 22 Apr 2020 04:48:14 +0000 Date: 22 Apr 2020 13:48:12 +0900 X-IronPort-AV: E=Sophos;i="5.72,412,1580742000"; d="scan'208";a="45169025" Received: from unknown (HELO relmlir6.idc.renesas.com) ([10.200.68.152]) by relmlie6.idc.renesas.com with ESMTP; 22 Apr 2020 13:48:12 +0900 Received: from mercury.renesas.com (unknown [10.166.252.133]) by relmlir6.idc.renesas.com (Postfix) with ESMTP id ECC9E41C1D93; Wed, 22 Apr 2020 13:48:11 +0900 (JST) Message-ID: <87a734unw4.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 2/4] ASoC: intel: baytrail: don't use snd_soc_rtdcom_lookup() User-Agent: Wanderlust/2.15.9 Emacs/25.2 Mule/6.0 To: Mark Brown In-Reply-To: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> References: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200421_214812_897756_138E3019 X-CRM114-Status: UNSURE ( 9.87 ) X-CRM114-Notice: Please train this message. X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [210.160.252.172 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kate Stewart , Cezary Rojewski , Jie Yang , alsa-devel@alsa-project.org, Jaroslav Kysela , Liam Girdwood , Richard Fontana , Shunli Wang , YueHaibing , Pierre-Louis Bossart , Jiaxin Yu , linux-arm-kernel@lists.infradead.org, Vijendar Mukunda , Stephen Boyd , linux-mediatek@lists.infradead.org, Eason Yen , Matthias Brugger , Thomas Gleixner , Allison Randal , Takashi Iwai , Ravulapati Vishnu vardhan rao , Colin Ian King Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org From: Kuninori Morimoto We shouldn't use snd_soc_rtdcom_lookup() as much as possible. It works today, but, will not work in the future if we support multi CPU/Codec/Platform, because 1 rtd might have multiple same driver named component. intel baytrail driver is using it, but we can avoid it easily by having component pointer at sst_byt_pcm_data. This patch removes snd_soc_rtdcom_lookup() from this driver. Signed-off-by: Kuninori Morimoto --- sound/soc/intel/baytrail/sst-baytrail-pcm.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sound/soc/intel/baytrail/sst-baytrail-pcm.c b/sound/soc/intel/baytrail/sst-baytrail-pcm.c index 53383055c8dc..dbd830375bc4 100644 --- a/sound/soc/intel/baytrail/sst-baytrail-pcm.c +++ b/sound/soc/intel/baytrail/sst-baytrail-pcm.c @@ -36,6 +36,7 @@ static const struct snd_pcm_hardware sst_byt_pcm_hardware = { /* private data for each PCM DSP stream */ struct sst_byt_pcm_data { struct sst_byt_stream *stream; + struct snd_soc_component *component; struct snd_pcm_substream *substream; struct mutex mutex; @@ -119,12 +120,11 @@ static int sst_byt_pcm_hw_params(struct snd_soc_component *component, return 0; } -static int sst_byt_pcm_restore_stream_context(struct snd_pcm_substream *substream) +static int sst_byt_pcm_restore_stream_context(struct sst_byt_pcm_data *pcm_data) { - struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct snd_soc_pcm_runtime *rtd = pcm_data->substream->private_data; + struct snd_soc_component *component = pcm_data->component; struct sst_byt_priv_data *pdata = snd_soc_component_get_drvdata(component); - struct sst_byt_pcm_data *pcm_data = &pdata->pcm[substream->stream]; struct sst_byt *byt = pdata->byt; int ret; @@ -149,7 +149,7 @@ static void sst_byt_pcm_work(struct work_struct *work) container_of(work, struct sst_byt_pcm_data, work); if (snd_pcm_running(pcm_data->substream)) - sst_byt_pcm_restore_stream_context(pcm_data->substream); + sst_byt_pcm_restore_stream_context(pcm_data); } static int sst_byt_pcm_trigger(struct snd_soc_component *component, @@ -198,7 +198,7 @@ static u32 byt_notify_pointer(struct sst_byt_stream *stream, void *data) struct snd_pcm_substream *substream = pcm_data->substream; struct snd_pcm_runtime *runtime = substream->runtime; struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct snd_soc_component *component = pcm_data->component; struct sst_byt_priv_data *pdata = snd_soc_component_get_drvdata(component); struct sst_byt *byt = pdata->byt; u32 pos, hw_pos; @@ -242,6 +242,7 @@ static int sst_byt_pcm_open(struct snd_soc_component *component, mutex_lock(&pcm_data->mutex); pcm_data->substream = substream; + pcm_data->component = component; snd_soc_set_runtime_hwparams(substream, &sst_byt_pcm_hardware); From patchwork Wed Apr 22 04:48:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 11502913 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 96356913 for ; Wed, 22 Apr 2020 04:49:27 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 74E722072D for ; Wed, 22 Apr 2020 04:49:27 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="tUjTNWA5" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 74E722072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=renesas.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:To: Subject:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=QyCF0Fd6jsWszdXy4PwWgQKq2rg08KR86l/JE6kGB84=; b=tUjTNWA5H/741/ JX7zjETxvEkZGTb31QgbeyRngNrweCJyjNTAd7idb/WNsPqIHTNuyYTq09S+LvBiTE2rkWJjGn4Zs hIffOXIfFAt6iOOcFdQmMGt/76JyDMrUGKRHP4fG42avmn19YEDhRolLZ3KLBKA//GARWQPROqGl6 PGiNyVSc4QAI/EdmsLFwKUJ+D1GbADEbw1qSQoSVDJjt5JBCVODAD3gt6HsL1Vv/np80HPPdXuh5v BEFysV3FIYKk+Q98heuzjlJpNPor11K4oN31YmWxZ8JP+ZZ1QhrQaDb8/Cb7soIgsb1mrdgx2dp0Y X+JPuhc91h7s/J18pM+w==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7K8-0007dh-Lx; Wed, 22 Apr 2020 04:49:24 +0000 Received: from relmlor1.renesas.com ([210.160.252.171] helo=relmlie5.idc.renesas.com) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7J3-0006ep-MD; Wed, 22 Apr 2020 04:48:20 +0000 Date: 22 Apr 2020 13:48:16 +0900 X-IronPort-AV: E=Sophos;i="5.72,412,1580742000"; d="scan'208";a="45382387" Received: from unknown (HELO relmlir6.idc.renesas.com) ([10.200.68.152]) by relmlie5.idc.renesas.com with ESMTP; 22 Apr 2020 13:48:16 +0900 Received: from mercury.renesas.com (unknown [10.166.252.133]) by relmlir6.idc.renesas.com (Postfix) with ESMTP id 78D7841C00DA; Wed, 22 Apr 2020 13:48:16 +0900 (JST) Message-ID: <878siounvz.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 3/4] ASoC: intel: haswell: don't use snd_soc_rtdcom_lookup() User-Agent: Wanderlust/2.15.9 Emacs/25.2 Mule/6.0 To: Mark Brown In-Reply-To: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> References: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200421_214817_848050_899F25EA X-CRM114-Status: UNSURE ( 9.11 ) X-CRM114-Notice: Please train this message. X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [210.160.252.171 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kate Stewart , Cezary Rojewski , Jie Yang , alsa-devel@alsa-project.org, Jaroslav Kysela , Liam Girdwood , Richard Fontana , Shunli Wang , YueHaibing , Pierre-Louis Bossart , Jiaxin Yu , linux-arm-kernel@lists.infradead.org, Vijendar Mukunda , Stephen Boyd , linux-mediatek@lists.infradead.org, Eason Yen , Matthias Brugger , Thomas Gleixner , Allison Randal , Takashi Iwai , Ravulapati Vishnu vardhan rao , Colin Ian King Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org From: Kuninori Morimoto We shouldn't use snd_soc_rtdcom_lookup() as much as possible. It works today, but, will not work in the future if we support multi CPU/Codec/Platform, because 1 rtd might have multiple same driver named component. intel haswell driver is using it, but we can avoid it easily by having component pointer at hsw_pcm_data. This patch removes snd_soc_rtdcom_lookup() from this driver. Signed-off-by: Kuninori Morimoto --- sound/soc/intel/haswell/sst-haswell-pcm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sound/soc/intel/haswell/sst-haswell-pcm.c b/sound/soc/intel/haswell/sst-haswell-pcm.c index c183f8e94ee4..15e94dae45de 100644 --- a/sound/soc/intel/haswell/sst-haswell-pcm.c +++ b/sound/soc/intel/haswell/sst-haswell-pcm.c @@ -108,6 +108,7 @@ struct hsw_pcm_data { struct snd_pcm *hsw_pcm; u32 volume[2]; struct snd_pcm_substream *substream; + struct snd_soc_component *component; struct snd_compr_stream *cstream; unsigned int wpos; struct mutex mutex; @@ -696,7 +697,7 @@ static u32 hsw_notify_pointer(struct sst_hsw_stream *stream, void *data) struct snd_pcm_substream *substream = pcm_data->substream; struct snd_pcm_runtime *runtime = substream->runtime; struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct snd_soc_component *component = pcm_data->component; struct hsw_priv_data *pdata = snd_soc_component_get_drvdata(component); struct sst_hsw *hsw = pdata->hsw; u32 pos; @@ -798,6 +799,7 @@ static int hsw_pcm_open(struct snd_soc_component *component, pm_runtime_get_sync(pdata->dev); pcm_data->substream = substream; + pcm_data->component = component; snd_soc_set_runtime_hwparams(substream, &hsw_pcm_hardware); From patchwork Wed Apr 22 04:48:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 11502915 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1429C913 for ; Wed, 22 Apr 2020 04:49:30 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C32662072D for ; Wed, 22 Apr 2020 04:49:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="jWWcXRC9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C32662072D Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=renesas.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:To: Subject:From:Message-ID:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=qth0gch3fQmA4xIQpUTcy6+iZp4RGn3F0ST8/YpqeGg=; b=jWWcXRC9IWOxzO 3vLps10zXe6dzgk/Fr+f82bhPRRD1OCISAEYavZomZGJu6BmoGEvmOBXRZEZyrn7FQ0nZRPiz6T13 DRRZOHbNOCp42LEBNvbzn856xrqyMUdQ58ldRTDXhMSNvRYrLI7nY8G1OubaHojy1viq6Z6jo5Vay DYBUzsBqIdQM0JeNDy4O4jCzzBFFKJokyJAeyn6ppgs7+1hnSYH0goU5JdgQUy/pzNhO6ObD/3ODC /9sFebLsOQ3aF2t1esbQn5DFukY6Zqpo2DFE8CAbpsRF/w5AmolbCmOPg1XIqOX2wme6fxtn6SFUp I3sKfHmEQrV8Fwb+a+OQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7KB-0007gv-74; Wed, 22 Apr 2020 04:49:27 +0000 Received: from relmlor1.renesas.com ([210.160.252.171] helo=relmlie5.idc.renesas.com) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jR7J8-0006ep-It; Wed, 22 Apr 2020 04:48:24 +0000 Date: 22 Apr 2020 13:48:22 +0900 X-IronPort-AV: E=Sophos;i="5.72,412,1580742000"; d="scan'208";a="45382396" Received: from unknown (HELO relmlir6.idc.renesas.com) ([10.200.68.152]) by relmlie5.idc.renesas.com with ESMTP; 22 Apr 2020 13:48:22 +0900 Received: from mercury.renesas.com (unknown [10.166.252.133]) by relmlir6.idc.renesas.com (Postfix) with ESMTP id D985541C1DB1; Wed, 22 Apr 2020 13:48:21 +0900 (JST) Message-ID: <877dy8unvu.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 4/4] ASoC: amd: don't use snd_soc_rtdcom_lookup() User-Agent: Wanderlust/2.15.9 Emacs/25.2 Mule/6.0 To: Mark Brown In-Reply-To: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> References: <87d080unyx.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200421_214822_761469_C1870A1F X-CRM114-Status: UNSURE ( 7.80 ) X-CRM114-Notice: Please train this message. X-Spam-Score: 0.0 (/) X-Spam-Report: SpamAssassin version 3.4.4 on bombadil.infradead.org summary: Content analysis details: (0.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [210.160.252.171 listed in list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kate Stewart , Cezary Rojewski , Jie Yang , alsa-devel@alsa-project.org, Jaroslav Kysela , Liam Girdwood , Richard Fontana , Shunli Wang , YueHaibing , Pierre-Louis Bossart , Jiaxin Yu , linux-arm-kernel@lists.infradead.org, Vijendar Mukunda , Stephen Boyd , linux-mediatek@lists.infradead.org, Eason Yen , Matthias Brugger , Thomas Gleixner , Allison Randal , Takashi Iwai , Ravulapati Vishnu vardhan rao , Colin Ian King Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+patchwork-linux-mediatek=patchwork.kernel.org@lists.infradead.org From: Kuninori Morimoto We shouldn't use snd_soc_rtdcom_lookup() as much as possible. It works today, but, will not work in the future if we support multi CPU/Codec/Platform, because 1 rtd might have multiple same driver named component. acp3x-pcm-dma driver is using snd_soc_rtdcom_lookup() at open/close() to get component by using DRV_NAME. But, lookuped "component" and function parameter "component" are same. We don't need to use snd_soc_rtdcom_lookup(). This patch fixup it. Signed-off-by: Kuninori Morimoto --- sound/soc/amd/raven/acp3x-pcm-dma.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sound/soc/amd/raven/acp3x-pcm-dma.c b/sound/soc/amd/raven/acp3x-pcm-dma.c index e362f0bc9e46..8a892ade1f40 100644 --- a/sound/soc/amd/raven/acp3x-pcm-dma.c +++ b/sound/soc/amd/raven/acp3x-pcm-dma.c @@ -211,14 +211,11 @@ static int acp3x_dma_open(struct snd_soc_component *component, struct snd_pcm_substream *substream) { struct snd_pcm_runtime *runtime; - struct snd_soc_pcm_runtime *prtd; struct i2s_dev_data *adata; struct i2s_stream_instance *i2s_data; int ret; runtime = substream->runtime; - prtd = substream->private_data; - component = snd_soc_rtdcom_lookup(prtd, DRV_NAME); adata = dev_get_drvdata(component->dev); i2s_data = kzalloc(sizeof(*i2s_data), GFP_KERNEL); if (!i2s_data) @@ -337,11 +334,8 @@ static int acp3x_dma_mmap(struct snd_soc_component *component, static int acp3x_dma_close(struct snd_soc_component *component, struct snd_pcm_substream *substream) { - struct snd_soc_pcm_runtime *prtd; struct i2s_dev_data *adata; - prtd = substream->private_data; - component = snd_soc_rtdcom_lookup(prtd, DRV_NAME); adata = dev_get_drvdata(component->dev);