Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp1215310ybg; Wed, 29 Jul 2020 08:31:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxh0JA4z4n7jVujs7cMCAELlCw7e4olZKDjHpi2zqAvYpMP93CmNdW++I/wgBK3rT7sbzMv X-Received: by 2002:a17:906:e0e:: with SMTP id l14mr16102883eji.398.1596036706308; Wed, 29 Jul 2020 08:31:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596036706; cv=none; d=google.com; s=arc-20160816; b=CpL6EKDyBtlbaB2vlqBQaitrubXeaiNjMgchvL+C+PKOsVEJcf5vJS20agL02QsDSB tmrF5HOCvQpQGKBvW0IcvrVhyJHHqCdKDIDY+Gni9eIVDzEt6lE43EzZC/OwWbniuDPN Oiu8ArIyL04qHRye6HXjOi+ChqwTBp2wsIE3y0nT4PWODLLRTzGl8Os51UktHo/IDrr9 NTMKvcVRKtbS15YD148dB0GjSo1loadqf3CS+dvEQVx9WjqwpQsOmK/MBOpW6PHHwkyd kJn9bK2+2G8YW6XC7K1goc+ORzCMdu51YTPncvGgQgZ1su59SdEtURWp1otrggx8rmuw eYkA== 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; bh=NtYT+zbCLSzfucrNR0tzeCAqtoyo0hHNWNh12YdlUMg=; b=J1itjD/MLyP6J4d/iRQmOcCbH4hxmlVl3QicO2dCF9H078G1CZ3d9or6WBL9ufTxql b3IYUg/fgQ2+7XmikkFdTKYVmMAlS3fTJGe7d9QBnVq1iw5VTK30FZM44mcq/WWPvQi3 Y5xN56x+t3QytDw5d7TCyDTfHy9jhKwnYfXs+drG6i+umAhj1kl4LoKKCjqXg3c3Bgh2 LBMXx7bHxicMO75Dfk1TQPlVkBwSsbjTjXYHVVCYK5VxOW2P2yBtGeCNfDXX8r2nVojQ hUMSw2oOfav8YBBiE04yPzuu5UhoI4GASwuMnXP2WoaIrssqjn5foTaMnpQp3zFnbslc nCrQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h22si1449882ejf.75.2020.07.29.08.31.22; Wed, 29 Jul 2020 08:31:46 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726956AbgG2PbK (ORCPT + 99 others); Wed, 29 Jul 2020 11:31:10 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:10005 "EHLO alexa-out-sd-01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726757AbgG2PbI (ORCPT ); Wed, 29 Jul 2020 11:31:08 -0400 Received: from unknown (HELO ironmsg03-sd.qualcomm.com) ([10.53.140.143]) by alexa-out-sd-01.qualcomm.com with ESMTP; 29 Jul 2020 08:31:07 -0700 Received: from sivaprak-linux.qualcomm.com ([10.201.3.202]) by ironmsg03-sd.qualcomm.com with ESMTP; 29 Jul 2020 08:31:02 -0700 Received: by sivaprak-linux.qualcomm.com (Postfix, from userid 459349) id 37ABF21A05; Wed, 29 Jul 2020 21:00:55 +0530 (IST) From: Sivaprakash Murugesan To: agross@kernel.org, bjorn.andersson@linaro.org, bhelgaas@google.com, robh+dt@kernel.org, kishon@ti.com, vkoul@kernel.org, svarbanov@mm-sol.com, lorenzo.pieralisi@arm.com, p.zabel@pengutronix.de, sivaprak@codeaurora.org, mgautam@codeaurora.org, smuthayy@codeaurora.org, varada@codeaurora.org, linux-arm-msm@vger.kernel.org, linux-pci@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Selvam Sathappan Periakaruppan Subject: [PATCH V2 5/7] PCI: qcom: Do PHY power on before PCIe init Date: Wed, 29 Jul 2020 21:00:05 +0530 Message-Id: <1596036607-11877-6-git-send-email-sivaprak@codeaurora.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1596036607-11877-1-git-send-email-sivaprak@codeaurora.org> References: <1596036607-11877-1-git-send-email-sivaprak@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit cc1e06f033af ("phy: qcom: qmp: Use power_on/off ops for PCIe") changed phy ops from init/deinit to power on/off, due to this phy enable is getting called after PCIe init. On some platforms like ipq8074 phy should be inited before accessing the PCIe register space, otherwise the system would hang. So move phy_power_on API before PCIe init. Fixes: commit cc1e06f033af ("phy: qcom: qmp: Use power_on/off ops for PCIe") Co-developed-by: Selvam Sathappan Periakaruppan Signed-off-by: Selvam Sathappan Periakaruppan Signed-off-by: Sivaprakash Murugesan --- drivers/pci/controller/dwc/pcie-qcom.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c index 3aac77a..e1b5651 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -1265,18 +1265,18 @@ static int qcom_pcie_host_init(struct pcie_port *pp) qcom_ep_reset_assert(pcie); - ret = pcie->ops->init(pcie); + ret = phy_power_on(pcie->phy); if (ret) return ret; - ret = phy_power_on(pcie->phy); + ret = pcie->ops->init(pcie); if (ret) - goto err_deinit; + goto err_disable_phy; if (pcie->ops->post_init) { ret = pcie->ops->post_init(pcie); if (ret) - goto err_disable_phy; + goto err_deinit; } dw_pcie_setup_rc(pp); @@ -1295,10 +1295,10 @@ static int qcom_pcie_host_init(struct pcie_port *pp) qcom_ep_reset_assert(pcie); if (pcie->ops->post_deinit) pcie->ops->post_deinit(pcie); -err_disable_phy: - phy_power_off(pcie->phy); err_deinit: pcie->ops->deinit(pcie); +err_disable_phy: + phy_power_off(pcie->phy); return ret; } -- 2.7.4