summaryrefslogtreecommitdiffstats
path: root/arch/kvx
diff options
context:
space:
mode:
authorClement Leger <clement.leger@bootlin.com>2022-01-17 23:19:15 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2022-01-18 09:07:27 +0100
commitbc7544104c5504d655192767f1df636c2dc3b3f5 (patch)
tree8be07548026a56840103ec44c426414a2db72a67 /arch/kvx
parentf3903b7259777a94ec62289329224e31620ab17f (diff)
downloadbarebox-bc7544104c5504d655192767f1df636c2dc3b3f5.tar.gz
barebox-bc7544104c5504d655192767f1df636c2dc3b3f5.tar.xz
kvx: add kvx_sfr_field_val
Add this macro for upcoming socinfo driver. This extract a sfr field using only its name. Signed-off-by: Clement Leger <clement.leger@bootlin.com> Signed-off-by: Jules Maselbas <jmaselbas@kalray.eu> Link: https://lore.barebox.org/20220117221917.26970-10-jmaselbas@kalray.eu Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/kvx')
-rw-r--r--arch/kvx/include/asm/sfr.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/kvx/include/asm/sfr.h b/arch/kvx/include/asm/sfr.h
index 5b93cee345..89ff64bbdc 100644
--- a/arch/kvx/include/asm/sfr.h
+++ b/arch/kvx/include/asm/sfr.h
@@ -44,4 +44,8 @@ kvx_sfr_set_mask(unsigned char sfr, uint64_t mask, uint64_t value)
#define kvx_sfr_set(_sfr, _val) __builtin_kvx_set(KVX_SFR_ ## _sfr, _val)
#define kvx_sfr_get(_sfr) __builtin_kvx_get(KVX_SFR_ ## _sfr)
+#define kvx_sfr_field_val(_val, _sfr, _field) \
+ (((_val) & KVX_SFR_ ## _sfr ## _ ## _field ## _MASK) \
+ >> KVX_SFR_ ## _sfr ## _ ## _field ## _SHIFT)
+
#endif /* _ASM_KVX_SFR_DEFS_H */