| 1 | /* ISA version encoding in bits 0-6 (7 bits) */ |
| 2 | #define HWCAP_HEXAGON_ISA_MASK	0x7F	/* ISA version mask */ |
| 3 | |
| 4 | /* ISA version enumeration values */ |
| 5 | #define HWCAP_HEXAGON_ISA_V2	1	/* Hexagon V2 */ |
| 6 | #define HWCAP_HEXAGON_ISA_V3	2	/* Hexagon V3 */ |
| 7 | #define HWCAP_HEXAGON_ISA_V4	3	/* Hexagon V4 */ |
| 8 | #define HWCAP_HEXAGON_ISA_V5	4	/* Hexagon V5 */ |
| 9 | #define HWCAP_HEXAGON_ISA_V55	5	/* Hexagon V55 */ |
| 10 | #define HWCAP_HEXAGON_ISA_V60	6	/* Hexagon V60 */ |
| 11 | #define HWCAP_HEXAGON_ISA_V62	7	/* Hexagon V62 */ |
| 12 | #define HWCAP_HEXAGON_ISA_V65	8	/* Hexagon V65 */ |
| 13 | #define HWCAP_HEXAGON_ISA_V66	9	/* Hexagon V66 */ |
| 14 | #define HWCAP_HEXAGON_ISA_V67	10	/* Hexagon V67 */ |
| 15 | #define HWCAP_HEXAGON_ISA_V68	11	/* Hexagon V68 */ |
| 16 | #define HWCAP_HEXAGON_ISA_V69	12	/* Hexagon V69 */ |
| 17 | #define HWCAP_HEXAGON_ISA_V71	13	/* Hexagon V71 */ |
| 18 | #define HWCAP_HEXAGON_ISA_V73	14	/* Hexagon V73 */ |
| 19 | #define HWCAP_HEXAGON_ISA_V79	15	/* Hexagon V79 */ |
| 20 | |
| 21 | /* Essential feature flags */ |
| 22 | #define HWCAP_HEXAGON_HVX		(1 << 7)	/* HVX (Hexagon Vector eXtensions) */ |
| 23 | #define HWCAP_HEXAGON_CABAC		(1 << 8)	/* CABAC acceleration */ |
| 24 | #define HWCAP_HEXAGON_HVX_LENGTH_128B	(1 << 9)	/* HVX 128-byte vector length */ |
| 25 | #define HWCAP_HEXAGON_HVX_IEEE_FP	(1 << 10)	/* HVX IEEE floating point */ |
| 26 | #define HWCAP_HEXAGON_AUDIO		(1 << 11)	/* Audio ISA extensions */ |
| 27 | |
| 28 | /* Utility macros for userspace applications */ |
| 29 | #define HWCAP_HEXAGON_GET_ISA(hwcap)		((hwcap) & HWCAP_HEXAGON_ISA_MASK) |
| 30 | #define HWCAP_HEXAGON_IS_ISA(hwcap, version)	(HWCAP_HEXAGON_GET_ISA(hwcap) == (version)) |
| 31 | #define HWCAP_HEXAGON_HAS_ISA(hwcap, version)	(HWCAP_HEXAGON_GET_ISA(hwcap) >= (version)) |