From patchwork Fri Oct 12 06:31:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10637973 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D536D13AD for ; Fri, 12 Oct 2018 06:31:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C21EC2B94F for ; Fri, 12 Oct 2018 06:31:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B629E2B960; Fri, 12 Oct 2018 06:31:10 +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=-2.7 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham 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 0855B2B94F for ; Fri, 12 Oct 2018 06:31:10 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id E373A26778D; Fri, 12 Oct 2018 08:31:08 +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 D00E6267967; Fri, 12 Oct 2018 08:31:06 +0200 (CEST) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 1C472267737 for ; Fri, 12 Oct 2018 08:31:03 +0200 (CEST) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 12 Oct 2018 15:31:02 +0900 Received: from relmlii2.idc.renesas.com (relmlii2.idc.renesas.com [10.200.68.66]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 8CBA36AD78; Fri, 12 Oct 2018 15:31:02 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.54,371,1534777200"; d="scan'208";a="294946641" Received: from mail-ty1jpn01lp0175.outbound.protection.outlook.com (HELO JPN01-TY1-obe.outbound.protection.outlook.com) ([23.103.139.175]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 12 Oct 2018 15:31:00 +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:X-MS-Exchange-SenderADCheck; bh=mzGiN3hmp8KOzYF2LdBX80hp3MVjVCsQhpMwhtaDByQ=; b=U7x6fxyYxEYT9cDgOR3jIc1brGxiuq7wrGJVWyeomIKV+DZke1F7jzRHRXPeNb3TormBKMBgRWocVO/kSzognjgx/5w2zbXSFwVjJp1dA4MWb2QlgIhRQT4AeJ/Cc++Hpv/oQEclrylQTuhe2KS4rbMzgm8grJtm6R+OOE2BoOc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.130) by TYXPR01MB1870.jpnprd01.prod.outlook.com (2603:1096:403:b::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.23; Fri, 12 Oct 2018 06:31:00 +0000 Message-ID: <87pnwfbs5b.wl-kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.5 Mule/6.0 To: Mark Brown , Jaroslav Kysela In-Reply-To: <87sh1bbs77.wl-kuninori.morimoto.gx@renesas.com> References: <87sh1bbs77.wl-kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Fri, 12 Oct 2018 06:31:00 +0000 X-Originating-IP: [211.11.155.130] X-ClientProxiedBy: TY2PR0101CA0014.apcprd01.prod.exchangelabs.com (2603:1096:404:92::26) To TYXPR01MB1870.jpnprd01.prod.outlook.com (2603:1096:403:b::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 113be53e-e1a1-4d1f-fd8f-08d6300c4695 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:TYXPR01MB1870; X-Microsoft-Exchange-Diagnostics: 1; TYXPR01MB1870; 3:yCpbXejesWkMYjAwQTcKsBL8/knCj3e9bMS/wFl1NhDCBMg7Qkzc528oh777EM8rTKtIsc9rXr4yDusH65Q9onbRSNUn1f+lU1PiUYXZZC2Lovq1W+gh/feF7qhgOt8sSDI1jRkxeNklNx9xwt5H7IEOkkU1uSdx/PHhMHVHrY86va6Q4Wx3YmFQEDMEoWEVJ2y/Coa1mB6cdB7hHbrwTosOOPcUfRHQEDZfCz4I3o7UduTwYwKv0jlgp/Nf6Zi+; 25:DDsqezpb0KUmkJgBkF8eagaCTEqn/NU5Dm+tc+13wSNdAd4jL/mObyFf6/MYBgkJUEQ5EcgNP30Ktkr+d9en5O4u3KA6Rvl0i5xsBuEbJxJtFLBg3RnNYvHu7M4FLhdI75739+PLWo6Kcu+c2LDdePar3T+oRrEiL8goSYUkwH0zx51bU00ORFM7EJNmzzOlAFYM3EtA742/8S0Y346tJgbIbufn2mXhrAxKwAYq4KwewdzF2cYAEwqx8LmcaRTEfCElZUzsx1HYePTLpSFDaGvVpNUg9pzVqxK/dZOI7j1aMYuwEXroq8zWms4OQE/GEGj2XMB5wQiNf+WMtSPhLg==; 31:mbhrFrMPiIYeWgZGP1tpKyDaaUA5xW4oP+YlTrFnZNYmvyw05SdSvN1w/ofzPBxfN3rD9LHhZgkq2l+LknzTeqOAHhMUW0r+8YCJ75xMVuSIXPZrfRriU9mC0w6mWeAZkQdJrrWGpXWPDp6W1Qb/0zSaa9s2wyF5xK5JvmoZWnJVVzqzTIm4metI/u/9E/iRzCgcSinNreA5JiaWW2A42ix64G1P8b2rxCULfDIJogA= X-MS-TrafficTypeDiagnostic: TYXPR01MB1870: X-Microsoft-Exchange-Diagnostics: 1; TYXPR01MB1870; 20:PGC05/y9csM89udRUqs55jkdnKcrgw6X7QBhWbwdMYOrb6VEY6kXdJ5GOiLYFJ5cNOjdl3aTs7hHSmxP2LXskAKBTII/SwtQ3+238mLOsALROD8b7W6UU0Wt6kgRvLfFw/JcSvGn2znbnuJjW7CP4/d2jtcyefNXaUPS7pdzuN5ufZ/92HQm38R2Lsrp8OrE9y55Lxw45pT1b7CD/uma8JFiX51q5CfCvNBsi1/gk4OBNnAVGcPOonjzNkNbIQFZGRivk/QHaaYUESCqcXXvBM8SImSUeXv1pE4W8ezSMG/3NJGa5+IqZHAli5CHV7odDIFafOA584XCXWyDBduvoQSG/7A+uXuHECb/L2UGVLt3D7GnK7EofiSA0I4e5y2EGsGGi5xhR7cZOLYUzSL5XdL893bSDdzKLlymcMaD11lXIePoDhx7x96P2BLTNC0VLMzjxbh+QJG4AQ6+tZKboDxMlFRK15U0rPlB40BMTlcF6cMOB83UBh5T+f8Zq5pQ; 4:O4x9v9ohzJxNy5crmgawux917GohAPuXPTSRJ1bWvsfrX2qs9Af1gxOUoz8NWLoLs/F/vFlyFrUgkoTdDGGAEm2YlSnQ+vqicRmBaryuOz+6vrNUQJ0E5i89OkoP1w6iO+JtWTcsyQffJOQiKnfAlL+o/wA4zD1hEdG07H5GnVmU1g/Gg5f+SySt6BopaXwYe9xpEtKtUMxdx039hSoG12fHTAqqRThpaBZebJiWl40O3ohnKDQyZTlJFB77ywNQkwawqSB0LV2sY/3w6beGKA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(3231355)(944501410)(52105095)(3002001)(6055026)(149066)(150057)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(201708071742011)(7699051); SRVR:TYXPR01MB1870; BCL:0; PCL:0; RULEID:; SRVR:TYXPR01MB1870; X-Forefront-PRVS: 0823A5777B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(396003)(346002)(39860400002)(366004)(136003)(376002)(189003)(199004)(105586002)(4326008)(305945005)(76176011)(110136005)(8936002)(66066001)(47776003)(478600001)(316002)(16586007)(106356001)(81166006)(52116002)(7696005)(36756003)(81156014)(2906002)(58126008)(69596002)(23726003)(26005)(386003)(7736002)(68736007)(53416004)(8676002)(3846002)(6116002)(476003)(97736004)(50466002)(86362001)(186003)(6486002)(16526019)(486006)(446003)(5660300001)(25786009)(11346002)(956004)(2616005)(53936002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:TYXPR01MB1870; H:morimoto-PC.renesas.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; TYXPR01MB1870; 23:VOX9zYmQqhE9Gv3UsGbURdio+8SRZa0F4l+MNyYqd?= K+eHPclHpgZjYB8Y7e//JKFMbTUtj04QQb9/R1Bd0o0cbQNhMCiq0YjQJbko8nODrBObajr9Xre0qvcPSS8XIjaOE/0B9QGdO6UdAbixB+LRCAg7T2D9LDIMBK5ukv7RkIv2NUExASRScJNwxa6E5gyfHS6oC2+vwomyqWUit3fJRn9glkf54+Vh2t2beJhaAaMeXzqk+LjGE2/r/RDtenIZjOJDCp2KlZ8Mca/1apUrFQ/MAP6InnFrLTrZLuDjSQTXctHwDGv4Lg/SEajLogMTo8qvnFAcDHnCSVL3jn+vPLyYAkUD2I71+opAJDUKkKJi/qHGoO/NDrqKKP8D9S4be+l4zom43oF5EgHLKtDGZNp8BncVoRofjIE1J+0kybiSjq4Unzdeb//A+q6pHohnpmzrsNhKhlQesSl6o8G6vm+VrCEwVIMSYtwogpR6ppikTrbTqBJDY1PsxWRsnX7tMAKG9NBAtc4WOFSCf1BUmarlk/txfzHrie9DxpYA72EJpwlwoWQhqOIZCVz16udCx1rznw+MRDAHtQIT+jMORWcapsKCaYe22eUnvcr9GBnYOZDo+k5ucidpEq2+vjbGwDEB8FmgQpkOCv/5lO4XJpXwCLliXE1K++Ch4uRxxajW3vfjRQPmERudr3AFzmx+WZkQJ/D7rtsyCfL143ZsrYoQvl2o3/H43QUCxMThglszGRxj4gItFl7ZtPCsrVwT3hk4szajv9goZZmQ/EZ8hdIr+1cHc29FamsaucLryQalB7tiuP0obFHAHWPGTX1JZhfWlzVFweAyjs13bMrlNCEbNEjgGpNPYU5DCMvMJyltWo+Av0eSFC6p7f/2dOudVyoTi3ZDL/GEImTw8acJDed6DM/6bOlmnZwlwQbpKAwaQHvM+qX1toZK5+iO8kFBaFyVw27pLQXAnAJ/cI+X5FSPStf6gP/2evGQhVrlkorK6mvWILz3uK8H1/QMrYO7Zuoa7vrIO/zHsQLhMcHB4kswkI8KAwZRkoMtpdUCo6yCj330pqVruX0A/Qokr/la/Twl7PWE5LAgCEXEAhyi6lZKC0rdkTMGT4wrrqyy581du+YzYR4cEwSJti9/YfM5O7RUocXPYPt8ZQQ0HbvFn0KPOsUukP+Dbmjjt5W/VE= X-Microsoft-Antispam-Message-Info: +x1eOqNwyDKkbHHR1rgqY/YiQHeUfzRNAbQlWZYLutXJYTpyz/v5cGvY1RySrQW7OlM3CZTMN0AcSz5qRFYjcFPNr2QA4rqsiaC+fOjmcyYxxDsgXZIZ9MtarWqy87qg3S4c4lgH3cMGmCD/YkdCg+L7uMMIHIDybgeqsbg9K4w2fATDpZMHE0QmO9Oif7fHoFlLHIoPXkC3B60P+ZhM9A3Nmq/DoFjj6IKmenU1ACHwSrtQSTspdcA4EwFdhxxNdqBwZGAynGdlbSS7ltAqRIARqxgQhXLaIWrPxTDPYQUlTs8TODhLHHN0r4CNWnKVfBYvDT7eyc69aCie178+thl/v7EN/Ym9Hf6gSdSdchU= X-Microsoft-Exchange-Diagnostics: 1; TYXPR01MB1870; 6:G+q6jkoHO9cjuuDUNHoWKZgByAUeHx01gVstbPIlIPjw4hwGMYdCV/+aaECFLX/6sgQ5XjzLqN5xpfohderTanwT2FrXBheaT9e9+PiLteE02akWQg0284r8DTWaL1GfyL6PdXa25oPgirmdqJviUq3OcgkuHtS3R13ORBzD/BKjDD743mnJeuly91WvwXDT1lyW8M7gRE/B2TxjTi1U4p3nf4QADaPNMGNFBeDQv5mztIQ8Cyxz/uAk53qRIMr1/yANsIwqaUQw3d2jHfBCVm4VN7ertXFhgd9syuNujrS61CKDPFGRHD4bpfrH5nCB9DZMPu/Fje2+SXlpbkPKMp1SMSmuOZ5oN+64BkHK6NqfDpm3mcjQPmPX9W1H71Bj/Fa/cglZQ3/XhlMqFgo2ZirkKH1PpLRgIvbQyu7eSx0nf3JGZf3H+UlT6eSruEnUuNMD22KwczB81rMzsZaYPg==; 5:uNiyJbBduqjdUHk/dSlbQQw5Zysqh2H6S5OA5Zmcw47GPdTV7oNBZuojfOKxXGGua5r7Viiwr0GNDzxuLga4V/7WYZZTLPQ5jiS07k2FaG1eIRlAYq87aUpCTId5qhWXiQ04FpaJHE9St4yqCE7rw4aaLJDhbPCNdRI4mK+yjfY=; 7:nKc11nS4b8gcr/q5fj/HN8XLmC9PnQuBeULix+2kOeiTH6I9SEqr6P1cRZxcH427WwiF0M/In5UZATLqCyxKocajjPMfeB67k51darH8tHhE3BZIm+agHHoMv6ZyfX/wjVDplRe+I9YNNvRNBdzK0ciZ9n6l3rlYGvyUv8gZH0UAnoHQb0zOb0GF83LauBT2iR93aSWLuvQ8F3Lfjq1WcTiT5uLR2bdsdGB0oRpcRFDeYMDIQaDM2pl1WkMXH9Kt SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; TYXPR01MB1870; 20:EKxjgUPXjdk3gL5d3E7lczpVAcHYOQKei1GeB/rdx3lvaFIYvOheB8Sruvv+m19Y21WyVx9AsVb1oKi50F4t2Yd/TKqicKsAr4aW/FKMxJk806AX2nuPkWfLfyabnygPtzLybZBlYN5c1vJAdKjomZriq5Z79oN0t5HCDI4946Q= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2018 06:31:00.0919 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 113be53e-e1a1-4d1f-fd8f-08d6300c4695 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYXPR01MB1870 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH 1/3] ASoC: pcm3168a: add HW constraint for non RIGHT_J 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 RIGHT_J only can handle 16bit data bits. Current driver just errored if user requests non RIGHT_J + 16bit combination. But it is not useful for user. This patch adds HW constraint for it, and avoid error on such situation. Signed-off-by: Kuninori Morimoto --- sound/soc/codecs/pcm3168a.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/sound/soc/codecs/pcm3168a.c b/sound/soc/codecs/pcm3168a.c index 3356c91..233a8df5 100644 --- a/sound/soc/codecs/pcm3168a.c +++ b/sound/soc/codecs/pcm3168a.c @@ -476,7 +476,43 @@ static int pcm3168a_hw_params(struct snd_pcm_substream *substream, return 0; } +static int pcm3168a_startup(struct snd_pcm_substream *substream, + struct snd_soc_dai *dai) +{ + struct snd_soc_component *component = dai->component; + struct pcm3168a_priv *pcm3168a = snd_soc_component_get_drvdata(component); + bool tx = substream->stream == SNDRV_PCM_STREAM_PLAYBACK; + unsigned int fmt; + unsigned int sample_min; + + if (tx) + fmt = pcm3168a->dac_fmt; + else + fmt = pcm3168a->adc_fmt; + + /* + * Available Data Bits + * + * RIGHT_J : 24 / 16 + * LEFT_J : 24 + * I2S : 24 + */ + switch (fmt) { + case PCM3168A_FMT_RIGHT_J: + sample_min = 16; + break; + default: + sample_min = 24; + } + + snd_pcm_hw_constraint_minmax(substream->runtime, + SNDRV_PCM_HW_PARAM_SAMPLE_BITS, + sample_min, 32); + + return 0; +} static const struct snd_soc_dai_ops pcm3168a_dac_dai_ops = { + .startup = pcm3168a_startup, .set_fmt = pcm3168a_set_dai_fmt_dac, .set_sysclk = pcm3168a_set_dai_sysclk, .hw_params = pcm3168a_hw_params,