From patchwork Wed Jul 5 05:58:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaechul Lee X-Patchwork-Id: 9825883 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 06ABE60317 for ; Wed, 5 Jul 2017 05:59:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E765125F31 for ; Wed, 5 Jul 2017 05:59:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DBA2E26E16; Wed, 5 Jul 2017 05:59:26 +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.9 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE autolearn=unavailable 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 E32E525F31 for ; Wed, 5 Jul 2017 05:59:25 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 7F820266FA1; Wed, 5 Jul 2017 07:59:21 +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 CD478266FAD; Wed, 5 Jul 2017 07:58:43 +0200 (CEST) Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by alsa0.perex.cz (Postfix) with ESMTP id 45EF1266FA1 for ; Wed, 5 Jul 2017 07:58:38 +0200 (CEST) Received: from epcas1p3.samsung.com (unknown [182.195.41.47]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20170705055836epoutp04fac61677c3fb4a8c48ae188c6ee757f6~OWarePtjk0452304523epoutp04D; Wed, 5 Jul 2017 05:58:36 +0000 (GMT) Received: from epsmges5p2.samsung.com (unknown [182.195.40.66]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20170705055835epcas1p105409dedcc60993a9a5d0b14207b5954~OWarBmC192116321163epcas1p1r; Wed, 5 Jul 2017 05:58:35 +0000 (GMT) Received: from epcas5p4.samsung.com ( [182.195.41.42]) by epsmges5p2.samsung.com (EPCPMTA) with SMTP id 4E.B8.04821.B008C595; Wed, 5 Jul 2017 14:58:35 +0900 (KST) Received: from epsmgms2p2.samsung.com (unknown [182.195.42.80]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20170705055835epcas5p32d60ee0f1acaf4e04c8a80d49bc2a730~OWaqgrHqL0814008140epcas5p3O; Wed, 5 Jul 2017 05:58:35 +0000 (GMT) X-AuditID: b6c32a2d-f79866d0000012d5-5f-595c800b5fa3 Received: from epmmp1.local.host ( [203.254.227.16]) by epsmgms2p2.samsung.com (Symantec Messaging Gateway) with SMTP id 0A.56.05071.B008C595; Wed, 5 Jul 2017 14:58:35 +0900 (KST) Received: from localhost.localdomain ([10.113.76.93]) by mmp1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OSL00050SLKZYB0@mmp1.samsung.com>; Wed, 05 Jul 2017 14:58:34 +0900 (KST) From: Jaechul Lee To: Krzysztof Kozlowski , Sangbeom Kim , Sylwester Nawrocki , Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , alsa-devel Date: Wed, 05 Jul 2017 14:58:32 +0900 Message-id: <20170705055832.4893-1-jcsing.lee@samsung.com> X-Mailer: git-send-email 2.11.0 X-Brightmail-Tracker: H4sIAAAAAAAAAzWSe0hTURzHO7vb3bIWl2V5WK9xQ8SFa3cPvasWPUaMLBL8I19ll+2yWdvu 2N0kg8Ii2pyZFfTQDIQeNtFcppYGyyYx08jM2RMLwUJFIzJTGFR79d/3e87ny+97Dj8BIvrA EwvKbE7aYaMsOJrC7erLlGYtqywplDe1KMnwcJBDXhmfQMmQrx4hZ59WI+TQkJ9P/g57OORI TwNKXh8KcMiqnloe2Tfj5pHD935xSP9CK9ixXO+fO4Pqu+vH+Pr25ipUH5i9i+ovdDQDfVvH KFc/174+j19EbzPTlJF2SGibgTGW2UxaPDe/dHepOltOZBEaMgeX2CgrrcV1+/Ky9pRZok1x STllcUWP8iiWxTdv3+ZgXE5aYmZYpxYvJgiFjJDnyBQKhUylPLRFoY4iR2jzQOc8sF9de3yw 8xWoBN1pXiAQQEwFf9fhXrA0KlfD15/bUC9IEYiwOwC+uDGSNHMA/ox85ScoFZzo9yQvHgPY /8wLEmYBQM+bVyBGoZgU1t4+H6dSsYccOPTxET9mEKwGwNCj97wYtRLTwa7pBSSmuVg6/P6n Ja6F2BbY2zWKJOZtgD3nhnmxMMQiKJyabOAkmq+D7b1JRgcvVU0n9Uo4HepIdhXDak89P5F1 Axj8MA8SxgNgINyIJiglHPCe5sQ0gq2ANZGJ5AAh9JwTJRA9vHZ2MTlgJxwP34k/U4Qdgk1X I+AiWNMIljSD1bSdtZpoVm1XyFjKyrpsJpmBsbaD+FpJsx6DX425QYAJAL5c+ONNcaGIR5Wz FdYggAIETxWad5cUioRGquIE7WBKHS4LzQaBOvo3lxDxKgMTXVKbs5RQaeQqdbZSriRIDZ4m zPC9LRBhJspJH6NpO+34n+MIloorQRoj/daaf/DJF4brO9XUEsrOOCb0dQamdeJbbOCAdXGj Yevw/h2Xa8cyb9ZteCnGnNpBSUXv/klNNSY6+sDon60/c3Lvu2Kyv1uFFolHBwOj7wmkZNdU 4FPG4XXumpN/ZAXz6f1umL/kU92UcmzmyqZ3I8/7GIN78a/dt+t+AOeyZoqQIg6W+gdtuWyS bAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNLMWRmVeSWpSXmKPExsVy+t9jAV3uhphIg6MzhSyuXDzEZDH14RM2 i+MrZzFbvN3fzWxx/vwGdotvVzqYLC7vmsNmMeP8PiaLzl39rBaH37SzWlxc8YXJYsP3tYwO PB4bPjexeeycdZfdY9OqTjaPfW+XsXn0bVnF6LF+y1UWj8+b5ALYo9xsMlITU1KLFFLzkvNT MvPSbZVCQ9x0LZQU8hJzU22VInR9Q4KUFMoSc0qBPCMDNODgHOAerKRvl+CWcWrrV8aCaTIV p7eeY2xg3CnexcjJISFgIvHkRAcbhC0mceHeeiCbi0NIYBujxIPbS9ghnO+MEi+erWcHqWIT 0JLoX9ID1iEisJlJ4v2/AJAiZoFeRokvRy6CFQkLuEhse/WdGcRmEVCVePdvDZjNK2AlcWDb VWaIdfISu9ousk5g5F7AyLCKkSu1oDg3PbfYqMBoEyMwoLcd1grYwdh0LvoQowAHoxIP74dL 0ZFCrIllxZW5hxglOJiVRHgznGMihXhTEiurUovy44tKc1KLDzGaAq2cyCwlmpwPjLa8knhD E0sjEwMzM0MjA2MzJXHeCYFfIoQE0hNLUrNTUwtSi2D6mDg4pRoYo3/JTWf3kTttd8rDcnfI BJNOhZgVP6b4al+5cPfye93fDx1nv7dJ+pFccfXs6o06lzUb62N1SqKOiK2oY1XL26t+/XbU 6U+3Ihc2m3/tk1p9v3TOqcqTLEu7fdUmc09lC5ggLF36xH4yy/Sz21as9801D4u8+nKz83uG qwtmxty9evu/cGa4shJLcUaioRZzUXEiABqlcTh+AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170705055835epcas5p32d60ee0f1acaf4e04c8a80d49bc2a730 X-Msg-Generator: CA X-Sender-IP: 182.195.42.80 X-Local-Sender: =?UTF-8?B?7J207J6s7LKgG1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbU2VuaW9yIEVuZ2luZWVy?= X-Global-Sender: =?UTF-8?B?SmFlQ2h1bCBMZWUbVGl6ZW4gUGxhdGZvcm0gTGFiLhtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG1RFTEUbQzEwVjgxMTE=?= CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20170705055835epcas5p32d60ee0f1acaf4e04c8a80d49bc2a730 X-RootMTR: 20170705055835epcas5p32d60ee0f1acaf4e04c8a80d49bc2a730 References: Cc: linux-samsung-soc@vger.kernel.org, Jaechul Lee , Jaechul Lee , linux-kernel@vger.kernel.org Subject: [alsa-devel] [PATCH] ASoC: samsung: i2s: Supported high resolution rates 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 This driver can support more frequencies over 96KHz. There are no reasons to limit the frequency range below 96KHz. If codecs/amps or something else can't support high resolution rates, the constraints would be set rates properly because each drivers have its own limits. Signed-off-by: Jaechul Lee --- sound/soc/samsung/i2s.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index af3ba4d4ccc5..fc34af6a2c1e 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c @@ -50,6 +50,7 @@ struct samsung_i2s_variant_regs { struct samsung_i2s_dai_data { u32 quirks; + unsigned int rates; const struct samsung_i2s_variant_regs *i2s_variant_regs; }; @@ -1076,20 +1077,25 @@ static const struct snd_soc_component_driver samsung_i2s_component = { .name = "samsung-i2s", }; -#define SAMSUNG_I2S_RATES SNDRV_PCM_RATE_8000_96000 - #define SAMSUNG_I2S_FMTS (SNDRV_PCM_FMTBIT_S8 | \ SNDRV_PCM_FMTBIT_S16_LE | \ SNDRV_PCM_FMTBIT_S24_LE) static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec) { + const struct samsung_i2s_dai_data *i2s_dai_data; struct i2s_dai *i2s; i2s = devm_kzalloc(&pdev->dev, sizeof(struct i2s_dai), GFP_KERNEL); if (i2s == NULL) return NULL; + if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node) + i2s_dai_data = of_device_get_match_data(&pdev->dev); + else + i2s_dai_data = (struct samsung_i2s_dai_data *) + platform_get_device_id(pdev)->driver_data; + i2s->pdev = pdev; i2s->pri_dai = NULL; i2s->sec_dai = NULL; @@ -1101,13 +1107,13 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev, bool sec) i2s->i2s_dai_drv.resume = i2s_resume; i2s->i2s_dai_drv.playback.channels_min = 1; i2s->i2s_dai_drv.playback.channels_max = 2; - i2s->i2s_dai_drv.playback.rates = SAMSUNG_I2S_RATES; + i2s->i2s_dai_drv.playback.rates = i2s_dai_data->rates; i2s->i2s_dai_drv.playback.formats = SAMSUNG_I2S_FMTS; if (!sec) { i2s->i2s_dai_drv.capture.channels_min = 1; i2s->i2s_dai_drv.capture.channels_max = 2; - i2s->i2s_dai_drv.capture.rates = SAMSUNG_I2S_RATES; + i2s->i2s_dai_drv.capture.rates = i2s_dai_data->rates; i2s->i2s_dai_drv.capture.formats = SAMSUNG_I2S_FMTS; } return i2s; @@ -1452,29 +1458,34 @@ static const struct samsung_i2s_variant_regs i2sv5_i2s1_regs = { static const struct samsung_i2s_dai_data i2sv3_dai_type = { .quirks = QUIRK_NO_MUXPSR, + .rates = SNDRV_PCM_RATE_8000_96000, .i2s_variant_regs = &i2sv3_regs, }; static const struct samsung_i2s_dai_data i2sv5_dai_type = { .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR | QUIRK_SUPPORTS_IDMA, + .rates = SNDRV_PCM_RATE_8000_96000, .i2s_variant_regs = &i2sv3_regs, }; static const struct samsung_i2s_dai_data i2sv6_dai_type = { .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR | QUIRK_SUPPORTS_TDM | QUIRK_SUPPORTS_IDMA, + .rates = SNDRV_PCM_RATE_8000_96000, .i2s_variant_regs = &i2sv6_regs, }; static const struct samsung_i2s_dai_data i2sv7_dai_type = { .quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI | QUIRK_NEED_RSTCLR | QUIRK_SUPPORTS_TDM, + .rates = SNDRV_PCM_RATE_8000_192000, .i2s_variant_regs = &i2sv7_regs, }; static const struct samsung_i2s_dai_data i2sv5_dai_type_i2s1 = { .quirks = QUIRK_PRI_6CHAN | QUIRK_NEED_RSTCLR, + .rates = SNDRV_PCM_RATE_8000_96000, .i2s_variant_regs = &i2sv5_i2s1_regs, };