From patchwork Thu Jul 20 02:52:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9853551 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 168BC600F5 for ; Thu, 20 Jul 2017 02:52:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E4183286F7 for ; Thu, 20 Jul 2017 02:52:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D8C092871A; Thu, 20 Jul 2017 02:52:30 +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 2C2F9286F7 for ; Thu, 20 Jul 2017 02:52:30 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 55C932673D2; Thu, 20 Jul 2017 04:52:28 +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 DE5B92673CF; Thu, 20 Jul 2017 04:52:26 +0200 (CEST) Received: from relmlie4.idc.renesas.com (relmlor1.renesas.com [210.160.252.171]) by alsa0.perex.cz (Postfix) with ESMTP id 3C290267343 for ; Thu, 20 Jul 2017 04:52:13 +0200 (CEST) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie4.idc.renesas.com with ESMTP; 20 Jul 2017 11:52:12 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 66AA669DA8; Thu, 20 Jul 2017 11:52:12 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.40,382,1496070000"; d="scan'208";a="250649930" Received: from mail-hk2apc01lp0210.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.210]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 20 Jul 2017 11:52:11 +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=P4toEs9+14WUbBbFEmj081HS2w+JBBkHVEQfeIBxLJQ=; b=L7f0noiqd5exdsP473Ami3Sinqed5YHuvaZFfkbroSvMFXMVm8Iq5Mfg4GoK+m2Zq3MU6OmLKrNLkieDkL0+30aKpjolZYvpphqIAJ2A32ScrJbpelhG56+y9ydw4fcxg9qSlyyCNDxxxJXXj/wsR23rnLbyPHgiMP5qjVAFOAA= 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.138) by PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Thu, 20 Jul 2017 02:52:09 +0000 Message-ID: <87bmofkeqf.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 , Johan Hovold , Brian Norris In-Reply-To: <87fudrketk.wl%kuninori.morimoto.gx@renesas.com> References: <87fudrketk.wl%kuninori.morimoto.gx@renesas.com> Date: Thu, 20 Jul 2017 02:52:09 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: KAWPR01CA0026.jpnprd01.prod.outlook.com (2a01:111:e400:b00b::8) To PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 336245e5-ba65-49bc-e1f3-08d4cf1a50ed X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:PS1PR0601MB1881; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 3:71OOupjCuksUqh3D/HZFELxre+T17ix86ySGyva/Mk0LSY9nohqDyjMG+DwNno7OvT3yQFvelMdJw79XgIWWKR/WiU1k/Vzye8OBMY/U+fG7GKs8EcsCbj8aymJ++JO6c8MW7woua359/QAMjag0xEz2Z0cGhBwXjxfmMlxNefDd+rnc+C9qDx6MnUi5sxQL54R85nS5+STYqRUpBXoY8JC5Hwi+TIFEE6c7cG0gEFDK3SKPe2gDApC731SQs3INwZ3jlHVLlEWCIpE7I9E/c2lVb7XfT6rl3qyaRWWPxwN0VXs2jlfFYl181G/M8nBslqpmTUHxXpsHMXDSqkYEM469fghGXuE9G0+ZkS/VnM0An+S1XjUe2jFWxR6Mj0eQsCxOJrymgrl6x7wJM2k1/+bir09fWoIN5EopTb0YMkVxQwza7uHrEzWQAbjGXeG++yxItTalCtL01MfWbQHzpz1yxah+medJEwJRvWfqi/EGjux57X1iNcmX4d8ox9v/E2Bxfq0b5UpUA7+Ya+Pr6XFalrEp4cgg7kvdWZ/D4or9azhmz4N2ryc4Qv8t9hkvLaY+KvKQzI5TfUBlXkSSuR+FKZ4pzfLckKZO4grCcvzIvH9TIAujbA2osZvqM1zmT49bnrKQFBmptDFV0u+E5ciZsDieQonlyUdAi44RQbSsIJ+C0kHWHPdy4Wv4TMFeMwjx0xyjnKrKpNE6iWgu/CGzOWXxN84QjKMd5rqxnNI35t3bPbmOBVtyNpmhQEQ/FXnjrpk2DmsUdLA2nk3GJw== X-MS-TrafficTypeDiagnostic: PS1PR0601MB1881: X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 25:E/PU/hUx7GGOJCvcOJqySJ4AhPYS9MxXAz8gBkjqMm48ikI9igeF7CLaIkVtZLJgG1nJMelkghjhSqD28jdt0USeBK9xo7LIBWfZu/jPEIXhZzai7HNx+vJvm6ZinNHxo9/iORNikO5HQ76rCrHQFS6I6+krFOm9zo3Nu+6dCKkKTDX5tSq67wUWiTI+y1wJpAoB9VDblK6fFWDF/Ckcl3m/e0jCNAiw9LP9Luv3EzUVah40ZbQghNBrbYOO5ZCc6BNK9B2p3DK68WXb5ApeMiFv5fLnqZbwujrNMO5klqQfxNWchP6nHAT78YhddImkorUbD4PMQuJFJUfRJeE636PQt6OSk5oQUiWvBzoXDCgI18iWBbrzR8GUSMMHQO99LaA63X74EdihdwdIkT99LCTzhSaeuN1zI2v5eDutKQNzKn87zu30S4v8PhdYhpVI3Y52fvnSon0mSltyvw0KT8xBbRi9q7p1Sh5smNPWr+C++nIFii9S5jUOKTvbvUBc7a8K2laBAHTCFA4XDePedR00D4b+dFyQyBmDxlPCFymjMO3RWOeKjAMPxZySmnWUVlW+2JdV++SEhDTsVupm2hrC0spVRERvJJ5a4CI5Q7A3FDICmXajBatVKdpoECS3OmNYYpHpbXe66HSIvonMIFor3MAPrJDGKz3rM6IPg3PHBrLLpu9GUFrfQq16U4jBJU+xSP3IvY6IZ0vMepJz0OxZw6XYkzgejro2MqQK3Zp3oQTckiv4PKRUbKBh33B1OldfXjF4zWJMxoPWHiJSRQic8QBgq8R+y5ODMZ3x0aKa5JkGUdLximcBr5zPk7m4nhtL3poVa++jZAYvlscvbpY0Nj1nQIC65kbI5+rfRrC9DcQUCbvNnMQJJI2xShda/Tda/3CNch11E1PRnre+eD/qu7HTGNu+e8rCujTBJic= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 31:E5XChr2sX+RrxZZ5iKwaj/2Kgi/Xm0xXhfbluuDJk/nNkC59Cc6c9PwA3sWGnUjlhFc700Kn3+6BdP0OHWBn/WiWv2N/mCx+EFkcIGTBD+9wjcNf0M8HZR9j4BAeBg5fnn1hZUkMp6+YfELyV0KEqLEhsFTCpLxC+/ebVYmjq90T+5lxlrS7FJY4R/BWyZ8j/9EGuGQOl0Ge8wBjJOHpKznUkNnsjF3nmL4+KEzECKJJikFPPbtFRIzMQGdAOBIErd4xcLwf92aZMDqsG7u5hyZit1D/HWbb3Q7aSB5TvlEts2V5u0QfZQZ4UcQzVnOQYDBQsIR9eNl5OpJ5uXvpGmUaX4fg8TKWXAo7WlhoU9A6r/4d4tg5v6rF6NyCWNWC828EsotVnexvj8QH7W6dY3xBGRyQmoX8CM30Zap/AWugMUCoMtFUu1AtuNkyFf0EqxMaat44bJzsUeEIRkvQYKUYVsv5gFNQ5i4A5t+cJ6veY3PHOvnlgjHtElXxGbkpWO/YdpdLlMrmDKnTtpRgXG2p4xEvUWHnfNrypQWbHizek5nmVJJLcl4dcW5FY6HaGBA+dpVk6WcBG25xxXJP96MO+QrBvt6PgnmJIh73iEOtLhYmXAhJA0AhcVwZHOGHeDxu+l93yFXJCl3VwesOkvUf1+rttg8UNL75pGks92ANYn8ylP7nO4qTfo0+Kk0GcQ7fVt6J6VjZYSFq0y6wrXg8cSFR6GUCOe8UUdSobIM= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:+r7MFZmNgmL08/61w71W6yrWu/9cMp4w+zJ3T9QPY0HngatEZ3R8QRS8fjUNQrAW9IRPkkOG3N+9hJ/RnoVZv+6TeekhpC7p7yhQ19CyoXqrQcLdWOnJJ9BXfFwWEaP6ZoqoIWH9FOd1FGhYNBKT4vcQX8wKLlQy5sSKuYoer60f+Bj8cGEI8CxQ70neGX633wociOZjLCtcIRZDgu822z03dk+tDffY8rYUMlShtXZhvSFP0TayUEcUaagSb6COY7KTSeFf2otzVxIkdRdolczfy3YfoUgHVx4BOM/3s1/+GwvGLwmVKPAILXDNqQUj38uSkfu7C59olTk5WkQshqmycjRMAJ5fHcHCh1M/6do0x3M3ttO2kqacoQCSEtk7MAtWe+Lcy3xBN15HtfhnAJjFd6utdQb2949uVeiucbaYvBKQuZYpMoVKCyvYynKjMP2i7jmMSfYqK4wZLoHmOJPWbwWjJgnwA0NX/jYf5iAXpdc3jESOrlxiJPH3//gq X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(2017060910075)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:PS1PR0601MB1881; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:PS1PR0601MB1881; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR0601MB1881; 4:GMYdNkeqo9QgQKyfOS93pUPeu35zhOSf+2jEpvYo?= =?us-ascii?Q?Ysevt2D9cc4RfT3a7q2K0175kGA1HsnABatDGOkNXHDJoiRsz7dREUZVQDGz?= =?us-ascii?Q?kN4J+EMVbO2uwPieTPv+pkVKqTRhU5q/Gzh6dGiqAhuGK/v3OAaUTkxN5hyG?= =?us-ascii?Q?l0m4dlwmFVFtoPToEJ7Bkguu6/m21a2tfPu/gK1FYoDSSZ7LlFwmeeZIjMuz?= =?us-ascii?Q?PFltqiJZIL/cupA36M9WJNIJqncnUhTIP3SR14YztWqgyGcmVZ1w4ql3tPux?= =?us-ascii?Q?uxiz3aKx75Uy9kIn9Sbfas1+1QYAKkLYKXmOC0/DbfEdYzcKUVa6LVin626z?= =?us-ascii?Q?WMUD6f6jnrW4WY4N+WY1HZXTT481HJVDCRYz24frs8HXK65b8ijpoH326JT1?= =?us-ascii?Q?4p3bHIfOL2h+ib/Ank4uvAK/GmfvD45mBtnpQfyPdpW+anou3e2MHVKvCzHy?= =?us-ascii?Q?uljQX+zcpJKKM+kDwI3eIbJwWtY87EwR/NP6tEwOK+rJae9HPHkl+JHU99+n?= =?us-ascii?Q?nVEdMdebC4y7kaibI8t5TYjtoDR15XnsbP/PaaHucls4XobQtfcPXnlwNSPk?= =?us-ascii?Q?MDkEreM6gFBErfPjdA+8uJfBoR1UU/Lo3Hzplf7aE1Lfey2LGc/7XDEaGd8I?= =?us-ascii?Q?NpcPCbtW99noHVo4SakO4auVcolGnxDL/aVifOXfYrd5TXGD16iTLigDHlLh?= =?us-ascii?Q?v/SghD/7tjXrjrFSDgrdFGhJ7TqHdE1fGU6KJ05xe/5r/xEAT+kuTKyermHh?= =?us-ascii?Q?efr0hnGojcGNUvQgbKi3XBfXXlUw2avElCoD3KPF+MsXakwosQPf57xSxAtS?= =?us-ascii?Q?Q1B9xm9EsqQf4Pf+otpsU2PxgNSf+XjCB2FDuzNbsZxWRe3Pwlqzl/3/AZUk?= =?us-ascii?Q?y/TTdhlv5YbmzN/ziIfbD9iAjh9eA2C9ztISVWDvSVqA0e16lkhPz3vaPk06?= =?us-ascii?Q?xFI6+mXfkpmNjEOZwxABfsTSC5ucY0Mw5ugdsDfq5pMcMoE9Ab6+EuQCV7uF?= =?us-ascii?Q?O1JP1ylDzclM/NgaxR0omOk6FS/JskrVjhwq5ByciQ90S8sfHiFrzN3MzgOS?= =?us-ascii?Q?fHH0vGvfZa9cVWrliyT/fajALtWfNP/f81xjetIp1rE0fjtQwDrwr1jYi74k?= =?us-ascii?Q?5tN9GJh3kQYWi536f2qgXtLO9FwpAFdR4w2ZX+sfo14nnSC+VxkwMA0k3DZY?= =?us-ascii?Q?MBWuN/F45Tn2ISowO7tPFplAmB/8j6pO9RkQnC/GVRfge6wSe8hAfkLKlkav?= =?us-ascii?Q?E3BdpRm2eKhpAoikydKC3Bf4Tn17C834LIqbdaqz?= X-Forefront-PRVS: 0374433C81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(7370300001)(4630300001)(6009001)(39450400003)(39410400002)(39400400002)(39840400002)(39860400002)(39850400002)(7350300001)(83506001)(33646002)(305945005)(5660300001)(189998001)(4326008)(36756003)(53936002)(50466002)(38730400002)(46406003)(50986999)(76176999)(54356999)(2906002)(3846002)(6116002)(23726003)(66066001)(42186005)(86362001)(25786009)(47776003)(53416004)(2950100002)(7736002)(8676002)(4001350100001)(81166006)(478600001)(6486002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR0601MB1881; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR0601MB1881; 23:NovPd4WCJPp82l1/XAKAZBfbz0ZJnaozwj/8l1O?= =?us-ascii?Q?7cov8pYIkk4PYVFnrYat41DsWz1ES2JzMw4no2WbS0wlL74/GS9Ne8X0BfFq?= =?us-ascii?Q?Y9PKeL3Uy61BGIUp2CcklbRTRWE8JeSt204JhMneN37onVqZi/XS1HOQX5++?= =?us-ascii?Q?n6iwE8/WxliSU/8k3xQ3grzGD+CYsn5vr2QD8khuoTYdB3Z0njMsEafVClkI?= =?us-ascii?Q?JVNXDKp/57R5WtEyyWnlP/N1PK68MFA7mzI6jssvs+jIqJ+FsTq8N8OweOWV?= =?us-ascii?Q?OkdjbGLn/iRaKuJPyIvsNgG076WS7f+50+6t/m28gpIfSB6M8sgSVVX5O+4L?= =?us-ascii?Q?IS7sgcRTcNUQ64g1+oC2/SSNgQwQ+HLDW2kpk95CzW6SMekiTVOz+8hyfgxv?= =?us-ascii?Q?zYLRUgsRQ0oSY5Zf1TwNW0AQh3i6OKdauQzFtFCp/6ttSfYs4PtHOjk5u1HS?= =?us-ascii?Q?n+neYDtN1QawjQaKdEpIU7Mn/hD91O3XBsg5jOBcxSGwQj+YvyZkoLSCd5Y2?= =?us-ascii?Q?NHLoTuFGlvs/1/Bsd1bNuBzpdQ4Lw22CaqC34VFoAVakwIFt7NSMYWA7n91K?= =?us-ascii?Q?T8/M+2fNRxNuRZ3vgC1su1qVa7Cd6zMKQXs28beB5EZ/b2xy/Ung+Bh4RKnV?= =?us-ascii?Q?QZr0+Oy3x6A4iRC2FT0bqUssroBBR1qKYI+ZY+rSnwNF5lNN2epO48rv5tp/?= =?us-ascii?Q?lueR02hJtarrLpXfNTKswkpuqk9VysQY8o1v8W1CAXU6eoXl/JmPhF2RzFrb?= =?us-ascii?Q?OUpNEvUJDEwqdnt30IzXFhJrTty4u1JG5JKlJVg0KI9t/U+6I0y8BBwa+57Y?= =?us-ascii?Q?LAUYvxyjd7qwO0y/Gjy66Jy4SwhvFQw8p2Y7Th9UJMpx/6BV9wBnZkYW8UlS?= =?us-ascii?Q?mBBI4llktqhe7gWpcH4RnD/kiiAMdmVVIzWbfnnqsrgTsYjt2bbttrKZMYM6?= =?us-ascii?Q?BMOtUI39HgiHucc9dhCZ6KZ+JvzWE6hfeIxH7Xb/PtPqxgtGzsQMfNvU7RJ9?= =?us-ascii?Q?lqUAog71iUaW5+9tHVyLyutQ6TBbIur8CQZ3RWClpeqdgWXyGzPmQAxQ5F9f?= =?us-ascii?Q?drrdqqSNcicF8VxD/S/MYtakbKyTgnAjIhVy2nVL361KLabLrKg=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR0601MB1881; 6:b+IUh/ojvP1QNnAzcLc3gKESAbU2jgr26Y2Wkhh6?= =?us-ascii?Q?jAROQ0xbytGxvdeWGKhrmE9J0GIyDjlfgxZUcvCgR+c4+9jaPOmcb7U9SHxE?= =?us-ascii?Q?sIKexkw0jVOoOi4uoycaS/aNUOvV5lbcYpbLyNH+gVITVKvfsCB4ZLXT3BaX?= =?us-ascii?Q?0eeQcrdy7EQ5gPla4lZl4Qh4X2v1ZZlkKZi8f9IovrhDQhkcnWvIharVo6bz?= =?us-ascii?Q?QWLxyKIc3pNunCFaP1a91PKGqQaCFtN2CPtZ5rimnTc6uO8Y6YG/8hBJ0Svg?= =?us-ascii?Q?Tu7rS/iqUzluuk/9eYDErw9MV/b3TEdX4G9vaZrHQROdOAK037F9WlHRNP9V?= =?us-ascii?Q?KEL4cc1ioGDdEMwzU2u118PHz5knsJgHb4xwVx1V2rNy1ppiLfXFvfesqFYQ?= =?us-ascii?Q?x4zhEiVU4oRbZceCp62Dm359aAatfTqwIKHP2AD0fcRCzLWEavApjlM/sO+y?= =?us-ascii?Q?zAz8yXWOm4SfGNpQUucJopUk45/ULZ+n7GNSABsyJrsdCK6nGtoogzaUZ/Rg?= =?us-ascii?Q?36SyT/16hLD0U8inPnGgLqRAhGHxqDtnimxPxYkwn1L1e3A6AC2qEiBwajQc?= =?us-ascii?Q?Y7wQUE2nUFWrM5nos5IlxaPe0Hsuo9ne8DrmCqsR2YZWZCEXZMztHU/t3r+o?= =?us-ascii?Q?dd09JGAINTJBKqydYKYCDFHQN+gptubfvFwfeFSwh6a6LeKVjKK2cYevEQOv?= =?us-ascii?Q?WcEkpJDGnX3QFfjHJAPERZP/59SfobN6twr2AHM38O4q0NlgAhBzItVaW7Iq?= =?us-ascii?Q?+/X9oI6lF9x6oQczeTjd9oEH/sROykDST+Xc7qR9leNV3x5P7Kh7w+AlQQbb?= =?us-ascii?Q?g5c4qsiZAM+s0s927xUHHFZCLpsP7zft4McJUEb1HAEPoJv1RjpUw/vCOh/Y?= =?us-ascii?Q?RWDvFBQfuPRuqKT195wdUpeevMRd6fm2sBKswgaCOwk8JCsJCDzzZhfMmAe3?= =?us-ascii?Q?s5RZCbIrV3sc3ORD8diNg5Yj9yTpX9q/gnsw3xf5mV19OogVxrtGOBWYVJfB?= =?us-ascii?Q?eWZYXkXW6CzqrNhoe51ld0i+?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 5:6sMw/+cApX+UFgQO+i0ZGKyDRm+T9ZsYjGkFmwBfqlYTxIZba2ZGQIvUPcvf3U/G+O46HOQTCbQ/qIqJAh4vtreciKxyCNSRKVs6VS6YgbNZ92TIyqik4F0k54Wbed67LreXuVyEqAalQ+dWybr8P3WfW2JgZFvqKlK+m6bKdRINQrmiDE0QnXqavozCdnvFmmYifNAvCBJWaGHfLPj/I+pDVir1OHL3+NcP2NYkaZvGFclw1j9nEOH1BnnWe/v5YudSAH/3fKRh5qgC/794rfA/dsqscmvRa6PsUpr42Gk3nOI2DOEFko2R4+exoPYTCZ2wVBaOlBQENByqmTAzIUdki5efuiACmlIdmvwmSsrlpEnF7/JiryA3jfVW8imAh0YKdINN0PNI1q5pe1A9KDqSRRhPlN3yDLkgNuL9TtZNo2xwhUYtnmKXsqWhHoWGttH8oUBJZjmYPc4OBjL62XbVXJqfpZTNEsygMdlQA8r+X8r+w4FerljiOx744+Gn; 24:HQH9Tim3o3hmdROU+NeXXDHoJ51mekf+oG01VdwUzpztKdFX14L5cxXWH9eOk6g2JafmuavaiGWd61X4ibE4hdz7u7lZmCd5DQTm8VfIVPA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 7:LIMpFTZ7NdeT8lZ0jt3wK0gl23svq8G2Qz9huY/ByEYZnNmxjUbw4onuIYQXb4QG2NBrYDx1mvdeJOOv5QWUlSff2ouUa/y9T3DoQRtuXQvBky3TrBno82yrohmPd9S4BvwWqVV7AcaapJqMuT9VaiiFGuB9pMH27tK1zy5l4Bua6OPdmWN9kgX7tzs7QDJw0uPWCZP6ss4gr8qZhUWvrixFMHXavZQ+qoe48bxf+Lfqxs55RfkZDYAAA+mXEh72JTcb2/0+g8U1IuafLRVxF8h09Yf/0Eac51/mYnxlDd7KcJ3/ssAfYfNvOg3EHGPj9DdTo0tg1Z4s/XpDiFQS1EoW7JrwI6mvzU8gcN9PecfQKut0mWE0KHsqJQP/D3Yhtqc9D09iW6qG+Z09QNOj6YEMlCDweSiR6rfcl6lgbMHlx29MHap8jfYNIfhHzAig7ZAu2kMpgFTgDV8X73qk9EvOWM9n+egH+r6xB8SXnul+dDrbuPnDT58nE+vh4/tXQZ/Dr3HP71EqSWXBvy9L/tI33rR73LxlxjUYepSt7wJrMhYjrc3o6OS5RkSs5VOGT1c9wxPvwMKt+qzxnnq5zE/pUpFdAy2+7etnoDiFO5/kmREl9zNC/szmVbJtNhbqHiQEYUnLW2vJXWDpzmiyMvsl8joiHKL8Okd12J/gBTaF9fS3S3rcGcazVrpTpuEA84DWo4siwiGTcgdhE2BErR2tcDIqgVJ9PifSsWzZ5hYIdLWkoISFitiNpT654W4umONAfJ+JU/OX/4gKuDfcUXXByUwut4Mq29MWAvCB+og= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:xEdXOUfSv9OiwMgAkWgVJM5uxIcN4Av2tK1wZ+7K22YP1+Udck3RbawmuPdV7CcH7D5ZciIn2HZX8YJYsD5A9vvqh+c8W34F2qJ5deDJMM4BGocmrB+YmGN1UIxb58R2AfTS5YgeYJsyapk1rbHg7m2QHGRFkX33VOsvpGM13Fw= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2017 02:52:09.6766 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR0601MB1881 Cc: Linux-ALSA Subject: [alsa-devel] [Test Request 3/3] ASoC: add Component level pcm_new/pcm_free v2 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 In current ALSA SoC, Platform only has pcm_new/pcm_free feature, but it should be supported on Component level. This patch adds it. The v1 was added commit 99b04f4c4051f7 ("ASoC: add Component level pcm_new/pcm_free") but it called all "card" connected component's pcm_new/free, it was wrong. This patch calls "rtd" connected component. Not-yet-Signed-off-by: Kuninori Morimoto --- include/sound/soc.h | 6 ++++++ sound/soc/soc-core.c | 21 +++++++++++++++++++++ sound/soc/soc-pcm.c | 33 ++++++++++++++++++++++++++------- 3 files changed, 53 insertions(+), 7 deletions(-) diff --git a/include/sound/soc.h b/include/sound/soc.h index 963eef6..103ae43 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -806,6 +806,10 @@ struct snd_soc_component_driver { int (*suspend)(struct snd_soc_component *); int (*resume)(struct snd_soc_component *); + /* pcm creation and destruction */ + int (*pcm_new)(struct snd_soc_pcm_runtime *); + void (*pcm_free)(struct snd_pcm *); + /* DT */ int (*of_xlate_dai_name)(struct snd_soc_component *component, struct of_phandle_args *args, @@ -881,6 +885,8 @@ struct snd_soc_component { void (*remove)(struct snd_soc_component *); int (*suspend)(struct snd_soc_component *); int (*resume)(struct snd_soc_component *); + int (*pcm_new)(struct snd_soc_pcm_runtime *); + void (*pcm_free)(struct snd_pcm *); /* machine specific init */ int (*init)(struct snd_soc_component *component); diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 646c722..5459e5b 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -3214,6 +3214,8 @@ static int snd_soc_component_initialize(struct snd_soc_component *component, component->remove = component->driver->remove; component->suspend = component->driver->suspend; component->resume = component->driver->resume; + component->pcm_new = component->driver->pcm_new; + component->pcm_free= component->driver->pcm_free; dapm = &component->dapm; dapm->dev = dev; @@ -3441,6 +3443,21 @@ static void snd_soc_platform_drv_remove(struct snd_soc_component *component) platform->driver->remove(platform); } +static int snd_soc_platform_drv_pcm_new(struct snd_soc_pcm_runtime *rtd) +{ + struct snd_soc_platform *platform = rtd->platform; + + return platform->driver->pcm_new(rtd); +} + +static void snd_soc_platform_drv_pcm_free(struct snd_pcm *pcm) +{ + struct snd_soc_pcm_runtime *rtd = pcm->private_data; + struct snd_soc_platform *platform = rtd->platform; + + platform->driver->pcm_free(pcm); +} + /** * snd_soc_add_platform - Add a platform to the ASoC core * @dev: The parent device for the platform @@ -3464,6 +3481,10 @@ int snd_soc_add_platform(struct device *dev, struct snd_soc_platform *platform, platform->component.probe = snd_soc_platform_drv_probe; if (platform_drv->remove) platform->component.remove = snd_soc_platform_drv_remove; + if (platform_drv->pcm_new) + platform->component.pcm_new = snd_soc_platform_drv_pcm_new; + if (platform_drv->pcm_free) + platform->component.pcm_free = snd_soc_platform_drv_pcm_free; #ifdef CONFIG_DEBUG_FS platform->component.debugfs_prefix = "platform"; diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index d801c93..36b3035 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -2634,12 +2634,28 @@ static int dpcm_fe_dai_close(struct snd_pcm_substream *fe_substream) return ret; } +static void soc_pcm_free(struct snd_pcm *pcm) +{ + struct snd_soc_pcm_runtime *rtd = pcm->private_data; + struct snd_soc_rtdcom_list *rtdcom; + struct snd_soc_component *component; + + for_each_rtdcom(rtd, rtdcom) { + component = rtdcom->component; + + if (component->pcm_free) + component->pcm_free(pcm); + } +} + /* create a new pcm */ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) { struct snd_soc_platform *platform = rtd->platform; struct snd_soc_dai *codec_dai; struct snd_soc_dai *cpu_dai = rtd->cpu_dai; + struct snd_soc_component *component; + struct snd_soc_rtdcom_list *rtdcom; struct snd_pcm *pcm; char new_name[64]; int ret = 0, playback = 0, capture = 0; @@ -2749,17 +2765,20 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) if (capture) snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &rtd->ops); - if (platform->driver->pcm_new) { - ret = platform->driver->pcm_new(rtd); + for_each_rtdcom(rtd, rtdcom) { + component = rtdcom->component; + + if (!component->pcm_new) + continue; + + ret = component->pcm_new(rtd); if (ret < 0) { - dev_err(platform->dev, - "ASoC: pcm constructor failed: %d\n", - ret); + dev_err(component->dev, + "ASoC: pcm constructor failed: %d\n", ret); return ret; } } - - pcm->private_free = platform->driver->pcm_free; + pcm->private_free = soc_pcm_free; out: dev_info(rtd->card->dev, "%s <-> %s mapping ok\n", (rtd->num_codecs > 1) ? "multicodec" : rtd->codec_dai->name,