ath11k.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* ath11k: BigEndian platform support?
@ 2023-06-29  9:50 Alexander Wilhelm
  2023-07-11  8:49 ` Kalle Valo
  0 siblings, 1 reply; 2+ messages in thread
From: Alexander Wilhelm @ 2023-06-29  9:50 UTC (permalink / raw)
  To: Kalle Valo, ath11k

Hi kvalo,


I am trying to get the QCN9074 module to work on a BigEndian PowerPC 
platform. My question would be, has anyone done it yet? If not, what 
kind of effort would you estimate for porting or are there any firmware 
limitations?


Best regards

Alexander Wilhelm


-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: ath11k: BigEndian platform support?
  2023-06-29  9:50 ath11k: BigEndian platform support? Alexander Wilhelm
@ 2023-07-11  8:49 ` Kalle Valo
  0 siblings, 0 replies; 2+ messages in thread
From: Kalle Valo @ 2023-07-11  8:49 UTC (permalink / raw)
  To: Alexander Wilhelm; +Cc: ath11k

Alexander Wilhelm <alexander.wilhelm@westermo.com> writes:

> I am trying to get the QCN9074 module to work on a BigEndian PowerPC
> platform. My question would be, has anyone done it yet? If not, what
> kind of effort would you estimate for porting or are there any
> firmware limitations?

This is a good question. The short answer is that it _might_ work with
QCN9074 but AFAIK nobody has tested it and I'm not really optimistic.

The long answer is that the big endian support in ath11k is implemented
in a weird way which I regret big time. The idea is that the firmware
does the translation instead of ath11k driver with this flag:

/* Host software's Copy Engine configuration. */
#ifdef __BIG_ENDIAN
#define CE_ATTR_FLAGS CE_ATTR_BYTE_SWAP_DATA
#else
#define CE_ATTR_FLAGS 0
#endif

But later I was told that not all firmware branches actually support
this feature, sigh. To my knowledge QCA6390 and WCN6855 firmwares do not
support this CE_ATTR_BYTE_SWAP_DATA but I'm hoping QCN9074 firmware
would support it. Grep for BIG_ENDIAN to see more big endian specific
changes.

In ath12k the endian support was implemented in a proper way using
__le32 type family and cpu_to_le32() & co macros, but it's also
untested. It's on my todo list to convert ath11k to do the same but no
idea when I'm able to work on it. Patches very welcome.

Do let me know if you test ath11k on big endian, I'm very curious to
know the results.

-- 
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

-- 
ath11k mailing list
ath11k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath11k

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-07-11  8:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-29  9:50 ath11k: BigEndian platform support? Alexander Wilhelm
2023-07-11  8:49 ` Kalle Valo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).