Received: by 2002:a05:7412:a9a2:b0:e2:908c:2ebd with SMTP id o34csp1173265rdh; Fri, 27 Oct 2023 06:51:46 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHyZkKovvBqRJPtXDVmOPlAtkaJNjHqawK/ASVm8EcI1p1zGsYAAdkEeHaoYgw4rP6F+7zB X-Received: by 2002:a25:2683:0:b0:d9c:80f0:643c with SMTP id m125-20020a252683000000b00d9c80f0643cmr2591204ybm.39.1698414706700; Fri, 27 Oct 2023 06:51:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698414706; cv=none; d=google.com; s=arc-20160816; b=t+8ocQ6v+h193idCBsbw9IegzQ8pds7IC/Y+6iTtTp0Lq6hgYKS+034yTnCooocaXL +0tVjPbFAyuzNgzzSn25mdNVjPkFcU94XdlTOXCWsrKLqVuDPY33nhBDGLV61iHDfi4u FotK5zCbuBYcQCdgvJnSYNnNQwNSWk/mc32JVrjPB1TGtmDzVzQ07o68GSU+FeF/wZJf RaKiOYHRR+Ja6f/uHWFP1as4AfZVGnjTrHwsjuNxta5csih5fJFqQPWKJkNjVJrT4qng fVfpHHhELAx0NrY0VlkuEa5SmqoBvnFmUHnV9ZS5ug/242KC4ImJOe88pnLEmtQtgm3V AKgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=yClEmQrqjxPOdEt4O4nDzfNvYznOcwD4oHzNoki+cXk=; fh=7ffDuiI39ldOqfJlKm1krhafnc9zmP/cHK4rsLKXaSc=; b=J6z1EAJw9NTPYBxvEKpkbUepokw+dw486KNTbCAlBmya3Of5pZke79hfkO+syQKZB8 AdjIU40WmQNoXPDdAG0UOFSzeX2DVit2nfGn3DnysK8jPIueFS6RwWeoyVn92E7PKrcL pUopd3TO3C+vLcNzFsc9je5Qdkq+6e0RziFzqvw+1FM054PyY95Tspa3DvvqpDz1IP+b f+yp/uO8YxdRxXPfVcO9+LRVN/KZKUxGNZ2uhGT3f5xGy1LHDEZsXlz9RpZANQwO/z8x kq5IiBDMVCZmPCTPcuOdRcdA8ECKVeRXpSsSkmZYlQPJ6tb4MW8XzmLfyzWP6pq3OOPC 1CTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IniAMNg7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id s191-20020a2577c8000000b00da042925538si2838107ybc.40.2023.10.27.06.51.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 06:51:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IniAMNg7; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 88700836E5D5; Fri, 27 Oct 2023 06:51:43 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346016AbjJ0NvZ (ORCPT + 99 others); Fri, 27 Oct 2023 09:51:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345994AbjJ0NvX (ORCPT ); Fri, 27 Oct 2023 09:51:23 -0400 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB5B6CA for ; Fri, 27 Oct 2023 06:51:20 -0700 (PDT) Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-5aa481d53e5so1609182a12.1 for ; Fri, 27 Oct 2023 06:51:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1698414680; x=1699019480; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=yClEmQrqjxPOdEt4O4nDzfNvYznOcwD4oHzNoki+cXk=; b=IniAMNg7WfTlg9CqfyIO+8h4AyKyxVi9dAj1cf2AbG8nT6mzRdFkAOg4V07OOqE+98 az6NW5eZPIyTKY7ppZ/Q834JuxYSPJuoN9OeT4pU5Ir9qUqzg0fOykG2Xu5bnj+haC5I yQxXOMCO8EtFRi993j1s/Cp/vqobJugxJLOq1gzxdV5FkgdLH1XghUTeRH/HbOAh0+KE ex5tKDnh77BIs0djqRCIWsmDAYdmFJinscCXCrrJFoJ9I5jD7zaoLKCf9+ygyt8J5p44 r0/UYgqjOR8BIgu5xJNl5p+v8uWXWBbjrD1l8vthJ2iLzQq81G7Yfmcd0FdfOehY46nB x8eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698414680; x=1699019480; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yClEmQrqjxPOdEt4O4nDzfNvYznOcwD4oHzNoki+cXk=; b=qrY1q2qNdhH8qXW82bOZObwRcupL7ksAObc/3CVdl2mm75Gr1j7Bjruwear2RiQuyF dS0njeIwmCXYY39k3iEhMD5RkhunJ1u7qpgeeunv5eK2hTBbJo1BsML9QgsoaQCb1qr4 YHYsH1H9RQF8283UMAjkU45THHwSqLkPOVfuhhhGvWGnRumPvshe331ROvwsixlvS3Gu WTHfvTwCgFVKGkidtlx6oOAiJfsUkG6Kakx5b4XTurCnYR8iya+GwIvnONMBJpx/kPpc Wb4Ku0XyHlW742UEkaEByby8EiboFJtv2Dh81fvUSYPlDvYicQ21dfUx5DMpcBPVWqjN fVeQ== X-Gm-Message-State: AOJu0YwwGGVKd7yaLM0G5O03+OD0cCz2r9Ud34CYN5qibPlshb8r0j/e /nLAJbu+pOpDBxTA+PlQfs9V X-Received: by 2002:a17:90b:2495:b0:274:99e7:217e with SMTP id nt21-20020a17090b249500b0027499e7217emr2593791pjb.16.1698414680273; Fri, 27 Oct 2023 06:51:20 -0700 (PDT) Received: from thinkpad ([120.138.12.43]) by smtp.gmail.com with ESMTPSA id n14-20020a17090ac68e00b00274262bcf8dsm3229377pjt.41.2023.10.27.06.49.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Oct 2023 06:49:49 -0700 (PDT) Date: Fri, 27 Oct 2023 19:18:49 +0530 From: Manivannan Sadhasivam To: Shradha Todi Cc: jingoohan1@gmail.com, lpieralisi@kernel.org, kw@linux.com, robh@kernel.org, bhelgaas@google.com, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, pankaj.dubey@samsung.com Subject: Re: [PATCH] PCI: exynos: Adapt to clk_bulk_* APIs Message-ID: <20231027134849.GA23716@thinkpad> References: <20231009062216.6729-1-shradha.t@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20231009062216.6729-1-shradha.t@samsung.com> X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Fri, 27 Oct 2023 06:51:43 -0700 (PDT) On Mon, Oct 09, 2023 at 11:52:16AM +0530, Shradha Todi wrote: > There is no need to hardcode the clock info in the driver as driver can > rely on the devicetree to supply the clocks required for the functioning > of the peripheral. Get rid of the static clock info and obtain the > platform supplied clocks. The total number of clocks supplied is > obtained using the devm_clk_bulk_get_all() API and used for the rest of > the clk_bulk_* APIs. > > Signed-off-by: Shradha Todi > --- > drivers/pci/controller/dwc/pci-exynos.c | 46 ++++++------------------- > 1 file changed, 11 insertions(+), 35 deletions(-) > > diff --git a/drivers/pci/controller/dwc/pci-exynos.c b/drivers/pci/controller/dwc/pci-exynos.c > index 9e42cfcd99cc..023cf41fccd7 100644 > --- a/drivers/pci/controller/dwc/pci-exynos.c > +++ b/drivers/pci/controller/dwc/pci-exynos.c > @@ -54,8 +54,8 @@ > struct exynos_pcie { > struct dw_pcie pci; > void __iomem *elbi_base; > - struct clk *clk; > - struct clk *bus_clk; > + struct clk_bulk_data *clks; > + int clk_cnt; > struct phy *phy; > struct regulator_bulk_data supplies[2]; > }; > @@ -65,30 +65,18 @@ static int exynos_pcie_init_clk_resources(struct exynos_pcie *ep) > struct device *dev = ep->pci.dev; > int ret; > > - ret = clk_prepare_enable(ep->clk); > - if (ret) { > - dev_err(dev, "cannot enable pcie rc clock"); > + ret = devm_clk_bulk_get_all(dev, &ep->clks); > + if (ret < 0) Please use !(ret) here and below to be consistent with the driver. > return ret; > - } > > - ret = clk_prepare_enable(ep->bus_clk); > - if (ret) { > - dev_err(dev, "cannot enable pcie bus clock"); > - goto err_bus_clk; > - } > + ep->clk_cnt = ret; Since clk_cnt is "int", you can just use it directly instead of "ret". > > - return 0; > - > -err_bus_clk: > - clk_disable_unprepare(ep->clk); > - > - return ret; > + return clk_bulk_prepare_enable(ep->clk_cnt, ep->clks); > } > > static void exynos_pcie_deinit_clk_resources(struct exynos_pcie *ep) > { > - clk_disable_unprepare(ep->bus_clk); > - clk_disable_unprepare(ep->clk); > + clk_bulk_disable_unprepare(ep->clk_cnt, ep->clks); > } > > static void exynos_pcie_writel(void __iomem *base, u32 val, u32 reg) > @@ -332,17 +320,9 @@ static int exynos_pcie_probe(struct platform_device *pdev) > if (IS_ERR(ep->elbi_base)) > return PTR_ERR(ep->elbi_base); > > - ep->clk = devm_clk_get(dev, "pcie"); > - if (IS_ERR(ep->clk)) { > - dev_err(dev, "Failed to get pcie rc clock\n"); > - return PTR_ERR(ep->clk); > - } > - > - ep->bus_clk = devm_clk_get(dev, "pcie_bus"); > - if (IS_ERR(ep->bus_clk)) { > - dev_err(dev, "Failed to get pcie bus clock\n"); > - return PTR_ERR(ep->bus_clk); > - } > + ret = exynos_pcie_init_clk_resources(ep); > + if (ret < 0) > + return ret; > > ep->supplies[0].supply = "vdd18"; > ep->supplies[1].supply = "vdd10"; > @@ -351,10 +331,6 @@ static int exynos_pcie_probe(struct platform_device *pdev) > if (ret) > return ret; > > - ret = exynos_pcie_init_clk_resources(ep); > - if (ret) > - return ret; > - > ret = regulator_bulk_enable(ARRAY_SIZE(ep->supplies), ep->supplies); > if (ret) You need to disable_unprepare() clocks in error path here and above. - Mani -- மணிவண்ணன் சதாசிவம்