Re: [PATCH] phy: ingenic: Don't disable the supply in exit

From: H. Nikolaus Schaller

Date: Sun Oct 25 2026 - 15:22:38 EST


By the way it turns out that this patch by Olivier duplicates my 2 years old submission:

https://patchew.org/linux/96da5fe557f3b2501447358895bd78decc4633ef.1735482146.git.hns@xxxxxxxxxxxxx/
https://lkml.iu.edu/hypermail/linux/kernel/2503.2/00226.html
https://lists.goldelico.com/pipermail/letux-kernel/2024-December/009881.html

where there was never a feedback or merge and despite a resend it was still lost again.

BR and thanks,
Nikolaus

> Am 24.10.2026 um 19:35 schrieb H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>:
>
> Hi,
>
>> Am 24.10.2026 um 07:17 schrieb Olivier Louvignes <olivier@xxxxxxxxx>:
>>
>> The supply is enabled in power_on() and disabled in power_off(); exit()
>> disabling it again unbalances it. dwc2 powers its PHY off before exiting
>> it, which warns at every probe on an Ingenic X1600:
>>
>> WARNING: ... _regulator_disable
>> ...
>> ingenic_usb_phy_exit
>> phy_exit
>> dwc2_lowlevel_hw_disable
>> dwc2_driver_probe
>
> Yes, I can confirm this problem and the solution:
>
> https://github.com/goldelico/letux-kernel/commit/e757fd47d006b
>
>>
>> Fixes: 31de313dfdcf ("PHY: Ingenic: Add USB PHY driver using generic PHY framework.")
>> Signed-off-by: Olivier Louvignes <olivier@xxxxxxxxx>
>> ---
>> Tested on v7.3 on a HiBy R1 (X1600), whose PHY supply is a dummy
>> regulator: without this the warning above came at every probe, with it
>> there is none and USB still enumerates at high speed. Build-tested with
>> W=1 on phy next.
>>
>> drivers/phy/ingenic/phy-ingenic-usb.c | 1 -
>> 1 file changed, 1 deletion(-)
>>
>> diff --git a/drivers/phy/ingenic/phy-ingenic-usb.c b/drivers/phy/ingenic/phy-ingenic-usb.c
>> index 7e62d46850fd..d8e5ef302b74 100644
>> --- a/drivers/phy/ingenic/phy-ingenic-usb.c
>> +++ b/drivers/phy/ingenic/phy-ingenic-usb.c
>> @@ -124,7 +124,6 @@ static int ingenic_usb_phy_exit(struct phy *phy)
>> struct ingenic_usb_phy *priv = phy_get_drvdata(phy);
>>
>> clk_disable_unprepare(priv->clk);
>> - regulator_disable(priv->vcc_supply);
>>
>> return 0;
>> }
>>
>> base-commit: 8f56fdf3d8cb9f1dbdc93bf9ac816698aa6f70b7
>> --
>> 2.39.5
>>
>>
>
> Reviewed-By: H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>