Hi, I agree with you that some platforms don't require a PHY driver. But in the case I mentioned, in the platforms that do need a PHY driver and PHY driver is not bring up successfully, the driver code right now will return 0 and go on set the dwc->phys_ready=ture, which looks odd in this case, right? B.R Yuan Fang -----邮件原件----- 发件人: Felipe Balbi [mailto:balbi@xxxxxxxxxx] 发送时间: 2021年6月10日 19:47 收件人: Yuan Fang; linux-usb@xxxxxxxxxxxxxxx 抄送: Fang, Yuan 主题: Re: [PATCH] driver/usb/dwc3: Add error handle for dwc3 get usb phy Hi, Yuan Fang <fangyuanseu@xxxxxxxxx> writes: > Add error handle for dwc3 core get usb phy, because without error > handle will lead to bug. > > consider case like this, when both dwc->usb2_phy/usb3_phy and > dwc->usb2_generic_phy/usb3_generic_phy do not exist current driver > code set them all to NULL and return 0 to caller which means usb phy > is ready. it's unclear what the problem is. Care to describe what's happening? > Signed-off-by: Yuan Fang <yuan.fang@xxxxxxxxxxxxxxx> > --- > Hi maintainer, > > I find this issue when i try to add a new usb phy driver for > dwc3 usb core, this issue looks like a bug, please kindly have > a review, many thanks. > > Best regards, > Yuan Fang > > drivers/usb/dwc3/core.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index > b6e53d8212cd..4d527d313a4c 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -1184,6 +1184,7 @@ static int dwc3_core_get_phy(struct dwc3 *dwc) > ret = PTR_ERR(dwc->usb3_generic_phy); > if (ret == -ENOSYS || ret == -ENODEV) { > dwc->usb3_generic_phy = NULL; > + return dev_err_probe(dev, ret, "no usb phy device\n"); no, this is incorrect. Some platforms don't require a PHY driver at all because there's no SW control for the PHY. Moreover, generic PHY framework protects against NULL phy. I don't see what the problem you're referring to is here. -- balbi