dm: core: Add missing entries for manual relocation
authorMichal Simek <michal.simek@xilinx.com>
Tue, 27 Oct 2015 12:48:08 +0000 (13:48 +0100)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 19 Nov 2015 12:10:16 +0000 (13:10 +0100)
Patches:
"dm: core: Add a post_bind method for parents"
(sha1: 0118ce79577f9b0881f99a6e4f8a79cd5014cb87)
"dm: core: Add a uclass pre_probe() method for devices"
(sha1: 02c07b3741f1b825934b1a6eb8f23530532dc426)
"dm: core: Allow the uclass to set up a device's child after binding"
(sha1: 081f2fcbd9a95ba10677065359791f8fea3f8c58)
"dm: core: Allow uclass to set up a device's child before it is probed"
(sha1: 83c7e434c9dd3ca81f8b763e23c1881b973bcf2f)

Adds new entries to struct driver and struct uclass_driver without
extending code for manual relocation. This patch fixes it for all
architectures which requires MANUAL_RELOC.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Acked-by: Simon Glass <sjg@chromium.org>
drivers/core/root.c

index bdb394a9ae21f3d1f2d80b355abe03cdaace8dae..e7b1f249682e3c6b282751f4965e2e3944fd999e 100644 (file)
@@ -59,6 +59,8 @@ void fix_drivers(void)
                        entry->unbind += gd->reloc_off;
                if (entry->ofdata_to_platdata)
                        entry->ofdata_to_platdata += gd->reloc_off;
+               if (entry->child_post_bind)
+                       entry->child_post_bind += gd->reloc_off;
                if (entry->child_pre_probe)
                        entry->child_pre_probe += gd->reloc_off;
                if (entry->child_post_remove)
@@ -81,10 +83,16 @@ void fix_uclass(void)
                        entry->post_bind += gd->reloc_off;
                if (entry->pre_unbind)
                        entry->pre_unbind += gd->reloc_off;
+               if (entry->pre_probe)
+                       entry->pre_probe += gd->reloc_off;
                if (entry->post_probe)
                        entry->post_probe += gd->reloc_off;
                if (entry->pre_remove)
                        entry->pre_remove += gd->reloc_off;
+               if (entry->child_post_bind)
+                       entry->child_post_bind += gd->reloc_off;
+               if (entry->child_pre_probe)
+                       entry->child_pre_probe += gd->reloc_off;
                if (entry->init)
                        entry->init += gd->reloc_off;
                if (entry->destroy)