From patchwork Tue Nov 27 07:35:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10699815 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 3AEB013BF for ; Tue, 27 Nov 2018 07:52:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2E9202AA7C for ; Tue, 27 Nov 2018 07:52:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 22C192AAEA; Tue, 27 Nov 2018 07:52:46 +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=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,SUBJ_OBFU_PUNCT_FEW 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 9D69A2AB11 for ; Tue, 27 Nov 2018 07:52:43 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 19CBC267A90; Tue, 27 Nov 2018 08:35:52 +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 9B8B1267A94; Tue, 27 Nov 2018 08:35:49 +0100 (CET) Received: from JPN01-TY1-obe.outbound.protection.outlook.com (mail-eopbgr1400138.outbound.protection.outlook.com [40.107.140.138]) by alsa0.perex.cz (Postfix) with ESMTP id 3FA2F267A8C for ; Tue, 27 Nov 2018 08:35:43 +0100 (CET) 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=pFJjA7QgPCEdDYT/tWqPKGSaWs8675Hyxvrg5SrEsRA=; b=D3MMVjCZlZzBgJuVSJylblUk493EGFMcWIeE2hfuvp+sJ54AykaqVCF03TgfXijvEUezRpaThCnrqTkQUiizC7Qb2MALIV2BHZ4hxfzWh8H9B6eWe/l8fWD4Bi01QMIWH3imnhQ/wLnsB7yTrZ1lytrfpBieedRJRqtBBcwatio= Received: from TYAPR01MB3328.jpnprd01.prod.outlook.com (20.178.136.81) by TYAPR01MB2877.jpnprd01.prod.outlook.com (20.177.103.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1361.16; Tue, 27 Nov 2018 07:35:34 +0000 Received: from TYAPR01MB3328.jpnprd01.prod.outlook.com ([fe80::8903:38b9:bfa8:89b7]) by TYAPR01MB3328.jpnprd01.prod.outlook.com ([fe80::8903:38b9:bfa8:89b7%2]) with mapi id 15.20.1361.019; Tue, 27 Nov 2018 07:35:34 +0000 From: Kuninori Morimoto To: Mark Brown Thread-Topic: [PATCH] ASoC: rsnd: tidyup registering method for rsnd_kctrl_new() Thread-Index: AQHUhiPIweLiTv8U9EScsvrlJ2Na6g== Date: Tue, 27 Nov 2018 07:35:34 +0000 Message-ID: <87lg5f0yni.wl-kuninori.morimoto.gx@renesas.com> Accept-Language: ja-JP, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: TYAPR04CA0008.apcprd04.prod.outlook.com (2603:1096:404:15::20) To TYAPR01MB3328.jpnprd01.prod.outlook.com (2603:1096:404:bb::17) authentication-results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [211.11.155.130] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; TYAPR01MB2877; 20:uYC2az12swm1OKFwHvD7G8ePWqcQ/9GD7/wmQICjVtvYtszyhavVTzZvve952rdZWzSt02io/tvxFMEgn6Qi7aDsnQTCRvsejeQXWGfUrQOW/HnaNrO6D4j4K0yGgEJdcGwEMXNSfmnExDKZsFdud3T0Psue5dFLAspf7+ABVWM= x-ms-office365-filtering-correlation-id: 1bfdcee6-3ed5-4bd9-49b6-08d6543aeaa6 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:TYAPR01MB2877; x-ms-traffictypediagnostic: TYAPR01MB2877: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231443)(944501410)(52105112)(6055026)(148016)(149066)(150057)(6041310)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123560045)(201708071742011)(7699051)(76991095); SRVR:TYAPR01MB2877; BCL:0; PCL:0; RULEID:; SRVR:TYAPR01MB2877; x-forefront-prvs: 086943A159 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(346002)(136003)(396003)(366004)(39860400002)(189003)(199004)(6116002)(4326008)(81166006)(66066001)(81156014)(71190400001)(71200400001)(102836004)(256004)(53936002)(52116002)(1857600001)(6506007)(8936002)(386003)(2906002)(6916009)(107886003)(106356001)(8676002)(3846002)(6512007)(5660300001)(305945005)(6486002)(25786009)(14454004)(316002)(478600001)(54906003)(2616005)(476003)(86362001)(105586002)(68736007)(486006)(97736004)(26005)(7736002)(6436002)(36756003)(99286004)(186003); DIR:OUT; SFP:1102; SCL:1; SRVR:TYAPR01MB2877; H:TYAPR01MB3328.jpnprd01.prod.outlook.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-antispam-message-info: PO00ahL5RIIAsBbg4OkDORckxteKuOkLTYUxwnIgh6ntw42KoUHttjdRIuEsjBR9h4to+9KK0R756pbImOskkMP5g9u83lcwrv+4D1fEF6D5ISYQaXmpWkgPAdDQom5YJCGd5H2DTpoEvO9sCQ6cgAjkSq1kqJqzAPuUXpDhLSLxG+3MgGsTHQQRU/kx1qAVGnIEmdD69VHXsbEN27hB4i7ivUk31IK4hS/6vssxdMF51GwlvK67xXR3x4MEZTF6ryK2/B7jOn5ZaNvsXY/9kzjnqIOtpy5eENDA7McTbfblbffAHlUs6if+y1B3Qx5wipyJQI2YAjgmlXDJLK+vwtP/+sQ9FeSEk4TrYxw/6dI= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-ID: <11F876D16465714BB1B50629E8C2381E@jpnprd01.prod.outlook.com> MIME-Version: 1.0 X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1bfdcee6-3ed5-4bd9-49b6-08d6543aeaa6 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Nov 2018 07:35:34.7669 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYAPR01MB2877 Cc: Linux-ALSA , DUNG NGUYEN , HIROYUKI YOKOYAMA , Yoshihiro Shimoda Subject: [alsa-devel] [PATCH] ASoC: rsnd: tidyup registering method for rsnd_kctrl_new() 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 Current rsnd dvc.c is using flags to avoid duplicating register for MIXer case. OTOH, commit e894efef9ac7 ("ASoC: core: add support to card rebind") allows to rebind sound card without rebinding all drivers. Because of above patch and dvc.c flags, it can't re-register kctrl if only sound card was rebinded, because dvc is keeping old flags. (Of course it will be no problem if rsnd driver also be rebinded, but it is not purpose of above patch). This patch checks current card registered kctrl when registering. In MIXer case, it can avoid duplicate register if card already has same kctrl. In rebind case, it can re-register kctrl because card registered kctl had been removed when unbinding. This patch is updated version of commit b918f1bc7f1ce ("ASoC: rsnd: DVC kctrl sets once") Reported-by: Nguyen Viet Dung Signed-off-by: Kuninori Morimoto Tested-by: Nguyen Viet Dung Cc: Hiroyuki Yokoyama --- > Mark This patch is for v4.20-rcX sound/soc/sh/rcar/core.c | 12 ++++++++++++ sound/soc/sh/rcar/dvc.c | 8 -------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 56469ac..031cd5b 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -1476,6 +1476,18 @@ int rsnd_kctrl_new(struct rsnd_mod *mod, }; int ret; + /* + * 1) Avoid duplicate register (ex. MIXer case) + * 2) re-register if card was rebinded + */ + list_for_each_entry(kctrl, &card->controls, list) { + struct rsnd_kctrl_cfg *c = kctrl->private_data; + + if (strcmp(kctrl->id.name, name) == 0 && + c->mod == mod) + return 0; + } + if (size > RSND_MAX_CHANNELS) return -EINVAL; diff --git a/sound/soc/sh/rcar/dvc.c b/sound/soc/sh/rcar/dvc.c index d65f24b..27c3761 100644 --- a/sound/soc/sh/rcar/dvc.c +++ b/sound/soc/sh/rcar/dvc.c @@ -40,11 +40,8 @@ struct rsnd_dvc { struct rsnd_kctrl_cfg_s ren; /* Ramp Enable */ struct rsnd_kctrl_cfg_s rup; /* Ramp Rate Up */ struct rsnd_kctrl_cfg_s rdown; /* Ramp Rate Down */ - u32 flags; }; -#define KCTRL_INITIALIZED (1 << 0) - #define rsnd_dvc_get(priv, id) ((struct rsnd_dvc *)(priv->dvc) + id) #define rsnd_dvc_nr(priv) ((priv)->dvc_nr) @@ -227,9 +224,6 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod, int channels = rsnd_rdai_channels_get(rdai); int ret; - if (rsnd_flags_has(dvc, KCTRL_INITIALIZED)) - return 0; - /* Volume */ ret = rsnd_kctrl_new_m(mod, io, rtd, is_play ? @@ -285,8 +279,6 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod, if (ret < 0) return ret; - rsnd_flags_set(dvc, KCTRL_INITIALIZED); - return 0; }