Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d5b8707 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "soc: qcom: spss_utils: fix emulation logic for lahaina rumi"

parents b883676a f25439f0
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ static size_t cmac_mem_size = SZ_4K; /* XPU align to 4KB */
static phys_addr_t cmac_mem_addr;

#define SPU_EMULATUION (BIT(0) | BIT(1))
#define SPU_PRESENT_IN_EMULATION BIT(2)
#define SPU_PRESENT_IN_EMULATION BIT(0)

/**
 * struct device state
@@ -659,6 +659,8 @@ static int spss_parse_dt(struct device_node *node)
	iounmap(spss_fuse1_reg);
	iounmap(spss_fuse2_reg);

	pr_debug("firmware_type value [%c]\n", firmware_type);

	ret = of_property_read_u32(node, "qcom,spss-debug-reg-addr",
		&spss_debug_reg_addr);
	if (ret < 0) {
@@ -683,11 +685,15 @@ static int spss_parse_dt(struct device_node *node)
	spss_emul_type_val = readl_relaxed(spss_emul_type_reg);

	pr_debug("spss_emul_type value [0x%08x]\n", (int)spss_emul_type_val);
	if ((spss_emul_type_val & SPU_EMULATUION) &&
	    !(spss_emul_type_val & SPU_PRESENT_IN_EMULATION)) {
	if (spss_emul_type_val & SPU_EMULATUION) {
		if (spss_emul_type_val & SPU_PRESENT_IN_EMULATION) {
			firmware_type = SPSS_FW_TYPE_TEST;
		} else {
			/* for some emulation platforms SPSS is not present */
			firmware_type = SPSS_FW_TYPE_NONE;
		}
		pr_debug("remap firmware_type value [%c]\n", firmware_type);
	}
	iounmap(spss_emul_type_reg);

	/* PIL-SPSS area */
@@ -1020,8 +1026,8 @@ static int spss_probe(struct platform_device *pdev)

	ret = subsystem_set_fwname("spss", firmware_name);
	if (ret < 0) {
		pr_err("fail to set fw name\n");
		return -EINVAL;
		pr_err("fail to set firmware name for PIL (%d)\n", ret);
		return ret;
	}

	ret = spss_utils_create_chardev(dev);
@@ -1032,9 +1038,6 @@ static int spss_probe(struct platform_device *pdev)
	if (ret < 0)
		return ret;

	pr_info("Initialization completed ok, firmware_name [%s].\n",
		firmware_name);

	iar_nb = kzalloc(sizeof(*iar_nb), GFP_KERNEL);
	if (!iar_nb)
		return -ENOMEM;
@@ -1049,6 +1052,8 @@ static int spss_probe(struct platform_device *pdev)
		iar_nb = NULL;
	}

	pr_info("Probe completed successfully, [%s].\n", firmware_name);

	return 0;
}

@@ -1105,5 +1110,6 @@ static void __exit spss_exit(void)
}
module_exit(spss_exit)

MODULE_SOFTDEP("post: subsys-pil-tz");
MODULE_LICENSE("GPL v2");
MODULE_DESCRIPTION("Secure Processor Utilities");