676ea985c0
The ctucan driver defines types for its registers which are a union of a uint32_t with a struct with bitfields for the individual fields within that register. This is a bad idea, because bitfields aren't portable. The ctu_can_fd_regs.h header works around the most glaring of the portability issues by defining the fields in two different orders depending on the setting of the __LITTLE_ENDIAN_BITFIELD define. However, in ctucan_core.h this is unconditionally set to 1, which is wrong for big-endian hosts. Set it only if HOST_WORDS_BIGENDIAN is not set. There is no need for a "have we defined it already" guard, because the only place that should set it is ctucan_core.h, which has the usual double-inclusion guard. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Acked-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> Tested-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> Signed-off-by: Jason Wang <jasowang@redhat.com> |
||
---|---|---|
.. | ||
can_kvaser_pci.c | ||
can_mioe3680_pci.c | ||
can_pcm3680_pci.c | ||
can_sja1000.c | ||
can_sja1000.h | ||
ctu_can_fd_frame.h | ||
ctu_can_fd_regs.h | ||
ctucan_core.c | ||
ctucan_core.h | ||
ctucan_pci.c | ||
meson.build |