From patchwork Thu Nov 5 08:51:15 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 7559141 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 93439BF90C for ; Thu, 5 Nov 2015 08:51:45 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C3A7B207F9 for ; Thu, 5 Nov 2015 08:51:44 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id A238F207F0 for ; Thu, 5 Nov 2015 08:51:39 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id A3C87265A78; Thu, 5 Nov 2015 09:51:38 +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 39AAB265249; Thu, 5 Nov 2015 09:51:36 +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 5FDE4265249; Thu, 5 Nov 2015 09:51:35 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id 69D792659D7 for ; Thu, 5 Nov 2015 09:51:24 +0100 (CET) Received: from unknown (HELO relmlir4.idc.renesas.com) ([10.200.68.154]) by relmlie1.idc.renesas.com with ESMTP; 05 Nov 2015 17:51:18 +0900 Received: from relmlac2.idc.renesas.com (relmlac2.idc.renesas.com [10.200.69.22]) by relmlir4.idc.renesas.com (Postfix) with ESMTP id BBF9A415C4; Thu, 5 Nov 2015 17:51:18 +0900 (JST) Received: by relmlac2.idc.renesas.com (Postfix, from userid 0) id A17E92806E; Thu, 5 Nov 2015 17:51:18 +0900 (JST) Received: from relmlac2.idc.renesas.com (localhost [127.0.0.1]) by relmlac2.idc.renesas.com (Postfix) with ESMTP id 9C46D2806D; Thu, 5 Nov 2015 17:51:18 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac2.idc.renesas.com with ESMTP id TAJ27862; Thu, 5 Nov 2015 17:51:18 +0900 X-IronPort-AV: E=Sophos;i="5.20,246,1444662000"; d="scan'";a="199138656" Received: from mail-sg2apc01lp0241.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.241]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA; 05 Nov 2015 17:51:17 +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 HKXPR06MB1016.apcprd06.prod.outlook.com (10.161.181.156) with Microsoft SMTP Server (TLS) id 15.1.312.18; Thu, 5 Nov 2015 08:51:15 +0000 Message-ID: <877flwq1fd.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Thu, 5 Nov 2015 08:51:15 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: OS1PR01CA0012.jpnprd01.prod.outlook.com (25.161.225.150) To HKXPR06MB1016.apcprd06.prod.outlook.com (25.161.181.156) X-Microsoft-Exchange-Diagnostics: 1; HKXPR06MB1016; 2:hCUtT3v0KkoC4be3R4aelq8qcejjSVXbJxbydYQyUeTlg2BfwuGbG6fCl1uUn+t8C+o5joaYFuibxSmrf4b9kajvOsixqZhW4argiHJJJ/Sc6rXuukJCHfUkmkKxeLDkSzvtkYyzaFEzLhwELWiQh+J1w9bXre2Ox3g3DQXptm0=; 3:q6J/q0rPm/MyqbupUxCP+c4m4rEYbNicRuSOsGk7+w1k5jg4TI0DPqXBpWgbmfmCizFblGBvX/OnQ9HmmTg4RdTUF5UskyaebW2eQbYKlEDTjG/ID0+rSOZLJvQjkPLbAj5hYCY0qDjyY0ab4A330w==; 25:MchHToxf0C/lp+K7b0O9iEGPO4jTVlODmbjYVDG4kJK/3DNiT3ecYDCAjRaHDeDQSr/i6m5TGcQErgMEggMrqTOkoRNOiEZ2azUz787qXjKpFkVATIcs+kvp9ugCEqBbrfD7UsgiW9FKIyyceNn31EMTcy/RhGRnTQonBkRoRWnM7UhFaF8LgkhHX9b39evQOhtWg5wlEKily67Ib6DRabcda43JCXMXRIlYwUV9/j7UPF8Voj5158LqvgPTM/Vg X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HKXPR06MB1016; X-Microsoft-Exchange-Diagnostics: 1; HKXPR06MB1016; 20:/Cj9I5UuWIwY2aW5Wym549oO71hWSZ9sYNc4n0cz9/h0Me6VHhRoV+ILFKMBcxJ9Ng3C7kcvl6An2HRshsB7QBh9LgQjFTm16sOmjunmNrTQg9E+iXGCtUS3lMgNHbX00eTZnfKByBQ230XY6IkoHZc6LokLxCrGFz0x6snY+1BdZUfyIRHy9+o8bi1svNIDfBzvfLma0r6D97FGoTp0j0MavK+lkhZDUTIKrwoOXr0vfy0sOKVVN2pvitfGfZW+SCyc37iVjU5jdzRFbw7MAYHpiHBXUkOH4ExOxrSJruqPbzFRy6jDQ2X0Psrm1KFc74o4dnIHo+PtC2bQOhF+Lcr2hthV/plLtqB/LKu+s4EOO5Z7+7UP6A3HuxzzQEB3INkZ4A4CdG/s78li/ljf8iefw9aQQZajSgoC1sLUvyl9Vhy/VvAzNXg0olIaWc//qV1zwqSN4/J/7tdNJdC1m0e0U1AHlle1++6+TDiefR+JH8+1GIezlPrWwfu37j5z; 4:Vhd2Wa6Tnx+cfhGS8jxTAoal17OuAt2MJQBrFPtemel7AXJGwquQKL4OJ+YJhkX1bLdfEF6kYkJPqHmLv8Us6e6mNTGJ0i5v1hFkbU9GFnKW9VbsG3108W2jFX5VKTyvm5WIsVoTxmFJcxQ/sGeckR7oMzREASOO7T71JfgN+BrsjvyRfjFbq0bEk02SfVU7Imj0oNTZXclf6kiWd2XjzNtj9JuqYI2m5sGGF9uinafa0KShKBIYajdPfsC6beVudQOT3XBBVBNwMoaMfVX6lbJqMd5OTwkF2BRsD7R5BRKDpMwnEJB58fzkiqnCp8DYVepT48u59SS0BRC7VLa9TxxLNU+t9mwhCbS4WSNFLqw6C/BW6GYQVRJ7uuPesuXP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(85106069007906); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001)(10201501046); SRVR:HKXPR06MB1016; BCL:0; PCL:0; RULEID:; SRVR:HKXPR06MB1016; X-Forefront-PRVS: 0751474A44 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(189002)(110136002)(5001960100002)(50466002)(5008740100001)(77096005)(106356001)(229853001)(54356999)(50986999)(92566002)(36756003)(105586002)(42186005)(81156007)(101416001)(87976001)(23726002)(46406003)(33646002)(83506001)(122386002)(47776003)(5007970100001)(53416004)(5004730100002)(4001350100001)(5001920100001)(19580395003)(97736004)(189998001)(19580405001)(69596002)(66066001)(86362001)(40100003); DIR:OUT; SFP:1102; SCL:1; SRVR:HKXPR06MB1016; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HKXPR06MB1016; 23:Twpl1Ghnkz0jTNnmdTv1ZZxJmx9Z0/SnzIU7k9ACz?= =?us-ascii?Q?dDxgHXjDs8OAsaOs15T+M09uX4AR1vURDSlhfWNvJAmRue3hJbc9Qa5eYCY6?= =?us-ascii?Q?2AXQF16Q053PUVzr7rAyOz5T81kK6L2jMeV1BE1Slopuw/Uekk0PwvETDtlb?= =?us-ascii?Q?Ve3SpuhxOBBnKvqJPtRFpWYo391mN21kupfHRVKrtSb7wuFUwf9lN9jR8rVF?= =?us-ascii?Q?eOyln9ti29GadanQUJmLws4Usw9UxJxyAqTxe0iNhYJvgzQo89CB1iEQpzmz?= =?us-ascii?Q?hQJIQRqK7BOn5gdKnYwbTy0AhWYHN2Zm9ljh80eLTcuaRzigxnLzfggLFr3Z?= =?us-ascii?Q?peX0lUrSbveYzeAQ5ffEVBPSyur8JcsceKjhPgFOl4soBiLTyXGaqnTBQUEj?= =?us-ascii?Q?kJPOlX2RLHQ2UAo+q5OXQveVQYd9FogCwx2F9l1l10+CjT913r3cErz9HALl?= =?us-ascii?Q?S1F4pGwbAEjV+SdVJtT2ApDR+hsQ7fBldIGpbdGXySXS0zjAhJbLrApLs0Of?= =?us-ascii?Q?vO4yqdKSYCgodsCbpucsJl2W3AWfmTl/1MxqJiF82RxUvXIUgLqo0X7ER4Dd?= =?us-ascii?Q?0p11A+v/u5nNCtbbSlqDm6pfI+fkbnb2tSx8zD2U+szJXFejLjGylqjvVOuW?= =?us-ascii?Q?Qi6ZsIQ7CKKzEKP/oNT/KQpGY5fbSx8EhyR85d3PSOI6KrUXpBXDUbvc/t/M?= =?us-ascii?Q?4Dg5l3WMmWoqeem573ZU5/oheX8C/w6zhVqD7bG53cAwjo+MPtBoOfP3/57L?= =?us-ascii?Q?pjanRtifJIgwnRnsFMKtIk1+EMnE6cVwDdXYM4YBppI98G/RAaoTxQVBxVfu?= =?us-ascii?Q?fa62+WjcxNJLRhkFvWPP8HVj6GXkgWg+sTgKEBOi82UCRza/lOvG/sIZkRAN?= =?us-ascii?Q?VAgM4YW6JdjmJmoixJYHxycTZAmQfNK9jHkB9bP0ZqdLfe8EL5E4Kbmv8bie?= =?us-ascii?Q?TV0iSVWMdvpONGGTgJaYUaytn0jHSlR3DqX9H2x743FYOS3g9QYZOU3fbtKX?= =?us-ascii?Q?68EYWIE5mU772Gd7/TjgrIt/OJxkONbFoTivMFc1K83uXqaUwtCdV2pMFPi/?= =?us-ascii?Q?74Z8ZM=3D?= X-Microsoft-Exchange-Diagnostics: 1; HKXPR06MB1016; 5:OHLXAsEoRud374hQeVKKpcBNHx89XIxyXWA5PZiKCPdTJYF34VbQYPLC8Gxa3X426IfSo1sfZezND2Hy4Q09Wsf65y3l8M3c6MH+ykrSf29CUd8Z0OrQ0HNaANQkH1vPlP+2U14Gxqs2pLXIGlLl4g==; 24:5ZmQ0qOa0IZ32Up6YuUE9oeCZM/qGtUkc1goA7f/GC5unZUKyMnH4n7MDsQAELW8hnPtZrID4AnOloJxWzTfWjiIA3xV9lJc5gybuR2EvAM=; 20:PMOrzhTq2STyoVWKd91Wb5n/8mUWKKS0o7lBptOQ1HKHGhoDoIntJ1Ea1j4+Q2oOG1Mn6blVpQXTwvau8q0qbF0hfdXk5D9ildphV1W36xe9Nd5PGG8mxQtnTMSpsuFdmbI8jY7S2icUgAzvfoJ1YmZKmZfgEuuf0lEok8beuzE= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2015 08:51:15.4998 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HKXPR06MB1016 Cc: Linux-ALSA , Simon , Liam Girdwood Subject: [alsa-devel] [PATCH v2] ASoC: rsnd: call clk_prepare()/clk_enable() for AUDIO_CLKx 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 ADG can output AUDIO_CLKOUTx, and these are generated from AUDIO_CLKx. Thus we need to call clk_prepare()/clk_enable() for AUDIO_CLKx. Signed-off-by: Kuninori Morimoto --- v1 -> v2 - use clk_prepare_enable() - call clk_disable_unprepare() sound/soc/sh/rcar/adg.c | 21 +++++++++++++++++++-- sound/soc/sh/rcar/core.c | 1 + sound/soc/sh/rcar/rsnd.h | 2 ++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c index b123734..1946ce8 100644 --- a/sound/soc/sh/rcar/adg.c +++ b/sound/soc/sh/rcar/adg.c @@ -418,15 +418,20 @@ static void rsnd_adg_get_clkin(struct rsnd_priv *priv, [CLKC] = "clk_c", [CLKI] = "clk_i", }; - int i; + int i, ret; for (i = 0; i < CLKMAX; i++) { clk = devm_clk_get(dev, clk_name[i]); adg->clk[i] = IS_ERR(clk) ? NULL : clk; } - for_each_rsnd_clk(clk, adg, i) + for_each_rsnd_clk(clk, adg, i) { + ret = clk_prepare_enable(clk); + if (ret < 0) + dev_warn(dev, "can't use clk %d\n", i); + dev_dbg(dev, "clk %d : %p : %ld\n", i, clk, clk_get_rate(clk)); + } } static void rsnd_adg_get_clkout(struct rsnd_priv *priv, @@ -600,3 +605,15 @@ int rsnd_adg_probe(struct platform_device *pdev, return 0; } + +void rsnd_adg_remove(struct platform_device *pdev, + struct rsnd_priv *priv) +{ + struct rsnd_adg *adg = rsnd_priv_to_adg(priv); + struct clk *clk; + int i; + + for_each_rsnd_clk(clk, adg, i) { + clk_disable_unprepare(clk); + } +} diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 1363966..81250cf 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -1227,6 +1227,7 @@ static int rsnd_remove(struct platform_device *pdev) rsnd_mix_remove, rsnd_dvc_remove, rsnd_cmd_remove, + rsnd_adg_remove, }; int ret = 0, i; diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h index 599dfb6..8efa19f 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -405,6 +405,8 @@ int rsnd_adg_ssi_clk_try_start(struct rsnd_mod *mod, unsigned int rate); int rsnd_adg_probe(struct platform_device *pdev, const struct rsnd_of_data *of_data, struct rsnd_priv *priv); +void rsnd_adg_remove(struct platform_device *pdev, + struct rsnd_priv *priv); int rsnd_adg_set_convert_clk_gen1(struct rsnd_priv *priv, struct rsnd_mod *mod, unsigned int src_rate,