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

Commit 89e18eb3 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

MIPS: Change {set,clear,change}_c0_<foo> to return old value.



This is more standard and useful and need for the following fix to work
correctly.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 5484879c
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -1391,11 +1391,11 @@ static inline void tlb_write_random(void)
static inline unsigned int					\
set_c0_##name(unsigned int set)					\
{								\
	unsigned int res;					\
	unsigned int res, new;					\
								\
	res = read_c0_##name();					\
	res |= set;						\
	write_c0_##name(res);					\
	new = res | set;					\
	write_c0_##name(new);					\
								\
	return res;						\
}								\
@@ -1403,24 +1403,24 @@ set_c0_##name(unsigned int set) \
static inline unsigned int					\
clear_c0_##name(unsigned int clear)				\
{								\
	unsigned int res;					\
	unsigned int res, new;					\
								\
	res = read_c0_##name();					\
	res &= ~clear;						\
	write_c0_##name(res);					\
	new = res & ~clear;					\
	write_c0_##name(new);					\
								\
	return res;						\
}								\
								\
static inline unsigned int					\
change_c0_##name(unsigned int change, unsigned int new)		\
change_c0_##name(unsigned int change, unsigned int val)		\
{								\
	unsigned int res;					\
	unsigned int res, new;					\
								\
	res = read_c0_##name();					\
	res &= ~change;						\
	res |= (new & change);					\
	write_c0_##name(res);					\
	new = res & ~change;					\
	new |= (val & change);					\
	write_c0_##name(new);					\
								\
	return res;						\
}