From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932158AbdERBj4 (ORCPT ); Wed, 17 May 2017 21:39:56 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:5799 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932130AbdERBju (ORCPT ); Wed, 17 May 2017 21:39:50 -0400 X-IronPort-AV: E=Sophos;i="5.38,356,1491231600"; d="scan'208";a="243297148" Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=renesas.com; Message-ID: <87bmqrosla.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 2/5] ASoC: simple-card-utils: support snd_soc_get_dai_id() User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown , Archit Taneja CC: Linux-ALSA , Simon , , David Airlie , Laurent Pinchart , Russell King , Jose Abreu , , In-Reply-To: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> References: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset="US-ASCII" Date: Thu, 18 May 2017 01:39:44 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: PS1PR04CA0022.apcprd04.prod.outlook.com (2a01:111:e400:780c::32) To HK2PR0601MB1873.apcprd06.prod.outlook.com (2603:1096:202:a::17) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: HK2PR0601MB1873: X-MS-Office365-Filtering-Correlation-Id: e76238df-b5e3-450f-67ad-08d49d8ec3ab X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:HK2PR0601MB1873; X-Microsoft-Exchange-Diagnostics: 1;HK2PR0601MB1873;3:Jn5lDEJn+ELAiXs4+PiHMlwrRhQCXL4o0JKkJONkmOm1R/66e2NcpP2EjEjoYCYtzLEtJ1BYFyzxswPVP/FkqPNvg3HeKJ9FWgMBR0DLNq+P+7jIOXgP5AFP2Gp0FIqetAAlKjROnrgbSJxgEiKtKHqIgjfivl+ELzndyZtZw6+hzJGXw+gOOnBuvZSw7wlvaCzbeOQyPwRRP+qI2LN4mGIahGJwmedyah62OcNuhunHxDhFYq1M/GX+WrKRPjc+d/YLaUONkU6nNzZ64vfvPiqMJcJu0qpk4cqVvkc4KM01y3E8Ect6h/a+sTgxyMWV9k9xmSQbKFiIn8ew4yWr6EvMXIpVLtCU6ZEbXeo8rmE=;25:WoweEgrLpYD3OsjguALLFiB+zjhb8GmTobnqBmvkunGILBldp44h95lcH80xLNEk8kRiiYtoyRdQ6NnarUryTjQVz/kU7o385WjhHjRgJBqrMhAQXo50asUfdzyzf85beZyJXOWkdii+6e+p2UrK9QtcST8XDvCCiTgndoQj8uKMY+ClZBpuzxxwb2Z29M2cAZklnz8fN1WUdEIDMS8DLQY1FTzYmZ38QJcCq/nHK9L+5XrR3aT+6jdPa9FOy3DkmBceaCJYfZtcobo9A/KpfuUUPTZsnqk9rCr0LAzFAoZ47Exa3fEvKZzPFMgy06XTsAqCHoDlJWnIg+RjivSb45TRjU9m7t28xmDEBzqD1qp6FiKq8KP1htuO1Shp0FKQfbcHOSbcT3KR0G8dwqu2SUt0Cbl1k2HKrpDmJcu0XSohhoohPrxHPCxJElB1afCb9wx9z402mMODTvTw4lUwPxlWPlUmJoAtIvxYIP3EOgk= X-Microsoft-Exchange-Diagnostics: 1;HK2PR0601MB1873;31:XxleygOygLLJnOGIy4nuhFidyikZolX4ekckYArECCrBzAl37Rglw2xz83cHuVVCIYH9JW6twqmcgXc6AR2NY2IudR7ECVSFwEOy4F2iUhbtGbDNAf3DZFQfcdFLi0pn6dDEjrzXp145BWAfkuy5p3PrjEwXheYkB/xycpVHa635rO5SqhiEwr/n6dNRU9wmLXVHD52CJpyWhD36i96nSTwfdUXYhpO5Z3c8RY0dQEOfd+vYmSQrK3z+LX7ihr66KuueG1KH1IK0eXSwLDw5aQ==;20:fS8WdTfmg7O/k5r7f4PxWH984UQLu2HJz2u+UUZH5W6Vux3084n48V1v7m99XD+ZIy/3t1HvZ2Jls1KMjYkZLLmeZFHYcS8ioUrcnmXfC6yujGT/Rp9qYOmRkWLMRi4sQhifPnLODxyK9zDb9uOv1eZVXw71VfqbQ1ydFQo7y8eqwONAOMgeunKHrlBfBjw6c45M+D+L8+hF/lVv7Twda9oTr84AD/UTh3y2WFPBsxPy87BdNPZiJRk/aWwa7o4M0qIkirHaGwaj9P+0N/zQjXGcadGJ2m5nt3M2ZKPZGstHXaeD1F33L6+/XnPxYS6GgmQno/xwu3lbD72/CU+8V8QubjE4MiLs0Nm9cJ3YYGJvUn1T4L7geL+YQdaoB6IMyH8Pblpf5YMmBbGEMZcWzKmlFfmVoLKpEUAvEiPqlICfs1gqbXcWwAP0KxqZZgwp/5+hHjzuUVK7ZotfFOx9AhBYKmDnGMei762cywKuv90lhqPfYEdEomPLtKLc2H3H X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(6072148);SRVR:HK2PR0601MB1873;BCL:0;PCL:0;RULEID:;SRVR:HK2PR0601MB1873; X-Microsoft-Exchange-Diagnostics: 1;HK2PR0601MB1873;4:/P3JLN6xXJ795MNfS4p6fakWCpPQEkNk3SsCbelkn3+KyOJA8ddD1Ex+SC8drL3KnoI5vC3iOhlsOlz6VCUYYicKUd/UuTyTItcnaowGe0ATmxTqbNHnz57fzxZNaFAEBJypgAD883GJPAvI4Shqt4Pp/RqD51IMYEbmOA3mxxMlAFpC39y7x4Jg5kEownOrbiivX3pVDzvNM3AZypD8PKTb6eTNBQY5WX39YwwkmFM3Bh+69FrdynVK25oKw4aDshg7W38+6naybePEINfWz9by85RTeLl245/yuP0vYgvZejdMlQocTgJ7aFNVEgY9K2SFGTl7IA35JXqJAxmr5NYDF3szcPYE0mJwrucgpWK0sRMECGwPt7oNOwRTL2Pzxs+gOb+MFBCFxFirUWKbFFw5wL2R/sAolzj+gstzlySKExmEUUlTgdDaEGLSbKt9OD6yaEeoIvasORLfjnMZWAc1vfPI1wSDfVoFV865AMJpHLOtqUA1ojeCtNYXSk+lL5PmbBKw9OnUdk0fmjzXf3XxVD2DMSuvftrofGc1lTbMg+7+lL+6a9HydzjbRgDIB6axAiOZDFkDJoozsWN7+Gd0StMDTPeGDfLMae6ytdMKyyRVRdqUrCjOEA+WV6gbNhjZemKCm4DhBzXLioKCSu59NMdApucKCle5JfGIJXchGWEdF8O/zoE/nfSxRgdFOVsGy64tzZzA1cprfKOk6OMPRszzETTYlXjLUsgaN/cnKhh+kMGH+Rq8rb2i7409kV0DRDtazN5/jDNi8oHVsfLuXVtJnDw0YWs01aeI+zLlYhKXXvEkaBvQWrLDeTpy X-Forefront-PRVS: 0311124FA9 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39840400002)(39450400003)(39850400002)(39400400002)(39410400002)(39860400002)(83506001)(25786009)(66066001)(50986999)(4326008)(33646002)(53936002)(47776003)(7416002)(76176999)(54356999)(54906002)(8676002)(50466002)(81166006)(478600001)(6486002)(3846002)(23726003)(36756003)(305945005)(86362001)(53416004)(38730400002)(189998001)(2950100002)(5660300001)(42186005)(7736002)(230783001)(6116002)(4001350100001)(16060500001);DIR:OUT;SFP:1102;SCL:1;SRVR:HK2PR0601MB1873;H:morimoto-PC.renesas.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HK2PR0601MB1873;23:6Z+pWlUHJK6TdTQlNuOfI9KP57OPvDd6Zo6gFRK?= =?us-ascii?Q?b9cPyCp9spu8FAt32gTSvW6F3KtGAOrmjzUOBe59NF8Dl+KdKl5NdHY4Inz1?= =?us-ascii?Q?endLZcE4qXfWDhWa3idBMhCkOpNVSk3S0iUKQG0iB53lTd3Rl8xBBLu0JgZm?= =?us-ascii?Q?XVgQpccNAo0yDHwRKi0Uz8WuFgudzzzqCuEoDE7QvdJQmHxPnE/+3wRWhz2e?= =?us-ascii?Q?DreSHL1+Llt1NS+n0YJgakAYeRDBQhXviRmpVI1ucT5AzjwJoSB/uuyafkQI?= =?us-ascii?Q?Sq3FemzdCS3IlUf0pQEA2fUm0R0EUBfCekJ7PVydx5/gFZupaXC8kpcjl8y+?= =?us-ascii?Q?028ZJG+g4xHzX/aTudsoA/nFEy7maXBX2N1f7WgAjIKV47PGoc0Qb5m+Tcne?= =?us-ascii?Q?9duSzxc5D6ccCSzlTOrCKeQZqq5s1qS4ILEIyAgsNhDegNd5b7RPl7O1jIKe?= =?us-ascii?Q?OvaWtLho6tkB+6f6wApqEImKcp0fWwbgDELxKZDbdKgu0gJpCidmDhxLZwJe?= =?us-ascii?Q?Tt53m8WpEHyjShDdLScuxp0q5oy5I8dXRDbQXJOhbV5MXlhR0hkjkx5W/y4J?= =?us-ascii?Q?LtCAfyJ/okPLZG4cvyX0yzCuyGdB5Q4IwDYxN/SJFz7gX4FzCzthjU0UsztU?= =?us-ascii?Q?ZVBZvvCGIEl8DkL0nfCx3LG+7RMeocNLbtTjSnAoTEf1JcN0T6nrK9mqXyU3?= =?us-ascii?Q?E7dcDvqgG8qSYiARjzbBXWIqHGcZw0rnKmi1ab5mvNmvFw3hzBccPW/b98Tp?= =?us-ascii?Q?Rmf3zM7U/LbBFFnL8TYevBklMiQuRDWI7ko+cqBT1F+qsQkKppMR6pwOoIyw?= =?us-ascii?Q?OnUaaps/JrGTKWiUQKPXFkqVI5EjNpCdVFu2zc8EzJWopwEJD48uYSnmjtMP?= =?us-ascii?Q?DVej6KSE4wMjPjcyw1tcJRePDQwKY0JgiSubSPZZ+kmKkKsADZgrNkcre9Sk?= =?us-ascii?Q?aSA7TjXEdlWD5Z/Xj2DyBIiAumffFFEcL8cREcpfVucY5sxUXIcFsnhNyUOr?= =?us-ascii?Q?s9x1zaEUP5/tKuVz73Nr1rGu9o9KEbFgCRtKM3VkEYC9B/mK/8KgQ1elulLx?= =?us-ascii?Q?vuEB5m/mFrLB6URmmC0UFGst34bEj?= X-Microsoft-Exchange-Diagnostics: 1;HK2PR0601MB1873;6:DFSpSnj3/3CmGk8nUyit5SwVYEgIaFKk4oc+aeOGPPHYUxanOVcyaQsJKvURqey3H0I+S9uXYIprpR3Ykp48/4+cetepe7JIbFoWL6+868ftQ/AGhe18iv91HUZJJG82Tc3odsye0HIXvaUu7h+srWR81AGf4+ZPr24W3jw6NhN5JnK+Qpa11/RFrTZfqjggkfzEz2xpYf+eTkOS6zqFuwwLpquGGc9VCFjQgrQjTsCnuXYWAv9UH3NPTLsVaDHg8t7ZnTNB71DXmaPpKqZ+sAiaJiXlXGwrt9cG58DWssSblSeKbCR4T6IqohuhNwvsupxrAf6XrGlCWBfJfP4Liw2o11/wxDhSRXn8nJ03BGWDSbuAW4Be9lctlQTXV5WfbDPFSrJlyr/aE5q5ukepOooVbJlIXGJpOcY6r4gkCQBCns8LPbv6qhmswSDIB4I4I9M4pKYK2xFx7B9Ln+kFHCw+gLlg35ES2/7Cz9E7mWJfugg0Zgi5ZhdmVzA+PQa/T6t3NbXvt5uv5vGJCdbs1n6rzGLCCjNOcgXxQeaWOUg=;5:37JpFxBlipNrzyTJk54pwcYjOQoKAA0Th9WSqe5kbjc2f5ScpWOw/1Wt6t7qsyEHolmZaIWjOraJWdgQSLcQQp5w6H85GeLSojg+y1d2fuOvTjYAjValjpAaa0YiMIMz2PWo0xy3qHPQqBV/tm3xEw==;24:yivcQJrIyyR+it37qCJCHG9OGN0dSEQrurW6cCN2oV5tVs9oazpD0mWpqZIq7a1r+4Vvafma5RuPjeGd1AEByi+eSPxsDuD9xzJUwDyGlr8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HK2PR0601MB1873;7:fo1w7Q9Pr/gOyP8t8pBkK1shwOAokR86L68GGSeowUBV4BtL5yK6s/Agw6/CXxjqYHmILkN+TzgGV6i8BiKEO/tLNq14Qh/NE3RnzwnXpjS1RxjngzvoYKUtgKQ5pI8bx7fxvyCiUeAk9n3Ir42mwOOqRtWlr0ww9AzFs5eWXur6ZurUMFqdFp4UlEH+2HSXGJ9WWobY4thpxXhCCk6E0cv+DtTnhIJc/PBbrqTu+uGQJffTGW9iBmow06JMTnFkE+6tieT9fFq2JhxJCl3GGymYoxMgMDtLGCD1RFdyDaij7TJHWvLVLsjBHpbsUPgOpxzH+GOk4KmHr1HjCCkQJg==;20:84deqrMgIZ8zJxjjh/TmPCKuDq7CcHBKgR0l7B6VpxIhk1QnKFRi8E8cZiK9QrhgwfgwDa4GTtSPc8M6fizH25wIvwsjP7DXkuCZWhEHqz9eKfsTGUE8+pFVTfm6yMlrX4UyWkUoheVSw0Jz4pMo5pg5+aCS6tlsCiMN6NvfRLQ= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2017 01:39:44.6168 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HK2PR0601MB1873 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kuninori Morimoto ALSA SoC needs to know connected DAI ID for detecting. It is not a big problem if device/driver was only for sound, but getting DAI ID will be difficult if device includes both Video/Sound, like HDMI. To solve this issue, this patch adds new snd_soc_get_dai_id() and its related .of_xlate_dai_id callback on component driver. In below case, we can handle Sound port (= port@2) as ID = 0 if .of_xlate_dai_id has its support. hdmi { port@0 { /* VIDEO */ }; port@1 { /* VIDEO */ }; port@2 { /* SOUND */ }; }; Signed-off-by: Kuninori Morimoto --- sound/soc/generic/simple-card-utils.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index 5a3d51e..fe726e8 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -177,9 +177,18 @@ static int asoc_simple_card_get_dai_id(struct device_node *ep) struct device_node *node; struct device_node *endpoint; int i, id; + int ret; + + ret = snd_soc_get_dai_id(ep); + if (ret != -ENOTSUPP) + return ret; node = of_graph_get_port_parent(ep); + /* + * Non HDMI sound case, counting port/endpoint on its DT + * is enough. Let's count it. + */ i = 0; id = -1; for_each_endpoint_of_node(node, endpoint) { -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kuninori Morimoto Subject: [PATCH 2/5] ASoC: simple-card-utils: support snd_soc_get_dai_id() Date: Thu, 18 May 2017 01:39:44 +0000 Message-ID: <87bmqrosla.wl%kuninori.morimoto.gx@renesas.com> References: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset="US-ASCII" Return-path: In-Reply-To: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> Sender: linux-kernel-owner@vger.kernel.org To: Mark Brown , Archit Taneja Cc: Linux-ALSA , Simon , linux-renesas-soc@vger.kernel.org, David Airlie , Laurent Pinchart , Russell King , Jose Abreu , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: alsa-devel@alsa-project.org From: Kuninori Morimoto ALSA SoC needs to know connected DAI ID for detecting. It is not a big problem if device/driver was only for sound, but getting DAI ID will be difficult if device includes both Video/Sound, like HDMI. To solve this issue, this patch adds new snd_soc_get_dai_id() and its related .of_xlate_dai_id callback on component driver. In below case, we can handle Sound port (= port@2) as ID = 0 if .of_xlate_dai_id has its support. hdmi { port@0 { /* VIDEO */ }; port@1 { /* VIDEO */ }; port@2 { /* SOUND */ }; }; Signed-off-by: Kuninori Morimoto --- sound/soc/generic/simple-card-utils.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c index 5a3d51e..fe726e8 100644 --- a/sound/soc/generic/simple-card-utils.c +++ b/sound/soc/generic/simple-card-utils.c @@ -177,9 +177,18 @@ static int asoc_simple_card_get_dai_id(struct device_node *ep) struct device_node *node; struct device_node *endpoint; int i, id; + int ret; + + ret = snd_soc_get_dai_id(ep); + if (ret != -ENOTSUPP) + return ret; node = of_graph_get_port_parent(ep); + /* + * Non HDMI sound case, counting port/endpoint on its DT + * is enough. Let's count it. + */ i = 0; id = -1; for_each_endpoint_of_node(node, endpoint) { -- 1.9.1