usb: musb: mediatek: don't unregister something that wasn't registered
authorDan Carpenter <error27@gmail.com>
Tue, 24 Jan 2023 15:20:46 +0000 (18:20 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:39:40 +0000 (09:39 +0100)
[ Upstream commit ba883de971d1ad018f3083d9195b8abe54d87407 ]

This function only calls mtk_otg_switch_init() when the ->port_mode
is MUSB_OTG so the clean up code should only call mtk_otg_switch_exit()
for that mode.

Fixes: 0990366bab3c ("usb: musb: Add support for MediaTek musb controller")
Signed-off-by: Dan Carpenter <error27@gmail.com>
Link: https://lore.kernel.org/r/Y8/3TqpqiSr0RxFH@kili
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/musb/mediatek.c

index 6b92d037d8fc839f98621779c9b90c9354fa1a3e..4f52b92c45974a11014e73d83094bad3afbc2af7 100644 (file)
@@ -346,7 +346,8 @@ static int mtk_musb_init(struct musb *musb)
 err_phy_power_on:
        phy_exit(glue->phy);
 err_phy_init:
-       mtk_otg_switch_exit(glue);
+       if (musb->port_mode == MUSB_OTG)
+               mtk_otg_switch_exit(glue);
        return ret;
 }