Hi Ping-Ke, Hi David, On Sun, Jan 1, 2023 at 2:09 PM Ping-Ke Shih <pkshih@xxxxxxxxxxx> wrote: [...] > Yes, it should not use bit filed. Instead, use a __le16 for all fields, such as I think this can be done in a separate patch. My v2 of this patch has reduced these changes to a minimum, see [0] [...] > struct rtw8821ce_efuse { > ... > u8 data1; // offset 0x100 > __le16 data2; // offset 0x101-0x102 > ... > } __packed; > > Without __packed, compiler could has pad between data1 and data2, > and then get wrong result. My understanding is that this is the reason why we need __packed. So my idea for the next steps is: - I will send a v3 of my series but change the wording in the commit description so it only mentions padding (but dropping the re-ordering part) - maybe Ping-Ke or his team can send a patch to fix the endian/bit field problem in the PCIe eFuse structs - (I'll keep working on SDIO support) Does this make sense to both of you? Best regards, Martin [0] https://lore.kernel.org/linux-wireless/20221229124845.1155429-2-martin.blumenstingl@xxxxxxxxxxxxxx/