From nobody Mon Feb 9 01:51:38 2026 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5B4E12F5483 for ; Fri, 14 Nov 2025 07:37:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763105838; cv=none; b=XN9KpeVL5A3K7kHxAVaB+6/XuEGgN5g1TtJUIVNrYCnGW9GZF/dhjDJ58zsShTFec2FN8jffv1xjWGq7/UiV68GAZNuP5gpLRrm8safQaD4FM5L8LTAhrUmLxNmv4ksr3KLf6U0VRITW+qFlyS2XZAZtooeUmrUIOYbqfoCxIOk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763105838; c=relaxed/simple; bh=J9vYEEJ0ofDcK3w+0OVyzsMDUwW8p6/8bi02TKiPxZE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YPAmKer7az1iiqFlwtDNx6NOj6nfgnbmoyj3T8W1vvLbjjMXA4ZN2u4ED9aPvGOiZ3VyYAr4/ziG4NW5Yf2tLE9QNET1FeOMt4qRfQoxzLA8oIXAULZc+YGcl91qzyfryUfqITxTFIj8hUlCEyzqQbfQ7nFHEcGMSWvIxTtsnLw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nJXUqQX5; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nJXUqQX5" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-471191ac79dso17569285e9.3 for ; Thu, 13 Nov 2025 23:37:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763105834; x=1763710634; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0XTGvkxq+nuQadYmIzavB9udHbiTVbQTpJTHk/QQiaY=; b=nJXUqQX5VDnECRhkOhgVFh9EvJFCyMZo9wmxOq00AzflATNsDMfOgZvjnNi8byMN08 EvgqsUa5W5lwYFyLcFStu+t7sMumemU6/PGKnCxJpwgfDQfLmB4jan4ttNr4NI7lSl2L ySXCvxFpRtfteZg8rDqsc2JnCRzYryvX/W3U0AcbHaoDTnTuKVSkrleK71P+gVxv3+X/ QLP42ii1NTl77DgIKaEUnnM+K8Qu/IERTbFM4RhJsKZFggwlvPFent/e7V9knXPUOP63 sHG8e7wgdBglvGIRp2CDTayiPkP2exiyeaU+tkVl2yVNQJf9WnGTv9ZOIpo2t9pOURxR Gxcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763105834; x=1763710634; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=0XTGvkxq+nuQadYmIzavB9udHbiTVbQTpJTHk/QQiaY=; b=r2LjLrVnpcvMtk5VhDbR8FLIRrdmw9YtHz5rle0tBRKiJ8RpEyumofWsgkjEuuhtwj lwEIdwIdIRvpNZfl+2hZAXTiBQXVUamulEA5mGK5opdji4MJENp04D/cTgWJ8VLFo6Ta Uucnp/CyL0kwdGeZYLBXpH7w3WWfa1ES5m1zIKB0ZRTynT5Tfix2LA4+0y6y3gFzdbx7 C/M12EUMs/sN57p+yVTlFZhcOVh23YCqyvY1ksl73wgUbKj+xwnVY98JwuWZvh3Yn0c2 7Xz7GTigqVbrbu3zUXu99SdYVNCr6dwHTcgaV2xyoiYExIDb1FgmFlCzLy/V1RNYnSFZ Bu6Q== X-Forwarded-Encrypted: i=1; AJvYcCUnxZxz+zpEUk4Utviw3X4bKc3GvIYWRnQj/C6J5nI5MV04ynCt8QUxTve8yRfwX7uNU8sPR/H7LU9VOFw=@vger.kernel.org X-Gm-Message-State: AOJu0YwMeZiibzaka1F2v4xXac+WEq1630u2Q4eUworGEdm7qXpb+T9N 9Sqf7pGZ0n/S+EceV8ssWxWtydBfHg+tAGntU9njswPfJX9IDDyHHRun X-Gm-Gg: ASbGnct+APhiC+/JKzwrBUFon7gkNHeY5GqOFkqL+6Vdw04TYS1ufjDPgL9f/meSCGo QzIZykPQvRZb09QOzPKZuWvJD6SjZbsa7H+DcUrMLuCgYAhNbZtAKDsOLkv2hOD/x28anbaHGaT b25ZFKEPiUqMDGQedIn02h9HPRB54Xp6VlWge7EnQjCykE9FHVVuzQtm9/Kgz1eSPlIBEc9z4w6 wI22IK7jqtebbcBUGT4mNPZ3NArJNeL15jLWrNB6BWF75Zfyar+o5TWuI5+EOg7j6YbfgYtv6nT XlbCsufiS1mqjPilFylXlGcYhykPnRtimbPL9ViI3z4w7KU9abglLHzf34UGkPGV1WCE7mRP9mi PhFUAVJtY0cJhTxREmCT+rb+UOQXDvHdNN04jLSiOZvfN4bX+/f/vRq1NQThP9xAbOZo9OdKdJY ggf3mkXgY+rkjKJ4ikfgIm+/atWzqtwbw6nCfK3TUa7yged4nYAyoLRUTfZ2JaKQtah0mP0uReK 3ner8tk7XxICJAS X-Google-Smtp-Source: AGHT+IEGQiorDLdmzU4wrnBQ18nNZyBqJSTdnUc2AlzmYQPXesWGTMBeszeHumr9XsvOdUY1hWXCzQ== X-Received: by 2002:a05:600c:1382:b0:477:c71:1fc1 with SMTP id 5b1f17b1804b1-4778fe9b394mr19850915e9.19.1763105833330; Thu, 13 Nov 2025 23:37:13 -0800 (PST) Received: from localhost.localdomain (host86-162-200-138.range86-162.btcentralplus.com. [86.162.200.138]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4778c88bee1sm95071825e9.11.2025.11.13.23.37.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 23:37:13 -0800 (PST) From: Biju X-Google-Original-From: Biju To: Biju Das , Lad Prabhakar , Kuninori Morimoto , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai Cc: linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven , Biju Das , stable@kernel.org, Tony Tang Subject: [PATCH v3 1/2] ASoC: renesas: rz-ssi: Fix channel swap issue in full duplex mode Date: Fri, 14 Nov 2025 07:37:05 +0000 Message-ID: <20251114073709.4376-2-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251114073709.4376-1-biju.das.jz@bp.renesas.com> References: <20251114073709.4376-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das The full duplex audio starts with half duplex mode and then switch to full duplex mode (another FIFO reset) when both playback/capture streams available leading to random audio left/right channel swap issue. Fix this channel swap issue by detecting the full duplex condition by populating struct dup variable in startup() callback and synchronize starting both the play and capture at the same time in rz_ssi_start(). Cc: stable@kernel.org Fixes: 4f8cd05a4305 ("ASoC: sh: rz-ssi: Add full duplex support") Co-developed-by: Tony Tang Signed-off-by: Tony Tang Reviewed-by: Kuninori Morimoto Signed-off-by: Biju Das --- v2->v3: * Reduced the indentation by restructuring the tests in rz_ssi_start(). * Retained the tag as change is trivial. v1->v2: * Improved the code logic in rz_ssi_start() by using else if * Collected Rb tag from Morimoto-san --- sound/soc/renesas/rz-ssi.c | 51 ++++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/sound/soc/renesas/rz-ssi.c b/sound/soc/renesas/rz-ssi.c index 81b883e8ac92..62d3222c510f 100644 --- a/sound/soc/renesas/rz-ssi.c +++ b/sound/soc/renesas/rz-ssi.c @@ -133,6 +133,12 @@ struct rz_ssi_priv { bool bckp_rise; /* Bit clock polarity (SSICR.BCKP) */ bool dma_rt; =20 + struct { + bool tx_active; + bool rx_active; + bool one_stream_triggered; + } dup; + /* Full duplex communication support */ struct { unsigned int rate; @@ -332,13 +338,12 @@ static int rz_ssi_start(struct rz_ssi_priv *ssi, stru= ct rz_ssi_stream *strm) bool is_full_duplex; u32 ssicr, ssifcr; =20 - is_full_duplex =3D rz_ssi_is_stream_running(&ssi->playback) || - rz_ssi_is_stream_running(&ssi->capture); + is_full_duplex =3D ssi->dup.tx_active && ssi->dup.rx_active; ssicr =3D rz_ssi_reg_readl(ssi, SSICR); ssifcr =3D rz_ssi_reg_readl(ssi, SSIFCR); if (!is_full_duplex) { ssifcr &=3D ~0xF; - } else { + } else if (ssi->dup.one_stream_triggered) { rz_ssi_reg_mask_setl(ssi, SSICR, SSICR_TEN | SSICR_REN, 0); rz_ssi_set_idle(ssi); ssifcr &=3D ~SSIFCR_FIFO_RST; @@ -374,12 +379,16 @@ static int rz_ssi_start(struct rz_ssi_priv *ssi, stru= ct rz_ssi_stream *strm) SSISR_RUIRQ), 0); =20 strm->running =3D 1; - if (is_full_duplex) - ssicr |=3D SSICR_TEN | SSICR_REN; - else + if (!is_full_duplex) { ssicr |=3D is_play ? SSICR_TEN : SSICR_REN; - - rz_ssi_reg_writel(ssi, SSICR, ssicr); + rz_ssi_reg_writel(ssi, SSICR, ssicr); + } else if (ssi->dup.one_stream_triggered) { + ssicr |=3D SSICR_TEN | SSICR_REN; + rz_ssi_reg_writel(ssi, SSICR, ssicr); + ssi->dup.one_stream_triggered =3D false; + } else { + ssi->dup.one_stream_triggered =3D true; + } =20 return 0; } @@ -915,6 +924,30 @@ static int rz_ssi_dai_set_fmt(struct snd_soc_dai *dai,= unsigned int fmt) return 0; } =20 +static int rz_ssi_startup(struct snd_pcm_substream *substream, + struct snd_soc_dai *dai) +{ + struct rz_ssi_priv *ssi =3D snd_soc_dai_get_drvdata(dai); + + if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) + ssi->dup.tx_active =3D true; + else + ssi->dup.rx_active =3D true; + + return 0; +} + +static void rz_ssi_shutdown(struct snd_pcm_substream *substream, + struct snd_soc_dai *dai) +{ + struct rz_ssi_priv *ssi =3D snd_soc_dai_get_drvdata(dai); + + if (substream->stream =3D=3D SNDRV_PCM_STREAM_PLAYBACK) + ssi->dup.tx_active =3D false; + else + ssi->dup.rx_active =3D false; +} + static bool rz_ssi_is_valid_hw_params(struct rz_ssi_priv *ssi, unsigned in= t rate, unsigned int channels, unsigned int sample_width, @@ -985,6 +1018,8 @@ static int rz_ssi_dai_hw_params(struct snd_pcm_substre= am *substream, } =20 static const struct snd_soc_dai_ops rz_ssi_dai_ops =3D { + .startup =3D rz_ssi_startup, + .shutdown =3D rz_ssi_shutdown, .trigger =3D rz_ssi_dai_trigger, .set_fmt =3D rz_ssi_dai_set_fmt, .hw_params =3D rz_ssi_dai_hw_params, --=20 2.43.0 From nobody Mon Feb 9 01:51:38 2026 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 97B152EDD7D for ; Fri, 14 Nov 2025 07:37:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763105837; cv=none; b=GgAyibxZhFtta6I+q9xhN80eUYSHCoi6IFnCKaK65KXKA8nn4K4ge3Kq6sv4QWlBQhsHQjBAxACIjjYtqlRpssMqrksvlfdYJ0zNr4UBA9Qa2KlmZskyhfxHJDoupkltni6Blp0qRGnb7zSFimWQW7fbW+2OdIRKhjI16Yei448= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763105837; c=relaxed/simple; bh=lkh4hyq/8FMrrYfCa0/mOr7Eugc0cJPJFFjws+uija4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jT+8Pje8lEuqMEUfmBuc5gUt/GCpE9T3RT4Px+pd/9T/Zor1vApi6T/LAh8bCl78CJ7KnV7g7fS0TWqiGlMM8VF+rvyUIhtcuIoXCEmhfutSwDurAFEaGppCVWAkx6TNqfZHfQNLIr3Qjp3mlVC1/qpErNy+g77ndxbOSeDIsnA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Rn2iX/lM; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Rn2iX/lM" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-47117f92e32so13448315e9.1 for ; Thu, 13 Nov 2025 23:37:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763105834; x=1763710634; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eoTzx6hqmV9hM+FsySQPQ7RiL9yBYXtI+clOM6FTZNo=; b=Rn2iX/lMjD7MZyksqzkMLtATEBWoQTh+SXDkAzrUOusBMy+pVYb2cqXE2kQ0zSoAcp dcLO4xmr3fHokyNSpGUav48xpce7xsdZyR9JBEaUSf+RHK9QtS+C8bQ1bD3S0undjOSM Jc084tvb61u45Wx2P/+DmacvhEvzmZDUYUWy9VRZd140pyxshi8nLrVAkicB7F+SQeZ2 Xslwu2XjNFIe+52dRVF05Lz61DchKNMs4yPt5j4tdjXtSwEGdmuBZIe35cGmV0HCA7Z/ S+rEzUPmL4l7NSq6hwa1PDKRrnWC6yjjwMyji8YJhEQU/Gy9y+R+9Ggh6xhlBEeWhs8M Z4ZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763105834; x=1763710634; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eoTzx6hqmV9hM+FsySQPQ7RiL9yBYXtI+clOM6FTZNo=; b=qKL1M36UPIyrW5Ni5NNkdDt+DvYqlBEq8nEOAWKb97+1EPYJfcXBv+ohJIvd4yL3jQ ExYog+SqmkxoQCIA9m2PhscQMLH+abj0JGmCkqJHYEfuSlMaxnxSdpS86QFxJ12Wcpe7 QZ90cel7/1oMrHzCUcm1dq6Jzqx65qDPV0xwSm/tLcUL7JTpeKiQLunVm6LG0A/uqO+E Mgv2B2UIzmEAbfPUZckDsvo3VNGfJk4JHFoA51pyhvUdfmgR93lzPmJz7MiXjRv/Bi8W pdo5ZQO5xo5cmb4vLXTMa4K7aDudHkBq3PG7hopfL2bb3dv81nPCa2o/qSFEOgkkPvDE 2OXg== X-Forwarded-Encrypted: i=1; AJvYcCWgB3Z0sM+a9uWN17mVFwJ57puvIe0lmOB3a1Y4zwL2RaDZ+MsZMiUMYEykeNKlEBG0YS7UBgPSmNDXhRA=@vger.kernel.org X-Gm-Message-State: AOJu0YwDsDKWd8Ko0Y1Sn6eOdynwoU4IonOnGPDXEKHvOADhuDadf0IE TM5G3cLPKbkG7yJFJpJCFgEEmlazfGgvQ8pMaAmR7OfI2CvR1Xsvo81w X-Gm-Gg: ASbGncsI+T6pwwMOw62CEl/xs1/UR7Wq99MdODm4hVs7m8U31TZ2N/hXh+y4pH4uYwX FfQmmTiZXJazu7+kw88S2StsOHxZ1ApK5hnIOlFYES/c2InW1WfAcNlD6AWAt3U5Eo6OowHhRDR /BRt50GudIvxdmEbysnUJGcZ6xuy+UTOj8r6bgtB534HaDV8EwcdJlfERz/2q0HjCdXmn3hT5xe 8bQuPfir/bCkQHA1lvHP1/hOrjYSdKEenuYifhMAFKxPggRyGBXkoNnXhED9Yn8BGlBWPHf6rSW +rQCZiUYBVBKzLNeXCFOXfKcnAk79Z0S/EAoRCHoIsD+yAbm78GsOST1sdr+Dk8l8thS1MmFEdc c7vYZOis27sTtVzjNuAsJSD5d93+8KuaFPnfZI5Nttf2nmE7KWZTFIwCDfwgggwyEBDTdWHWGuG V9Jand2MHg7fuHvNI8XqmQzqVE73AgpkfeZ/QT5H4pjQ2XeIZ/SzlxnmHFet/yn6sLIsioSb7t7 JORlRz66/6rFZoW X-Google-Smtp-Source: AGHT+IG0OwVJlx9IxqhBCdb6uEYZrrRjxlVOfg439Ybhkpn3/YZFYPYFf7yTJOzlY42p7jR2av0jbQ== X-Received: by 2002:a05:600c:8b38:b0:475:de14:db1e with SMTP id 5b1f17b1804b1-4778fea2de7mr14660925e9.24.1763105833870; Thu, 13 Nov 2025 23:37:13 -0800 (PST) Received: from localhost.localdomain (host86-162-200-138.range86-162.btcentralplus.com. [86.162.200.138]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4778c88bee1sm95071825e9.11.2025.11.13.23.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 23:37:13 -0800 (PST) From: Biju X-Google-Original-From: Biju To: Biju Das , Lad Prabhakar , Kuninori Morimoto , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai Cc: linux-sound@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Geert Uytterhoeven , Biju Das , stable@kernel.org Subject: [PATCH v3 2/2] ASoC: renesas: rz-ssi: Fix rz_ssi_priv::hw_params_cache::sample_width Date: Fri, 14 Nov 2025 07:37:06 +0000 Message-ID: <20251114073709.4376-3-biju.das.jz@bp.renesas.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251114073709.4376-1-biju.das.jz@bp.renesas.com> References: <20251114073709.4376-1-biju.das.jz@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Biju Das The strm->sample_width is not filled during rz_ssi_dai_hw_params(). This wrong value is used for caching sample_width in struct hw_params_cache. Fix this issue by replacing 'strm->sample_width'->'params_width(params)' in rz_ssi_dai_hw_params(). After this drop the variable sample_width from struct rz_ssi_stream as it is unused. Cc: stable@kernel.org Fixes: 4f8cd05a4305 ("ASoC: sh: rz-ssi: Add full duplex support") Reviewed-by: Kuninori Morimoto Signed-off-by: Biju Das --- v2->v3: * No change v1->v2: * Collected Rb tag from Morimoto-san --- sound/soc/renesas/rz-ssi.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/sound/soc/renesas/rz-ssi.c b/sound/soc/renesas/rz-ssi.c index 62d3222c510f..f4dc2f68dead 100644 --- a/sound/soc/renesas/rz-ssi.c +++ b/sound/soc/renesas/rz-ssi.c @@ -13,6 +13,7 @@ #include #include #include +#include #include =20 /* REGISTER OFFSET */ @@ -87,7 +88,6 @@ struct rz_ssi_stream { int dma_buffer_pos; /* The address for the next DMA descriptor */ int completed_dma_buf_pos; /* The address of the last completed DMA descr= iptor. */ int period_counter; /* for keeping track of periods transferred */ - int sample_width; int buffer_pos; /* current frame position in the buffer */ int running; /* 0=3Dstopped, 1=3Drunning */ =20 @@ -217,10 +217,7 @@ static inline bool rz_ssi_is_stream_running(struct rz_= ssi_stream *strm) static void rz_ssi_stream_init(struct rz_ssi_stream *strm, struct snd_pcm_substream *substream) { - struct snd_pcm_runtime *runtime =3D substream->runtime; - rz_ssi_set_substream(strm, substream); - strm->sample_width =3D samples_to_bytes(runtime, 1); strm->dma_buffer_pos =3D 0; strm->completed_dma_buf_pos =3D 0; strm->period_counter =3D 0; @@ -978,9 +975,9 @@ static int rz_ssi_dai_hw_params(struct snd_pcm_substrea= m *substream, struct snd_soc_dai *dai) { struct rz_ssi_priv *ssi =3D snd_soc_dai_get_drvdata(dai); - struct rz_ssi_stream *strm =3D rz_ssi_stream_get(ssi, substream); unsigned int sample_bits =3D hw_param_interval(params, SNDRV_PCM_HW_PARAM_SAMPLE_BITS)->min; + unsigned int sample_width =3D params_width(params); unsigned int channels =3D params_channels(params); unsigned int rate =3D params_rate(params); int ret; @@ -999,16 +996,14 @@ static int rz_ssi_dai_hw_params(struct snd_pcm_substr= eam *substream, =20 if (rz_ssi_is_stream_running(&ssi->playback) || rz_ssi_is_stream_running(&ssi->capture)) { - if (rz_ssi_is_valid_hw_params(ssi, rate, channels, - strm->sample_width, sample_bits)) + if (rz_ssi_is_valid_hw_params(ssi, rate, channels, sample_width, sample_= bits)) return 0; =20 dev_err(ssi->dev, "Full duplex needs same HW params\n"); return -EINVAL; } =20 - rz_ssi_cache_hw_params(ssi, rate, channels, strm->sample_width, - sample_bits); + rz_ssi_cache_hw_params(ssi, rate, channels, sample_width, sample_bits); =20 ret =3D rz_ssi_swreset(ssi); if (ret) --=20 2.43.0