Hello devs, I'm trying to bring up the ath12k driver on big endian PPC platform. Currently I'm stuck and need your help. In the function _ath12k_dp_rx_process_ inside _dp_rx.c_ the _desc_va_ is extraced as the following: desc_va = ((u64)le32_to_cpu(desc->buf_va_hi) << 32 | le32_to_cpu(desc->buf_va_lo)); desc_info = (struct ath12k_rx_desc_info *)((unsigned long)desc_va); As you can see the _buf_va_hi_ and _buf_va_lo_ are swapped on big endian since the data type is __le32. However that swap leads to kernel panic on my machine. The entire _struct hal_reo_dest_ring_ consists only of little endian member values and it seems to be correct. Therefore I assume the values are already set wrong earlier, but I cannot find a place in a source code where they are set. Can someone explain to me how and where those values are set, so I can fix the problem? Best regards Alexander Wilhelm