答复: [PATCH] drivers/usb/dwc3: Set PHY ready after soft reset done

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

 



Hi Maintainner,

Could you please share your thoughts with me?
Thanks a lot.


-----邮件原件-----
发件人: Fang, Yuan 
发送时间: 2021年6月16日 10:56
收件人: 'Felipe Balbi'; Yuan Fang; linux-usb@xxxxxxxxxxxxxxx
主题: 答复: [PATCH] drivers/usb/dwc3: Set PHY ready after soft reset done

Hi Balbi,

> It's more safe to set PHY ready after soft reset done
>
> Let's consider a test case like this:
> I have a usb PHY which don't need SW initial before access it, But i 
> have a wrong PHY clock default setting in PHY register which means PHY 
> is not ready in fact.
> in dwc3_core_init, dwc3_core_get_phy will return 0 despite usb get 
> PHYs with return -ENODEV, and set phys_ready=true

> your PHY driver shouldn't return -ENODEV here. Why are you returning -ENODEV? The PHY isn't ready but it _does_ exist.

Sorry for the late reply, my explain may be not clear, let me describe it once more 1, I don’t coding a PHY driver, I have a PHY which do NOT need SW operation All I should do is set the related PHY ctrl regs correctly. So I do not return anything to generic PHY framework.
2, In my above case, dwc3_core_get_phy will return 0, and set dwc->phys_ready=true, And then, dwc3_core_soft_reset will cost retries*20ms to check if soft-reset is done , and return -ETIMEDOUT if time out, is that correct?

My point is, in this case(PHY do not set correctly, which is not rare during development stage I think), PHY initial fail led to soft-reset timeout but dwc->phys_ready is true, So I think is more safe to say "PHY is ready" after soft-reset done, please let me know your opinion, thanks a lot

Yuan Fang
 
-----邮件原件-----
发件人: Felipe Balbi [mailto:balbi@xxxxxxxxxx]
发送时间: 2021年6月11日 21:03
收件人: Yuan Fang; linux-usb@xxxxxxxxxxxxxxx
抄送: Fang, Yuan
主题: Re: [PATCH] drivers/usb/dwc3: Set PHY ready after soft reset done

Yuan Fang <fangyuanseu@xxxxxxxxx> writes:

> It's more safe to set PHY ready after soft reset done
>
> Let's consider a test case like this:
> I have a usb PHY which don't need SW initial before access it, But i 
> have a wrong PHY clock default setting in PHY register which means PHY 
> is not ready in fact.
> in dwc3_core_init, dwc3_core_get_phy will return 0 despite usb get 
> PHYs with return -ENODEV, and set phys_ready=true

your PHY driver shouldn't return -ENODEV here. Why are you returning -ENODEV? The PHY isn't ready but it _does_ exist.

--
balbi




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux