> From: Yunzhi Li [mailto:lyz at rock-chips.com] > Sent: Sunday, December 07, 2014 7:58 PM > > On 2014/12/6 3:04, Paul Zimmerman wrote: > >> From: Yunzhi Li [mailto:lyz at rock-chips.com] > >> Sent: Friday, December 05, 2014 4:52 AM > >> > >> Get PHY parameters from devicetree and power off usb PHY during > >> system suspend. > >> > >> Signed-off-by: Yunzhi Li <lyz at rock-chips.com> > >> --- > >> > >> drivers/usb/dwc2/gadget.c | 33 ++++++++++++--------------------- > >> drivers/usb/dwc2/platform.c | 34 ++++++++++++++++++++++++++++++++++ > >> 2 files changed, 46 insertions(+), 21 deletions(-) > >> > >> diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c > >> index 200168e..2601c61 100644 > >> --- a/drivers/usb/dwc2/gadget.c > >> +++ b/drivers/usb/dwc2/gadget.c > >> [...] > >> > >> /* > >> - * Attempt to find a generic PHY, then look for an old style > >> - * USB PHY, finally fall back to pdata > >> + * If platform probe couldn't find a generic PHY or an old style > >> + * USB PHY, fall back to pdata > >> */ > >> - phy = devm_phy_get(dev, "usb2-phy"); > >> - if (IS_ERR(phy)) { > >> - uphy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2); > >> - if (IS_ERR(uphy)) { > >> - /* Fallback for pdata */ > >> - plat = dev_get_platdata(dev); > >> - if (!plat) { > >> - dev_err(dev, > >> - "no platform data or transceiver defined\n"); > >> - return -EPROBE_DEFER; > >> - } > >> - hsotg->plat = plat; > >> - } else > >> - hsotg->uphy = uphy; > >> - } else { > >> - hsotg->phy = phy; > >> + if (IS_ERR_OR_NULL(hsotg->phy) && IS_ERR_OR_NULL(hsotg->uphy)) { > >> + plat = dev_get_platdata(dev); > >> + if (!plat) { > >> + dev_err(dev, > >> + "no platform data or transceiver defined\n"); > >> + return -EPROBE_DEFER; > >> + } > >> + hsotg->plat = plat; > >> + } else if (hsotg->phy) { > > You have changed the behavior here. Previously, the driver would work > > even if there were no phys or pdata defined. Now it will return > > -EPROBE_DEFER instead. Are you sure that won't break any existing > > platforms? > > > I don't really catch your meaning. Could you please point out where is > the difference? Thanks . Yeah, sorry, I misread the patch. I think your new version is fine. -- Paul