From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S3000174AbdDZNK1 (ORCPT ); Wed, 26 Apr 2017 09:10:27 -0400 Received: from mail-bl2nam02on0059.outbound.protection.outlook.com ([104.47.38.59]:7824 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S3000138AbdDZNKJ (ORCPT ); Wed, 26 Apr 2017 09:10:09 -0400 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; From: Daniel Baluta To: , , , , CC: , , , Daniel Baluta Subject: [PATCH v2 1/2] ASoC: codec: wm9860: avoid maybe-uninitialized warning Date: Wed, 26 Apr 2017 16:09:51 +0300 Message-ID: <1493212192-7930-2-git-send-email-daniel.baluta@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1493212192-7930-1-git-send-email-daniel.baluta@nxp.com> References: <1493212192-7930-1-git-send-email-daniel.baluta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131376858048701013;(91ab9b29-cfa4-454e-5278-08d120cd25b8);() X-Forefront-Antispam-Report: CIP:192.88.168.50;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(336005)(39850400002)(39860400002)(39410400002)(39840400002)(39450400003)(39400400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(48376002)(2950100002)(6666003)(356003)(86362001)(5003940100001)(305945005)(2201001)(50466002)(104016004)(106466001)(105606002)(81166006)(8676002)(50226002)(8936002)(2906002)(189998001)(33646002)(38730400002)(76176999)(50986999)(39060400002)(8656002)(47776003)(77096006)(5660300001)(54906002)(85426001)(36756003)(53936002)(4326008);DIR:OUT;SFP:1101;SCL:1;SRVR:BN3PR0301MB1188;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;MLV:ovrnspm;A:1;MX:1;PTR:InfoDomainNonexistent;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN1AFFO11FD017;1:NZW1YPkvounMc5tqHVsscJzBgS2tJ1bGhy5Iq7jsYgG9d5D7XpnLEU5aC5/Jfd1Qwg/cZ3uhRplBXZ1J7JCICN8/cVrXZnBMMhdikpAjnND1ekcSeb2GfZZJ/k9vBKs7pyVYECLAKjUgwIzLNmahBCTlBSBCJMDWNACa8wPAObP0hRcsVOHNYRd3+sL3XLddBgBoisOqKExeMWbj+YV+FegZsa8f62ytyIAUkKjaa/wisqDFCU6lwmr4eMbX5/kdx5X5WTaCoHLkMhRXfSm2l+e+naVARzBr0lZzhwC5W6MHw5jFaGPUdd4sT44jlgRC1tTxwG+1YNY0d+8Qea77EqrD3puy6vwgsx3yI0n6GFy403evM+f3h9F2NtY/WtIO7q7nOKmUJXvrICcSyBFCuSWBe0CAaW1A4vBog01dbvKxmNaBXkAqGzOVu/PvaM9EiI2QcmirL2U/q8NHul4iwbwSAYM4qiH7cmVZV3aL1HT0LTWJCMn1SWiXgPhIKt3g7rKPTojb3oCxmuxXlBiZtz40HSuEeQ1ZOx4r7TcRm9hf8iuK1xwWT+HMeKgi9vm13Qx3a0GgEd6DoAv+SoAuBJ7KAxsPh3ymGj0/2Dyp4dmpF6PptOeuFD7xrjznS2A/WZAk2K8HsfQWo2edxJ2BhVPV0SAcDHzSPIEpHCG/rJZO+I7aYxQW/rTUqTRHxIPuRLLjra2X1zx5vV4P3+EYYBa4AVyRFuzo9R75UEHaF4Y= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fb50e932-8c3d-4cdf-c0f4-08d48ca58e27 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131430075)(201703131517081);SRVR:BN3PR0301MB1188; X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1188;3:dmf3955LG5FNNKM9T3sGw2baHRPazXAJzFguOUKDCiYIpyo1Z/5RwXDLXzeH7pwbWZRRXmPbTpHdWeeIbMrhQn+jWJ+AvoJ7QMlpWBD/oqJylnDtsG6jaSK7mOo/qBm7OZ45yZaiCNkg4QGo8tJTdTl1jXUVRTpamAQNmaL1qBQmhv52jM4TkjqmVoj6/9SIF0cAldNF32aa+oJKCY8wvlvtuBDJd0omixBMOc/wC47Q/HAOAC+IUgRUw55wOKiTfCZgUYRnyuHCLl8Py7YxDZakuBaN+lQO5d0+6sE4vzc3KO/zuhCbgcSYN9i66uuaT1p3lXIRk39cawHD4BbuFr3mNKjS7rx+jcRr9r1T1R1MfdQjwTQUgRqxs0bhM62kRS8AYBqCvTMYVQYpynpPkd5eDTXTdyGR9mbahKel7XjVCy9edtvxkO5lIh3Q//YG;25:RRIU3JWYw215FrMvfg9FKs2wQ2FuG2uGuu0bA6KqoBo31L/dWFtDM08IhBX2PVWI3mj97cDTR09ZZ+QpsFCvt8eOPd+gOao/TnIG0JW402GNgTCRGpYT7xJouk+lF5YbgI9hxjoQ9fH4pTOM24ZcWa2CPRjvITQfZbJ0ZEFdv2+QNCjctCtSD14XTs41//HHmmHFPl1oey7mwl1zsjASM6vA7sP5Ahq/KQIrJCLKGFdYB/813qgccnydLXIlYU+aW/QFymaJsA8se99FUnw3ZlAmN5N7ak9IJq+WYnDawFA1bP2pRscm5j0dXHMMiYA8uYYDcc5J7xDEKVJMk5PA0O229S7TYi7duSTDVLZGAtnW6cxFbeWIhdHXubWDmEtASlQrX96q/pIyAoiEiag+1mu7uCcFShCcE/TBkO0uhDQphwkvSDO5+3lXOh0kn7n/yurG0MbZggbQ9q1tDZR2aw== X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1188;31:lPeI0S7ogLs7INBJpcfkb26nK4ZKk/uwX2iDWs+j9nfiKP8tN8YFVMEWHvXVUwZHzCpI7NdeBTWEGXa6zLwP74VUCkDjKOgYOrDfQNwByGK8i51LczGsSjGeCPo4iX6AVbqAm7ud6TU6zSB7HSHTF5Zm60KDDb8bA9ebso/Rn7YGv0Sz+Wnb3+qQS6juh7FpuXikX0hUW+QkT+bSY6TF6fY9AuMcRmV1COaKdawVpDZp/16heA/GRAJLZBledhr8ccOn4HxrnWtYYieQgyz/THrNsRJt6D/wEMc8Y2R6qGM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6095135)(601004)(2401047)(13015025)(13017025)(5005006)(8121501046)(13024025)(13023025)(13018025)(3002001)(10201501046)(93006095)(93001095)(6055026)(6096035)(20161123563025)(20161123556025)(20161123561025)(20161123565025)(20161123559100)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150);SRVR:BN3PR0301MB1188;BCL:0;PCL:0;RULEID:(400006);SRVR:BN3PR0301MB1188; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR0301MB1188;4:p4nC599ueKkZeiI4ug1kjTqou1lHaqbMhuaSCUXX?= =?us-ascii?Q?uS8CM32Z2k9XlG2ElkfanR0O0Spl9VuAjHTdB6VRijrnQgpdlVYksQ7asSfn?= =?us-ascii?Q?4x68JCVPB8Qys/ytBBkL3JJVi549U+WVcM87aHN4woMNxkPzGplcJzsBuvw/?= =?us-ascii?Q?jT9g6U3xHS+UVaLhcDw39yJe0E2cgY5DB+Rn5L0ieYkUVDYII4aS6hpmU6Vk?= =?us-ascii?Q?ge+WEceRuKz9QznrG3bNiF7C9a9igutct3Pk2FNh/sKfrIOlThXZGldqApu5?= =?us-ascii?Q?zuR3f782qmFzSYxwQfkGKDAUVwFphV4QUNv0nHTliq/fNvGVYjed8MdBqihv?= =?us-ascii?Q?oudBZ9GvVcs0yRV2uskI176JxmfhM4xJvylJv5FoQxH/SCeb0pbWSxACUk7G?= =?us-ascii?Q?3PaLf5QaBR/HQMSIR58iTUy6p6/mDVlPXAd2X/uclICZtrSJFuF9Za4g3Kvp?= =?us-ascii?Q?LR/IW6S8Q2ub8Bkp+/e44GRb0wrjzEInntkoBfPd16urY15fbq+FpuXGAzXr?= =?us-ascii?Q?k59vyceNo+4YNKm8SQbG/ptW1tQQacAT/PbQykN4/CveFcWNpdKjKC0bOqEf?= =?us-ascii?Q?Tz6j/B/hjMOzyb8V+NiRil9KMRmiixMt2px0ePq9uMawaGurFuUAWXaZPjFw?= =?us-ascii?Q?x0iINzlyRxyhtnJ5CDcp5P2SPvCAwjGUbMDttx6R+MjBGRte8mOyz8OS6jYl?= =?us-ascii?Q?8DMHF5kqnshl1+XRPOQ4CeZXrMiBulCUl9C8jJ6aPe7p4OgLWtEYVhe1SRtP?= =?us-ascii?Q?VCD0gBayevFV9Zz1HWCXNE953SSUh6HPzRICqVgr1KPlAG/7DNcGwKy0Lm49?= =?us-ascii?Q?nqeJq/BVGoS2GvX9juqFDSfUEtcuSduIIgMYZH3WPqiTtciJ1cFhLmFB/7+m?= =?us-ascii?Q?jxWtZVPIs9kOkvst19xHZPMUCPBHgfEX2fmhc74JKvhEARailyvOrmmzT50f?= =?us-ascii?Q?FYlTTPKt2kuM0e2ldm6H3BaofXmj0HIHPQ9NO5eJtg=3D=3D?= X-Forefront-PRVS: 0289B6431E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN3PR0301MB1188;23:RIsegIVf5wdEXmHp2zk6res/uo6aoUUn2E6p6Xw?= =?us-ascii?Q?xMRQcD594bYtow5/SMphxHJF+9rPMeHFtPip8aXoHEbNPQ2hF8O3lRGj5h6M?= =?us-ascii?Q?dBzJRBGnlthrPDObrK5fg3kf2yUiF5q7Meoeu5fZh+sq93Bs8UnQZeI3hlA2?= =?us-ascii?Q?RvejuD2fa3nBPnF12lLq04pinCWjEkVUizMBHCABCoISDcpCEzz3Z8p83VAo?= =?us-ascii?Q?7RtHg3O+KqFcpMnk5senI1xb2jF5yPSRLJSe+G0bYp/ICbirGX877dzLiFsa?= =?us-ascii?Q?jQNpRBGDk8ooFdkd0sQQ8PDBjtF+qdnl9jmWgyMxsfs2qtksbq39gbxn72Gs?= =?us-ascii?Q?iATBXxwFsu7TT+hFKETfeMdQSMe3LM12pJ19TtOuMYKoxvpjIreHUELhZ4g9?= =?us-ascii?Q?Jf2tzKWs9nC/fm4Cgp+oqLhpGE/iaudLkQ8pSY014mn6wiibEtiQ/a3w6HI5?= =?us-ascii?Q?NQOrUFHFpSMiLvX1ONFrv8T6Lu3159KRnJWKLiyCGXJkWDWWjZZW7vVbIoEd?= =?us-ascii?Q?9HeU4yqGw4lbFNKTdQQOUtTk0N7aoa6g7TexxzlMDgYKDhPwfooO/07qkHj2?= =?us-ascii?Q?l/WbiKf81acd8iOmwvtAOkoJc30oZ/QALMcDA9ehcHRloGh0aHnZQw5ZM/qP?= =?us-ascii?Q?T49K2xJinUsf7RnsuFDLZI7zCr9NtrqvRcFBjBzoauHoKUbJXORVAOZqURx2?= =?us-ascii?Q?tT+FzWuh2G3eC263ivZt81LsMcMIBeoKHeeXj3q7lxoWOy41/lOFrpszYzdB?= =?us-ascii?Q?O3n2RexN2RDZYjXBo3FXYtcExtZVFSLu+fYdVHiU4TgMtC4pzl4bgpZEofv2?= =?us-ascii?Q?oLje/P1c/phKraNFsecJPXE9OaDSy2TD6IAitt1Eu57yfdeVey+iaRAY0j0F?= =?us-ascii?Q?ADMLZCwENdp/D4FOKvRDBVEtjuFdTg3uIBSmAvyJUX+ejxXNAEoTPhabYAFa?= =?us-ascii?Q?EQsAPF8y1exxM3IGgIj6RrqF6PEfOdYmDnzzgjIpOjJfTJ+R7jtOnEcgXXXM?= =?us-ascii?Q?JgTUZFgZ5AqtisokaQjLLerJyF6xY0zSD5XDppvfVluEJ4Pj4HfPeKfFFt9H?= =?us-ascii?Q?n/PzobFT3DyFCZDhp53PExYneXcF8RBM7S1N14zVZJI9n6vmJmVZc6oMmGMh?= =?us-ascii?Q?0+iqJaujsBODkmZ5lwvcTiGleC/9ald03+LdHpcn5wiBKYCePx2ii9h4Fi/P?= =?us-ascii?Q?+Xo4PL27BQ0xD5PfG/uF3QgFq37y6YwTg4iNs?= X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1188;6:q8z3v6qslbft8aEyVXIm8r9s2o90mwf7t7aNNZMBr/RNG+ePRxEu5IBxc7upt6BvP6X8+gjKwZkmPHc3ko7uRH6s+zkzPiOHfT+2FkakEG0zg7WG2i12k6SJH/nZ7r1Q65riI1bQOMQxrXwwf1efVXkeNpH5A7xiW/WkdXBXkHkxo9T5e8yQLzFJngASQWgVQRiVE0gFGezpzabdWyUvwRFsE8WKl2X0bU/fwQhaWxjEMOnoDR60ytkMx48VoRehzOXPu5qcesAGcPnOF1PPZHKsRXZMhD+lrfdg2/IE44Fc+J+fHzt5H09stVdkEmD9XdOgg3emrl6vhi7iwLc1qzYyxY9bbx2soBEneaJLAjTwUgPlPiLYMrC+HlqHpKime19ve6KMM4WyuZ0mjg7KXVKGLc1ORhL2S6rnqleprag3DCWEkW+wOEtIsjaHmlJ1pVNCl/kv7BHN44tDJgOt4Aud31plpBRzujU1wff3MZ1pMtj/zY20To8fGd5UrD5CSMUtdC6G6IBcKuj6XhrCRg==;5:0U7hOw41/Cc5erOm9KNxrTQPvzkrF3NSA0XpOPtEE1/mlQK0fK1pEruXiM8IE0QxdpkmX1L/9If89gvKA8tjUce3kYSV+Mmje5jWjAcihGF0GcvQ7xyObp+RqC2MLk1I8HKA1mmyMmkXopMsk1qftCYGrj9+6nBVC8ESpuLnQrIelJMo7vSr4WNMgefuIAuc;24:6h4V3ICEpn+88bjwLWvVxCNFuhQzy+rrPhIM3jXiFKOy7SUKYEeJLfksJiAaw28qgtNLJDWWouU6J+oJWDqz4k+FQAbIJ8lXZyYh83aOss0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN3PR0301MB1188;7:TaTX9vV9qdyiTRjV5MsInHwuTqTfdY0BZxOK9Wf/44qT3QEGUm3EMa9b76lF6RYupfov8jiSoPgyQvTrKQBgSqAvxXkYDamWCNzMeb/vJaMPy25VYn7mMNduQ6jUJJURQ0DWwirDIp2SAHKmLZYdOPy9kcS1nhH5aIUo7IiwMWOIxde1zA6r7U9+nKN8Gzh+2XjOa1UNgoODYuR/drcPj5wlNQGBfZlJS7WI1H1EK6480snwSnuqvDML00JsbOHfXUfFoArx4mGtIb0SKQKr/IcoFTkukH087QZjGkukKlVjiqmw6CQy1oLkzCzVWWLhIYyzQa1xQa3d5ACIY4Uq7g== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2017 13:10:04.6829 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e;Ip=[192.88.168.50];Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0301MB1188 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The new PLL configuration code triggers a harmless warning: sound/soc/codecs/wm8960.c: In function 'wm8960_configure_clocking': sound/soc/codecs/wm8960.c:735:3: error: 'best_freq_out' may be used uninitialized in this function [-Werror=maybe-uninitialized] wm8960_set_pll(codec, freq_in, best_freq_out); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/soc/codecs/wm8960.c:699:12: note: 'best_freq_out' was declared here Fix this by reworking the code such that: 1) When there is no PLL freq available return -EINVAL and make sure *bclk_idx, *dac_idx, *sysclk_idx are initialized with invalid values. 2) When there is a PLL freq available initialize *bclk_idx, *dac_idx and *sysclk_idx with correct values and immediately return the freq available. Fixes: 84fdc00d519f ("ASoC: codec: wm9860: Refactor PLL out freq search") Fixes: 303e8954af8d ("ASoC: codec: wm8960: Stop when a matching PLL freq is found") Suggested-by: Arnd Bergmann Signed-off-by: Daniel Baluta --- Changes since v1: * use return instead of break * update commit message sound/soc/codecs/wm8960.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c index ace69da..d899623 100644 --- a/sound/soc/codecs/wm8960.c +++ b/sound/soc/codecs/wm8960.c @@ -686,7 +686,7 @@ int wm8960_configure_sysclk(struct wm8960_priv *wm8960, int mclk, * @bclk_idx: bclk_divs index for found bclk * * Returns: - * -1, in case no PLL frequency out available was found + * < 0, in case no PLL frequency out available was found * >=0, in case we could derive bclk, lrclk, sysclk from PLL out using * (@sysclk_idx, @dac_idx, @bclk_idx) dividers */ @@ -696,13 +696,13 @@ int wm8960_configure_pll(struct snd_soc_codec *codec, int freq_in, { struct wm8960_priv *wm8960 = snd_soc_codec_get_drvdata(codec); int sysclk, bclk, lrclk, freq_out; - int diff, best_freq_out; + int diff; int i, j, k; bclk = wm8960->bclk; lrclk = wm8960->lrclk; - *bclk_idx = -1; + *sysclk_idx = *dac_idx = *bclk_idx = -1; for (i = 0; i < ARRAY_SIZE(sysclk_divs); ++i) { if (sysclk_divs[i] == -1) @@ -720,21 +720,12 @@ int wm8960_configure_pll(struct snd_soc_codec *codec, int freq_in, *sysclk_idx = i; *dac_idx = j; *bclk_idx = k; - best_freq_out = freq_out; - break; + return freq_out; } } - if (k != ARRAY_SIZE(bclk_divs)) - break; } - if (j != ARRAY_SIZE(dac_divs)) - break; } - - if (*bclk_idx != -1) - wm8960_set_pll(codec, freq_in, best_freq_out); - - return *bclk_idx; + return -EINVAL; } static int wm8960_configure_clocking(struct snd_soc_codec *codec) { @@ -783,11 +774,12 @@ static int wm8960_configure_clocking(struct snd_soc_codec *codec) } } - ret = wm8960_configure_pll(codec, freq_in, &i, &j, &k); - if (ret < 0) { + freq_out = wm8960_configure_pll(codec, freq_in, &i, &j, &k); + if (freq_out < 0) { dev_err(codec->dev, "failed to configure clock via PLL\n"); - return -EINVAL; + return freq_out; } + wm8960_set_pll(codec, freq_in, freq_out); configure_clock: /* configure sysclk clock */ -- 2.7.4