Hi, On Tue, Oct 30, 2012 at 10:27:34AM +0530, Praveen Paneri wrote: > @@ -3501,20 +3511,27 @@ static int __devinit s3c_hsotg_probe(struct platform_device *pdev) > int ret; > int i; > > - plat = pdev->dev.platform_data; > - if (!plat) { > - dev_err(&pdev->dev, "no platform data defined\n"); > - return -EINVAL; > - } > - > hsotg = devm_kzalloc(&pdev->dev, sizeof(struct s3c_hsotg), GFP_KERNEL); > if (!hsotg) { > dev_err(dev, "cannot get memory\n"); > return -ENOMEM; > } > > + plat = pdev->dev.platform_data; > + if (!plat) { > + /* Fallback for transceiver */ > + phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2); > + if (IS_ERR_OR_NULL(phy)) { > + dev_err(&pdev->dev, "no platform data or transceiver defined\n"); > + return -EPROBE_DEFER; > + } else { > + hsotg->phy = phy; > + } > + } else { > + hsotg->plat = plat; > + } I think this should be the other way around, meaning you try to grab the phy, if you can't, then you fallback to pdata. -- balbi
Attachment:
signature.asc
Description: Digital signature