[PATCH 3/6] mv643xx.c: Add basic device tree support.

Ian Molton ian.molton at codethink.co.uk
Mon Jul 30 12:32:39 EDT 2012


On 30/07/12 17:19, Amar Nath wrote:
> Hi Ian,
>
> On Mon, Jul 30, 2012 at 8:45 PM, Ian Molton <ian.molton at codethink.co.uk>wrote:
>
>> -       pd = pdev->dev.platform_data;
>> +       if (pdev->dev.of_node) {
>> +               struct device_node *np = NULL;
>> +
>> +               /* when all users of this driver use FDT, we can remove
>> this */
>> +               pd = kzalloc(sizeof(*pd), GFP_ATOMIC);
>> +               if (!pd) {
>> +                       dev_dbg(&pdev->dev, "Could not allocate platform
>> data\n");
>> +                       return -ENOMEM;
>> +               }
>> +
>> +               of_property_read_u32(pdev->dev.of_node,
>> +                       "port_number", &pd->port_number);
>> +               of_property_read_u32(pdev->dev.of_node,
>> +                       "phy_addr", &pd->phy_addr);
>> +               np = of_parse_phandle(pdev->dev.of_node, "mdio", 0);
>> +               if (np) {
>> +                       pd->shared = of_find_device_by_node(np);
>> +               } else {
>> +                       kfree(pd);
>> +                       return -ENODEV;
>> +               }
>> +       } else {
>> +               pd = pdev->dev.platform_data;
>> +       }
>> +
>>         if (pd == NULL) {
>>                 dev_err(&pdev->dev, "no mv643xx_eth_platform_data\n");
>>                 return -ENODEV;
>>
> Can this check for pd be moved in the else part above as well, as for the
> pd allocation with kzalloc,
> we have already made a check for memory allocation failure?

Yes, Folded in for v2.

-Ian



More information about the linux-arm-kernel mailing list