Received: by 10.192.165.148 with SMTP id m20csp3087180imm; Sun, 22 Apr 2018 23:44:30 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/rLC9+KFPcglLQkFHLcWfJGzqG+13/h7NINT+5ZKi2cELK1n2LMJKclpbiS1n3kw/6j1XV X-Received: by 2002:a17:902:bb8c:: with SMTP id m12-v6mr19999269pls.53.1524465870246; Sun, 22 Apr 2018 23:44:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524465870; cv=none; d=google.com; s=arc-20160816; b=k4HSAdr+Cne0QLIpS+vRafDM/E5lhXsXSxL+fd2gn1xRKnkkYnaDoi5Ck3MaqmFhNn Cgm8sOGYuc80k5HMHOgQMc/fs9F68D/klO2wH2Bn1QeRO0p1U0q0O/chbZFInx8RyrTm uvS2Fy/cBTGzk/oJYHsDg+pkMqIWvkIYX7+Nsdwt6tg272RrYTUt2moPYvOOMT8LEUCt H5Gyrwq/IpzJhlxijAQVOMsCLiE6bbS1gVTuvdgwqE4bKiUtWJCXhCpSe3uJuOxo/gMb EjsjfeaQ3u16IWh28VXlzKH7x6OHhFztubKP2+K0l4+3xq1WoTAHZO/ec3YfARUC6AqR vp5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=QbulhoF11i/fmXr9HudNv97MOkeaZVW2ObBEry8pkcs=; b=crCuJ+iSHbT152Sm7LrQwv571yZyz5RWW/Mhai518kuW4PotoxGOtP3lixvGzRKdbi CWSagO7xAQC8HIDyR7irqnMZ+EUmANiM18qEn0qL7EUxqLGWnfcrO15kFvNpxSo7ymHu AbQeP46EfROVDKGt1LeG7+6hBj1+pBYiyzTKiYSDBJnE9nx9Y3Td3jPOq/qhCzSrHVCU fgVWGgc7HZb5WGqhqgYtLk7wAsBabYwawjFyHsBCvpSg3Fx2jW9HBQX9vSZaIKtBqgZm h9S3BT6Pa7Hx4l7ojlawhr6FJ3HdO4JOLYam0wJ5vY3BhL9DNu5awMMiQvRYaUC5FbmD SBoA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3-v6si11490588plh.47.2018.04.22.23.44.16; Sun, 22 Apr 2018 23:44:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754048AbeDWGm7 (ORCPT + 99 others); Mon, 23 Apr 2018 02:42:59 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:6994 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1753026AbeDWGmw (ORCPT ); Mon, 23 Apr 2018 02:42:52 -0400 X-UUID: 59d854baf672405385c5044ef0cb19e3-20180423 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw01.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 1626493144; Mon, 23 Apr 2018 14:42:49 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 23 Apr 2018 14:42:47 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1210.3 via Frontend Transport; Mon, 23 Apr 2018 14:42:47 +0800 From: To: , , CC: , , , , , Sean Wang , Weiyi Lu Subject: [PATCH v2 2/2] soc: mediatek: reuse regmap_read_poll_timeout helpers Date: Mon, 23 Apr 2018 14:42:45 +0800 Message-ID: X-Mailer: git-send-email 1.7.9.5 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sean Wang Reuse the common helpers regmap_read_poll_timeout provided by Linux core instead of an open-coded handling. v1 -> v2: - use macro definitions MTK_POLL_DELAY_US and MTK_POLL_TIMEOUT for arguments sleep_us and timeout_us passing in regmap_read_poll_timeout. - remove unnecessary linux/iopoll.h being included in. Signed-off-by: Sean Wang Cc: Matthias Brugger Cc: Ulf Hansson Cc: Weiyi Lu --- drivers/soc/mediatek/mtk-infracfg.c | 46 ++++++++++--------------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/drivers/soc/mediatek/mtk-infracfg.c b/drivers/soc/mediatek/mtk-infracfg.c index 8c310de..958861c 100644 --- a/drivers/soc/mediatek/mtk-infracfg.c +++ b/drivers/soc/mediatek/mtk-infracfg.c @@ -17,6 +17,9 @@ #include #include +#define MTK_POLL_DELAY_US 10 +#define MTK_POLL_TIMEOUT (jiffies_to_usecs(HZ)) + #define INFRA_TOPAXI_PROTECTEN 0x0220 #define INFRA_TOPAXI_PROTECTSTA1 0x0228 #define INFRA_TOPAXI_PROTECTEN_SET 0x0260 @@ -37,7 +40,6 @@ int mtk_infracfg_set_bus_protection(struct regmap *infracfg, u32 mask, bool reg_update) { - unsigned long expired; u32 val; int ret; @@ -47,22 +49,11 @@ int mtk_infracfg_set_bus_protection(struct regmap *infracfg, u32 mask, else regmap_write(infracfg, INFRA_TOPAXI_PROTECTEN_SET, mask); - expired = jiffies + HZ; - - while (1) { - ret = regmap_read(infracfg, INFRA_TOPAXI_PROTECTSTA1, &val); - if (ret) - return ret; - - if ((val & mask) == mask) - break; + ret = regmap_read_poll_timeout(infracfg, INFRA_TOPAXI_PROTECTSTA1, + val, (val & mask) == mask, + MTK_POLL_DELAY_US, MTK_POLL_TIMEOUT); - cpu_relax(); - if (time_after(jiffies, expired)) - return -EIO; - } - - return 0; + return ret; } /** @@ -80,30 +71,17 @@ int mtk_infracfg_set_bus_protection(struct regmap *infracfg, u32 mask, int mtk_infracfg_clear_bus_protection(struct regmap *infracfg, u32 mask, bool reg_update) { - unsigned long expired; int ret; + u32 val; if (reg_update) regmap_update_bits(infracfg, INFRA_TOPAXI_PROTECTEN, mask, 0); else regmap_write(infracfg, INFRA_TOPAXI_PROTECTEN_CLR, mask); - expired = jiffies + HZ; - - while (1) { - u32 val; - - ret = regmap_read(infracfg, INFRA_TOPAXI_PROTECTSTA1, &val); - if (ret) - return ret; - - if (!(val & mask)) - break; - - cpu_relax(); - if (time_after(jiffies, expired)) - return -EIO; - } + ret = regmap_read_poll_timeout(infracfg, INFRA_TOPAXI_PROTECTSTA1, + val, !(val & mask), + MTK_POLL_DELAY_US, MTK_POLL_TIMEOUT); - return 0; + return ret; } -- 2.7.4