diff options
Diffstat (limited to 'arch/arm/plat-omap/omap_device.c')
-rw-r--r-- | arch/arm/plat-omap/omap_device.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c index c490240bb82..1d1b5ff7830 100644 --- a/arch/arm/plat-omap/omap_device.c +++ b/arch/arm/plat-omap/omap_device.c | |||
@@ -385,17 +385,21 @@ static int _omap_device_notifier_call(struct notifier_block *nb, | |||
385 | unsigned long event, void *dev) | 385 | unsigned long event, void *dev) |
386 | { | 386 | { |
387 | struct platform_device *pdev = to_platform_device(dev); | 387 | struct platform_device *pdev = to_platform_device(dev); |
388 | struct omap_device *od; | ||
388 | 389 | ||
389 | switch (event) { | 390 | switch (event) { |
390 | case BUS_NOTIFY_ADD_DEVICE: | ||
391 | if (pdev->dev.of_node) | ||
392 | omap_device_build_from_dt(pdev); | ||
393 | break; | ||
394 | |||
395 | case BUS_NOTIFY_DEL_DEVICE: | 391 | case BUS_NOTIFY_DEL_DEVICE: |
396 | if (pdev->archdata.od) | 392 | if (pdev->archdata.od) |
397 | omap_device_delete(pdev->archdata.od); | 393 | omap_device_delete(pdev->archdata.od); |
398 | break; | 394 | break; |
395 | case BUS_NOTIFY_ADD_DEVICE: | ||
396 | if (pdev->dev.of_node) | ||
397 | omap_device_build_from_dt(pdev); | ||
398 | /* fall through */ | ||
399 | default: | ||
400 | od = to_omap_device(pdev); | ||
401 | if (od) | ||
402 | od->_driver_status = event; | ||
399 | } | 403 | } |
400 | 404 | ||
401 | return NOTIFY_DONE; | 405 | return NOTIFY_DONE; |