From ef83daca54b089339d7e63fa8325f69ca02a153e Mon Sep 17 00:00:00 2001 From: Ziyuan Xu Date: Thu, 26 Oct 2023 16:58:24 +0800 Subject: [PATCH] soc: rockchip: tb_service: add memory-no-free property support Some product scenarios would like the rtos's memory space always been exclusive. Signed-off-by: Ziyuan Xu Change-Id: Ib71da6b355995ab5b12ddfdf346bbce8e1852745 --- drivers/soc/rockchip/rockchip_thunderboot_service.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/soc/rockchip/rockchip_thunderboot_service.c b/drivers/soc/rockchip/rockchip_thunderboot_service.c index d1420d141273..6002d64c8b05 100644 --- a/drivers/soc/rockchip/rockchip_thunderboot_service.c +++ b/drivers/soc/rockchip/rockchip_thunderboot_service.c @@ -24,6 +24,7 @@ struct rk_tb_serv { struct reset_control *rsts; phys_addr_t mem_start; size_t mem_size; + bool mem_no_free; }; static atomic_t mcu_done = ATOMIC_INIT(0); @@ -89,7 +90,8 @@ static void do_mcu_done(struct rk_tb_serv *serv) start = phys_to_virt(serv->mem_start); end = start + serv->mem_size; - free_reserved_area(start, end, -1, "rtos"); + if (!serv->mem_no_free) + free_reserved_area(start, end, -1, "rtos"); spin_lock(&lock); if (atomic_read(&mcu_done)) { @@ -150,6 +152,8 @@ static int rk_tb_serv_probe(struct platform_device *pdev) if (IS_ERR(serv->rsts) && PTR_ERR(serv->rsts) == -EPROBE_DEFER) return -EPROBE_DEFER; + serv->mem_no_free = device_property_read_bool(&pdev->dev, "memory-no-free"); + platform_set_drvdata(pdev, serv); mbox_cl = &serv->mbox_cl;