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

Commit eda2030a authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt
Browse files

sh: extend clock struct with mapped_reg member



Add a "mapped_reg" member to struct clk and use that
to keep the ioremapped register based on enable_reg.

Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent d4775356
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -355,7 +355,7 @@ static int clk_establish_mapping(struct clk *clk)
		 */
		 */
		if (!clk->parent) {
		if (!clk->parent) {
			clk->mapping = &dummy_mapping;
			clk->mapping = &dummy_mapping;
			return 0;
			goto out;
		}
		}


		/*
		/*
@@ -384,6 +384,9 @@ static int clk_establish_mapping(struct clk *clk)
	}
	}


	clk->mapping = mapping;
	clk->mapping = mapping;
out:
	clk->mapped_reg = clk->mapping->base;
	clk->mapped_reg += (phys_addr_t)clk->enable_reg - clk->mapping->phys;
	return 0;
	return 0;
}
}


@@ -402,10 +405,12 @@ static void clk_teardown_mapping(struct clk *clk)


	/* Nothing to do */
	/* Nothing to do */
	if (mapping == &dummy_mapping)
	if (mapping == &dummy_mapping)
		return;
		goto out;


	kref_put(&mapping->ref, clk_destroy_mapping);
	kref_put(&mapping->ref, clk_destroy_mapping);
	clk->mapping = NULL;
	clk->mapping = NULL;
out:
	clk->mapped_reg = NULL;
}
}


int clk_register(struct clk *clk)
int clk_register(struct clk *clk)
+1 −0
Original line number Original line Diff line number Diff line
@@ -49,6 +49,7 @@ struct clk {


	void __iomem		*enable_reg;
	void __iomem		*enable_reg;
	unsigned int		enable_bit;
	unsigned int		enable_bit;
	void __iomem		*mapped_reg;


	unsigned long		arch_flags;
	unsigned long		arch_flags;
	void			*priv;
	void			*priv;