From patchwork Thu Dec 17 02:57: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: 7868561 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 2AF169F350 for ; Thu, 17 Dec 2015 03:02:14 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 3E70F203EB for ; Thu, 17 Dec 2015 03:02:13 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id EF878201B9 for ; Thu, 17 Dec 2015 03:02:11 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id EA744266572; Thu, 17 Dec 2015 04:02:10 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Status: No, score=-2.6 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, RCVD_IN_DNSWL_LOW, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id EA0EC266162; Thu, 17 Dec 2015 03:59:26 +0100 (CET) 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 8D137266162; Thu, 17 Dec 2015 03:59:26 +0100 (CET) Received: from relmlie3.idc.renesas.com (relmlor4.renesas.com [210.160.252.174]) by alsa0.perex.cz (Postfix) with ESMTP id E26C82664CB for ; Thu, 17 Dec 2015 03:57:51 +0100 (CET) Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie3.idc.renesas.com with ESMTP; 17 Dec 2015 11:57:50 +0900 Received: from relmlac1.idc.renesas.com (relmlac1.idc.renesas.com [10.200.69.21]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 81DBD451BD; Thu, 17 Dec 2015 11:57:50 +0900 (JST) Received: by relmlac1.idc.renesas.com (Postfix, from userid 0) id 61AFC8002E; Thu, 17 Dec 2015 11:57:50 +0900 (JST) Received: from relmlac1.idc.renesas.com (localhost [127.0.0.1]) by relmlac1.idc.renesas.com (Postfix) with ESMTP id 597868002D; Thu, 17 Dec 2015 11:57:50 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac1.idc.renesas.com with ESMTP id MAC14016; Thu, 17 Dec 2015 11:57:50 +0900 X-IronPort-AV: E=Sophos;i="5.20,438,1444662000"; d="scan'";a="201978782" Received: from mail-hk2apc01lp0213.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.213]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA; 17 Dec 2015 11:57:49 +0900 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by SIXPR06MB1023.apcprd06.prod.outlook.com (10.160.240.28) with Microsoft SMTP Server (TLS) id 15.1.355.16; Thu, 17 Dec 2015 02:57:47 +0000 Message-ID: <8737v1iy2n.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") To: Mark Brown In-Reply-To: <87egeliyaz.wl%kuninori.morimoto.gx@renesas.com> References: <87egeliyaz.wl%kuninori.morimoto.gx@renesas.com> Date: Thu, 17 Dec 2015 02:57:47 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: HKXPR03CA0035.apcprd03.prod.outlook.com (10.141.129.25) To SIXPR06MB1023.apcprd06.prod.outlook.com (25.160.240.28) X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB1023; 2:tg4SuJI9hsGMaSAaspsGm/qe4I0dzk8wGaoxVJO435TMDTSFCWS8fIQv6r3g8hdBr08p9rfWn+KBvLISwoS5lig3futy4sBkfS01HKjvgOrHVhayCRZ4GkqH1gfkYmJZT9X6fU4zLl/VvUnrXvlODA==; 3:6ttqaXnPRt0qha8RKpq29pyMhXzRX7zD8lpznw2cBaAi5wDiXliGy+nz14kpKwAaXCIieUixo0Yai6IxMpje3/MBzT++ZH4tDac3P4EDZu8g3+18/ANcvrXeOOImqdYT; 25:FtGucSrGJQdq+DuA6Y0OzpmJ6+MLDclOlAg+wrjUFQU3GN3qhmsoYpxfZSfiiax7hDoVZHz4zf3wHxcaWvU5ACRjf+isfhK/wRkoiPhN8NVK0kXDkedLizTSqPw6W7DlL2SSca8uAtHVYlu1y6I53aE3zzkP1GgcTc5BGAnVgLnL+xMsxZr2Dnf/nrhPeZYQqX/CbpFibU2pdMTFc0ImcW1VWuC22OafQJ60+4wkC/IfX1ECx0oHqtpfh/EEyvnU X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SIXPR06MB1023; X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB1023; 20:rFXpfIvOnTQmoP+T0/QhWrLSrvmmDSUUtRFOWMdbxfS1B4eAwGfVZPPfhkLoemkOJOAYJc2xBJNhAHA8anIW3IErr/faHe6s2xyFv0WedoKdPXxYAh9RJZCUbx2ULOC3WyWo/29pDMIb8u6tlyERSUBGtsj2DgF5aFxHhqt5c6In4WwN63V8HMRKrxF5M/QpPGLcex9KRKrJdrfCgvjC4UPfstCYdmYCkKOV4+WVS0Mj/1fxMtMO59FjrT/arqfsD2PxVeTjargguA6w+nyNfusrpt4ZQD5pE7rUZV/coEU3Jk0U77cArmdJYyrwNlgOF+FTLitzMv6bLDGWKSt9+cW/z3uZzY+fyOd0XauK0kJzan4PebJHBj45PPy1S6jdFaJRYlTV7AF3zrLmBSoERIENiZuTMXD1TMY9zUoRUjD4b59Id7A7afOKmDTjaYAeZsl7lu+xPzI1G3ZsMlgjiVTbCQmBqUpUicAA8Kw2jzu9VuTYNXPOaJxWfN50R2xu; 4:TG8XaCoF0BcBsrrr4bDsbriat/7irg3MXwSBibzJcV1a2r1Y7TEI+CEgL3RpHI9++F1iFv+oSSKJgkhbbV55i9wWqEDSk6uz92ESWwnlcgFMI1Ut4t47KlhKplr9dcg4yCMAB27JP9lvyVyGUPPpGddS0EpAB2mquTchlvkfc7WdOUukdaprsmNHC7GALUugMmnWIp+PKDsimjgWGAvcwehpAoM3CnWAFSvRoRoD4aBiERpuyUcOIz6wtddmzQLfitrJKlZ85mjIgTrtwh5Fk5Nc1R+cBdxctzKu22xF5ElX/jgo1+hQgW5SzqcbVcQFrReSh4ptQV4GJ1GP3ILf+rDQsYqHrIkGsSxiSMhSgAQtYVV/UIX69H4HuEQP6YN6lL/X1742b8UzdRGJifapoSvEiYqGWtcgmK/YNi1ZgGs= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85106069007906); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046); SRVR:SIXPR06MB1023; BCL:0; PCL:0; RULEID:; SRVR:SIXPR06MB1023; X-Forefront-PRVS: 07935ACF08 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(199003)(122386002)(42186005)(50466002)(101416001)(23726003)(87976001)(105586002)(1096002)(47776003)(19580405001)(86362001)(83506001)(106356001)(5004730100002)(69596002)(66066001)(19580395003)(54356999)(92566002)(53416004)(36756003)(40100003)(2950100001)(33646002)(6116002)(229853001)(5008740100001)(97736004)(81156007)(189998001)(4001350100001)(110136002)(586003)(5001960100002)(46406003)(3846002)(50986999)(76176999)(77096005)(309714004); DIR:OUT; SFP:1102; SCL:1; SRVR:SIXPR06MB1023; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SIXPR06MB1023; 23:MDuYL+xxlOsuPiLPuAvBTg4tVRjGoukQpuCw3XXZK?= =?us-ascii?Q?LlXazNfm8NSWIq7kMGtfULRfpMnWXahmomux6TEKYoehr3A3xM0dVp3d/NtM?= =?us-ascii?Q?81+zkJECURiMu3gKTs3PbMM6ZhkmyJRi95VnUDc3f4jHbAJeytow0YR6FWW1?= =?us-ascii?Q?9/nOz9MQT848dU5Wi2gij/UXt5KEGgbvrbERPyMj0seLYP7q3F6gBNhUGhQo?= =?us-ascii?Q?GS+2Ef2OjVgQdd5u+0w5B/ASVkamY8La1yoV+ltPaAy2IFGS4nE3mVwuYzAT?= =?us-ascii?Q?mKp+sOgWib78JOqX6PQ3esQ4pNRJzhqhholTkAtcLu0EsCiPZ2MaeKuJjbsL?= =?us-ascii?Q?ZeeBqJG5IgsUa7djYoGdtexC1nCsnL7oOh/P5ZPvb8UtcFlIRXgLGs3MZDoQ?= =?us-ascii?Q?NJAcA4PGl9+ylzyF9hb0DpYNGwrD4BOzFfTRma3GBHux1GtwQlWAV0pRCy7J?= =?us-ascii?Q?U1np1H9oVaJpys//5SPthOMK1yUfwLcLXxffb4kDTjlsnagLzb34rE3E9/m6?= =?us-ascii?Q?Bwb/XKjv5cS7U7WiWii7g3BQisnBSyP6/u1/DYhtDJQ4c40LVUt9Mo59hZEL?= =?us-ascii?Q?NoBSEbVg9LZROiWnvZMFvBR5FtBaDitx1J0KTbgcFsl7O+RlwrVXtPFtcY8o?= =?us-ascii?Q?7rO83xOuzD6u1PT7zxIIk5+iZbGuvlDUOhX/IB1N08Wm681juKVuTgVC5Vkh?= =?us-ascii?Q?HeWV/Kcp8CUZ2t1x/tQ7k/Yk4QLZJgutSmEAfTeGiebd5Khmec2PDUgqThrV?= =?us-ascii?Q?5lZyft8OmnVtigpDjEZ/4Tq6hawa0nN1/yQmOqptr9nZDldcAkZqodRl4sfu?= =?us-ascii?Q?1e7AaEDJOt6p8mPePTZBtxTk95MUCHF2WNsYXADXZckXatRk1p7Gj95A1o/Y?= =?us-ascii?Q?cjNeVugbEZyUU0PV2msivQhH6tDp9q3fAUEFzWfGI+IqmXhQvtEnFYOF2aIC?= =?us-ascii?Q?QmHaIxfZs/r4B6epHpA8aGNP8IYgXja3/AyFos8GogeZP36CjywycrFO+Zkt?= =?us-ascii?Q?T404aHBqd1Ed/MNfNF5DC1Q0eeHdtDirhFPYf/LMAOOVQL4paBZJ6+AYeJcK?= =?us-ascii?Q?EbUO7quij0Y9uY29RpSCs7o+8dtCcmBj0ZOCH1oLIGREhfpOLCpv4FddSKsu?= =?us-ascii?Q?OlihS3eq41K9+DcLMTh37Hp4Z9Ld+OO?= X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB1023; 5:t/Z+zTnnHMGqk4aQuoxzYT/VVdIhOGO09bCdEOS5w2aaRudp3Aegwmy1nhL+QSxZTggvBOTrN29iftUEjAR4eBtFfp3ErjFZ3hAxQrrW/aLlY3kS1j4GWOCLdOD5apIEf2LnqoYVC0uvqeeJFtFzbg==; 24:2kzlNKRRF3QFj/M9Liq2ApYWe/pITFGQMiw2OJkzoI314/zU43JLB+7Bph1Y3+/4tpOUA6Cb5D9VlmkP5awzTXUdcPrXszYCcG/RF8i/aDA=; 20:olfx3XLzDyJvXmwcVytPdgzxQB8kuk6Nm3XOeTQf5nk5KKi8NeWcfuaA3Md1h+Iws5BC69JJ0wij2NuPZhFBjtzF3dBxEjUDNEbGMuJ3+kuePCScd1CxLpyRx+xQZl/IP0v/5RPybvuSYVwY7lFz83KtutP0GmasDxZ9DFOCi/c= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2015 02:57:47.5940 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SIXPR06MB1023 Cc: Linux-ALSA , Simon , Liam Girdwood Subject: [alsa-devel] [PATCH 08/12] ASoC: rsnd: add rsnd_set_slot() / rsnd_get_slot_num() 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 TDM will use 6 or 8 slots on 1 SSI, and Multi channel will use 6 or 8 slots on few SSI (each SSI uses 2 slots). Thus, this adds new slot control functions which can be prepare for Multi channel support. Signed-off-by: Kuninori Morimoto --- sound/soc/sh/rcar/core.c | 20 +++++++++++++++++--- sound/soc/sh/rcar/rsnd.h | 4 ++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 76af416..528041e 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -191,6 +191,13 @@ int rsnd_io_is_working(struct rsnd_dai_stream *io) return !!io->substream; } +void rsnd_set_slot(struct rsnd_dai *rdai, + int slots, int num) +{ + rdai->slots = slots; + rdai->slots_num = num; +} + int rsnd_get_slot(struct rsnd_dai_stream *io) { struct rsnd_dai *rdai = rsnd_io_to_rdai(io); @@ -198,10 +205,17 @@ int rsnd_get_slot(struct rsnd_dai_stream *io) return rdai->slots; } +int rsnd_get_slot_num(struct rsnd_dai_stream *io) +{ + struct rsnd_dai *rdai = rsnd_io_to_rdai(io); + + return rdai->slots_num; +} + int rsnd_get_slot_width(struct rsnd_dai_stream *io) { struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); - int chan = runtime->channels; + int chan = runtime->channels / rsnd_get_slot_num(io); /* TDM Extend Mode needs 8ch */ if (chan == 6) @@ -579,7 +593,7 @@ static int rsnd_soc_set_dai_tdm_slot(struct snd_soc_dai *dai, switch (slots) { case 6: /* TDM Extend Mode */ - rdai->slots = slots; + rsnd_set_slot(rdai, slots, 1); break; default: dev_err(dev, "unsupported TDM slots (%d)\n", slots); @@ -660,7 +674,7 @@ static int rsnd_dai_probe(struct rsnd_priv *priv) rdai->playback.rdai = rdai; rdai->capture.rdai = rdai; - rdai->slots = 2; /* default */ + rsnd_set_slot(rdai, 2, 1); /* default */ #define mod_parse(name) \ node = rsnd_##name##_of_node(priv); \ diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h index 804f2f5..c9aef23 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -293,8 +293,11 @@ void rsnd_mod_interrupt(struct rsnd_mod *mod, void (*callback)(struct rsnd_mod *mod, struct rsnd_dai_stream *io)); +void rsnd_set_slot(struct rsnd_dai *rdai, + int slots, int slots_total); int rsnd_get_slot(struct rsnd_dai_stream *io); int rsnd_get_slot_width(struct rsnd_dai_stream *io); +int rsnd_get_slot_num(struct rsnd_dai_stream *io); /* * R-Car sound DAI @@ -334,6 +337,7 @@ struct rsnd_dai { struct rsnd_priv *priv; int slots; + int slots_num; unsigned int clk_master:1; unsigned int bit_clk_inv:1;