From patchwork Mon Feb 5 15:43:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Sylwester Nawrocki/Kernel \\(PLT\\) /SRPOL/Staff Engineer/Samsung Electronics" X-Patchwork-Id: 10200783 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 D77A86056A for ; Mon, 5 Feb 2018 15:45:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C92F728778 for ; Mon, 5 Feb 2018 15:45:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BDAB728780; Mon, 5 Feb 2018 15:45:07 +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=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 F2D8B28778 for ; Mon, 5 Feb 2018 15:45:06 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id C619A2673D3; Mon, 5 Feb 2018 16:45:05 +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 6D4C62673D8; Mon, 5 Feb 2018 16:45:04 +0100 (CET) Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by alsa0.perex.cz (Postfix) with ESMTP id 5106E2673D3 for ; Mon, 5 Feb 2018 16:44:55 +0100 (CET) Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20180205154454epoutp0389fafd63e83d3c966a764e25ff67b305~QeG9boVkh3105131051epoutp03w; Mon, 5 Feb 2018 15:44:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20180205154454epoutp0389fafd63e83d3c966a764e25ff67b305~QeG9boVkh3105131051epoutp03w DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1517845494; bh=yCA6DNlkhlqSiAk6IQiJ7Bn3M/+t28TOSt0zb9zw3aQ=; h=From:To:Cc:Subject:Date:In-reply-to:References:From; b=FsMw/mm2VQbdMupcH1F5KzcnlX95rIY3rbr5GlpLl9R/rfwI92s9E1xkDrkOTNOGD H0oIMdiiGAJYeRptqlTZAZBTBWMfcyj8f/sc+ds+9el5wISfLy5g4GPAuijw4IYl0O 7f3tlvRBnKT89QqV8GIkpNa+dmso0I+LN7hFSj+g= Received: from epsmges1p5.samsung.com (unknown [182.195.42.57]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20180205154453epcas1p128f543c4d497c74b65522ae9a24fedee~QeG9HnnfR0281602816epcas1p1G; Mon, 5 Feb 2018 15:44:53 +0000 (GMT) Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p5.samsung.com (Symantec Messaging Gateway) with SMTP id 9D.B0.04037.5FB787A5; Tue, 6 Feb 2018 00:44:53 +0900 (KST) Received: from epsmgms2p1new.samsung.com (unknown [182.195.42.142]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20180205154453epcas1p10046e1103497692c86c0899a5ef11781~QeG8hBnL21832618326epcas1p1I; Mon, 5 Feb 2018 15:44:53 +0000 (GMT) X-AuditID: b6c32a39-467ff70000000fc5-2d-5a787bf5e3aa Received: from epmmp1.local.host ( [203.254.227.16]) by epsmgms2p1new.samsung.com (Symantec Messaging Gateway) with SMTP id DD.82.03826.4FB787A5; Tue, 6 Feb 2018 00:44:53 +0900 (KST) Received: from AMDC3061.digital.local ([106.116.147.40]) by mmp1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0P3O00399P1LBQ40@mmp1.samsung.com>; Tue, 06 Feb 2018 00:44:52 +0900 (KST) From: Sylwester Nawrocki To: broonie@kernel.org Date: Mon, 05 Feb 2018 16:43:56 +0100 Message-id: <20180205154403.13520-2-s.nawrocki@samsung.com> X-Mailer: git-send-email 2.14.2 In-reply-to: <20180205154403.13520-1-s.nawrocki@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMIsWRmVeSWpSXmKPExsWy7bCmge7X6ooog5OntCyuXDzEZLFxxnpW i6kPn7BZzD9yjtXi7f5uZovz5zewW3y70sFkcXnXHDaLGef3MVmsPXKX3aJ17xF2i8Nv2lkt Lq74wuTA67HhcxObx85Zd9k9Nq3qZPPo27KK0ePzJrkA1igum5TUnMyy1CJ9uwSujOl/nrIU rOatWLqzj6mB8RFXFyMnh4SAiUTXxTfMXYxcHEICOxglzn+5zAbhfGeUmHW/lx2masLaqYwQ id2MEvPffmCHcH4xSrQeXs4CUsUmYCjRe7SPEcQWERCTuD2nE2wus8AZJonp+9YwgSSEBcIk Fi8/ygxiswioSjx79YEVxOYVsJbYc+kMK8Q6eYn3C+6DDeIUsJHYc28Z2GoJgT1sEifvvmaD KHKR6Lm7iwnCFpZ4dXwL0EkcQLa0xKWjthD1/YwSJ9Y0QzXPYJS40z4BqsFa4vDxi2DbmAX4 JN597WGFaOaV6GgTgijxkJgycwoLhO0osf/aJrC9QiBDfz6TnMAotYCRYRWjWGpBcW56arFh galecWJucWleul5yfu4mRnBUa1nuYDx2zucQowAHoxIPr0BGRZQQa2JZcWXuIUYJDmYlEV6n 6+VRQrwpiZVVqUX58UWlOanFhxilOViUxHkDAlyihATSE0tSs1NTC1KLYLJMHJxSDYz5uq+S WV0n6u/9Ia4oapS3s6QqXPS59j95Sd65HVP3c2kJuD2z65oYf/rufFe3+cayX/vXnQrP9T8+ ZUt8VdBfJkXbi10fKroXrP7xNHDd3sZ5vDdizonrHbkoUby1Uc1NZl2AiU5k9rJVgqs+bfP6 /fXK9tKYXpk/ToxSHxbZlMbs9TJV8VdiKc5INNRiLipOBACCyOCZ5gIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFLMWRmVeSWpSXmKPExsVy+t9jAd2v1RVRBs86mC2uXDzEZLFxxnpW i6kPn7BZzD9yjtXi7f5uZovz5zewW3y70sFkcXnXHDaLGef3MVmsPXKX3aJ17xF2i8Nv2lkt Lq74wuTA67HhcxObx85Zd9k9Nq3qZPPo27KK0ePzJrkA1igum5TUnMyy1CJ9uwSujOl/nrIU rOatWLqzj6mB8RFXFyMnh4SAicSEtVMZuxi5OIQEdjJK9M7uZoJwfjFKTDr4iQ2kik3AUKL3 aB8jiC0iICZxe04nM0gRs8AZJokvEy+xgySEBcIkFi8/ygxiswioSjx79YEVxOYVsJbYc+kM K8Q6eYn3C+6DDeIUsJHYc28ZkM0BtM1aoummwARGngWMDKsYJVMLinPTc4uNCgzzUsv1ihNz i0vz0vWS83M3MQJDcNthrb4djPeXxB9iFOBgVOLhzciqiBJiTSwrrsw9xCjBwawkwut0vTxK iDclsbIqtSg/vqg0J7X4EKM0B4uSOO/tvGORQgLpiSWp2ampBalFMFkmDk6pBsalUZqzqt4Y rp/2QF7mx5Ppl1/dKJrtOtXoiP2xqdJmU2Q0eW/LTVN1U5Ze0bJfq/G5zIyKqSwnZ//gn854 2WdVHoPn6lNvzT8vkHXM1G+1OHJy9bVz768c5mrk7bkTYtyi/n6N850YAfZ5fdUm1/JmrUj5 ZOLy4qP5j1eq+xLCvGW+sFeHsjxXYinOSDTUYi4qTgQARxnJpz0CAAA= X-CMS-MailID: 20180205154453epcas1p10046e1103497692c86c0899a5ef11781 X-Msg-Generator: CA CMS-TYPE: 101P X-CMS-RootMailID: 20180205154453epcas1p10046e1103497692c86c0899a5ef11781 X-RootMTR: 20180205154453epcas1p10046e1103497692c86c0899a5ef11781 References: <20180205154403.13520-1-s.nawrocki@samsung.com> Cc: devicetree@vger.kernel.org, alsa-devel@alsa-project.org, linux-samsung-soc@vger.kernel.org, b.zolnierkie@samsung.com, sbkim73@samsung.com, jcsing.lee@samsung.com, lgirdwood@gmail.com, krzk@kernel.org, linux-kernel@vger.kernel.org, robh+dt@kernel.org, Sylwester Nawrocki , m.szyprowski@samsung.com Subject: [alsa-devel] [PATCH 1/8] ASoC: samsung: i2s: Ensure the RCLK rate is properly determined 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: , MIME-Version: 1.0 Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP If the RCLK mux clock configuration is specified in DT and no set_sysclk() callback is used in the sound card driver the sclk_srcrate field will remain set to 0, leading to an incorrect PSR divider setting. To fix this the frequency value is retrieved from the CLK_I2S_RCLK_SRC clock, so the actual RCLK mux selection is taken into account. Signed-off-by: Sylwester Nawrocki Acked-by: Krzysztof Kozlowski --- sound/soc/samsung/i2s.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index 233f1c9a4b6c..aeba0ae890ea 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -656,8 +656,12 @@ static int i2s_set_fmt(struct snd_soc_dai *dai, tmp |= mod_slave; break; case SND_SOC_DAIFMT_CBS_CFS: - /* Set default source clock in Master mode */ - if (i2s->rclk_srcrate == 0) + /* + * Set default source clock in Master mode, only when the + * CLK_I2S_RCLK_SRC clock is not exposed so we ensure any + * clock configuration assigned in DT is not overwritten. + */ + if (i2s->rclk_srcrate == 0 && i2s->clk_data.clks == NULL) i2s_set_sysclk(dai, SAMSUNG_I2S_RCLKSRC_0, 0, SND_SOC_CLOCK_IN); break; @@ -881,6 +885,11 @@ static int config_setup(struct i2s_dai *i2s) return 0; if (!(i2s->quirks & QUIRK_NO_MUXPSR)) { + struct clk *rclksrc = i2s->clk_table[CLK_I2S_RCLK_SRC]; + + if (i2s->rclk_srcrate == 0 && rclksrc && !IS_ERR(rclksrc)) + i2s->rclk_srcrate = clk_get_rate(rclksrc); + psr = i2s->rclk_srcrate / i2s->frmclk / rfs; writel(((psr - 1) << 8) | PSR_PSREN, i2s->addr + I2SPSR); dev_dbg(&i2s->pdev->dev,