phy: tegra: xusb: Add missing tegra_xusb_port_unregister for usb2_port and ulpi_port
authorGaosheng Cui <cuigaosheng1@huawei.com>
Tue, 29 Nov 2022 11:16:34 +0000 (19:16 +0800)
committerVinod Koul <vkoul@kernel.org>
Wed, 12 Apr 2023 16:21:42 +0000 (21:51 +0530)
The tegra_xusb_port_unregister should be called when usb2_port
and ulpi_port map fails in tegra_xusb_add_usb2_port() or in
tegra_xusb_add_ulpi_port(), fix it.

Fixes: 53d2a715c240 ("phy: Add Tegra XUSB pad controller support")
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20221129111634.1547747-1-cuigaosheng1@huawei.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/tegra/xusb.c

index ec335668563d3017049ff8935b226e83ca06a342..b55d4e9f42b5cdbe248895c974014aeff9fefb3f 100644 (file)
@@ -805,6 +805,7 @@ static int tegra_xusb_add_usb2_port(struct tegra_xusb_padctl *padctl,
        usb2->base.lane = usb2->base.ops->map(&usb2->base);
        if (IS_ERR(usb2->base.lane)) {
                err = PTR_ERR(usb2->base.lane);
+               tegra_xusb_port_unregister(&usb2->base);
                goto out;
        }
 
@@ -871,6 +872,7 @@ static int tegra_xusb_add_ulpi_port(struct tegra_xusb_padctl *padctl,
        ulpi->base.lane = ulpi->base.ops->map(&ulpi->base);
        if (IS_ERR(ulpi->base.lane)) {
                err = PTR_ERR(ulpi->base.lane);
+               tegra_xusb_port_unregister(&ulpi->base);
                goto out;
        }