From patchwork Thu Mar 19 16:39:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dejin Zheng X-Patchwork-Id: 222218 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2D47FC4332D for ; Thu, 19 Mar 2020 16:39:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0191220775 for ; Thu, 19 Mar 2020 16:39:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aSw3k9wm" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728270AbgCSQjw (ORCPT ); Thu, 19 Mar 2020 12:39:52 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:32769 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727899AbgCSQjw (ORCPT ); Thu, 19 Mar 2020 12:39:52 -0400 Received: by mail-pl1-f196.google.com with SMTP id g18so1299992plq.0; Thu, 19 Mar 2020 09:39:50 -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=TIOrAz7GYY9BuUWfyHF9ZU9TNfY9N9kF9Mf7NlZDeIY=; b=aSw3k9wmhBSHFDOn9LsVwhHqjMRxYp8kV4MESuSFSPRnBTGkImpzoLiOlUfeHbe2bS VV0YET9VuTCx926Umm69jrhSJq3rV9jzdOxHd+FWTET8KZ27pklfMuNmHi06UnHLeMVd VmBqTKgtuxp9qUeh7KaxFsgWcfT5QOv+YOboMLdSLnbBVHkdY7oQnIY4zEuQXuaDzrEG VadX/FJ/6lHNxWiRNr1ngtOuf/u6VjVELWChKPpIyULGbSUt16zlNmiIh+oFDmYjzFVT ZdFnTuGgBUf5Rw4TDL7RdgJAL4ZUTebyEpcLuk6vGdN2D+SkLXxtdViM8w023XIjGFkW 5dyQ== 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=TIOrAz7GYY9BuUWfyHF9ZU9TNfY9N9kF9Mf7NlZDeIY=; b=jVG4/VqJo53RFOIEzJg4Jqpa6W6Ixl4xwbzMsXiEJP/aQSIMeMMMz+5Ste1oHjIw4d IVqxRq5qix6SlYme3Ffeaq9eKUwhvqzuXJibL38wW9EX3bKw2vIkDpy1QpWmwylKqd5R EUe8VMwvsFSJQAloz2EQDQL8f3scUBRg6zHsebGvMvbediAEvVA28Oi9ZLw8YnyQXBRx 2K+A7NDCFn0zU1Yfsb8LMRT+3wDydMvcNsug0ZQHk3YS4AuKyVhZsCEvcovkMHbmoDvv 0ACilhd3B3X7QdGCFueIWg7NuUqcLXJ/NrsRjoMQHbm/KsU6VzfB41Tmzb/r52f0AOWT FQ4A== X-Gm-Message-State: ANhLgQ1NJZCJfpx8X9ZiCHqd5XfSDqvVJjPpiyslkfBBDiQ4cMoPWPXv ap08ikOJ+ZAY0HJm3nqG34M= X-Google-Smtp-Source: ADFU+vs2WI3MCtHKvLLxzn/ayW/c2E1ZPoYet2xfUCmahTxR5QzZM7511S11ejkw4tNAeLoLQiTipw== X-Received: by 2002:a17:90a:8d05:: with SMTP id c5mr4748358pjo.110.1584635990464; Thu, 19 Mar 2020 09:39:50 -0700 (PDT) Received: from localhost (216.24.188.11.16clouds.com. [216.24.188.11]) by smtp.gmail.com with ESMTPSA id u14sm2875267pgg.67.2020.03.19.09.39.49 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 19 Mar 2020 09:39:50 -0700 (PDT) From: Dejin Zheng To: andrew@lunn.ch, f.fainelli@gmail.com, hkallweit1@gmail.com, linux@armlinux.org.uk, davem@davemloft.net, tglx@linutronix.de, broonie@kernel.org, corbet@lwn.net, mchehab+samsung@kernel.org, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Dejin Zheng Subject: [PATCH net-next 2/7] iopoll: redefined readx_poll_timeout macro to simplify the code Date: Fri, 20 Mar 2020 00:39:05 +0800 Message-Id: <20200319163910.14733-3-zhengdejin5@gmail.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200319163910.14733-1-zhengdejin5@gmail.com> References: <20200319163910.14733-1-zhengdejin5@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org redefined readx_poll_timeout macro by read_poll_timeout to simplify the code. Signed-off-by: Dejin Zheng --- include/linux/iopoll.h | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/include/linux/iopoll.h b/include/linux/iopoll.h index 7d44a2e20267..29c016cd6249 100644 --- a/include/linux/iopoll.h +++ b/include/linux/iopoll.h @@ -72,25 +72,7 @@ * macros defined below rather than this macro directly. */ #define readx_poll_timeout(op, 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); \ - might_sleep_if((__sleep_us) != 0); \ - for (;;) { \ - (val) = op(addr); \ - if (cond) \ - break; \ - if (__timeout_us && \ - ktime_compare(ktime_get(), __timeout) > 0) { \ - (val) = op(addr); \ - break; \ - } \ - if (__sleep_us) \ - usleep_range((__sleep_us >> 2) + 1, __sleep_us); \ - } \ - (cond) ? 0 : -ETIMEDOUT; \ -}) + read_poll_timeout(op, val, cond, sleep_us, timeout_us, addr) /** * readx_poll_timeout_atomic - Periodically poll an address until a condition is met or a timeout occurs From patchwork Thu Mar 19 16:39:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dejin Zheng X-Patchwork-Id: 222217 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DCA2C4332D for ; Thu, 19 Mar 2020 16:40:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 209A12072D for ; Thu, 19 Mar 2020 16:40:03 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="D/4jY0jd" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728384AbgCSQkC (ORCPT ); Thu, 19 Mar 2020 12:40:02 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:45505 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727899AbgCSQkB (ORCPT ); Thu, 19 Mar 2020 12:40:01 -0400 Received: by mail-pf1-f196.google.com with SMTP id j10so1696611pfi.12; Thu, 19 Mar 2020 09:40:00 -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=jBQgkE+2h3XlEh/pjWOWeE4Zg9A9tqd9LFxNsk1kNiA=; b=D/4jY0jdJSPfQvuruHzUfn0bsDbfm3VsdzUoVIJvwuibEyeP1SV703MmvokG23vTnw 5dg4I0fTPHtLwm6f4+0lH+XFLkI0+UAnreToh4kTb+QUN2ciEV3JJZ6jH5DBtKkYuuXj QMcky4GpvpA8BpMVaou4MYgKpm5AOj7ebuyXKCU+6K0lZi9eSE+nZ7XBIO74BP3zDply E3shXChMZifuzV9sNRtCWaAmpfB/AJ6molWSYLMJJD6p4rK9I8BnpgdeKIbJKS08yHB6 ydTXhzvp2zmXuJd6LnpRBUj0wYEyk1VrvNEYfYhxt5bTOEtQ2WVIpYMvKEvSuellRZ8x 1DXw== 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=jBQgkE+2h3XlEh/pjWOWeE4Zg9A9tqd9LFxNsk1kNiA=; b=ccmvHVrY7J+iqnByDxqalLLdK/0lia0ZcpbKegv/ooVRKHKjtFUYssONiv3oS/R3HU Dp8HFm4B+ebHPxirnubtFGddKSB8KvD5aWU82E9PlSLRl/62Wyc6X/ezsxUEcoBsk0oL GjnBn1RbtG/NLGbcIGFetEVnWdofWZNLVwJ4GBt4Ms6avJHFtxBiRqFlHNO3wyjO/YqF 4pTa6fGT9kEHQaHzoUCFmt48VitWDsJNh0wMFuPqily4PrFnQKIr/79+LGh2eVbPgvCZ 3btaBljtDccUOf/oiap/g73bCZEV7NuFDF8rfrO+WOT0NIDw/gtyIBegtgUpfgMczYSP c0Qg== X-Gm-Message-State: ANhLgQ0u6KJQmL0Eyrfl2hFJxg2V7pk5rDlmcyIFjnE8iBxXKOkrxSiz DR3gHEl2sx0Yu0Hft/P9hmuPbPxb X-Google-Smtp-Source: ADFU+vt6QldAoOvm+9pV4KRcPx9v+v3swyZUkXStkhm/ekqeAQHYIKtXvesfXE8dqIi49MfwqcqEVA== X-Received: by 2002:a63:3712:: with SMTP id e18mr3909618pga.401.1584635999862; Thu, 19 Mar 2020 09:39:59 -0700 (PDT) Received: from localhost ([216.24.188.11]) by smtp.gmail.com with ESMTPSA id a185sm3060609pfa.27.2020.03.19.09.39.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 19 Mar 2020 09:39:59 -0700 (PDT) From: Dejin Zheng To: andrew@lunn.ch, f.fainelli@gmail.com, hkallweit1@gmail.com, linux@armlinux.org.uk, davem@davemloft.net, tglx@linutronix.de, broonie@kernel.org, corbet@lwn.net, mchehab+samsung@kernel.org, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Dejin Zheng Subject: [PATCH net-next 4/7] net: phy: bcm84881: use phy_read_mmd_poll_timeout() to simplify the code Date: Fri, 20 Mar 2020 00:39:07 +0800 Message-Id: <20200319163910.14733-5-zhengdejin5@gmail.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200319163910.14733-1-zhengdejin5@gmail.com> References: <20200319163910.14733-1-zhengdejin5@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org use phy_read_mmd_poll_timeout() to replace the poll codes for simplify the code in bcm84881_wait_init() function. Signed-off-by: Dejin Zheng --- drivers/net/phy/bcm84881.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/drivers/net/phy/bcm84881.c b/drivers/net/phy/bcm84881.c index 14d55a77eb28..c916bd0f6afa 100644 --- a/drivers/net/phy/bcm84881.c +++ b/drivers/net/phy/bcm84881.c @@ -22,26 +22,14 @@ enum { static int bcm84881_wait_init(struct phy_device *phydev) { - unsigned int tries = 20; int ret, val; - do { - val = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_CTRL1); - if (val < 0) { - ret = val; - break; - } - if (!(val & MDIO_CTRL1_RESET)) { - ret = 0; - break; - } - if (!--tries) { - ret = -ETIMEDOUT; - break; - } - msleep(100); - } while (1); - + ret = phy_read_mmd_poll_timeout(val, val < 0 || + !(val & MDIO_CTRL1_RESET), 100000, + 2000000, phydev, MDIO_MMD_PMAPMD, + MDIO_CTRL1); + if (val < 0) + ret = val; if (ret) phydev_err(phydev, "%s failed: %d\n", __func__, ret); From patchwork Thu Mar 19 16:39:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dejin Zheng X-Patchwork-Id: 222216 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 584EFC4332B for ; Thu, 19 Mar 2020 16:40:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 30D402070A for ; Thu, 19 Mar 2020 16:40:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HFkF8QSG" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728496AbgCSQkM (ORCPT ); Thu, 19 Mar 2020 12:40:12 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:37898 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728432AbgCSQkK (ORCPT ); Thu, 19 Mar 2020 12:40:10 -0400 Received: by mail-pl1-f195.google.com with SMTP id w3so1289959plz.5; Thu, 19 Mar 2020 09:40:10 -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=rloxk6KMCAo15cdBgyeSFkOgJtDa0iK4er6MLSygxnM=; b=HFkF8QSGupPui+FkbaKz9W7f7mPU/zJLozyW3bNBk8FTMC4pRZvP5VyAqeksWESTdp SFL/LtRXqN/FKJSowXPkGAajU4V7S7ZieNw13lifOvJO49gXACyuINGass2Gnb4JTpAe I2EkleacykKij6EyP0Evy738HjmjHqvg6DSvlZ1bMKdQxJZiiOM9JkwkXjrKCgfZRwVn bzL06dV8cD2YHy96hxHAZg65Vjap62fYo1TOt1RBkLYEDsk9i3CXb1RDoynA6AGgKH/8 tetEXeq1PKs1t9KX1dsFAerrrRIlo2UGiXnDlcPQaP+86YyXbaSOT8G37H0p6PVY9+Mo a1MQ== 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=rloxk6KMCAo15cdBgyeSFkOgJtDa0iK4er6MLSygxnM=; b=Z72/oIwvNtC8QaEnwasuZU6StloeDDT5vFP5ZowIsFnGpWXL3FUo1gHdFMFa62itf9 L61VRGe0rrNDstZFdX2juxXpM6XyQkKIIAiojuf9pzA8O/zIy0qBLWckL8NboJmck4wY xgWKmLHiGXnO5EHbC9pv6VMxzSjJihYQRCQC2C1KTyjhkM+gdwuVlAHHHfqZftG8bh4r AlktCmyb8DGUtHPaHg5D9DWBERkAa+V2Qt60VSJ9m0+hu30ahEuOVKAHSZwSv8d5vOqM 7z03mCRrqtTxopzvmNRXxoYQzAq7msk83VWVWmfqcnLZyOA+YTKpqMDjR33fOiExUDwz B+8Q== X-Gm-Message-State: ANhLgQ0obqFhZ1fe+di2vWE4vk6PE5zwAzMjJYPRma1EJf540qW9Q/1v 8+OS0sZOL9yYM8XkcBvbn1Y= X-Google-Smtp-Source: ADFU+vvGLY5Jg2hx8JZtyRJCy4FXsgiEnPyudeI1CAF6O3Qdb2dCh2tbOMnwypcBZvv8T+z9R4NMaA== X-Received: by 2002:a17:90b:355:: with SMTP id fh21mr4610476pjb.147.1584636010133; Thu, 19 Mar 2020 09:40:10 -0700 (PDT) Received: from localhost ([216.24.188.11]) by smtp.gmail.com with ESMTPSA id u12sm2922357pfm.165.2020.03.19.09.40.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 19 Mar 2020 09:40:09 -0700 (PDT) From: Dejin Zheng To: andrew@lunn.ch, f.fainelli@gmail.com, hkallweit1@gmail.com, linux@armlinux.org.uk, davem@davemloft.net, tglx@linutronix.de, broonie@kernel.org, corbet@lwn.net, mchehab+samsung@kernel.org, netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Dejin Zheng Subject: [PATCH net-next 6/7] net: phy: introduce phy_read_poll_timeout macro Date: Fri, 20 Mar 2020 00:39:09 +0800 Message-Id: <20200319163910.14733-7-zhengdejin5@gmail.com> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200319163910.14733-1-zhengdejin5@gmail.com> References: <20200319163910.14733-1-zhengdejin5@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org it is sometimes necessary to poll a phy register by phy_read() function until its value satisfies some condition. introduce phy_read_poll_timeout() macros that do this. Signed-off-by: Dejin Zheng --- include/linux/phy.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/phy.h b/include/linux/phy.h index a30e9008647f..a28cc16fdaac 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -714,6 +714,9 @@ static inline int phy_read(struct phy_device *phydev, u32 regnum) return mdiobus_read(phydev->mdio.bus, phydev->mdio.addr, regnum); } +#define phy_read_poll_timeout(val, cond, sleep_us, timeout_us, args...) \ + read_poll_timeout(phy_read, val, cond, sleep_us, timeout_us, args) + /** * __phy_read - convenience function for reading a given PHY register * @phydev: the phy_device struct