Received: by 2002:a25:23cc:0:0:0:0:0 with SMTP id j195csp33560ybj; Fri, 8 May 2020 06:00:27 -0700 (PDT) X-Google-Smtp-Source: APiQypLd4dcdVPVMYgtuVx3WMOlY5F3IDHESJdmhs26UnxS7VHsCaa44AxFD3B4SdWM6awrwfg+M X-Received: by 2002:a17:906:2503:: with SMTP id i3mr1644555ejb.293.1588942827150; Fri, 08 May 2020 06:00:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588942827; cv=none; d=google.com; s=arc-20160816; b=oFHFVlKR/q4x5c09tVJ8m/gQLuBHiXWaIoIyhq02yw90DMKitTWIcyzdmT8a9+/2AQ 79dhPxR9pVwKH96Fk/JDArJXiJGMbirpE6tExM8M1hqoOX38X11A17L4f+yUSbtbGCm/ RIeruRM5d0kKwZFthVtiKVJybKKQcpyAAVkU51AnwaHTQuShgOa/4+Qnk5ZpVndSH1g6 EctTEgbMCgq7seIwh88HhaWgBFrYEmr08thWt67rD2ybqJszD2lR/57uBnIaMaD/PfzM 6g8lTJBDamWScJuXbUWQDhG4stOP1cPRTMOfLAH891F0DNV/d9vCadFJbQ4T0xwemnw7 O1Sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=mO8UolLpO68wNFtl//UNX/f9zOKtpjwYOJbo5QVv0m8=; b=hksfxMByXRq6vZxD2wtIvCeITOmwZtzO5rg2kNx9OyBXZg3ulf+GsUGIwBrXuPD/2e 4jk/JssktKSAQrDeOoxEsbHWwoPdSNPJ+seKNZw3LL20i45nXn/Zg2++COJfA3YKVy/5 aAX0j4Xk4vuWe4VzMjvxE82D6VpnFkQ3Ob/FFhC2m2AlpIW+AQDQuFxW1Lgx5gwdTcUP F1dENQ8ZtcC8UExtxJ4FZJ+O76nWZSvFfLjYiRqth8BRm9gwp7FKIezcjm+KaHXglKxi XdooyRqPBu/ugyGxgZzRyAMiANLy3iUMWqna+/ZmluIyJKLZv3uajZfdFZWnE4sAtc2l cHVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BlncBiul; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l16si923840edv.378.2020.05.08.06.00.02; Fri, 08 May 2020 06:00:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=BlncBiul; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730466AbgEHM4f (ORCPT + 99 others); Fri, 8 May 2020 08:56:35 -0400 Received: from mail.kernel.org ([198.145.29.99]:40124 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730455AbgEHM4d (ORCPT ); Fri, 8 May 2020 08:56:33 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id DC04424958; Fri, 8 May 2020 12:56:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588942592; bh=MPyBt+js+ZFj7/UkvTMgEb63O/0/GYa3hNOG0libZHE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BlncBiulb5SjdVi+zDlBdCpm59N3mh+5uklsDCXleB0VBEXkLPmdacwDoSdejIZ8W qzXkt8ky2SNugH0k3ozZZ4U6JivuzX88fNsJMwQBp0WmcKjq4SGz1juCDbNn15iqRE pkYIp5HdkzIGWV0Nn3yXdAHPJlGA/mDyYBw3y0E4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Matthias Blankertz , Kuninori Morimoto , Mark Brown , Sasha Levin Subject: [PATCH 5.6 28/49] ASoC: rsnd: Dont treat master SSI in multi SSI setup as parent Date: Fri, 8 May 2020 14:35:45 +0200 Message-Id: <20200508123046.996330044@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200508123042.775047422@linuxfoundation.org> References: <20200508123042.775047422@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Matthias Blankertz [ Upstream commit 0c258657ddfe81b4fc0183378d800c97ba0b7cdd ] The master SSI of a multi-SSI setup was attached both to the RSND_MOD_SSI slot and the RSND_MOD_SSIP slot of the rsnd_dai_stream. This is not correct wrt. the meaning of being "parent" in the rest of the SSI code, where it seems to indicate an SSI that provides clock and word sync but is not transmitting/receiving audio data. Not treating the multi-SSI master as parent allows removal of various special cases to the rsnd_ssi_is_parent conditions introduced in commit a09fb3f28a60 ("ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode"). It also fixes the issue that operations performed via rsnd_dai_call() were performed twice for the master SSI. This caused some "status check failed" spam when stopping a multi-SSI stream as the driver attempted to stop the master SSI twice. Signed-off-by: Matthias Blankertz Acked-by: Kuninori Morimoto Link: https://lore.kernel.org/r/20200417153017.1744454-2-matthias.blankertz@cetitec.com Signed-off-by: Mark Brown Signed-off-by: Sasha Levin --- sound/soc/sh/rcar/ssi.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index d51fb3a394486..9900a4f6f4e53 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -407,7 +407,7 @@ static void rsnd_ssi_config_init(struct rsnd_mod *mod, * We shouldn't exchange SWSP after running. * This means, parent needs to care it. */ - if (rsnd_ssi_is_parent(mod, io) && !rsnd_ssi_multi_slaves(io)) + if (rsnd_ssi_is_parent(mod, io)) goto init_end; if (rsnd_io_is_play(io)) @@ -559,7 +559,7 @@ static int rsnd_ssi_start(struct rsnd_mod *mod, * EN is for data output. * SSI parent EN is not needed. */ - if (rsnd_ssi_is_parent(mod, io) && !rsnd_ssi_multi_slaves(io)) + if (rsnd_ssi_is_parent(mod, io)) return 0; ssi->cr_en = EN; @@ -582,7 +582,7 @@ static int rsnd_ssi_stop(struct rsnd_mod *mod, if (!rsnd_ssi_is_run_mods(mod, io)) return 0; - if (rsnd_ssi_is_parent(mod, io) && !rsnd_ssi_multi_slaves(io)) + if (rsnd_ssi_is_parent(mod, io)) return 0; cr = ssi->cr_own | @@ -620,7 +620,7 @@ static int rsnd_ssi_irq(struct rsnd_mod *mod, if (rsnd_is_gen1(priv)) return 0; - if (rsnd_ssi_is_parent(mod, io) && !rsnd_ssi_multi_slaves(io)) + if (rsnd_ssi_is_parent(mod, io)) return 0; if (!rsnd_ssi_is_run_mods(mod, io)) @@ -737,6 +737,9 @@ static void rsnd_ssi_parent_attach(struct rsnd_mod *mod, if (!rsnd_rdai_is_clk_master(rdai)) return; + if (rsnd_ssi_is_multi_slave(mod, io)) + return; + switch (rsnd_mod_id(mod)) { case 1: case 2: -- 2.20.1