summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2018-10-16 13:51:52 +0800
committerPeng Fan <peng.fan@nxp.com>2018-10-23 16:42:31 +0800
commit7b800eb12b6501b9f8d78e492720c584d2cb4c31 (patch)
tree287375987daef2d338cf522fdefee11e6ad78618
parent27d6b4cf3d8d6701aeb800b307ef52afd18540ba (diff)
MLK-20010 imx8: ignore power off domu resources when domu-init-ignore-poweroff yes
When domu-init-ignore-poweroff set to yes, initially not power off resources owned by DomU. When supporting M4 + Android Auto, M4 and Android Auto shared display, but currently no partition created in M4 for display, so scu_rm will power off the display and cause android auto error. Let ignore power off first. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Ye Li <ye.li@nxp.com>
-rw-r--r--arch/arm/mach-imx/imx8/partition.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx8/partition.c b/arch/arm/mach-imx/imx8/partition.c
index f74758addc..af1093ee98 100644
--- a/arch/arm/mach-imx/imx8/partition.c
+++ b/arch/arm/mach-imx/imx8/partition.c
@@ -122,10 +122,18 @@ static int do_part_dtb(int argc, char * const argv[])
int i, ret;
u32 *rsrc_data = NULL, *pad_data = NULL;
const struct fdt_property *prop;
+ bool init_ignore_domu_power = false;
+ char *tmp;
void *fdt;
ipc_handle = gd->arch.ipc_channel_handle;
+ tmp = env_get("domu-init-ignore-poweroff");
+ if (tmp && !strncmp(tmp, "yes", 3)) {
+ init_ignore_domu_power = true;
+ printf("ignore init power off domu power\n");
+ }
+
if (argc)
fdt = (void *)simple_strtoul(argv[0], NULL, 16);
else
@@ -201,6 +209,8 @@ static int do_part_dtb(int argc, char * const argv[])
debug("power on resource %d, err %d\n", rsrc_data[i], err);
break;
default:
+ if (init_ignore_domu_power)
+ break;
err = sc_pm_set_resource_power_mode(ipc_handle, rsrc_data[i], SC_PM_PW_MODE_OFF);
if (err)
debug("power off resource %d, err %d\n", rsrc_data[i], err);