[PATCH] phy: qcom-qmp-pcie: fix resource mapping for SDM845 QHP PHY
Johan Hovold
johan at kernel.org
Mon Sep 26 23:53:01 PDT 2022
On Mon, Sep 26, 2022 at 08:25:14PM +0300, Dmitry Baryshkov wrote:
> On SDM845 one of PCIe PHYs (the QHP one) has the same region for TX and
> RX registers. Since the commit 4be26f695ffa ("phy: qcom-qmp-pcie: fix
> memleak on probe deferral") added checking that resources are not
> allocated beforehand, this PHY can not be probed anymore. Fix this by
> skipping the map of ->rx resource on the QHP PHY and assign it manually.
Bah. Yet another QMP hack (the QHP support, not just this fix).
The binding should be fixed as this device does indeed not have separate
TX and RX register blocks. Note that the rx table for this device is
empty too so that repeated "TX" region is just a place holder.
> Fixes: 4be26f695ffa ("phy: qcom-qmp-pcie: fix memleak on probe deferral")
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
> ---
> drivers/phy/qualcomm/phy-qcom-qmp-pcie.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> index 7aff3f9940a5..5be5348fbb26 100644
> --- a/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> +++ b/drivers/phy/qualcomm/phy-qcom-qmp-pcie.c
> @@ -2210,7 +2210,10 @@ static int qmp_pcie_create(struct device *dev, struct device_node *np, int id,
> if (IS_ERR(qphy->tx))
> return PTR_ERR(qphy->tx);
>
> - qphy->rx = devm_of_iomap(dev, np, 1, NULL);
> + if (of_device_is_compatible(dev->of_node, "qcom,sdm845-qhp-pcie-phy"))
> + qphy->rx = qphy->tx;
> + else
> + qphy->rx = devm_of_iomap(dev, np, 1, NULL);
> if (IS_ERR(qphy->rx))
> return PTR_ERR(qphy->rx);
But I guess this will do for now:
Reviewed-by: Johan Hovold <johan+linaro at kernel.org>
Johan
More information about the linux-phy
mailing list