On Mon, 2024-09-02 at 13:44 +0800, Mingyen Hsieh wrote: > > + EHT_GROUP(1, EHT_GI_08, BW_20), > + EHT_GROUP(2, EHT_GI_08, BW_20), > + EHT_GROUP(3, EHT_GI_08, BW_20), > + EHT_GROUP(4, EHT_GI_08, BW_20), > + EHT_GROUP(5, EHT_GI_08, BW_20), > + EHT_GROUP(6, EHT_GI_08, BW_20), > + EHT_GROUP(7, EHT_GI_08, BW_20), > + EHT_GROUP(8, EHT_GI_08, BW_20), > + EHT_GROUP(9, EHT_GI_08, BW_20), > + EHT_GROUP(10, EHT_GI_08, BW_20), > + EHT_GROUP(11, EHT_GI_08, BW_20), > + EHT_GROUP(12, EHT_GI_08, BW_20), > + EHT_GROUP(13, EHT_GI_08, BW_20), > + EHT_GROUP(14, EHT_GI_08, BW_20), > + EHT_GROUP(15, EHT_GI_08, BW_20), > + EHT_GROUP(16, EHT_GI_08, BW_20), This is really long and repetitive - maybe we can have a macro that does the 1..16, and gets the other two arguments? Then we only have 16 lines for the macro, and 16 invocations, rather than 256 new lines ... > - if (WARN_ON_ONCE((status->encoding != RX_ENC_HE && streams > 4) || > - (status->encoding == RX_ENC_HE && streams > 8))) > + if (WARN_ON_ONCE((status->encoding == RX_ENC_EHT && streams > 16) || > + (status->encoding == RX_ENC_HE && streams > 8) || > + (status->encoding < RX_ENC_HE && streams > 4))) However, you also seem to consistently assume that 16 streams are possible with EHT ... why?! That's not even supported by the spec, much less being practical... Fixing that would already halve the number of lines needed, though it might still be good to have nested macros. johannes