Received: by 10.223.164.202 with SMTP id h10csp4904487wrb; Tue, 21 Nov 2017 01:26:17 -0800 (PST) X-Google-Smtp-Source: AGs4zMZLBcZ5d7ynclHe0OSTtQKUCNq0JvM4oo71SwSJ0kyr24eAhBbPVUO++U+56lLGwTvT6LyG X-Received: by 10.99.4.142 with SMTP id 136mr15859262pge.72.1511256377758; Tue, 21 Nov 2017 01:26:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511256377; cv=none; d=google.com; s=arc-20160816; b=rUZ17oQWrsZ7WYf0Ao+REOH8i8SihZOwU40aU8PfVi9gUbOzdLWKoA06bb2sNFnO+x JS55RajfvnJUCS3pmQNB0yPxFrKlbrUq2ylmHC0S9lyJ+Vr/EDGAz0drtDxWKz1T1RVy PEhvAsFYRRmKtHITsa9mC4ovvr8lGkkw+/3qtv9l2AJIMntaH839H1ACCihEPJQTsKHK mEnEAamlS4ZJ4t7AJEByzOvPH0zzFHaTwVXWGrO04Ps/UpIiCch0fhx90iM37dAzg+3Q fBm06DPpKl0IH4qGvMXDyUHc8FIKBsIl+IhsljXh+aWArlkxDbDEOMeDHCXLJcwcaBG/ w4vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=nHZTbxWXg77oeyRzx8iNby04MJyxMIzRrg6dKzeoq0Q=; b=Z3KUnobTHX6PQFaLahyoCTO5pNguMF2yD6r0qBuw45RsNokAYEyIXxJvRa1YMS2eY4 /nOVzS9yhDBjxK6YPiB2FkvknEzk8yhyzqrkBRuVZ/52DenapNyxU+DtE1TaHE70KyfB Gi+fEtYPYtRBxuu64IzMSuPf7++K9oRmW8MTslu4wJ7t/zyEh4atkG0FEZlsKwCI5g2a McyewO9Nk4Z/bnCoj0Eq6v/VKKqDdiPRQlmDIj4A1bLkZ5plB4G884OeCiBSo9FjCBiy vAVy9p3Sf+dbykdFsWRyfhJ6h2wpPiEar/vb+rm9d9qow70T2PT/jqvAyNvGnVmw/uxP pTMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=mkUzWHne; dkim=pass header.i=@codeaurora.org header.s=default header.b=asm/M9Ez; 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 b3si10177277pgn.773.2017.11.21.01.26.07; Tue, 21 Nov 2017 01:26:17 -0800 (PST) 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; dkim=pass header.i=@codeaurora.org header.s=default header.b=mkUzWHne; dkim=pass header.i=@codeaurora.org header.s=default header.b=asm/M9Ez; 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 S1751415AbdKUJYD (ORCPT + 72 others); Tue, 21 Nov 2017 04:24:03 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:40766 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751184AbdKUJX7 (ORCPT ); Tue, 21 Nov 2017 04:23:59 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 08D45607F7; Tue, 21 Nov 2017 09:23:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1511256239; bh=B7w2C0LJ42VFqs35ImnVN3C/Y7sW+Iq2EvkrT2orw7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mkUzWHneO3gSn27QT6jLSpKqhe3AjutWrz3ZeTF3WGwYZdeAYmPs9nVpgTChGQw88 GfSYMYEhgb912U5GZT39RhBvn0f3oKva021hODXmMRLCRBjJCbUYOu/REeXouE7LGU 3s1FrxJ2ptO9P4xsOfSc041ruJD3NxZY6LnLRoBI= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from mgautam-linux.qualcomm.com (blr-c-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.19.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mgautam@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 74DFC60819; Tue, 21 Nov 2017 09:23:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1511256238; bh=B7w2C0LJ42VFqs35ImnVN3C/Y7sW+Iq2EvkrT2orw7w=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=asm/M9EzMQJumHyFEG0MTKs42mdSfJpTfqRR/nK0STGHZaLznpipBXWQmawGb5DcW 01ova5norwVO/79sNEaiUeNlaC/5x1/A+qp1XTn7UKmi5ztb+lKousFB857jxhO19Z YhA2D6ttR4LptG6upt74iXIjDLRHmWLzjfMSsI1g= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 74DFC60819 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=mgautam@codeaurora.org From: Manu Gautam To: Kishon Vijay Abraham I Cc: linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org, Vivek Gautam , Manu Gautam , Varadarajan Narayanan , Wei Yongjun , Fengguang Wu , linux-kernel@vger.kernel.org (open list:GENERIC PHY FRAMEWORK) Subject: [PATCH v3 02/16] phy: qcom-qmp: Adapt to clk_bulk_* APIs Date: Tue, 21 Nov 2017 14:53:12 +0530 Message-Id: <1511256206-1587-3-git-send-email-mgautam@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1511256206-1587-1-git-send-email-mgautam@codeaurora.org> References: <1511256206-1587-1-git-send-email-mgautam@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vivek Gautam Move from using array of clocks to clk_bulk_* APIs that are available now. Signed-off-by: Vivek Gautam Signed-off-by: Manu Gautam --- drivers/phy/qualcomm/phy-qcom-qmp.c | 50 ++++++++++++------------------------- 1 file changed, 16 insertions(+), 34 deletions(-) diff --git a/drivers/phy/qualcomm/phy-qcom-qmp.c b/drivers/phy/qualcomm/phy-qcom-qmp.c index 76acaec..90794dd 100644 --- a/drivers/phy/qualcomm/phy-qcom-qmp.c +++ b/drivers/phy/qualcomm/phy-qcom-qmp.c @@ -555,7 +555,7 @@ struct qcom_qmp { struct device *dev; void __iomem *serdes; - struct clk **clks; + struct clk_bulk_data *clks; struct reset_control **resets; struct regulator_bulk_data *vregs; @@ -848,22 +848,19 @@ static int qcom_qmp_phy_init(struct phy *phy) void __iomem *pcs = qphy->pcs; void __iomem *status; unsigned int mask, val; - int ret, i; + int ret; dev_vdbg(qmp->dev, "Initializing QMP phy\n"); - for (i = 0; i < qmp->cfg->num_clks; i++) { - ret = clk_prepare_enable(qmp->clks[i]); - if (ret) { - dev_err(qmp->dev, "failed to enable %s clk, err=%d\n", - qmp->cfg->clk_list[i], ret); - goto err_clk; - } + ret = clk_bulk_prepare_enable(cfg->num_clks, qmp->clks); + if (ret) { + dev_err(qmp->dev, "failed to enable clks, err=%d\n", ret); + return ret; } ret = qcom_qmp_phy_com_init(qmp); if (ret) - goto err_clk; + goto err_com_init; if (cfg->has_lane_rst) { ret = reset_control_deassert(qphy->lane_rst); @@ -918,9 +915,8 @@ static int qcom_qmp_phy_init(struct phy *phy) reset_control_assert(qphy->lane_rst); err_lane_rst: qcom_qmp_phy_com_exit(qmp); -err_clk: - while (--i >= 0) - clk_disable_unprepare(qmp->clks[i]); +err_com_init: + clk_bulk_disable_unprepare(cfg->num_clks, qmp->clks); return ret; } @@ -930,7 +926,6 @@ static int qcom_qmp_phy_exit(struct phy *phy) struct qmp_phy *qphy = phy_get_drvdata(phy); struct qcom_qmp *qmp = qphy->qmp; const struct qmp_phy_cfg *cfg = qmp->cfg; - int i = cfg->num_clks; clk_disable_unprepare(qphy->pipe_clk); @@ -948,8 +943,7 @@ static int qcom_qmp_phy_exit(struct phy *phy) qcom_qmp_phy_com_exit(qmp); - while (--i >= 0) - clk_disable_unprepare(qmp->clks[i]); + clk_bulk_disable_unprepare(cfg->num_clks, qmp->clks); return 0; } @@ -998,29 +992,17 @@ static int qcom_qmp_phy_reset_init(struct device *dev) static int qcom_qmp_phy_clk_init(struct device *dev) { struct qcom_qmp *qmp = dev_get_drvdata(dev); - int ret, i; + int num = qmp->cfg->num_clks; + int i; - qmp->clks = devm_kcalloc(dev, qmp->cfg->num_clks, - sizeof(*qmp->clks), GFP_KERNEL); + qmp->clks = devm_kcalloc(dev, num, sizeof(*qmp->clks), GFP_KERNEL); if (!qmp->clks) return -ENOMEM; - for (i = 0; i < qmp->cfg->num_clks; i++) { - struct clk *_clk; - const char *name = qmp->cfg->clk_list[i]; - - _clk = devm_clk_get(dev, name); - if (IS_ERR(_clk)) { - ret = PTR_ERR(_clk); - if (ret != -EPROBE_DEFER) - dev_err(dev, "failed to get %s clk, %d\n", - name, ret); - return ret; - } - qmp->clks[i] = _clk; - } + for (i = 0; i < num; i++) + qmp->clks->id = qmp->cfg->clk_list[i]; - return 0; + return devm_clk_bulk_get(dev, num, qmp->clks); } /* -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project From 1585239389132853470@xxx Mon Nov 27 17:01:30 +0000 2017 X-GM-THRID: 1585239389132853470 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread