Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3702496ybz; Mon, 20 Apr 2020 07:58:36 -0700 (PDT) X-Google-Smtp-Source: APiQypLx1JlEhdiJmE+DRcqxOOGlgA9boXFaMKKUpLCu+d7de7o2s1Jw6rkJf6pBw7oiUXEYzadw X-Received: by 2002:a05:6402:30ad:: with SMTP id df13mr14248409edb.339.1587394716184; Mon, 20 Apr 2020 07:58:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587394716; cv=none; d=google.com; s=arc-20160816; b=cob89Mj8yIl5CFd62V7SHMAJ0vKx99sdUtXE9GoJTM3lYW6MX2vnzX1J2jbAPLRx9I 6zLEp4qBwVtAbk0SCanAApe/4/xwEkl21KagR18dxDHiLaOrQYYvx28WnGcw/O7eWzME cBGv8EWCTEMKlda3xQyniaaXHb9aHzfn5Bfl6SXA9x13M5DOkkrRYxHhZU1JjTq2byJL P3e6HnQRyNXPCxuK6gej+Dlms6lDZHgZwAKvAzrVsQG63zoRptSqJF5iRD+PoXepwG0M U/lOa0OJt5B9VV8c5yTo5w/q6GXoxdjGKZM93uGO8TpqvWIZYlBOaMZ6raXsLeTnIAQk Dc2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=d2ye63/S6Lz/zFEjTlSZ5tXRcsKe+oxNcP2htE8RYF4=; b=VTp8jmy3nN57eXDvpsUvcup3oB/40aGIbKhPUZ2SvoPmG+7iLsaqKqq3I2poaVU/Jy SzMpzUT7WGhoDhIPYP/s1ryNH73z7NLk+UHbIHpC8kgTd0QvL6e9T0idUiTlr9MwLa9z /CZdTJNh9rKH4TrP09vnwHkA+JADtxheNdnx7FoWjmtx5ECmdSfv/7+fV3THT3pwy9Yh OD2C7e5sw94Nx2zjDz1BvRbZXVhEounT/LoldGFmzpThYGNREI6rvLMXlA1AQ3xLVtgL fTogtzomFFclnRXln7eXP2BLVTvIWbT1Fk0dKHW7h6fr3gtCDKKoUgk9gIl4hrdnOiNv /q8g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=EOHqZG5H; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cz5si629301edb.127.2020.04.20.07.58.12; Mon, 20 Apr 2020 07:58:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=EOHqZG5H; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728667AbgDTNrB (ORCPT + 99 others); Mon, 20 Apr 2020 09:47:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1728633AbgDTNrA (ORCPT ); Mon, 20 Apr 2020 09:47:00 -0400 Received: from mail-pf1-x444.google.com (mail-pf1-x444.google.com [IPv6:2607:f8b0:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0AEBC061A0C for ; Mon, 20 Apr 2020 06:46:59 -0700 (PDT) Received: by mail-pf1-x444.google.com with SMTP id g30so4965178pfr.3 for ; Mon, 20 Apr 2020 06:46:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=d2ye63/S6Lz/zFEjTlSZ5tXRcsKe+oxNcP2htE8RYF4=; b=EOHqZG5HDsWj1pX7eAu15S+Na0C0+2gIjJ3Gqh44ASXY86SITSXxPYdXl3f5lMHFYb vRUcuEBDYyNpVAbkTYz/pb42HnoUdjmeUgPi4uCESD0+QNOxqsk6Yx+oBAm6HOlTsI5/ xQkHqi82zMX4MQjWdhcEqm1fJpABIpOIYgu+Y1xYiZUHNnQRHQIZQb7G3DFo/DJu/PxX 8N8giBAk/FDhukW4jCruQD909i/pkrZPTCC263Yw4VAIWqoqWWF71ferxhO9WGbNUkYO 3JsnXQsYI9PNQr0Aw7hHJEAjh/VBYnQUHomVNKCRqlcOBEBIbSqdM4rCAkpBhQ++A1Jc k9jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=d2ye63/S6Lz/zFEjTlSZ5tXRcsKe+oxNcP2htE8RYF4=; b=R8INdLzBQS19bsCLWrwDALmqzChJU2niwJDoLLrSUmIMH0oose+V5KuccJT1oCpW0M Y/oJOmtq8LzWfw67hQoVRoqzPr/EvgaG59wveIeCifmM85bVQwpp5FF4M5dknwJre2v+ 0ufqocpboH3nAcBS9fNnoMWTKezW4BLhFBG4OP+xMujZl+m/+3Ybz+/Jutv5YcQV9GPp oSXxilsVbEwmGo/kceWi5WE7tS8ff61eDJg93mmosloWD8T614dJbHf+WT15J6lP7c2M a9m/y9+XzKJA7IAyYU62PhketFq64BsCSMwovkxvmwo63rEzPmRnhBhJivFvlXLl2qdo Bp0A== X-Gm-Message-State: AGi0PuZFv0aLenfb4Bgqw973y8ITuNXsUSU7xksgcotM0apWTKhCFFhe Wuv9O+sp5ujk8JoozRdKs8Q= X-Received: by 2002:a62:1950:: with SMTP id 77mr16774806pfz.326.1587390419535; Mon, 20 Apr 2020 06:46:59 -0700 (PDT) Received: from localhost (89.208.244.140.16clouds.com. [89.208.244.140]) by smtp.gmail.com with ESMTPSA id e135sm1117203pfh.37.2020.04.20.06.46.58 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 20 Apr 2020 06:46:59 -0700 (PDT) From: Dejin Zheng To: broonie@kernel.org Cc: Markus.Elfring@web.de, linux-kernel@vger.kernel.org, Dejin Zheng Subject: [PATCH v2 1/2] regmap: Simplify implementation of the regmap_read_poll_timeout() macro Date: Mon, 20 Apr 2020 21:46:46 +0800 Message-Id: <20200420134647.9121-2-zhengdejin5@gmail.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200420134647.9121-1-zhengdejin5@gmail.com> References: <20200420134647.9121-1-zhengdejin5@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Simplify the implementation of the macro regmap_read_poll_timeout() by using the macro read_poll_timeout(). Signed-off-by: Dejin Zheng --- v1 -> v2: - modify the commit comments by Markus's suggestion . include/linux/regmap.h | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/include/linux/regmap.h b/include/linux/regmap.h index 40b07168fd8e..299c1f6a03b4 100644 --- a/include/linux/regmap.h +++ b/include/linux/regmap.h @@ -17,6 +17,7 @@ #include #include #include +#include struct module; struct clk; @@ -122,26 +123,10 @@ struct reg_sequence { */ #define regmap_read_poll_timeout(map, addr, val, cond, sleep_us, timeout_us) \ ({ \ - u64 __timeout_us = (timeout_us); \ - unsigned long __sleep_us = (sleep_us); \ - ktime_t __timeout = ktime_add_us(ktime_get(), __timeout_us); \ - int __ret; \ - might_sleep_if(__sleep_us); \ - for (;;) { \ - __ret = regmap_read((map), (addr), &(val)); \ - if (__ret) \ - break; \ - if (cond) \ - break; \ - if ((__timeout_us) && \ - ktime_compare(ktime_get(), __timeout) > 0) { \ - __ret = regmap_read((map), (addr), &(val)); \ - break; \ - } \ - if (__sleep_us) \ - usleep_range((__sleep_us >> 2) + 1, __sleep_us); \ - } \ - __ret ?: ((cond) ? 0 : -ETIMEDOUT); \ + int __ret, __tmp; \ + __tmp = read_poll_timeout(regmap_read, __ret, __ret || (cond), \ + sleep_us, timeout_us, false, (map), (addr), &(val)); \ + __ret ?: __tmp; \ }) /** -- 2.25.0