diff options
| author | Mark Brown <broonie@kernel.org> | 2025-01-07 23:28:07 +0000 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2025-01-07 23:28:07 +0000 |
| commit | d406b354df909155ff0122acf80f3bc7410fa27e (patch) | |
| tree | 0cd68849c0c36fcf9e48ba71a9c0464b65297082 /tools/include/uapi/linux/stddef.h | |
| parent | eb708cd631a8dca17ff004ccc39bbeb096c1db22 (diff) | |
| parent | 5bc493bf0c37c157bf2eb364e55a1c6f8bc43a69 (diff) | |
Expand SoundWire MBQ register map support
Merge series from Charles Keepax <ckeepax@opensource.cirrus.com>:
The current SDCA MBQ (Multi-Byte Quantities) register map only
supports 16-bit types, add support for more sizes and then update
the rt722 driver to use the new support. We also add support for
the deferring feature of MBQs to allow hardware to indicate it is
not currently ready to service a read/write.
Afraid I don't have hardware to test the rt722 change so it is
only build tested, but I thought it good to include a change to
demonstrate the new features in use.
Diffstat (limited to 'tools/include/uapi/linux/stddef.h')
| -rw-r--r-- | tools/include/uapi/linux/stddef.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/include/uapi/linux/stddef.h b/tools/include/uapi/linux/stddef.h index bb6ea517efb5..c53cde425406 100644 --- a/tools/include/uapi/linux/stddef.h +++ b/tools/include/uapi/linux/stddef.h @@ -8,6 +8,13 @@ #define __always_inline __inline__ #endif +/* Not all C++ standards support type declarations inside an anonymous union */ +#ifndef __cplusplus +#define __struct_group_tag(TAG) TAG +#else +#define __struct_group_tag(TAG) +#endif + /** * __struct_group() - Create a mirrored named and anonyomous struct * @@ -20,14 +27,14 @@ * and size: one anonymous and one named. The former's members can be used * normally without sub-struct naming, and the latter can be used to * reason about the start, end, and size of the group of struct members. - * The named struct can also be explicitly tagged for layer reuse, as well - * as both having struct attributes appended. + * The named struct can also be explicitly tagged for layer reuse (C only), + * as well as both having struct attributes appended. */ #define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \ union { \ struct { MEMBERS } ATTRS; \ - struct TAG { MEMBERS } ATTRS NAME; \ - } + struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; \ + } ATTRS /** * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union |
