Re: [PATCH] phy: qcom-qmp-pcie: fix resource mapping for SDM845 QHP PHY

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
> ---
>  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@xxxxxxxxxx>

Johan



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux