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

Commit 5ae4fd94 authored by Omar Ramirez Luna's avatar Omar Ramirez Luna Committed by Greg Kroah-Hartman
Browse files

staging: tidspbridge: ioremap physical address of the stack segment in shm



Due to data type change, readl can no longer receive a u32.

Signed-off-by: default avatarOmar Ramirez Luna <omar.ramirez@copitl.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 7de8a0cf
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -304,8 +304,7 @@ int node_allocate(struct proc_object *hprocessor,
	u32 pul_value;
	u32 dynext_base;
	u32 off_set = 0;
	u32 ul_stack_seg_addr, ul_stack_seg_val;
	u32 ul_gpp_mem_base;
	u32 ul_stack_seg_val;
	struct cfg_hostres *host_res;
	struct bridge_dev_context *pbridge_context;
	u32 mapped_addr = 0;
@@ -581,6 +580,9 @@ func_cont:
		if (strcmp((char *)
			   pnode->dcd_props.obj_data.node_obj.ndb_props.
			   stack_seg_name, STACKSEGLABEL) == 0) {
			void __iomem *stack_seg;
			u32 stack_seg_pa;

			status =
			    hnode_mgr->nldr_fxns.
			    get_fxn_addr(pnode->nldr_node_obj, "DYNEXT_BEG",
@@ -608,14 +610,21 @@ func_cont:
				goto func_end;
			}

			ul_gpp_mem_base = (u32) host_res->mem_base[1];
			off_set = pul_value - dynext_base;
			ul_stack_seg_addr = ul_gpp_mem_base + off_set;
			ul_stack_seg_val = readl(ul_stack_seg_addr);
			stack_seg_pa = host_res->mem_phys[1] + off_set;
			stack_seg = ioremap(stack_seg_pa, SZ_32);
			if (!stack_seg) {
				status = -ENOMEM;
				goto func_end;
			}

			ul_stack_seg_val = readl(stack_seg);

			iounmap(stack_seg);

			dev_dbg(bridge, "%s: StackSegVal = 0x%x, StackSegAddr ="
				" 0x%x\n", __func__, ul_stack_seg_val,
				ul_stack_seg_addr);
				host_res->mem_base[1] + off_set);

			pnode->create_args.asa.task_arg_obj.stack_seg =
			    ul_stack_seg_val;