[U-Boot] [PATCH 2/2] arm: k3: Use get_ti_sci_handle() where ever possible

Lokesh Vutla lokeshvutla at ti.com
Mon Sep 9 07:17:38 UTC 2019


Instead of calling uclass apis everywhere, use get_ti_sci_handle()
when ever ti_sci is needed.

Signed-off-by: Lokesh Vutla <lokeshvutla at ti.com>
---
 arch/arm/mach-k3/am6_init.c | 16 +++-------------
 arch/arm/mach-k3/security.c | 15 +++------------
 2 files changed, 6 insertions(+), 25 deletions(-)

diff --git a/arch/arm/mach-k3/am6_init.c b/arch/arm/mach-k3/am6_init.c
index 6558fe0ef4..0b564f7bd1 100644
--- a/arch/arm/mach-k3/am6_init.c
+++ b/arch/arm/mach-k3/am6_init.c
@@ -219,10 +219,9 @@ u32 spl_boot_device(void)
 
 void release_resources_for_core_shutdown(void)
 {
-	struct udevice *dev;
-	struct ti_sci_handle *ti_sci;
-	struct ti_sci_dev_ops *dev_ops;
-	struct ti_sci_proc_ops *proc_ops;
+	struct ti_sci_handle *ti_sci = get_ti_sci_handle();
+	struct ti_sci_dev_ops *dev_ops = &ti_sci->ops.dev_ops;
+	struct ti_sci_proc_ops *proc_ops = &ti_sci->ops.proc_ops;
 	int ret;
 	u32 i;
 
@@ -231,15 +230,6 @@ void release_resources_for_core_shutdown(void)
 		AM6_DEV_MCU_RTI1,
 	};
 
-	/* Get handle to Device Management and Security Controller (SYSFW) */
-	ret = uclass_get_device_by_name(UCLASS_FIRMWARE, "dmsc", &dev);
-	if (ret)
-		panic("Failed to get handle to SYSFW (%d)\n", ret);
-
-	ti_sci = (struct ti_sci_handle *)(ti_sci_get_handle_from_sysfw(dev));
-	dev_ops = &ti_sci->ops.dev_ops;
-	proc_ops = &ti_sci->ops.proc_ops;
-
 	/* Iterate through list of devices to put (shutdown) */
 	for (i = 0; i < ARRAY_SIZE(put_device_ids); i++) {
 		u32 id = put_device_ids[i];
diff --git a/arch/arm/mach-k3/security.c b/arch/arm/mach-k3/security.c
index 52f49bf01f..4e011ee10e 100644
--- a/arch/arm/mach-k3/security.c
+++ b/arch/arm/mach-k3/security.c
@@ -11,25 +11,16 @@
 #include <linux/soc/ti/ti_sci_protocol.h>
 #include <mach/spl.h>
 #include <spl.h>
+#include <asm/arch/sys_proto.h>
 
 void board_fit_image_post_process(void **p_image, size_t *p_size)
 {
-	struct udevice *dev;
-	struct ti_sci_handle *ti_sci;
-	struct ti_sci_proc_ops *proc_ops;
+	struct ti_sci_handle *ti_sci = get_ti_sci_handle();
+	struct ti_sci_proc_ops *proc_ops = &ti_sci->ops.proc_ops;
 	u64 image_addr;
 	u32 image_size;
 	int ret;
 
-	/* Get handle to Device Management and Security Controller (SYSFW) */
-	ret = uclass_get_device_by_name(UCLASS_FIRMWARE, "dmsc", &dev);
-	if (ret) {
-		printf("Failed to get handle to SYSFW (%d)\n", ret);
-		hang();
-	}
-	ti_sci = (struct ti_sci_handle *)(ti_sci_get_handle_from_sysfw(dev));
-	proc_ops = &ti_sci->ops.proc_ops;
-
 	image_addr = (uintptr_t)*p_image;
 
 	debug("Authenticating image at address 0x%016llx\n", image_addr);
-- 
2.22.0



More information about the U-Boot mailing list