]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: OMAP: omap_device: Fix up resource names when booted with devicetree
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Thu, 23 Aug 2012 13:54:09 +0000 (16:54 +0300)
committerBenoit Cousson <b-cousson@ti.com>
Thu, 6 Sep 2012 12:21:16 +0000 (14:21 +0200)
commit991273050acd49e9856a478e0f822333f20c22b8
tree8931d206ebaaad50a72380d78d984ebf8bd72e40
parent602533b8670fcf2650e8feae73c3d0233609e7b8
ARM: OMAP: omap_device: Fix up resource names when booted with devicetree

When booted with some resource will have their name set to NULL. This can
cause later kernel crash since this is not expected by the platform code.

When we boot without DT the devices are created with platform_device_add()
which itself fixes up the missing resource names:
if (r->name == NULL)
r->name = dev_name(&pdev->dev);

The of core also fixes up the resource names when taking the information
from DT data - in __of_address_to_resource():
r->name = name ? name : dev->full_name;

When we boot OMAP with devicetree: of will create the devices based on the
DT data so the resource names are guarantied to be not NULL. Since we have
the 'ti,hwmod' tag, we remove the of created resources from the device and
re-create them based on hwmod data. If the hwmod data does not specify a
name for a resource it will be NULL.
This can cause kernel crash if the driver uses
platform_get_resource_byname() to get any resource.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
[b-cousson@ti.com: Change omap_hwmod to omap_device in subject]
Signed-off-by: Benoit Cousson <b-cousson@ti.com>
arch/arm/plat-omap/omap_device.c