From patchwork Mon Feb 15 05:23:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 8309681 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 9E55D9F2F0 for ; Mon, 15 Feb 2016 05:25:41 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 9CDBE20515 for ; Mon, 15 Feb 2016 05:25:40 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id B8869204EB for ; Mon, 15 Feb 2016 05:25:38 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id E308C26172C; Mon, 15 Feb 2016 06:25:37 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Spam-Status: No, score=-1.8 required=5.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,NO_DNS_FOR_FROM,RCVD_IN_DNSWL_NONE,T_DKIM_INVALID, UNPARSEABLE_RELAY autolearn=no version=3.3.1 Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 2DBF0261738; Mon, 15 Feb 2016 06:24:29 +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 628D2261740; Mon, 15 Feb 2016 06:24:28 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id 85290261685 for ; Mon, 15 Feb 2016 06:23:22 +0100 (CET) Received: from unknown (HELO relmlir3.idc.renesas.com) ([10.200.68.153]) by relmlie1.idc.renesas.com with ESMTP; 15 Feb 2016 14:23:21 +0900 Received: from relmlac2.idc.renesas.com (relmlac2.idc.renesas.com [10.200.69.22]) by relmlir3.idc.renesas.com (Postfix) with ESMTP id 278A746992; Mon, 15 Feb 2016 14:23:21 +0900 (JST) Received: by relmlac2.idc.renesas.com (Postfix, from userid 0) id 1D92F2806D; Mon, 15 Feb 2016 14:23:21 +0900 (JST) Received: from relmlac2.idc.renesas.com (localhost [127.0.0.1]) by relmlac2.idc.renesas.com (Postfix) with ESMTP id 1614E28070; Mon, 15 Feb 2016 14:23:21 +0900 (JST) Received: from relmlii2.idc.renesas.com [10.200.68.66] by relmlac2.idc.renesas.com with ESMTP id QAC11975; Mon, 15 Feb 2016 14:23:21 +0900 X-IronPort-AV: E=Sophos;i="5.22,449,1449500400"; d="scan'";a="205588966" Received: from mail-pu1apc01lp0020.outbound.protection.outlook.com (HELO APC01-PU1-obe.outbound.protection.outlook.com) ([65.55.88.20]) by relmlii2.idc.renesas.com with ESMTP/TLS/AES256-SHA; 15 Feb 2016 14:23:20 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=dW5oqSPmX26H87TddVq4zW1Lx99Zs0FYH80+8S4Onpg=; b=co9CEZ9UV5G/Zo7MQStE/iMW4t16R856+mVwNClsKoe/SJ8uZUYFX4G5H5z0h61NTZwfG/7J9dPaNtfsSkXF4Y4GthqmBTaGY8swSpimLFGorbMIcXiH/CXiUw0c5GZxuWtIC6feypnpVr3XlT7ljyN2wWns16KQ7WUrJKrywqc= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by HKXPR06MB1014.apcprd06.prod.outlook.com (10.161.178.156) with Microsoft SMTP Server (TLS) id 15.1.403.16; Mon, 15 Feb 2016 05:23:17 +0000 Message-ID: <877fi6im9g.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") To: Mark Brown , Greg KH In-Reply-To: <87d1ryimdz.wl%kuninori.morimoto.gx@renesas.com> References: <87d1ryimdz.wl%kuninori.morimoto.gx@renesas.com> Date: Mon, 15 Feb 2016 05:23:17 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: KAWPR01CA0009.jpnprd01.prod.outlook.com (25.161.24.19) To HKXPR06MB1014.apcprd06.prod.outlook.com (25.161.178.156) X-Microsoft-Exchange-Diagnostics: 1; HKXPR06MB1014; 2:O3SmM0g6n/1XTCjGaaJI2RJoU8QygS6kLFPxBD7rHzOhDadHuV+I8ivN9uD5CQMUSv1NdSYcm6Z3jh+318my4NPeTSawGnLZ2pW8IhKFbjZmOXpaMiYscBqE+u/m/LX4vFs+bz3CDduRunueJnGd5Q==; 3:MhrX8BOuZtXpa56krO2voLKW8ImAR2DQtANZur9GwOKD2lxBlyByVGxUMzGXjHTdR5VXo3TUybmwSejk5IdpiE4gBkfLodPNVXGkwaPrFTzlNpGCEflg++Vm4S0QH+mv; 25:pLk+BPg4ez5sbWVueqjAUiPU0v/Yfx8QDsUbnKybXt0Vuh1tqVADv4ALO2dVCu4uU8MVVQUv7IQFv+K21gOJCRJa+iYe7OXeNOb42CRHbWlK5EIqyaYp79ENDHBKWfs0jt67CpOQxG78h+jxdyD2LHdYLRFH2sFFZ6cAU3hth6ejsyQ0H+TSO5mTiPtEreqHd8PB4+0rfkOgfFKW95fSAtL00VYAlXXQ2RWta35Ph/rObzb52b1ObuA+wrdsXSmykI3XIrmIalykbryhduqRAh7nyCrgP4rXfguuWyjUeivH4nn9XHVSuM/18sGup+xQ X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HKXPR06MB1014; X-MS-Office365-Filtering-Correlation-Id: 77bfaf75-2fd2-4b3a-25a2-08d335c81cbf X-Microsoft-Exchange-Diagnostics: 1; HKXPR06MB1014; 20:sI0zwcAknavRnb6Fyn7KGe4/HMU3Fx4fi7mwzYDmzlJTVV6KkJwjuS544oyWAGo7jMgH8cwRvV2NckmzZ2UapinednNU0jeFQ8xVabAZc/7J0r+VHR1Z8iHxwo6nM8HfdJYv7XUpRDYoYiFsR1y5c5jIqNX8P6zBE/YCivHUm8w3oOCjXF9KVA8zZuMjyJajZMHzEsWMzL83b/afhGhY+Q3HIgdM2SmfFGS4Pk4//hqzWeYZUOQjSz/MMtippEFjpg/mBToRp1mjxCmKMaM4VNhilkHi49GuI7WpQCFiTqnUk05HCI/3cPyOn00H8NDcXgsra1tZRmdEhz2ZlLp1xJAwLIYsadaA+5SgIY2kmDIZy2mJ4drckFcy6ncrActfUiX3iFYJonrU9NbXfi8jTPWsd1CF74wm9i37+Xoal+rlwvhUucBei6K47K8mxVidEKvM0tfqSE2bg+Jz0KeoUit6LbJHz5zFgzaIDkfB2VUB8Hj8hbH+06K8gDuFgHEb; 4:MQhOJXFceBFvBts2DpCVc8N7mheX/4YzzJbk+ciM3KUIGxblUGtg+mVkhBug+wuZpVr85kR/9ZZWOYnMg4Dqs2m/fkNqe1ikk8kA0tVYbWgMSsFOWWCWGv+9kV7uj1BAyCUxXz9lQkZOH2zUvoGVZt2z1xpXRvcvt2zI+V7j2lcg4gOFtNFvg0XYui58ogx2f9B1u8WZEEcyUEfGh43VtYdjBRdMGTSmZIw6AvS0qi0fV6gHaehtUJXOvW4ICAPhrh0hFBs/OVIujeLlmt5yWCNlDPka+W9LZrvU8Z/pDUHqEYJN4K/QhjJ2p2Fqt9aRBZGQqf3YnQvtb4pH9+kLbyqP5v3dRdO0toPfyGaaZIH9g+7UwZiFTSUlhD6v2+rM X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:HKXPR06MB1014; BCL:0; PCL:0; RULEID:; SRVR:HKXPR06MB1014; X-Forefront-PRVS: 08534B37A7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(586003)(23726003)(53416004)(1096002)(4001350100001)(3846002)(42186005)(66066001)(2950100001)(6116002)(50466002)(5001770100001)(33646002)(575784001)(77096005)(54356999)(5001960100002)(189998001)(86362001)(122386002)(4326007)(40100003)(5008740100001)(46406003)(47776003)(50986999)(87976001)(2906002)(19580395003)(19580405001)(76176999)(5004730100002)(229853001)(36756003)(83506001)(92566002); DIR:OUT; SFP:1102; SCL:1; SRVR:HKXPR06MB1014; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HKXPR06MB1014; 23:F9pwb2G476vmyqDiMKX0z5nQs8GoUJ3g7NgwwAD6z?= =?us-ascii?Q?/y/LODbj/ae/MirF+b55J7aggVsidM4+j1GbjcaTjJPn+nMeMNpuk6TtkUSX?= =?us-ascii?Q?gWXAxbx+ICAglxG3ijlTHcuNRpUiDlYLjkupKyZ+m/xgJ+eH6aERVEOYMeVk?= =?us-ascii?Q?NI//sSeRj2T2NXNzKU/gFWwIqiiTZH2knZmve8TPnmyNeKg/imXgQi6cGjyj?= =?us-ascii?Q?1VDDcHibOGmC9wK6fgNquf3keLuPe5LWEvksTQItx1ujXUYjXywKtnH1HNNo?= =?us-ascii?Q?64XDHZmpQ7ssv9nDeKs/4tilnVEVY6gXA0JBaHZsqeCTsc3rak98y6VbQivR?= =?us-ascii?Q?RjH1QkBN3gFS8UMmjRJeSw262U3/PzOvncetaeIVHkyaqdJMSEdaxBvj+8A3?= =?us-ascii?Q?gPO5FY/jcGhw/su7dwWYcimm5ILYZzat64qhybowgMqiJ+N8c/YxLe4SV3Dd?= =?us-ascii?Q?1LdaNPfrVbr7cmoLmQQxmwebWcxKYf0QaPZexai3FSbcFkWfg+Ji7gUxcgQJ?= =?us-ascii?Q?Y6of4fDZ19TfN4zPe7jZ4g7AiM3zlwQ+cYF10vAOLsPQdoMM+Td08hzzEsme?= =?us-ascii?Q?sqZGlE4lp5D0MDsaPBxrCexIpZPeUyHAcSw+GOWRBkVC9rgaPz+s0Kh2VECI?= =?us-ascii?Q?wpu8L4M+bkyG6s2fAzXkX5IPgyzmh6tpAfNd5Ey7XXcY+97YPcWmOaoInFO6?= =?us-ascii?Q?EYv3q1HZoWz0DtbwHn5hrdXtpFh1S9DNAE7rgMw3bL1J5CDQExW868kP8lPQ?= =?us-ascii?Q?ooeXUQyBAhdpDInxjPCug4ZFyCcqTAksreXT01DhgaE5xx91r4XX+d2BY0D6?= =?us-ascii?Q?RU37UDcT8gZ6WzyXh/WsXCaJPBbpdp3g43lJ3EbaYMXm/WleryQwoSFnWdWH?= =?us-ascii?Q?VA16otPaIqJYbgA1LClsLuR7GiQqFGbAllq+xMFvQdIXp0zUql3+kiWkRIlz?= =?us-ascii?Q?CDrrecDJbQjIq8CQrowZAGtXj4EAsaZ4maJiCMkeuQz/Y0eMQdcTW9hWAiWp?= =?us-ascii?Q?IYkYm/2FMNWqNEFG1pnJNaBOaCuXBa1SLF3q4fD5s/A3UHTHLA5LEHrtNCrO?= =?us-ascii?Q?FY1yzw=3D?= X-Microsoft-Exchange-Diagnostics: 1; HKXPR06MB1014; 5:mkXwdQjzNm81fFxBjqD8OzPSLkExv4u0lte5xit0OwXrv/AWytU3PNP7bNCC/QnJ8qFt14/4fLAR7JB64PHvyEfpm/HwSqXuhiN+aL2ejGbbgsqeH3Ag6AAEUB0M8IqoT2Gs0ugnSYM+cwqhY0fFGQ==; 24:jA231Zkx0X4dnQzPhxVsv9nve8ZMUh6kGxnBCnI1GsbACLaQNlLaXzNRSbCgFczGcff74sJQaoKE5R5xgRi5TeUKMh6m/D08cgj9b8aQjxU=; 20:MmvjZRyB5x5XCDN0Va9e40LTtg+Au6/Te6mpzXo4xR+Co6afhzhDwJdO+Qm7sPqQ9vkRCB3xtPSeqZkmRmWGJPaZX5WndkH5LWOL6S4nSj3wlWqDxjg9yJMgpdy0zYo0q8wh+bIi+lZ4dNqQqbOpe5dKXRP7RLJmmHH09vxqjzM= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2016 05:23:17.7329 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HKXPR06MB1014 Cc: Linux-ALSA , Linux-Kernel Subject: [alsa-devel] [PATCH 04/15 v2][RFC] regmap: merge regmap_update_bits_check() into macro 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 regmap has many similar update functions like below, but the difference is very few. regmap_update_bits() regmap_update_bits_async() regmap_update_bits_check() regmap_update_bits_check_async() Furthermore, we can add *force* write option too in the future. This patch merges regmap_update_bits_check() into macro by using regmap_update_bits_base(). Signed-off-by: Kuninori Morimoto --- drivers/base/regmap/regmap.c | 25 ------------------------- include/linux/regmap.h | 14 ++------------ 2 files changed, 2 insertions(+), 37 deletions(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index c2255f6..ce24e96 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -2711,31 +2711,6 @@ int regmap_write_bits(struct regmap *map, unsigned int reg, EXPORT_SYMBOL_GPL(regmap_write_bits); /** - * regmap_update_bits_check: Perform a read/modify/write cycle on the - * register map and report if updated - * - * @map: Register map to update - * @reg: Register to update - * @mask: Bitmask to change - * @val: New value for bitmask - * @change: Boolean indicating if a write was done - * - * Returns zero for success, a negative number on error. - */ -int regmap_update_bits_check(struct regmap *map, unsigned int reg, - unsigned int mask, unsigned int val, - bool *change) -{ - int ret; - - map->lock(map->lock_arg); - ret = _regmap_update_bits(map, reg, mask, val, change, false); - map->unlock(map->lock_arg); - return ret; -} -EXPORT_SYMBOL_GPL(regmap_update_bits_check); - -/** * regmap_update_bits_check_async: Perform a read/modify/write cycle on the * register map asynchronously and report if * updated diff --git a/include/linux/regmap.h b/include/linux/regmap.h index 90c8b0e..dd227dd 100644 --- a/include/linux/regmap.h +++ b/include/linux/regmap.h @@ -69,6 +69,8 @@ struct reg_sequence { regmap_update_bits_base(map, reg, mask, val, NULL, false, false) #define regmap_update_bits_async(map, reg, mask, val)\ regmap_update_bits_base(map, reg, mask, val, NULL, true, false) +#define regmap_update_bits_check(map, reg, mask, val, change)\ + regmap_update_bits_base(map, reg, mask, val, change, false, false) #ifdef CONFIG_REGMAP @@ -701,9 +703,6 @@ int regmap_update_bits_base(struct regmap *map, unsigned int reg, bool *change, bool async, bool force); int regmap_write_bits(struct regmap *map, unsigned int reg, unsigned int mask, unsigned int val); -int regmap_update_bits_check(struct regmap *map, unsigned int reg, - unsigned int mask, unsigned int val, - bool *change); int regmap_update_bits_check_async(struct regmap *map, unsigned int reg, unsigned int mask, unsigned int val, bool *change); @@ -956,15 +955,6 @@ static inline int regmap_write_bits(struct regmap *map, unsigned int reg, return -EINVAL; } -static inline int regmap_update_bits_check(struct regmap *map, - unsigned int reg, - unsigned int mask, unsigned int val, - bool *change) -{ - WARN_ONCE(1, "regmap API is disabled"); - return -EINVAL; -} - static inline int regmap_update_bits_check_async(struct regmap *map, unsigned int reg, unsigned int mask,