On Monday, 18 November 2019 00:34:01 CET Hauke Mehrtens wrote: > > +--- a/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c > > ++++ b/drivers/net/wireless/ath/ath9k/ath9k_pci_owl_loader.c > > +@@ -84,6 +84,10 @@ > > + val = swahb32(val); > > + } > > + > > ++#ifdef CONFIG_LANTIQ > > ++ val = swab32(val); > > ++#endif > > Lantiq is big endian, are there other big endian system which do not > need this byte swap?
>From what I vaguely remember (I know that Mathias explained it to me once.), that special hack was necessary due to Lantiq's pci(e?)-host silicon doing byteswaps just for 32-bit writes. The only other system that uses the owl-loader is ath79/ar71xx. This is a big-endian MIPS as well that didn't need the swap. (That said, I don't remember what was the reason for going with __raw_writel rather than "iowrite32" though. At least ath9k is using it for the pci access just fine everywhere.) Anyone fancy checking out lantiq and ath79 devices with a AR92XX without the swap above and the __raw_writel replaced by iowrite32? > > ++ > > + __raw_writel(val, mem + reg); > > + usleep_range(100, 120); > > + } Regards, Christian _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
