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

Reply via email to