From patchwork Mon Mar 13 05:53:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9619789 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9D62560244 for ; Mon, 13 Mar 2017 05:54:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C13228451 for ; Mon, 13 Mar 2017 05:54:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 807C328446; Mon, 13 Mar 2017 05:54:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BA67328454 for ; Mon, 13 Mar 2017 05:54:58 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id C49A2266C89; Mon, 13 Mar 2017 06:54:52 +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 0725F266C89; Mon, 13 Mar 2017 06:54:51 +0100 (CET) Received: from relmlie4.idc.renesas.com (relmlor1.renesas.com [210.160.252.171]) by alsa0.perex.cz (Postfix) with ESMTP id E2DD2266CAD for ; Mon, 13 Mar 2017 06:53:50 +0100 (CET) Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie4.idc.renesas.com with ESMTP; 13 Mar 2017 14:53:49 +0900 Received: from relmlac2.idc.renesas.com (relmlac2.idc.renesas.com [10.200.69.22]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id 458DC642A9; Mon, 13 Mar 2017 14:53:49 +0900 (JST) Received: by relmlac2.idc.renesas.com (Postfix, from userid 0) id 28C8928076; Mon, 13 Mar 2017 14:53:49 +0900 (JST) Received: from relmlac2.idc.renesas.com (localhost [127.0.0.1]) by relmlac2.idc.renesas.com (Postfix) with ESMTP id 1F78E28070; Mon, 13 Mar 2017 14:53:49 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac2.idc.renesas.com with ESMTP id QBN21563; Mon, 13 Mar 2017 14:53:49 +0900 X-IronPort-AV: E=Sophos;i="5.36,157,1486393200"; d="scan'208";a="237318468" Received: from mail-pu1apc01lp0021.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.21]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 13 Mar 2017 14:53:48 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=wCvoh39SsC7foBTSf/HAv9wdg7xFd+meGhlo3e+UwuE=; b=UJ0OpiSpLlP2WWTzbnjCL2JviQAVLj2KFe/Ix1HbbDmkWDeeWVxE0DFZOpOl3lpvcteAQmCV6xkaqfAMYUdPVGtiCSxLNdZuMC1Bacil+7vPU9+/li5xl6462KElMPCHwX6rklU/COytReNddyEe+qXUy+xw3FNYubOAUbvW/lA= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by SG2PR0601MB1934.apcprd06.prod.outlook.com (10.170.133.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Mon, 13 Mar 2017 05:53:46 +0000 Message-ID: <87wpbthgir.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown , Rob Herring In-Reply-To: <8760jdivfm.wl%kuninori.morimoto.gx@renesas.com> References: <8760jdivfm.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Mon, 13 Mar 2017 05:53:46 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: OS2PR01CA0030.jpnprd01.prod.outlook.com (10.164.161.140) To SG2PR0601MB1934.apcprd06.prod.outlook.com (10.170.133.148) X-MS-Office365-Filtering-Correlation-Id: 995a078f-a0bd-4cad-f942-08d469d550f2 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:SG2PR0601MB1934; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1934; 3:BhG5YzSgRjdhws+NbQw00a98BUdzeuLps8u1isJY1CFYZsThOQG/cpmm9a0B38xmplmgT6lTclAFikUyWeKQ81cV26Zp62Mjxa+vyqsu7dOGrjoHf1yuBIi0mgnh4znt3SxgwwNiuWrkZBdL59mfCCr9TxPQadpGAZhxOtHm2ms0acTu/aniU6c5CikNm+08vBgixIB8xRQFV2SZT6AoYjGgjVUYAl2Wl1WFesG8znVJrHD/vYaZ0SFBRy1Ddv/ijEF51lln9Q1JDV7NMljssvU1+HibZwqS65lqCGB0Tac=; 25:NGlreqWOI82zwPnWsjHlWg7iJQPrWXIWHr+/mUlAK2g7ZVn4bAtJYEmzzYr/cjCcCiIk7Hcs3xiXlY7ZmYD+YAJE+3m2dT0luZOFUqqr91hU5k06n4Ctr5Ude8j2W2uWpPMDvmCbpOgzXzZbi1eMlrTzAaqzPnPIjjNLOHOUue8onjQlquvljeIdp/gfa/e7dT4l9KN7vgs6l+H5lzYVhYGA6nazJ25bRKIwX5JJML9UI241DcljeKGiiRT8yPvnm6kzyAYKJCjJXdl19gYFIURPl2rC923d/LxuQ2ucrvTol47HJBl/aQ36sLbwlWF2qa2nk1rA5akYOi6r2YTvVoh7mOMXZmxLWvLwlHODVZuqbo09Gf4+6Se4Fg87x3p7iUvfFqcZkLe6kU4YNbotDrU6Pew9eg8R3RmBbJYpg4LLcReYPQND4vo/oWnnL3O4sSVH9raO00b6IHmpRsYIhA== X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1934; 31:y/MG35QlFKz9I7AQW/4YcnoxASidhUTAZHDO1gR61o0tJkQdtmR9SgssbaE3DMVoelF37A5NjXqmfqs93zjPiILonYWJt8tLp9Yp3pZbaRD0RseRpVBLb5yz/dzpn94BTip1e1WQ+D1zqG9Yur7RA6vbeZ9qF79r8vXE38364CIWTlXFIoWP6LkjRXtVWfAyOTBDp+ATkRAuxKKy7tHw8A/inh6RZGmphMKxi2Mr/tbypWblhtF8KG0Nx0HYSTLiD03rjx/E2q8mHvXYQu+PUcUZEsocs71ox46QBrLl3YU=; 20:JTZLH71BkveqdSZ6ytthyAfpywXG+5n0ZRGil7W5NFu/b0C6mBRUTYvHQqz/4KA3FM4fKc09RLes5zOt3Spy5a8wsAEUg2r/78MB8DpbMMS6YTO/eMDPChVWdZ9FyWWF5bUo36lRW+29gtdyNBkgFBU/dulIun4grflmCwdkUywycdH72qFrj9A/CxskZcIXS9e9Q/S8TOQQjrUeQMH8lA6TqRwvQE6X4ux7CoxWT5RmHl4IrGfl8HKLDN88S/OXoCJktdhWvFOkTeqLvANW4dgiY12G4K0VIv0te3hd/8jTPYkN+gw7JwJMBXWTF1YpS2vb92N5t6jm8CGauldm9KV49RTveva18sj/U5qRJtuv3WlYPqd/QMakh95IXO4awW1ib7KmC0xATCAEddK6kJsBhQJ6BZNHGS1YXiXc6JF6ILuhxJF7PB8aDogOJFLAlL4x/tgkFVlLch3tU1cUaEyRVn3N+abm+d23kLfQbaCAUJtju2iU1saSNneFyGV3 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123564025)(20161123558025)(6072148); SRVR:SG2PR0601MB1934; BCL:0; PCL:0; RULEID:; SRVR:SG2PR0601MB1934; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1934; 4:4FSq6MTxzaFp6VrF3UMGH+8wNToHLmOdBzfEQfW1ErPGxqpme6b2JMnY6yTduCasU8RUsKnG3wfLCwTFHROF4glKpSWqtoXJ9uUx6yrPoSDXqwQs6rZJYvgIqFdpULvVe+q3VCoNXE3IcRvGVtYzQac0wGOQzjnHEEBOVxvfbpibjNPv9/Swb+wBeEhp8m+wpZPxssYe8lMmPjVyct8si4S5F6Ta7CUJkQ/I/ZRBCyVamJu115Z1CMZbmI4F513XXLYindBA/jMXABabt5XQYP4gkI025VKMeJooDIH+fa8zVuORbT/WutYs/w8coyQPKcbKo3dL7OLwAFeHKKfBwtiFx8RE3WXOhGeQ+V7A6O0efbpeTVbIFTniWQBkY7zNLZJjmUw6eqC6vqGgFUTMqTIigKmf0GRt33OztvgCH3w6lsBNGB5SL0f3oOykQynm0lAI9L8rQT3ZPTT/8dR+pMojJwXMht+qzEDlX/5VOZGzRfbr7znvy3OtFnW/Ca6Hb1MjOz+HMrnH43G9OqIC8Pm/GnAvVp/DT6XhdiXf74kFT4f6Rl5F3H8lIvoKHreVej36jpF5OHqjjdn0pvE75LSNIa6OteZ2hFoR8pgq7/Yu9dzealTAX4siPwiaFj1O X-Forefront-PRVS: 0245702D7B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39860400002)(39840400002)(39450400003)(39410400002)(39850400002)(50986999)(5660300001)(305945005)(4001350100001)(33646002)(2950100002)(47776003)(54356999)(6116002)(50466002)(36756003)(23726003)(7736002)(3846002)(66066001)(86362001)(76176999)(53936002)(54906002)(53416004)(4326008)(46406003)(189998001)(42186005)(38730400002)(8676002)(6486002)(2906002)(81166006)(25786008)(83506001)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR0601MB1934; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SG2PR0601MB1934; 23:CifHQuuklQVv9n03edC83xx7LBSn4hZcrc/lSbZ?= =?us-ascii?Q?5auCx/dJrjQ9AmM03B42zaf9yvqIKHSBQZuG8D4ZwlEa3Sg3aVXMsX9qjbpx?= =?us-ascii?Q?AQMU/zSE9tzb8Aa0i0oD7iNwwdN0pRiqz6+zhrjYQSaPhJBBXWZEfYW2wesR?= =?us-ascii?Q?DqiNOFZfShO2+B43oWowKtcGgQqd4pEbccM5a9I1U4lzhKshh+lHUASzTPoM?= =?us-ascii?Q?W/2L/DzPygH/RLayVhK8ArRJawENj2YXbYxiq36z7W1ikKIgzcZ2yUgwTXjH?= =?us-ascii?Q?+J3fukEeqLdXKN48cX/sLva8ePSV2KKos/8y5fGJxCgYub4DGUr9cGkaodqt?= =?us-ascii?Q?D0dc06Blxj+v8qIJGD4rqxivALN1ke1j7BEkDo+NbDbrRShLEc7LLZQHVohO?= =?us-ascii?Q?5WWf6Oga1pqJgsnqhiJXlZq0Tt/DbrZb9W3zOOWqTywYU7MUTduE5LH50ttU?= =?us-ascii?Q?JTTl79XchjE2fQGZ0HfJ4dsg++BnEodeinLzFMyqj/GaTAaHUAV6PnSfgLSQ?= =?us-ascii?Q?1NL9T9vbCEbewjwpJvvvdiN9vR35Nm9y2qesetLMhu4tyGubfL/Cbq0W63+U?= =?us-ascii?Q?tGahvLEuJNye6x27DrYJAcH/X/nWWU42Ug2OV/euCseXzMM1qltOm3Xg161s?= =?us-ascii?Q?jwlXPqptwA5tUsoz0kjnlDbk02ZvttFc6dMS52WdUJjtqFWAOW4nVndccrUi?= =?us-ascii?Q?gaOUPUFnVSHNK7gbJgsajg3ZRkCI8ojcVvapYGQtK7pVdQnhOCz+/KmST8kL?= =?us-ascii?Q?uwavBFrRhXXNoo9THi6ngh5CeftKZKlwWdM7jVmpTsd9c9B1//fPApWJLqb6?= =?us-ascii?Q?UW9JFMMj08r++S2DRf11VWRzh+N70MwtmFh3N9Tc32lO1Pg/vgnI473xQyuf?= =?us-ascii?Q?ws4eN+0an6a7UcvBJwFEOBdr+BjpRjMaaO/4ZNG/mRnVZYHjA7Fncl4qcWYO?= =?us-ascii?Q?UsWcEBJF97k+GTmvUoVQghDHZ7SPB7e+tAQJnlrH4YTO1C5igU0LAychrP4h?= =?us-ascii?Q?F91xSuuEiUvhnW1QDbuiYkrZW?= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1934; 6:Cj5cimSnkzohvfuUXC+2qy7JGlwW84FUGxV1h3m3kl116YBhm91JefiDWfdK5cjFxNRmFNnHajYKC2AF9eVSdqQ/A/aXRUzFA03ujVk44xr0ysZ1SuGrhDrzxcyIn4OvBc2L6X0aW7ZHo49kki+OazumBMezNwgJ56Zv5l+Ikv+Pwq0AJ5KaWyFlC6Df3l/GyHT1OeKUQvqJdBgTg3PuEDhyMnRpTtC7ItvX4ClBXHg4gle2mSTHp8mS/BL0wYOb9QhPO7iQr+bLbgQHpDagi2Ue0ReXdjdBoocKSZ5fV/DduphjxSmW1udv7YUCl16B1J+v5IW4PSU3C+QtSc+DkDbRGOJlizIXOVjxewBvo+JeR+TXYLMkQBS5xBz+X5PZHgRwIWOBVwH+kVRC96/+WrE08A+D34O5/nBWvVOfeTg=; 5:0jf5azb7ccU4ph61BzNRUCKPtqu/vkQA1hItJYfSYHS78RvJWzLL+sofjj8RU2iRvuM1ZTb+ujJo29muZnB4zb2p8bOLf6sHxU8B4nuYS+X4xKBKYY+ORWUfU15/R/fn2eIRA4e7hB3pKsTbBHybGQ==; 24:5GpYM1wn3RjDsPdOjb5A6HsmB8YL5c+WIThjOjti1b7Se99Y6Z2pWvNb/KEumZzsHFtgoIFLfdLnrCAbyGvXcjRAbIcgufzQZ3zXdBTXpk4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1934; 7:70lgMNq+bOdB3EEr7QRCX9Cp88wU1nCDJUtz10Rq8CVeG2NoJff7EW5xTjXUWeGA8JW/yYgm2SXJVWFLGOXwsZeIz7J5rJ3dgpsvUcotTfujUhGb8c2VS5lylNCkCZJmcgsr4csgF2w/vM3PZeMDG9Wcr3B07DpOG4Hp8/t6BIpwFHWTxv6JSSclRvKj/6wP6Jj8xf1MKVwKP/MAneOvIk+opPxnnfvbE42mfN4jvoFPQJw4x1tOnpRvmjlrApZeK8G8Q+5Duj2HnxV1hEvBQ96MDRallSZho5clx5deTefICcXs22oQ2Cjgtp6XW2dK9ieLJGZXzBT2va48XfdaxA==; 20:pTbdxBefaj5hVDPoMebMwjUApRJ/SgUq4RHye333cvpym6n1tGgFHS8ScGiNU2NRial6jHjtH6qvl7pGQprLKGy6pW+8MUv6p2fgJ18NGHhbZ8+oYY6op3pVMOBf3sxTxEc85Ag77UK3g9DSXjTWv/c+i7Fc2R7BpMU20l6NwcA= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Mar 2017 05:53:46.6415 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR0601MB1934 Cc: Linux-DT , Linux-ALSA , Simon Subject: [alsa-devel] [PATCH v4 6/9] ASoC: add snd_soc_get_dai_id() 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 ALSA SoC needs to know connected DAI ID for probing. On OF-graph case, basically we can check DT port location. Signed-off-by: Kuninori Morimoto --- v3 -> v4 - no change include/sound/soc.h | 1 + sound/soc/soc-core.c | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/include/sound/soc.h b/include/sound/soc.h index cdfb55f..ab4639e 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -1664,6 +1664,7 @@ unsigned int snd_soc_of_parse_daifmt(struct device_node *np, const char *prefix, struct device_node **bitclkmaster, struct device_node **framemaster); +int snd_soc_get_dai_id(struct device_node *ep); int snd_soc_get_dai_name(struct of_phandle_args *args, const char **dai_name); int snd_soc_of_get_dai_name(struct device_node *of_node, diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 175ade0..c91010d 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -4040,6 +4041,28 @@ unsigned int snd_soc_of_parse_daifmt(struct device_node *np, } EXPORT_SYMBOL_GPL(snd_soc_of_parse_daifmt); +int snd_soc_get_dai_id(struct device_node *ep) +{ + struct device_node *node; + struct device_node *endpoint; + int i, id; + + node = of_graph_get_port_parent(ep); + + i = 0; + id = -1; + for_each_endpoint_of_node(node, endpoint) { + if (endpoint == ep) + id = i; + i++; + } + if (id < 0) + return -ENODEV; + + return id; +} +EXPORT_SYMBOL_GPL(snd_soc_get_dai_id); + int snd_soc_get_dai_name(struct of_phandle_args *args, const char **dai_name) {