From patchwork Wed Dec 6 02:33:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10094859 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 517C260329 for ; Wed, 6 Dec 2017 02:34:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4D73729C24 for ; Wed, 6 Dec 2017 02:34:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 41DE329C29; Wed, 6 Dec 2017 02:34:08 +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 5FECB29C24 for ; Wed, 6 Dec 2017 02:34:07 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 949C12678AF; Wed, 6 Dec 2017 03:33:53 +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 E5E532678AF; Wed, 6 Dec 2017 03:33:52 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id E99FF2678A3 for ; Wed, 6 Dec 2017 03:33:49 +0100 (CET) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie1.idc.renesas.com with ESMTP; 06 Dec 2017 11:33:48 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 5F3E070829; Wed, 6 Dec 2017 11:33:48 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.45,366,1508770800"; d="scan'208";a="265527696" Received: from mail-pu1apc01lp0018.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.18]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 06 Dec 2017 11:33:47 +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=TpC5fYoFeY2hX8YL4ynclZlLBHn6gM2OtThL2Dg8N8k=; b=GY7gaA3vZm4Hdaf4QXK1iFb52rnf4f55dr5VlgfwowsUZ4hI5iZHGY5isnjYWETp79POkmPCOtXnSqLQZWtL9ZGV30CTGi/4rAtRvbmdpkaE/TZcosXFUPkNaW3I+u4sq7OVqlZqpsB0xfzL+jmk0sUpSNg9OAPvApwWv4Fv71w= Received: from morimoto-PC.renesas.com (211.11.155.138) by KL1PR0601MB1877.apcprd06.prod.outlook.com (2603:1096:802:7::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Wed, 6 Dec 2017 02:33:45 +0000 Message-ID: <87indkzj8f.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: <87mv2wzjb8.wl%kuninori.morimoto.gx@renesas.com> References: <87mv2wzjb8.wl%kuninori.morimoto.gx@renesas.com> Date: Wed, 6 Dec 2017 02:33:45 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: SG2PR0401CA0002.apcprd04.prod.outlook.com (2603:1096:3:1::12) To KL1PR0601MB1877.apcprd06.prod.outlook.com (2603:1096:802:7::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 79bad2ed-b1f7-426e-9de5-08d53c51c657 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603286); SRVR:KL1PR0601MB1877; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 3:Vp5S4n2dN4J9U7Cslq6QD53GusLjnzqPab95ywBUnkGuTY9atx1/iUyLrb/38ez4ea+B274Qcj4yP2BZ2kFCuF43Y/1J1Zh2nihBd9X9b8+7QAFE+fLAFMA76VZIs1k/QJgY8eBIgaGZ4FjpoI1VC6KAT7id8Cf7ihFPYjwyKpDtRAah+b6D6/IT+6IA02QwsaaT1907qDTEpOhZRZ1W9paiA/RGcQU/s/OOuaDpXWosShsH9nfNKpgqDhOdTncj; 25:qiyRqIcZU7B3vjvOwT1chdiabcmA9NespbhKBZrdwhWh+7JytMM+oMVjTk9OI9qr9afxQu9mRSNMaKPRKVsIzaRGu4e/b0c8lO6sFkWMqwamz4AuxLt38eIbsrqQOufkjJPdOvLosruoEvdVE0R2XX4zoWFyBdESkn2QbqBmHf5DJNN6Cwxw7pIbPsL2RSEp+kUzPmfal/W4FC8aN128w4RQMPp/rdZJIzf27d2pAUONE4VxBb/MVEv9QjHQGVN7S05byqdxbbdpphYaIh6CQCAf4hQjOtJzP852tPJCr2WOaKHFTEEivl/4M9YnLn/D1XK19QWjG1/PmT/mqV3QbA==; 31:YIWkEOc1f0TXUZz0x5ddDoU3r51lzE8d4vMht5drUD55+4jsDQr8DpD/HAEQv+pOnf6gLGK/src1Ek3cSvFZlROjJ6ulS4Oguj0sFAnKxo5w2T9Wgc75hl796I6JX7PohyxN47h/HH2qdx4ucilTBqidO/iCCOMoOlC61FLloJL+XuFWGXhYW1iNkIqSiGRISJrtAc9hEBRuvVXQktq9hmZWsbsmoS3iz/mFFQOKRTs= X-MS-TrafficTypeDiagnostic: KL1PR0601MB1877: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 20:9zg/SmJo8viyLxYe/NQvBXlJUzXMZephwwlHejSKzDL8eTIUdQoQIohUWEGDIiy43oBSX1q0QNYg5eMavhQlQ201KwHfX4hlQpuFqQlmbWQK/JuePrxayNRA+apk3PwlrMr4nCSn4eRiy1/qM7i+iPp298Ux2SkNx9sbwTl2KlTSQBIveBbgmisoxFs7Xg2F0orQ7pPt7gOMCqxdGrXfZUgWK80cacj/cWr1xb7TMsBkXzvAW8OWZboVqlBQPGcsRF6luC6m+z0yb+nnucsljcEVHmmqdWhjAMLB2etbHNstY5aJH7C5DWT/vjS/9oOF2hm+MgaRrl797BE4osciDQQCZ6lZWsbnaSdDHxIwxdYrCQrD0S9X4XU0BY1isuWxw8Ccu2LZ8F4izQ5gQ7Tv5j2SHAS0YR6nFAkFV+jFF1YwbTp5AU+Mutbh1E7djywKm6aa9uu8Rl1x64M1DNNsv6JDTrZsiucKMCN5jwM8cD632M2bLthu1FTOGmfzqNm/; 4:MzGqLP53t0a9kxRMzMXcsM6+cgnLSiILM2Fb0cznzKCkY+EwNyafyUCR3Yj/NYoeNmDULD42Wnrk45+qC3lk8Jg6++in9HWWziIiIVdbV4mmv0dS9zuiCUtS+hAYB1KL83wKEC8O7f3GQZbMJm/x1L2j69+Ir29QregCElWHBaV1S1789plJcQt5hfQwgByzRZJ0rTHsGeqAz+KD197N9QB3wRXT1aTmxrRe4csVsGlHbSPwP1yuJzSM70/07ifUW5Vb8ApZPBFDu3N1K+hftffLP3kEucHpUG/uUfCYgcr5mjAtRXqU9Pv09Yvol5+VOLDbIZv6fBW4Vp74BlD5fg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(211171220733660); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(3231022)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123560025)(20161123558100)(20161123555025)(6072148)(201708071742011); SRVR:KL1PR0601MB1877; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:KL1PR0601MB1877; X-Forefront-PRVS: 05134F8B4F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39860400002)(366004)(346002)(376002)(199004)(189003)(33646002)(2950100002)(230783001)(6916009)(105586002)(106356001)(52116002)(7696005)(76176011)(81166006)(50466002)(8676002)(81156014)(4326008)(6116002)(86362001)(3846002)(25786009)(68736007)(8936002)(36756003)(23726003)(101416001)(53936002)(53416004)(69596002)(16526018)(478600001)(316002)(7736002)(2906002)(83506002)(54906003)(305945005)(16586007)(97736004)(5660300001)(58126008)(66066001)(6486002)(47776003)(41533002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:KL1PR0601MB1877; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; KL1PR0601MB1877; 23:lrj5z3d8fqPtNTzeEHYRd15Qk/6ytGOCb1wgpjp?= =?us-ascii?Q?k2VBxXInbno+91bDEwp4IjuWoFaudb1G7vlKT6Iw+xK2bp8AJx0LLdmfQPuQ?= =?us-ascii?Q?nnqyQLJkEQ94oRGi1NIpmdXYDocChY4aksfSljqz8ff52LrCiS66Mt/RJRH/?= =?us-ascii?Q?wTunNNrnv4W01+hfv6bQPEwKalo6LzF2+purWfDfD4asA5CVVoxWAU3fnrZ6?= =?us-ascii?Q?UILxcxxIALwF83Yc10CihGXlIz5KY540/hIy/tdFdJjACA8PRJk7eXMNUzkE?= =?us-ascii?Q?K2A/OrUR6LLa/GcDDxEwPTqmO470ojDFr5akcL2/JkhqXdD1nZwtbWPoI77/?= =?us-ascii?Q?E0ZK/gynyInmZTgwC46vEVi63Cm3aWIH8HubgFueqmxdtlW0JttN7Xjjg1OZ?= =?us-ascii?Q?psmyUCqKZYPrtu9QIvjyKq9ZIBljIGMekf1BYX3fY650m6kfCnCRlfg4gkuB?= =?us-ascii?Q?qmPuAuNyxYCZHaSpOXVCHeQq5NnB4abf6AR6lqpACJE0nuL/3qGBT08hR1Mf?= =?us-ascii?Q?24FP80AkTnApU1SfA/rxESrMEvrUB6f3uFQf66aAJVwMGEXZdAmd2s+AyHad?= =?us-ascii?Q?4wQaae1e+SF0YakqpPTfkpgXp7L/19TmDTKPef7ef7p39zAQ8W1AVdD6A6rH?= =?us-ascii?Q?WElA8qcT2/h0Uydkfihn9M0VKKo8tKuKHkjlNGfTWIjzDXahJgaT0IvVriB/?= =?us-ascii?Q?AF84d6anvc2nlJX0UrjUvBYr07Jfl69jS6zHecTCG/Qu5jRoNnHWK6MkzpJ1?= =?us-ascii?Q?2ecmon9o9/ADJI25+c/Ig45Xxp7TMNH1FuNt2ALmL6ZsVULjfj0cn6IlX5Jy?= =?us-ascii?Q?U1s/NLOttQ45CnqTUtjXe3/OeOTV9KufYBIABVXWukLimzsrKQeY0obAgvWP?= =?us-ascii?Q?EZK44d5Isb58/dzm2Ny5Mw7qnZvrK+XXqdfFChwmLMvtyQGR+5qF0oohvj4L?= =?us-ascii?Q?GBYqKpVvYzB2fxPwsv18gORJHaIPWrGZ31p9pLUDq9ryvFV64pwaOHMWpQXx?= =?us-ascii?Q?0eO/zKVNW7BmyX3uStYJK/EYaC+5RDF2BownlZL/qiBXHXFMssnI0wJ180hc?= =?us-ascii?Q?2R8SDjIic03M+OGui7oQ+gcmBSbzHAdw7seZnQo1bh6DbQ4v0/0ErXo5B70q?= =?us-ascii?Q?WU6STklD79AKYjhGjlRRTY0goTn/1kiyO?= X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 6:LfA4vddhLuoDz83F5xMZGhnjK5hfvk/3Vd+c3tFFYNUmXNG48WO7Squw4C+WsU4ztp4BVnRHmF6NzWMK2NjPhwkWWb6zl6CWDGZM6t4ya+Er3nUXMlFosB5IFkUpch7n19wHW4a7Ja6OTX6e43ui2iu6++LQ6qmSkaXJxLYVdZZ3yCHutwHwVj7RjvRG043PXx7DCyUasNyratKisnNPO2wPmyG8n5xcsfkYtCv+Tlb6vjzrnC5nk1eWdA1i7BBs2REemZ+6FKyrwO6OJbap0YR0XN+nNF7XmVZ1O+XPbPfCjJOvfjeP/fzFcfDOlAKZPov+pyuWZhNywr7Y9+iWX3nbLmCq15u5pyYqlOdgvxM=; 5:41pKYFbi8zeUslLJwKU9XLpXFKsNCwVsWO9x4GYjqakHabp04pZG28pfbQrGOaseO2gRq/kzYpbZ01kYIKUhOrkhmqzaWn+DbCyvAK5yco6TyJhFN7S1lipdLG6GdnuwAAj0ycz96nR9El85dJOr27QpmHV2qIh9fR09GYK9EkE=; 24:eXwwOiHn5DnSydVK+E+dWoDkGN5xRxP4kthriQzHi1vWvHwU7YDqfM/XxsMIJimJ1vaoYTpd++bc5rN7WU0mReBTnzFV7WruydutcrUDCYw=; 7:Jd6fnWRZUCCDsslKa8fA/cmhag3siwYpH3dnSnQaIBH84innNjAfpiycbz6XO8KENTwEU/Vhm8+Ef8W93Ra0HpPvtb+TNtnjUvxxAevEb7QYOdaNvgflp+kjkbK6I3ldzAIag2K03IgfN6Dg3OFab9sqis1bLzgzRpyeieKaFFE0APO7nvgLPXErthGH3J66gj42l1L6uVvGwtKJbSR/IV+0BDrN8S+21KHmS+M4GEOXBo83l3ALOvs97WcM3M+U SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 20:sAZIU6kKu4yVG3EhmKZBAW5ipelPp1Q8wC9YR4TSFxiyVgjxHJa/I+CU8iBG3a5Lf1Kj4XbqYAjnFPClFY7gEBledNe9a3jcAVY0VgDsRfWRXZ64jEn83xV3TYqwS5wrXCY4mMXFEKoEZqPydfbBHrrL+2e9oruAHBAyYBMjyOQ= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2017 02:33:45.5129 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79bad2ed-b1f7-426e-9de5-08d53c51c657 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB1877 Cc: Linux-ALSA , Simon Subject: [alsa-devel] [PATCH 3/x][RFC] ASoC: soc-generic-dmaengine-pcm: replace platform to component 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 Now platform can be replaced to component, let's do it. Signed-off-by: Kuninori Morimoto --- sound/soc/soc-generic-dmaengine-pcm.c | 51 ++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c index d537864..804b654 100644 --- a/sound/soc/soc-generic-dmaengine-pcm.c +++ b/sound/soc/soc-generic-dmaengine-pcm.c @@ -24,6 +24,8 @@ #include +#define DRV_NAME "snd_dmaengine_pcm" + /* * The platforms dmaengine driver does not support reporting the amount of * bytes that are still left to transfer. @@ -33,13 +35,13 @@ struct dmaengine_pcm { struct dma_chan *chan[SNDRV_PCM_STREAM_LAST + 1]; const struct snd_dmaengine_pcm_config *config; - struct snd_soc_platform platform; + struct snd_soc_component component; unsigned int flags; }; -static struct dmaengine_pcm *soc_platform_to_pcm(struct snd_soc_platform *p) +static struct dmaengine_pcm *soc_component_to_pcm(struct snd_soc_component *p) { - return container_of(p, struct dmaengine_pcm, platform); + return container_of(p, struct dmaengine_pcm, component); } static struct device *dmaengine_dma_dev(struct dmaengine_pcm *pcm, @@ -88,7 +90,8 @@ static int dmaengine_pcm_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform); + struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct dmaengine_pcm *pcm = soc_component_to_pcm(component); struct dma_chan *chan = snd_dmaengine_pcm_get_chan(substream); int (*prepare_slave_config)(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params, @@ -119,7 +122,8 @@ static int dmaengine_pcm_hw_params(struct snd_pcm_substream *substream, static int dmaengine_pcm_set_runtime_hwparams(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform); + struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct dmaengine_pcm *pcm = soc_component_to_pcm(component); struct device *dma_dev = dmaengine_dma_dev(pcm, substream); struct dma_chan *chan = pcm->chan[substream->stream]; struct snd_dmaengine_dai_dma_data *dma_data; @@ -206,7 +210,8 @@ static int dmaengine_pcm_set_runtime_hwparams(struct snd_pcm_substream *substrea static int dmaengine_pcm_open(struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform); + struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct dmaengine_pcm *pcm = soc_component_to_pcm(component); struct dma_chan *chan = pcm->chan[substream->stream]; int ret; @@ -221,7 +226,8 @@ static struct dma_chan *dmaengine_pcm_compat_request_channel( struct snd_soc_pcm_runtime *rtd, struct snd_pcm_substream *substream) { - struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform); + struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct dmaengine_pcm *pcm = soc_component_to_pcm(component); struct snd_dmaengine_dai_dma_data *dma_data; dma_filter_fn fn = NULL; @@ -260,9 +266,10 @@ static bool dmaengine_pcm_can_report_residue(struct device *dev, static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd) { - struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform); + struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct dmaengine_pcm *pcm = soc_component_to_pcm(component); const struct snd_dmaengine_pcm_config *config = pcm->config; - struct device *dev = rtd->platform->dev; + struct device *dev = component->dev; struct snd_dmaengine_dai_dma_data *dma_data; struct snd_pcm_substream *substream; size_t prealloc_buffer_size; @@ -296,7 +303,7 @@ static int dmaengine_pcm_new(struct snd_soc_pcm_runtime *rtd) } if (!pcm->chan[i]) { - dev_err(rtd->platform->dev, + dev_err(component->dev, "Missing dma channel for stream: %d\n", i); return -EINVAL; } @@ -320,7 +327,8 @@ static snd_pcm_uframes_t dmaengine_pcm_pointer( struct snd_pcm_substream *substream) { struct snd_soc_pcm_runtime *rtd = substream->private_data; - struct dmaengine_pcm *pcm = soc_platform_to_pcm(rtd->platform); + struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); + struct dmaengine_pcm *pcm = soc_component_to_pcm(component); if (pcm->flags & SND_DMAENGINE_PCM_FLAG_NO_RESIDUE) return snd_dmaengine_pcm_pointer_no_residue(substream); @@ -338,10 +346,9 @@ static snd_pcm_uframes_t dmaengine_pcm_pointer( .pointer = dmaengine_pcm_pointer, }; -static const struct snd_soc_platform_driver dmaengine_pcm_platform = { - .component_driver = { - .probe_order = SND_SOC_COMP_ORDER_LATE, - }, +static const struct snd_soc_component_driver dmaengine_pcm_component = { + .name = DRV_NAME, + .probe_order = SND_SOC_COMP_ORDER_LATE, .ops = &dmaengine_pcm_ops, .pcm_new = dmaengine_pcm_new, }; @@ -438,8 +445,8 @@ int snd_dmaengine_pcm_register(struct device *dev, if (ret) goto err_free_dma; - ret = snd_soc_add_platform(dev, &pcm->platform, - &dmaengine_pcm_platform); + ret = snd_soc_add_component(dev, &pcm->component, + &dmaengine_pcm_component, NULL, 0); if (ret) goto err_free_dma; @@ -461,16 +468,16 @@ int snd_dmaengine_pcm_register(struct device *dev, */ void snd_dmaengine_pcm_unregister(struct device *dev) { - struct snd_soc_platform *platform; + struct snd_soc_component *component; struct dmaengine_pcm *pcm; - platform = snd_soc_lookup_platform(dev); - if (!platform) + component = snd_soc_lookup_component(dev, DRV_NAME); + if (!component) return; - pcm = soc_platform_to_pcm(platform); + pcm = soc_component_to_pcm(component); - snd_soc_remove_platform(platform); + snd_soc_unregister_component(dev); dmaengine_pcm_release_chan(pcm); kfree(pcm); }