MLK-20976-2 imx8: cpu: check resource before set sid

If resource is not owned, we ignore sid settings.
When support CM41 + android auto on xen, some resources
are owned by CM41, when CM41 releases those resources,
CM41 will program SID for those resources.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Flynn xu <flynn.xu@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
diff --git a/arch/arm/mach-imx/imx8/cpu.c b/arch/arm/mach-imx/imx8/cpu.c
index 314947e..6fdedf6 100644
--- a/arch/arm/mach-imx/imx8/cpu.c
+++ b/arch/arm/mach-imx/imx8/cpu.c
@@ -344,6 +344,15 @@
 }
 #endif
 
+static bool check_owned_resource(sc_rsrc_t rsrc_id)
+{
+	bool owned;
+
+	owned = sc_rm_is_resource_owned(-1, rsrc_id);
+
+	return owned;
+}
+
 #ifdef CONFIG_IMX_SMMU
 struct smmu_sid dev_sids[] = {
 };
@@ -357,6 +366,10 @@
 		return 0;
 
 	for (i = 0; i < size; i++) {
+		if (!check_owned_resource(dev_sids[i].rsrc)) {
+			printf("%s rsrc[%d] not owned\n", __func__, dev_sids[i].rsrc);
+			continue;
+		}
 		sciErr = sc_rm_set_master_sid(-1,
 					      dev_sids[i].rsrc,
 					      dev_sids[i].sid);
@@ -597,15 +610,6 @@
 	return board_mmc_get_env_dev(devno);
 }
 
-static bool check_owned_resource(sc_rsrc_t rsrc_id)
-{
-	bool owned;
-
-	owned = sc_rm_is_resource_owned(-1, rsrc_id);
-
-	return owned;
-}
-
 static bool check_owned_resources_in_pd_tree(void *blob, int nodeoff,
 	unsigned int *unowned_rsrc)
 {
@@ -984,10 +988,14 @@
 {
 	int err;
 
+	if (!check_owned_resource(rsrc)) {
+		printf("%s rsrc[%d] not owned\n", __func__, rsrc);
+		return -1;
+	}
 	err = sc_rm_set_master_sid(-1, rsrc, sid);
 	debug("set_master_sid rsrc=%d sid=0x%x err=%d\n", rsrc, sid, err);
 	if (err != SC_ERR_NONE) {
-		pr_err("fail set_master_sid rsrc=%d sid=0x%x err=%d", rsrc, sid, err);
+		pr_err("fail set_master_sid rsrc=%d sid=0x%x err=%d\n", rsrc, sid, err);
 		return -EINVAL;
 	}