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: 11502901 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 58F10913 for ; Wed, 22 Apr 2020 04:48:36 +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 1022A2072D for ; Wed, 22 Apr 2020 04:48:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="hnoDPZM9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1022A2072D 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-arm-kernel-bounces+patchwork-linux-arm=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=kfnJCdgToohKeLaIfLyi77iOQTgyMSmwhWb5QAof0ZU=; b=hnoDPZM9sH+2+h VPopYRwU3AD3935I/6+c878On1MEqMFAB8mbOftU3qC69GWCJKCuZa2bPP29pSfBr2wXUYQPnl+ee U+DAD9st06SzRfqpEmR4eF9t6wYwujuv++y+U4o2YkMfzTLFIHmq+mciNadgENqaVTMSXXPp3V5yH 6p/GnMODlqDVP+EQL29MjV2VQ6PqC9gY5mudjYt+KxsRnCERJ70Z4RNQMWqxvlF1xcJy7Dnpjenbf WVMXJfIfTq93D03min6u/g/baxgS55ZdxFOhvOqaEtil0qxfPDbXCUSx0jNtkZvqrBRdkLzQCQTlH MKV1Bff7rToZrGUfoviA==; 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 1jR7JE-0006nQ-Qr; Wed, 22 Apr 2020 04:48:28 +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-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=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);