On 3/13/2012 12:53 PM, Stefan Roese wrote:

> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c 
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c

> +#ifdef CONFIG_OF
> +static int __devinit stmmac_probe_config_dt(struct platform_device *pdev,
> +                                         struct plat_stmmacenet_data *plat,
> +                                         const char **mac)
> +{

<snip...>

> +}
> +#else
> +static int __devinit stmmac_probe_config_dt(struct platform_device *pdev,
> +                                         struct plat_stmmacenet_data *plat,
> +                                         const char **mac)
> +{
> +     return ERR_PTR(-ENOSYS);

why ERR_PTR()?

> +}
> +#endif /* CONFIG_OF */
> +
>  /**
>   * stmmac_pltfr_probe
>   * @pdev: platform device pointer

> @@ -58,7 +101,25 @@ static int stmmac_pltfr_probe(struct platform_device 
> *pdev)
>               ret = -ENOMEM;
>               goto out_release_region;
>       }
> -     plat_dat = pdev->dev.platform_data;
> +
> +     if (pdev->dev.of_node) {
> +             plat_dat = devm_kzalloc(&pdev->dev,
> +                                     sizeof(struct plat_stmmacenet_data),
> +                                     GFP_KERNEL);
> +             if (!plat_dat) {
> +                     pr_err("%s: ERROR: no memory", __func__);

why don't we use dev_err here?

> +                     ret = -ENOMEM;
> +                     goto out_unmap;
> +             }
> +
> +             ret = stmmac_probe_config_dt(pdev, plat_dat, &mac);
> +             if (ret) {
> +                     pr_err("%s: main dt probe failed", __func__);

here too?

-- 
viresh
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to