From patchwork Mon Jun 15 06:27:47 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 6606461 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 2DEC8C0020 for ; Mon, 15 Jun 2015 06:38:12 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 33E8920270 for ; Mon, 15 Jun 2015 06:38:11 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id D5CF120268 for ; Mon, 15 Jun 2015 06:38:09 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id B3E60264F38; Mon, 15 Jun 2015 08:38:08 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [IPv6:::1]) by alsa0.perex.cz (Postfix) with ESMTP id 1EAC22612D0; Mon, 15 Jun 2015 08:31:54 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id CBE6C2612D0; Mon, 15 Jun 2015 08:31:52 +0200 (CEST) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 783312616F6 for ; Mon, 15 Jun 2015 08:27:51 +0200 (CEST) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 15 Jun 2015 15:27:50 +0900 Received: from relmlac2.idc.renesas.com (relmlac2.idc.renesas.com [10.200.69.22]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 39C484A763; Mon, 15 Jun 2015 15:27:50 +0900 (JST) Received: by relmlac2.idc.renesas.com (Postfix, from userid 0) id 2EFF62806E; Mon, 15 Jun 2015 15:27:50 +0900 (JST) Received: from relmlac2.idc.renesas.com (localhost [127.0.0.1]) by relmlac2.idc.renesas.com (Postfix) with ESMTP id 287952806D; Mon, 15 Jun 2015 15:27:50 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac2.idc.renesas.com with ESMTP id RAQ23737; Mon, 15 Jun 2015 15:27:50 +0900 X-IronPort-AV: E=Sophos;i="5.13,617,1427727600"; d="scan'";a="188302466" Received: from mail-hk1lp0126.outbound.protection.outlook.com (HELO APAC01-HK1-obe.outbound.protection.outlook.com) ([207.46.51.126]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA; 15 Jun 2015 15:27:49 +0900 Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; Received: from morimoto-PC.renesas.com (211.11.155.132) by SIXPR06MB319.apcprd06.prod.outlook.com (10.141.125.145) with Microsoft SMTP Server (TLS) id 15.1.190.14; Mon, 15 Jun 2015 06:27:47 +0000 Message-ID: <871thdv67g.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown In-Reply-To: <87twu9v6kn.wl%kuninori.morimoto.gx@renesas.com> References: <87twu9v6kn.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Mon, 15 Jun 2015 06:27:47 +0000 X-Originating-IP: [211.11.155.132] X-ClientProxiedBy: OS1PR01CA0001.jpnprd01.prod.outlook.com (25.161.225.139) To SIXPR06MB319.apcprd06.prod.outlook.com (10.141.125.145) X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB319; 2:0o6jx1ZhDdCi7nzdRe55rCHy7d49MmGw1Zu67hJjWgmwsbV7oTIaL0RU0ZqLxRQ1; 2:9Olu1eZQhHU2s+FKeI2F3tBZR4Fyn2cj7w67q4l1Kg/yyvXvtnnJS0h9t6RRQ7KTjFms7WgJXelleEsPnoXwNPeMWNNQKhV/iyFb1OkOJtdapwzDWgQ0uN/2b5LnF4w8YEhXyWjTr9j27X8uo2YT9g==; 6:D4Xct3xU8HswausalM+tst3jDsQI243qUDXwbFv6dbeeSgbxMa8f8hczEO6JmvWxz1Vt0ABznrG1EvU+CILAz4lVHwq/oFTd18YiF8q5BMo1gb2c9eZQ3BaHqlqlAFCa6jaohYUhQH9U4yZgK+T1fOj8e72GYQ7AxCOo+luYNUge2rSfpRe1nf8K75OXkelxuhK07c9rF4CkSw947IpfdYBMVSts0VWn2YSZc5HAPo8EDGvZrwzeK3SgMNP5C2YrkdJh+f1CJ26Ja1UgwnYq9kZAVW+pMON+xqp4Rkz7Fv6zIMAJ+ec05x1zXxaSGnOvyEqXDtwAHVgxYKFXlsUOPKi7NgYoSKQ6AuPGnlO34EET76f0FOuwfcVeCUv0K8xzrutvi3rIuVggv12bLzKwkY2f6pK3Qqj2zm7lAjDr+X4KK+fGWwsOIJkbSiAZ8BLPz1k6eukh01LdrsDejDjLc4qDoza4c1w19OaTdhZKAf0Omcltxxk2XKDd/vO/0pBN X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SIXPR06MB319; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(520003)(5005006)(3002001); SRVR:SIXPR06MB319; BCL:0; PCL:0; RULEID:; SRVR:SIXPR06MB319; X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB319; 3:Ji59aHChBYXIjnc8HM/M6Amp3RC8oiwwyrl4okaotK8FsS7mDQ62nfdWu3lp4rxPDiFghIIrFl2IuUca5ifKMToDoVs+lFTTqqFTnHSZu/77AhTFBXRQED/FIQ6tJus/fz/7VZt1cRkep2RTrbDWS9ho6Qo3Z2NTnGs5gMImU5xpqFMk4rR0ZD7bxUUorSr4q96P81wS+qgqyYgd+akwglVceiFcvtYOE9uiTMtvba2Xh6pOgmh0dbtW7gCbsbN7wiso4Oj1hOWeJLq/kytcBT1AHYhW5m/ZSBKtkDr6Rl0K6BAcLB+urjw7jbkIEaSp X-Forefront-PRVS: 0608DEDB67 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(53416004)(92566002)(110136002)(5001920100001)(76176999)(87976001)(229853001)(189998001)(4001350100001)(19580405001)(33646002)(5001960100002)(42186005)(19580395003)(36756003)(122386002)(23726002)(62966003)(77156002)(46406003)(50466002)(83506001)(50986999)(66066001)(54356999)(77096005)(86362001)(47776003)(46102003)(40100003)(2950100001); DIR:OUT; SFP:1102; SCL:1; SRVR:SIXPR06MB319; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB319; 9:RvN2ogb9v2tLiWwHSuLL5TGzlZqi/mYQRozIAZEcrm9cPX1qnFA/Vn7OMDkoBdzmrCwne+U0LWmPe0U0n7p7cugUtMufdiyh9BAgZd1BcIp1UtihhbiKMyeISZr9oJ08FIJI4EJMu1en1xD3Sj0InMm3ckJYl5nVQ2dE3MwuRc8Yr/YtZXeLEAdAk+m7O8QBvLTTEU5irksX5+Fxay4WfkFind5Q8K+86iT2bW5aCEwf8jL1ZmM2w179oGxlxowIHiesH9xTWyJf0VrcTGjZ6evlVvYDtkR7t8QJkVL4y8rbITNIMREL+DVMxJqkvrV8P8ejWb651M3UzSwFHKXm7CG9rOKH9/cXm5nF/dJb7rO/z5cKm0rmhfll3hTws+EjCnXQ14kUBstVoZGqrFP0ccgTeAP14O6iHIFbUNr5KciO5af6dQalLFqdssQIpz93qA9fk195Is+I6ZV9ktp4ZabdcNumWR2t8Zjw2PZT5h7zeUiBDguM2wE2+ylX6DewYvcIUcMBWfRAWT15RnRUyBh/7U1uHAoXPcmODGgy3C6H4irStLONIb2pvSG8HMK12E64lYdDYxZBCQloyLMABmmuiy1TXOs6DhwIaKyeCce0NK78GVCNqwo3lquQSr9x1Id32Ge7grGR8ZmRDxRjYCDR2Yfu7lhlcs4rfzW0Hv3OmLjL5GIkec4YoB59+zJ24iIn+aEW+C90Ou3+v2xAm0ta3dMRP04tW4k3ZakfIXV4OXt6AMlU/asD5faQZnb1lrwDATnfjUexmLeDXfr0JNwtIiCWS+jxiGPExQIBW2yyUDlq0qhU3/OUeif4NO386KY+1S+u29jUQQQ5CnyAtIDX38uZfTcNfGDnq0IhrEnc3Z6+8H1g8Hfsbv0VOePN X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB319; 3:5kN8o8KC2BRU7obUec/nTmHEu+xw2TLBRTuYeSeyxR94eu2CsLOuiyisYjO1T5PBrjYurdPf0WgRkPP9sG7TKBsqURomXWvGzRdDgGiauxOUdNLCXiYMJKv80W7cmO5VFPc++Mpj6JbLdnk51dysWQ==; 10:JQyUOXZGR+LaSVS5PEKX6p+i6ZB5k8QmRJMjzHafR+NmaRzExzU1iujF42ryG2bAABTn4IYQeIqKT9G8BvXBsSfh7rf7AHPX5CWSgBoFnlQ=; 6:QwqzENADPFR/c4HZpPpQaSM3NGNfeV7uj2M4cHi5Rsf+qdE3HGd00Fsi27BEfLp6M3Efd2L8HkdgME+nJ4QC/6//CRV10j8Mp6suACe2UXssqHcRVffl5B4FhmLJRuSDHqKBlkJUEVMw8HPjG3en8g== X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jun 2015 06:27:47.6641 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SIXPR06MB319 Cc: Linux-ALSA , Simon , Liam Girdwood Subject: [alsa-devel] [PATCH 20/21] ASoC: rsnd: move rsnd_mod_is_working() to rsnd_io_is_working() X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto Each Renesas sound mod (= SSI/SRC/DVC) might be called from many paths if it supports MIXer. In such case, mod <-> io is no longer 1:1 relationship. This patch checks module working status via io instead of mod Signed-off-by: Kuninori Morimoto Tested-by: Keita Kobayashi --- sound/soc/sh/rcar/core.c | 4 +--- sound/soc/sh/rcar/dma.c | 2 +- sound/soc/sh/rcar/rsnd.h | 3 +-- sound/soc/sh/rcar/src.c | 2 +- sound/soc/sh/rcar/ssi.c | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 266b24a..1eca85f 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -196,10 +196,8 @@ void rsnd_mod_interrupt(struct rsnd_mod *mod, } } -int rsnd_mod_is_working(struct rsnd_mod *mod) +int rsnd_io_is_working(struct rsnd_dai_stream *io) { - struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); - /* see rsnd_dai_stream_init/quit() */ return !!io->substream; } diff --git a/sound/soc/sh/rcar/dma.c b/sound/soc/sh/rcar/dma.c index 48b87bb..d306e29 100644 --- a/sound/soc/sh/rcar/dma.c +++ b/sound/soc/sh/rcar/dma.c @@ -52,7 +52,7 @@ static void __rsnd_dmaen_complete(struct rsnd_mod *mod, */ spin_lock_irqsave(&priv->lock, flags); - if (rsnd_mod_is_working(mod)) + if (rsnd_io_is_working(io)) elapsed = rsnd_dai_pointer_update(io, io->byte_per_period); spin_unlock_irqrestore(&priv->lock, flags); diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h index fdb443b..756930b 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -326,7 +326,6 @@ int rsnd_mod_init(struct rsnd_priv *priv, int id); void rsnd_mod_quit(struct rsnd_mod *mod); char *rsnd_mod_name(struct rsnd_mod *mod); -int rsnd_mod_is_working(struct rsnd_mod *mod); struct dma_chan *rsnd_mod_dma_req(struct rsnd_dai_stream *io, struct rsnd_mod *mod); void rsnd_mod_interrupt(struct rsnd_mod *mod, @@ -356,7 +355,7 @@ struct rsnd_dai_stream { #define rsnd_io_is_play(io) (&rsnd_io_to_rdai(io)->playback == io) #define rsnd_io_to_runtime(io) ((io)->substream ? \ (io)->substream->runtime : NULL) - +int rsnd_io_is_working(struct rsnd_dai_stream *io); struct rsnd_dai { char name[RSND_DAI_NAME_SIZE]; diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c index 67db696..c61c171 100644 --- a/sound/soc/sh/rcar/src.c +++ b/sound/soc/sh/rcar/src.c @@ -684,7 +684,7 @@ static void __rsnd_src_interrupt_gen2(struct rsnd_mod *mod, spin_lock(&priv->lock); /* ignore all cases if not working */ - if (!rsnd_mod_is_working(mod)) + if (!rsnd_io_is_working(io)) goto rsnd_src_interrupt_gen2_out; if (rsnd_src_error_record_gen2(mod)) { diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index fa1f2e5..2fbe59f 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -432,7 +432,7 @@ static void __rsnd_ssi_interrupt(struct rsnd_mod *mod, spin_lock(&priv->lock); /* ignore all cases if not working */ - if (!rsnd_mod_is_working(mod)) + if (!rsnd_io_is_working(io)) goto rsnd_ssi_interrupt_out; status = rsnd_mod_read(mod, SSISR);