Re: [PATCH 051/102] PCI: dwc: pcie-qcom: explicitly request exclusive reset control

From: Bjorn Helgaas
Date: Thu Aug 03 2017 - 17:40:50 EST


On Wed, Jul 19, 2017 at 05:25:55PM +0200, Philipp Zabel wrote:
> Commit a53e35db70d1 ("reset: Ensure drivers are explicit when requesting
> reset lines") started to transition the reset control request API calls
> to explicitly state whether the driver needs exclusive or shared reset
> control behavior. Convert all drivers requesting exclusive resets to the
> explicit API call so the temporary transition helpers can be removed.
>
> No functional changes.
>
> Cc: Stanimir Varbanov <svarbanov@xxxxxxxxxx>
> Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> Cc: linux-pci@xxxxxxxxxxxxxxx
> Cc: linux-arm-msm@xxxxxxxxxxxxxxx
> Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>

Applied to pci/host-qcom for v4.14, thanks!

Stanimir, holler if you see any issues.

> ---
> drivers/pci/dwc/pcie-qcom.c | 40 ++++++++++++++++++++++------------------
> 1 file changed, 22 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/pci/dwc/pcie-qcom.c b/drivers/pci/dwc/pcie-qcom.c
> index 68c5f2ab5bc8f..90f7796a7cffe 100644
> --- a/drivers/pci/dwc/pcie-qcom.c
> +++ b/drivers/pci/dwc/pcie-qcom.c
> @@ -212,23 +212,23 @@ static int qcom_pcie_get_resources_v0(struct qcom_pcie *pcie)
> if (IS_ERR(res->phy_clk))
> return PTR_ERR(res->phy_clk);
>
> - res->pci_reset = devm_reset_control_get(dev, "pci");
> + res->pci_reset = devm_reset_control_get_exclusive(dev, "pci");
> if (IS_ERR(res->pci_reset))
> return PTR_ERR(res->pci_reset);
>
> - res->axi_reset = devm_reset_control_get(dev, "axi");
> + res->axi_reset = devm_reset_control_get_exclusive(dev, "axi");
> if (IS_ERR(res->axi_reset))
> return PTR_ERR(res->axi_reset);
>
> - res->ahb_reset = devm_reset_control_get(dev, "ahb");
> + res->ahb_reset = devm_reset_control_get_exclusive(dev, "ahb");
> if (IS_ERR(res->ahb_reset))
> return PTR_ERR(res->ahb_reset);
>
> - res->por_reset = devm_reset_control_get(dev, "por");
> + res->por_reset = devm_reset_control_get_exclusive(dev, "por");
> if (IS_ERR(res->por_reset))
> return PTR_ERR(res->por_reset);
>
> - res->phy_reset = devm_reset_control_get(dev, "phy");
> + res->phy_reset = devm_reset_control_get_exclusive(dev, "phy");
> return PTR_ERR_OR_ZERO(res->phy_reset);
> }
>
> @@ -393,7 +393,7 @@ static int qcom_pcie_get_resources_v1(struct qcom_pcie *pcie)
> if (IS_ERR(res->slave_bus))
> return PTR_ERR(res->slave_bus);
>
> - res->core = devm_reset_control_get(dev, "core");
> + res->core = devm_reset_control_get_exclusive(dev, "core");
> return PTR_ERR_OR_ZERO(res->core);
> }
>
> @@ -623,51 +623,55 @@ static int qcom_pcie_get_resources_v3(struct qcom_pcie *pcie)
> if (IS_ERR(res->slave_clk))
> return PTR_ERR(res->slave_clk);
>
> - res->axi_m_reset = devm_reset_control_get(dev, "axi_m");
> + res->axi_m_reset = devm_reset_control_get_exclusive(dev, "axi_m");
> if (IS_ERR(res->axi_m_reset))
> return PTR_ERR(res->axi_m_reset);
>
> - res->axi_s_reset = devm_reset_control_get(dev, "axi_s");
> + res->axi_s_reset = devm_reset_control_get_exclusive(dev, "axi_s");
> if (IS_ERR(res->axi_s_reset))
> return PTR_ERR(res->axi_s_reset);
>
> - res->pipe_reset = devm_reset_control_get(dev, "pipe");
> + res->pipe_reset = devm_reset_control_get_exclusive(dev, "pipe");
> if (IS_ERR(res->pipe_reset))
> return PTR_ERR(res->pipe_reset);
>
> - res->axi_m_vmid_reset = devm_reset_control_get(dev, "axi_m_vmid");
> + res->axi_m_vmid_reset = devm_reset_control_get_exclusive(dev,
> + "axi_m_vmid");
> if (IS_ERR(res->axi_m_vmid_reset))
> return PTR_ERR(res->axi_m_vmid_reset);
>
> - res->axi_s_xpu_reset = devm_reset_control_get(dev, "axi_s_xpu");
> + res->axi_s_xpu_reset = devm_reset_control_get_exclusive(dev,
> + "axi_s_xpu");
> if (IS_ERR(res->axi_s_xpu_reset))
> return PTR_ERR(res->axi_s_xpu_reset);
>
> - res->parf_reset = devm_reset_control_get(dev, "parf");
> + res->parf_reset = devm_reset_control_get_exclusive(dev, "parf");
> if (IS_ERR(res->parf_reset))
> return PTR_ERR(res->parf_reset);
>
> - res->phy_reset = devm_reset_control_get(dev, "phy");
> + res->phy_reset = devm_reset_control_get_exclusive(dev, "phy");
> if (IS_ERR(res->phy_reset))
> return PTR_ERR(res->phy_reset);
>
> - res->axi_m_sticky_reset = devm_reset_control_get(dev, "axi_m_sticky");
> + res->axi_m_sticky_reset = devm_reset_control_get_exclusive(dev,
> + "axi_m_sticky");
> if (IS_ERR(res->axi_m_sticky_reset))
> return PTR_ERR(res->axi_m_sticky_reset);
>
> - res->pipe_sticky_reset = devm_reset_control_get(dev, "pipe_sticky");
> + res->pipe_sticky_reset = devm_reset_control_get_exclusive(dev,
> + "pipe_sticky");
> if (IS_ERR(res->pipe_sticky_reset))
> return PTR_ERR(res->pipe_sticky_reset);
>
> - res->pwr_reset = devm_reset_control_get(dev, "pwr");
> + res->pwr_reset = devm_reset_control_get_exclusive(dev, "pwr");
> if (IS_ERR(res->pwr_reset))
> return PTR_ERR(res->pwr_reset);
>
> - res->ahb_reset = devm_reset_control_get(dev, "ahb");
> + res->ahb_reset = devm_reset_control_get_exclusive(dev, "ahb");
> if (IS_ERR(res->ahb_reset))
> return PTR_ERR(res->ahb_reset);
>
> - res->phy_ahb_reset = devm_reset_control_get(dev, "phy_ahb");
> + res->phy_ahb_reset = devm_reset_control_get_exclusive(dev, "phy_ahb");
> if (IS_ERR(res->phy_ahb_reset))
> return PTR_ERR(res->phy_ahb_reset);
>
> --
> 2.11.0
>