From patchwork Tue Feb 13 02:08:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10215051 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 10C516055C for ; Tue, 13 Feb 2018 02:09:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F28F528E71 for ; Tue, 13 Feb 2018 02:09:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E729028E73; Tue, 13 Feb 2018 02:09:08 +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=BAD_ENC_HEADER,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 E512E28E72 for ; Tue, 13 Feb 2018 02:09:07 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 88E252676E0; Tue, 13 Feb 2018 03:09:06 +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 2D7C22676E1; Tue, 13 Feb 2018 03:09:05 +0100 (CET) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id B8770267623 for ; Tue, 13 Feb 2018 03:09:01 +0100 (CET) Received: from unknown (HELO relmlir2.idc.renesas.com) ([10.200.68.152]) by relmlie2.idc.renesas.com with ESMTP; 13 Feb 2018 11:08:59 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir2.idc.renesas.com (Postfix) with ESMTP id AF8C54A4B2; Tue, 13 Feb 2018 11:08:59 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,505,1511794800"; d="scan'208";a="270994148" Received: from mail-pu1apc01lp0015.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.15]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Feb 2018 11:08:58 +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; bh=1p0BygO9lgAJCoygnyDYAR0zV2btD4M8MuAUf9Zg0Cs=; b=c5Ijp0F2D2pnXhxNwodfZxRAG2qgqqnf5aUmceFiSbpP+3gecU79pVllsGtgjhyFw+O184DhacOJjcdID96lYqqEaukVEuA0MovYMFo/WlwvOf+h12MQxFuD2892qhDzsAWdmadxkSJVrhGkBtZDcrXhwVYvvbPHYGZ6i8edPi8= Received: from morimoto-PC.renesas.com (211.11.155.138) by KL1PR0601MB1877.apcprd06.prod.outlook.com (2603:1096:802:7::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.485.10; Tue, 13 Feb 2018 02:08:53 +0000 Message-ID: <874lmllk1k.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown In-Reply-To: <876071lk2x.wl%kuninori.morimoto.gx@renesas.com> References: <878tc4dn9n.wl%kuninori.morimoto.gx@renesas.com> <857620180208065751hiroyuki.yokoyama.vx@renesas.com> <876078dku6.wl%kuninori.morimoto.gx@renesas.com> <857620180208072607hiroyuki.yokoyama.vx@renesas.com> <874lmrev6g.wl%kuninori.morimoto.gx@renesas.com> <712020180209094931hiroyuki.yokoyama.vx@renesas.com> <87o9ky5vbj.wl%kuninori.morimoto.gx@renesas.com> <876071lk2x.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Tue, 13 Feb 2018 02:08:53 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: KAWPR01CA0082.jpnprd01.prod.outlook.com (2603:1096:402:c::18) To KL1PR0601MB1877.apcprd06.prod.outlook.com (2603:1096:802:7::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ff5f564f-2b1d-4293-cd96-08d57286bc46 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:KL1PR0601MB1877; X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 3:3R5q9wRxRJNhifH1VGFPtz9xukQe0AK9DEUsZw0nXCKwttPdPWX+b5h3Y3YUu67jhPX1hPGQcUz6oI8ybdavS/7HLmrgPZgjPI2ERgXagVniYzGSHvrTBCHEth7mfKScaeWSVC5KKvN501nkr5R63hID2rJDzyG5pA0p+181//1LoFeamma0NPdVM1Tws4bjjtQa1UdD5aoQSkKlXCyAR0aX8tdFSuryzF4Vyn7gBkT7nfAENHld8bDoyv1xtgva; 25:VLZZJTiYvkG1C+OTnDLANYsTCoBy+chn3X8O99zEg1BJ3nuOipYPGCSiQCTI/tgFINgD4bFaIYw1Ay1OmujZmPDuJWq26LofYfhPniAcRGqssgOsaxx26rGTWthcqIbPuUB8IQ+JVotKX8XVYk2D3R7EyyrJ5JZ0ehesVs0GrjKTQj39srd2zoxuRKprYcxkpawLKqGFCoTLzgV1kt8A88ygDnOj/bcncVgodRyfYZ2xPdO5i+eDppp3DRdcpLX+dN6nOcARdsCiqQ14V9K2EUhlIpfYE/B7Kh7qNuaHoko4BhrwN5+jO6Z0u5BQxs2mhEpxrdAiXxBjhEFrcHNHWQ==; 31:0kKapAz/4vCJmzBrnkJJaIQI+DTyb92jYjnLg97qSCXpgplykeqDsqOK/8+hreGEuRZsdhe98jC5Ni9oIvmGLv0QFVVT4AYDSRn1OvO+FAf+qd8Lr/Y/GFUrPUQMhbqqwKtaUrcjFcER32o3ry52pbloHViHM/ITP6hCK0Ch6Shn/1iLqbtJtQsnhReHBiZglCySOb63KV4RoxswLHN4dz4hulJTdMsdHGDfQyahRL8= X-MS-TrafficTypeDiagnostic: KL1PR0601MB1877: X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 20:iIPCIAS1S0/g4v22W1kR4syP4o08Eb0xmQuBkm30Z5zp8MYgLxrU87KZGbhq6dBXSlMnERry6cy8nJJLz5qS8xUJlAWG8L4pggvs52qT1zMtfFAUc2loFj7cB2msaCJaZhxUaiphplxwyKU9TZQs3ipllNkMytwgETALyZd5YWYVn50y6QZe5LPyQ/vyxEYf3wsFmGOD+8KxOiMs4kaQeexiwzzAXJjTZdyaOJ0ohVboJCAIQlW1cNsG8HrYb0dfxwtGfIGwlaGtMaCepzn7gAWRmtj6Ea6Jh2cG9DXHfV/+Xi7Krk1ONa500bnYpzd3yaRL86IuRhh4RN1mr/jeXhxs4G6Qc9swe5FHwrWS2daC6khlppWg4eGwaDUQShlh0JXMXPePGhzoXeH+xsDvQ8I13N67Y7QmrUu14UUjueXjHFh2iCNXk6wIYjqPgEF5N70/adrbr448OZe8yGEBFt/RXbPORZ8iEQxS8LQshhrPJywh34lhgQ4mcmTl8yK4; 4:7NhpvQ8mNooJpRtSU2q4G1Jc27l6fADzEekj+H+d6hvmBRqY9P2N6KaEttEj/VWtVnO6BdRIuIztcfTc23uvZv2tnn9hiiNj4FohYE4F23EkqEsAXsEc5f6z5EeXJLaGSaSb7m7upVMmRNTn72mrjIPL+fAZ+zJW5kqeJw65krpas0cYu7RR5N7v/BsYetTQ+yql24q9GUVqsKnjs1AjJs6kjtA0QyjOlptkFHFSpqbW4mEUmY5KwYQ6lLCpfwdgqZXp/2ZS/LzxG2yppw2AQQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231101)(2400082)(944501161)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(6072148)(201708071742011); SRVR:KL1PR0601MB1877; BCL:0; PCL:0; RULEID:; SRVR:KL1PR0601MB1877; X-Forefront-PRVS: 0582641F53 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(39860400002)(396003)(366004)(39380400002)(346002)(376002)(189003)(199004)(47776003)(83506002)(107886003)(25786009)(4326008)(36756003)(16586007)(59450400001)(6346003)(316002)(106356001)(186003)(386003)(16526019)(26005)(58126008)(8676002)(97736004)(81156014)(8936002)(81166006)(66066001)(2906002)(2950100002)(5660300001)(6916009)(105586002)(3846002)(86362001)(6486002)(478600001)(53416004)(52116002)(69596002)(50466002)(68736007)(7696005)(53936002)(7736002)(93886005)(76176011)(6116002)(305945005)(23726003)(2004002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:KL1PR0601MB1877; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; KL1PR0601MB1877; 23:Jd+OLIkqajANx+V5SvPXzM/hectXDyfsvycAW7i?= =?us-ascii?Q?J7aWo4dzv3B1mj8kaarDJVUYBirK5Ehhg0jXJxzQ2mTTDT13n9HGktoQid1u?= =?us-ascii?Q?TR7YrgAqlNeqAUq1vP5A72f5eNNJ7YrT9LT46hhYvWxWdpuLXp4peQa8zrXf?= =?us-ascii?Q?16v4j/rZ92ecvOnrhFxAJ1FGWlKb6QSu4TvlAj76meFyvM1BC1LWHNl/pvFd?= =?us-ascii?Q?G3EDWVuMYLbQ66EUzsqe7ds9LqwWnxI5onyUf3wNZzIOJj83oztSKTBxCUey?= =?us-ascii?Q?2JDO8FBKf5BpwwmrUtOoBRl5UwOrY4er1PaVhWv7oqIXqESJ95tcydiknRUZ?= =?us-ascii?Q?aQ9zvd2IQ2UAhdefASYtuGR3R3ALk3cPCWBPKe3q6mq3cysdG+etQOkvynxT?= =?us-ascii?Q?yshBpNsjmRxDoR0Q3aawmOK5QsGrK9e7keka2PHeHtG9SNNWWWCXqquu6vaq?= =?us-ascii?Q?PQv4wNwRelGhIeTO+0Bj3K4R1u/2ohSlUCuTsYyibNLLctevZQJvUlgiGhPg?= =?us-ascii?Q?e0moGIrILKErhbLLEYTOBCOUj79wwngtjR8SApaBcbj/08gRKrLoD8KKeIEY?= =?us-ascii?Q?NIkGGnBJ5M8WmRZ9JPE8AgwU4JP4ZsTvjLAycfc2bZoqU3nVxxtBJ1oYd6vT?= =?us-ascii?Q?76UrEBhnnYbVS/L+E+cbVESFfCixcHRmYxblAbokUth9/C5ebIyK7ZqcfvkM?= =?us-ascii?Q?/0j+MkUsstIxYuVPqGqbZ83ejRlc/AlSqYL6MLhaPiElDnGqiP/65hLUyQtS?= =?us-ascii?Q?+Q/C9ICCAP2GlK3EqIBU/+2Ir02gaErcy+A6Qc05toKNHhOPDZK1TFn5V9ne?= =?us-ascii?Q?bqvfRr4Z/hvhyeKaA5jt1ku0Mm91sTZpkFpc4bVhpccw0ddmmYraZejWxr/+?= =?us-ascii?Q?gTuxISYpckRzCKyqo/XHkERNEUP6Ek/GJnXqn+Quq9o/7mjQ+quEOxDYC/4j?= =?us-ascii?Q?ZUR1/0scmqbP3i8qfAE4xORTL7sFWIC4g+zpFMN/4TMmk5UZRWS+tf0fmK/S?= =?us-ascii?Q?4MtQuD7ejoHDkMaZY00Vmb0ZJSjT1yEMLfMbPqSiEy+j4EpJhzb6UB/waO5N?= =?us-ascii?Q?bvwOaHTLhJn4pAm59wpqMa0YxyGHOHR4jlQc+Jn7pz8Wqcx3ufbi8xoDDoRl?= =?us-ascii?Q?okWgIVNzH48P8cOFzVWsvmWxH0Im/zOGBDxB9U75MqnkLbDCDxTSbMZzXSwz?= =?us-ascii?Q?gz3hX8AToMf1YpdgYyLkpt3nP2jB+VA81fu5j4vHG7JPCmPvRgsQHJ9ZtLKi?= =?us-ascii?Q?0QHDFzuVheVGvoC6PlP8=3D?= X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 6:NLgHxLt5K3aWuJ9+nLwZLgKowZbHDfudJAhpMp4FxPVD2++PdlRepJlvQXtm9buBgvcrS6L9Isxn1nce6guG2P92N5X05CYKAIVuNiFyKu2yJl9GTV3LjmmIzemcSgtBOWfh0WzPO9nykIGLtSh26Tb8ZQ63q2ALpg3g27aU/qU8m17I7o+Ug7Q44/XLFogsVBSdNuMxv/Kx0UzbkRTxlTyo9UxBKvQcTpreBr4M3y9R7lkj4f91WKI01i2sRYnXKPbRy99tYnxUdWyvT+aoPQMYgJ3rLgKiVbUjtAStqmZAcbEQS+CXW4i3fFopFbVAGQhSDiZ6Rh6vIwunyoS859XTGmDLRSUQMelGXfzzhWg=; 5:Ez9osmV7J+pDN76sjDLGtczQ/1cpCxra37RP941m99LTtWVoB0hIw6ty57aSy4m7c1jHgC0mSxeRGiSMFkAlqvjdwdUyMJgOxygIsaISAfybwiIxkwkI2WjZkUddG+eUyw7GY6glX6xaA50sTn90ktcMhI/rW6z0nTIf+8+qNSI=; 24:mSmdM8Ox590azvFcTkSF5XsSGNEjbqxc1C8Zu5JK6oOquIEfHv3u9v8gclmW8RijlXQ8SFgnrWSyWfi3LWeiY16tM5IBoDmD+bk1+E/Shp4=; 7:W/VduzN3Mf9DkYW005Uq50zs3bgebIvZGcXw4RSlc+Myc0TSA0ZeIEhb2S5sReGeEvHc0mfq4VRof3Uwy4jKDnyoukupac2CegvhWUJGWYZZ3/EeDfPeLk3iOPM44cEtlSy6IT9rhyVqOmjyesmEN3m9NHLXfiOk2NQAPkoA9Y3rh4+TRbfb0W4JC6Gf6rmg4oyAiypIQ7kGJWhpFxJJDmaU102ZIlUfHcP3iG+0H5+maTA8oOfnd9ahh66DRef9 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; KL1PR0601MB1877; 20:RVf3i6ktMpR3lGqrKhxFsLNisY5oNjDXp47mK+XqOfTlkbUzui8Pg29gdyc57its8Nq1/8Na29q/HP80DOYwVTFsCnQBCWx8Hg1YCqafe0y06B1tC7uSTKNhZYco53SB086EMxhDy7wVEfVx1fRZH5ZjiKUTOzfsEN9rvE1v0yw= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Feb 2018 02:08:53.4609 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff5f564f-2b1d-4293-cd96-08d57286bc46 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB1877 Cc: Linux-ALSA , hiroyuki.yokoyama.vx@renesas.com Subject: [alsa-devel] [PATCH 1/2] ASoC: rsnd: indicate IRQ error status for debug 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 SSI/SRC have under/over flow error handling, and its status is useful for debuging. But sometimes it might be too much message, and it might blocks necessity other information. To avoid such situation, basically this patch indicates interrupt status debug message if DEBUG was defined, but it will be suppressed if RSND_DEBUG_NO_IRQ_STATUS was defined. Reported-by: Hiroyuki Yokoyama Signed-off-by: Kuninori Morimoto Tested-by: Hiroyuki Yokoyama --- sound/soc/sh/rcar/rsnd.h | 10 ++++++++++ sound/soc/sh/rcar/src.c | 22 ++++++++++++++++++++-- sound/soc/sh/rcar/ssi.c | 16 +++++++++++++++- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h index ad65235..5241ea7 100644 --- a/sound/soc/sh/rcar/rsnd.h +++ b/sound/soc/sh/rcar/rsnd.h @@ -788,4 +788,14 @@ unsigned int rsnd_src_get_rate(struct rsnd_priv *priv, #define rsnd_mod_confirm_dvc(mdvc) #endif +/* + * If you don't need interrupt status debug message, + * define RSND_DEBUG_NO_IRQ_STATUS as 1 on top of src.c/ssi.c + * + * #define RSND_DEBUG_NO_IRQ_STATUS 1 + */ +#define rsnd_dbg_irq_status(dev, param...) \ + if (!IS_BUILTIN(RSND_DEBUG_NO_IRQ_STATUS)) \ + dev_dbg(dev, param) + #endif diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c index 510b68a..a727e715 100644 --- a/sound/soc/sh/rcar/src.c +++ b/sound/soc/sh/rcar/src.c @@ -8,6 +8,15 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ + +/* + * you can enable below define if you don't need + * SSI interrupt status debug message when debugging + * see rsnd_dbg_irq_status() + * + * #define RSND_DEBUG_NO_IRQ_STATUS 1 + */ + #include "rsnd.h" #define SRC_NAME "src" @@ -325,7 +334,10 @@ static void rsnd_src_status_clear(struct rsnd_mod *mod) static bool rsnd_src_error_occurred(struct rsnd_mod *mod) { + struct rsnd_priv *priv = rsnd_mod_to_priv(mod); + struct device *dev = rsnd_priv_to_dev(priv); u32 val0, val1; + u32 status0, status1; bool ret = false; val0 = val1 = OUF_SRC(rsnd_mod_id(mod)); @@ -338,9 +350,15 @@ static bool rsnd_src_error_occurred(struct rsnd_mod *mod) if (rsnd_src_sync_is_enabled(mod)) val0 = val0 & 0xffff; - if ((rsnd_mod_read(mod, SCU_SYS_STATUS0) & val0) || - (rsnd_mod_read(mod, SCU_SYS_STATUS1) & val1)) + status0 = rsnd_mod_read(mod, SCU_SYS_STATUS0); + status1 = rsnd_mod_read(mod, SCU_SYS_STATUS1); + if ((status0 & val0) || (status1 & val1)) { + rsnd_dbg_irq_status(dev, "%s[%d] err status : 0x%08x, 0x%08x\n", + rsnd_mod_name(mod), rsnd_mod_id(mod), + status0, status1); + ret = true; + } return ret; } diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c index 97a9db8..333b802 100644 --- a/sound/soc/sh/rcar/ssi.c +++ b/sound/soc/sh/rcar/ssi.c @@ -11,6 +11,15 @@ * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ + +/* + * you can enable below define if you don't need + * SSI interrupt status debug message when debugging + * see rsnd_dbg_irq_status() + * + * #define RSND_DEBUG_NO_IRQ_STATUS 1 + */ + #include #include #include "rsnd.h" @@ -603,6 +612,7 @@ static void __rsnd_ssi_interrupt(struct rsnd_mod *mod, struct rsnd_dai_stream *io) { struct rsnd_priv *priv = rsnd_mod_to_priv(mod); + struct device *dev = rsnd_priv_to_dev(priv); int is_dma = rsnd_ssi_is_dma_mode(mod); u32 status; bool elapsed = false; @@ -621,8 +631,12 @@ static void __rsnd_ssi_interrupt(struct rsnd_mod *mod, elapsed = rsnd_ssi_pio_interrupt(mod, io); /* DMA only */ - if (is_dma && (status & (UIRQ | OIRQ))) + if (is_dma && (status & (UIRQ | OIRQ))) { + rsnd_dbg_irq_status(dev, "%s[%d] err status : 0x%08x\n", + rsnd_mod_name(mod), rsnd_mod_id(mod), status); + stop = true; + } rsnd_ssi_status_clear(mod); rsnd_ssi_interrupt_out: