From patchwork Mon Feb 15 05:23:01 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 8309641 Return-Path: X-Original-To: patchwork-alsa-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 948C1C02AA for ; Mon, 15 Feb 2016 05:24:43 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 9F39D204EB for ; Mon, 15 Feb 2016 05:24:42 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.kernel.org (Postfix) with ESMTP id 5987E204DE for ; Mon, 15 Feb 2016 05:24:41 +0000 (UTC) Received: by alsa0.perex.cz (Postfix, from userid 1000) id 827252619E3; Mon, 15 Feb 2016 06:24:40 +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 95211261560; Mon, 15 Feb 2016 06:23:30 +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 733F0261582; Mon, 15 Feb 2016 06:23:29 +0100 (CET) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 9B7362612DF for ; Mon, 15 Feb 2016 06:23:05 +0100 (CET) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 15 Feb 2016 14:23:04 +0900 Received: from relmlac1.idc.renesas.com (relmlac1.idc.renesas.com [10.200.69.21]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 2AB6C4E355; Mon, 15 Feb 2016 14:23:04 +0900 (JST) Received: by relmlac1.idc.renesas.com (Postfix, from userid 0) id 234D88002E; Mon, 15 Feb 2016 14:23:04 +0900 (JST) Received: from relmlac1.idc.renesas.com (localhost [127.0.0.1]) by relmlac1.idc.renesas.com (Postfix) with ESMTP id 1B8DD8002D; Mon, 15 Feb 2016 14:23:04 +0900 (JST) Received: from relmlii1.idc.renesas.com [10.200.68.65] by relmlac1.idc.renesas.com with ESMTP id QAY29516; Mon, 15 Feb 2016 14:23:03 +0900 X-IronPort-AV: E=Sophos;i="5.22,449,1449500400"; d="scan'";a="204324596" Received: from mail-hk2apc01lp0207.outbound.protection.outlook.com (HELO APC01-HK2-obe.outbound.protection.outlook.com) ([65.55.88.207]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA; 15 Feb 2016 14:23:03 +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=VS6Xw6LxXi+eSYU3Zzo2+MUyAOHhcSstZwhJ68kbO7g=; b=etX3+QsmGZ2wIG5bxfURwKRYKI2IiyOvcfSs0XAUlh1MC7pLfr1Lx2byFeLCbaxdDqz6OrC/4qHzIS0WKQ98vhfmPnBiiVZgbP8kRnsvvYtbxeAznbE2auRkZmxeksoayzDAMsxpgRTK2LzxEforallpPYwyhr7kefckUQq5yJQ= 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 SIXPR06MB1023.apcprd06.prod.outlook.com (10.160.240.28) with Microsoft SMTP Server (TLS) id 15.1.409.15; Mon, 15 Feb 2016 05:23:01 +0000 Message-ID: <878u2mim9w.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:01 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: TY1PR0201CA0042.apcprd02.prod.outlook.com (25.164.90.180) To SIXPR06MB1023.apcprd06.prod.outlook.com (25.160.240.28) X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB1023; 2:Ocpcho1vvWFH4hUwolTBnNI3+wq2A7roYiDYB+dtLuKl62tgtqrVJGkgX3WBfD2YJ3hVEb7LuwUHkImotVn8qnF3N2bjHMOmaAU45xypN7JUd0+5Ymq2HRHpKwa3PNRp2w05LE7ylddMFR57O9Md/g==; 3:Gl96JO3+OD0UDN+e9h+ZzcBSySCxC8BQJNXF4cmEhoeBzHeUm5ZeGSOFn7IQYXvDNcjnIu66cVTsW7D5UgcXjR4+L2Mo1in2KbjmHJQrMF3w28q7eTcQEMpLr9VJqonW; 25:pxxQjmSChSQmMRSQnWAuuzOOL0AgOMGPbrxkNYAKLZ4uN/Laksl/bzj8cireI5omjNIMI2dtUILJnnVlSyD/gX+fKeWIoeeHeVR+oHr+aWV+mPVTmwlt2fLtXyGffmrrJldoupMgXQTPV7BfByZ+7gRDmEdHFYBddQmwCeSXldpUnJssdUxOZrCrJPrVn8VvcPlkskp7UeGqMDoWJ/0lrFa89OPQmYxCbWU0yoS8Nt/P9/aJJfsCunZO9hX6JFdzwsIxrrt2Z/IZN0PFB8r/Tv+z+f/dh5VoEi60xo/yAJn/bcADJr1M4TY0Sr4kX3IH X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SIXPR06MB1023; X-MS-Office365-Filtering-Correlation-Id: d914ae22-64d3-4e63-d1c1-08d335c81316 X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB1023; 20:H89slSJSPVQWd/BBn4JbY8xEPtv1JnxGdGcU9YSiWtIzrNM3ToCAK8crl9PGP3j3I7eOG3Fy0vuhB9OnSDK/Fw5NXUkQMmjGrsPsM8x+UnCrxuGquWpMiwLVCinEx0JhnjX0P+39b/qSRRCcUlDqtacJzeRqhNMaaQgXUaKcEFmznsRWVo9LyoHJMOclvNXUL0H89XMaZMWsDsEKDjeeqYiVx5GHrQy1rLWmRW0LAxmgQIeCeafGRaOC4Gu2zfuwDN1DJKNcpUrv45BG21ozCrOn6mf+flEMvq696uGjBbaId5Comwuvz3JLWmrtR+lXHLO/eU6V35awD5Tg+ksb7AnCNJMYIdhT6BaaQzIX1cEvggRA+32M/LwgmuE9tufNsidcKj5KpZMDDNnkLHVsAmhW42xcf24KVwbyiVP0/Vt2oQiRLRmrJ/uPS0X685fC9zSmpbVvEIfA6Xw4P85t+I/Al+v0/ETfWboNC0aAzjV0n7hQUeui9Kdynx0WAZW/; 4:TJK9n3Keus8QpO2CVGWP5mU8vY82cNA2LobBWltsa56dQ0RI1w+mXy2TG8s84wHrK8XL4ec1AaJw9qDOIvfQkpIrr1mq2gTww/UkKJ5yW+LoXKQgBqldFkHQ4Z3RTg+ddehe5qLJgd+bX6Xkvhn2LOB7d2BtZro5+Dqk+zvCcfy+Q3Oo+FPN5kYZWEPAUZjOBogcsEN2K9I0Madq7V3PcY+Ia5yBZker9LL6fv8hZQtWBuy8wZC+DY9wQ5+MIEqE04qJfTQiBoNmC6DL/N49uwQciF7ZKMy/jHzu/axWauhYIe76DcXnhf2wpZonvUn7ZBMOHgPeuC5d5kAkSy7wJ3EM97373jAvJacsUc7PRGdQWUMWUvQCx0dUlV2wRXko 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)(10201501046)(3002001); SRVR:SIXPR06MB1023; BCL:0; PCL:0; RULEID:; SRVR:SIXPR06MB1023; X-Forefront-PRVS: 08534B37A7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(979002)(6009001)(2950100001)(3846002)(46406003)(229853001)(19580405001)(19580395003)(23726003)(575784001)(122386002)(1096002)(5008740100001)(83506001)(6116002)(66066001)(77096005)(50466002)(86362001)(40100003)(42186005)(189998001)(47776003)(36756003)(92566002)(5001960100002)(87976001)(4001350100001)(5001770100001)(2906002)(76176999)(5004730100002)(54356999)(50986999)(33646002)(4326007)(53416004)(586003)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:SIXPR06MB1023; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:ovrnspm; PTR:InfoNoRecords; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SIXPR06MB1023; 23:PkENMNrIJ7680SfIpC9OAxQNffiw3BUFlZcy5/Boi?= =?us-ascii?Q?x4rn0Dl2qQfTzK5ApgSCN4Cri9Jv7W3Izr20SRih0x1Cy9o0ooY24HmO4yiU?= =?us-ascii?Q?QVgHjGUeIApgUqX82eQzVlWmk4UHQxIRfs/N9rfQ+HqeEfztZYYGyC7larcp?= =?us-ascii?Q?lzlaA/LI47DrFYRouPodseHJzajwDQnhDSN+/BNHRCzA4kJxR8PsMsWzmf7T?= =?us-ascii?Q?XoO02ddBjvBZPg/bnZH1oPVV4YkKUHz9GsNSAyas7GaG6hHAPblNZvnIRTxF?= =?us-ascii?Q?EKp80XN5B+R6sR6VEuHW3f/UMVMO3sYnQn6o1dKISttrOQrIpzipf7BSUg1G?= =?us-ascii?Q?FCtTV1cXFwNPisodX7+bLJ1rV/xfLA9yLMbn5VsRoEYaAS1bEQ9wQkK0z6Ui?= =?us-ascii?Q?S17oxAn/JTIN7VUuvG17qAWw8F1bvvSw4ulsf6mxpSIEbG5zkpVNhlnaVyhB?= =?us-ascii?Q?W0JLZkVC1WkWinGUGAK7O5Gzw10AWEbre1x+Um3BYB1LjjXxHCEpHRg++DDX?= =?us-ascii?Q?RTlZokYt7w7kGqb7Fhl3gqAxB0BHlVcLgSxuVkY6/FEFNb2tO8f8yrX9+/iq?= =?us-ascii?Q?ltfxvtj1bB5QPkfBC06n6XXcRKnXKyiwPmTbNJbrWEjDG/qmZpk2MOjRo6nV?= =?us-ascii?Q?2eTd1S6uXdqg9osPHFB4Ig0BcCtRI7Xgsyxl2KkF/L+L8k7omJivgtAnbpBz?= =?us-ascii?Q?4A7d3hH3n64ywDw+eHHJSklcxA5blbihcNsLs0P+RUMMp+rh4asdtvypFN8I?= =?us-ascii?Q?CgSzv6PeXap8PLF9615+CF7m5V6WBBq1W41+M2Y2b88x1anJSw1kIKrfINCd?= =?us-ascii?Q?QN/jmHW+49BMSSm5aF1ELRFWOPmmCqv4q6sqSlaO8jE/EILcq8q/YRjCpBzJ?= =?us-ascii?Q?+7jIvP3YW/HC4DhyZBaH1H+hOpyp8tMwihqnlAhtl+k2fcn1L8a4GXsTilUV?= =?us-ascii?Q?t3XjX3ymtOnfrAfigIG9oRq7CGDbYBJ0xlPlr+LjFYaZV0ziNxMksJaKquzF?= =?us-ascii?Q?D8o7jYzemJh+Lkc61Dnc4soryk6GhNCN/p6OGp4hmGLC4xlKthWC2CK7xCyz?= =?us-ascii?Q?xW1E4ORk3sWhP9l4/h2RU6Dn5jGX9T9QdF/UYWw/nB4LI2RDQp5MwCeOyD5L?= =?us-ascii?Q?wofTK2qp3BKimfK/1QmlpqjqbffLrtl?= X-Microsoft-Exchange-Diagnostics: 1; SIXPR06MB1023; 5:8yd4AYET15Y4yDVy4ljbh6umRswjXNpdkH83VrT3CElXahkXBO+mBsUAz4UlEdb91VPtROUMIpyn7TbV5WJZN0C9mnXQjzQuUh9zTipnx41hEn3/rY/CvQgJThHfPFrqoO13ziZCtT1viksR0gEZ1g==; 24:t7OQ5OnDNVDBn18N9WTjPiImDMgro/7+nGxjYTIweFEy0+ZhIrT8vSscKz0hin3YFEY5GkN544r24hZtG4/0Dc4kiX44lT3gpnvXA7wMXnU=; 20:IBgFAyKFw4OBXx/J+x/eVea43Crusz38eoFLoLCGkzk3YBJZN/IW1A7xOedVZ6fvJE2sTR5luKReWIo03ELlGKJR5uwpjNxpd7Gkb75Gj9PztcJYaD8pdYjJV6OHDYYUuS3tnFWQtiPuL22c2bJiUK94EpNIN5JnOztEbqvssr0= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2016 05:23:01.2959 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SIXPR06MB1023 Cc: Linux-ALSA , Linux-Kernel Subject: [alsa-devel] [PATCH 03/15 v2][RFC] regmap: merge regmap_update_bits_async() 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_async() into macro by using regmap_update_bits_base(). Signed-off-by: Kuninori Morimoto --- drivers/base/regmap/regmap.c | 34 ---------------------------------- include/linux/regmap.h | 12 ++---------- 2 files changed, 2 insertions(+), 44 deletions(-) diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 281898a..c2255f6 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -2711,40 +2711,6 @@ int regmap_write_bits(struct regmap *map, unsigned int reg, EXPORT_SYMBOL_GPL(regmap_write_bits); /** - * regmap_update_bits_async: Perform a read/modify/write cycle on the register - * map asynchronously - * - * @map: Register map to update - * @reg: Register to update - * @mask: Bitmask to change - * @val: New value for bitmask - * - * With most buses the read must be done synchronously so this is most - * useful for devices with a cache which do not need to interact with - * the hardware to determine the current register value. - * - * Returns zero for success, a negative number on error. - */ -int regmap_update_bits_async(struct regmap *map, unsigned int reg, - unsigned int mask, unsigned int val) -{ - int ret; - - map->lock(map->lock_arg); - - map->async = true; - - ret = _regmap_update_bits(map, reg, mask, val, NULL, false); - - map->async = false; - - map->unlock(map->lock_arg); - - return ret; -} -EXPORT_SYMBOL_GPL(regmap_update_bits_async); - -/** * regmap_update_bits_check: Perform a read/modify/write cycle on the * register map and report if updated * diff --git a/include/linux/regmap.h b/include/linux/regmap.h index 500b36c..90c8b0e 100644 --- a/include/linux/regmap.h +++ b/include/linux/regmap.h @@ -67,6 +67,8 @@ struct reg_sequence { #define regmap_update_bits(map, reg, mask, val) \ 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) #ifdef CONFIG_REGMAP @@ -699,8 +701,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_async(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); @@ -956,14 +956,6 @@ static inline int regmap_write_bits(struct regmap *map, unsigned int reg, return -EINVAL; } -static inline int regmap_update_bits_async(struct regmap *map, - unsigned int reg, - unsigned int mask, unsigned int val) -{ - WARN_ONCE(1, "regmap API is disabled"); - return -EINVAL; -} - static inline int regmap_update_bits_check(struct regmap *map, unsigned int reg, unsigned int mask, unsigned int val,