On 7/21/2016 8:23 PM, Michael Weiser wrote:
The stmmac driver does not take into account the processor may be big
endian when writing the DMA descriptors. This causes the ethernet
interface not to be initialised correctly when running a big-endian
kernel. Change the descriptors for DMA to use __le32 and ensure they are
suitably swapped before writing. Tested successfully on the
Cubieboard2.

Thx for the effort on big endian platform.

Signed-off-by: Michael Weiser <michael.wei...@gmx.de>
Cc: Giuseppe Cavallaro <peppe.cavall...@st.com>
Cc: Alexandre Torgue <alexandre.tor...@st.com>
Cc: netdev@vger.kernel.org
---
...

@@ -2880,14 +2876,17 @@ static void sysfs_display_ring(void *head, int size, 
int extend_desc,
                        x = *(u64 *) ep;
                        seq_printf(seq, "%d [0x%x]: 0x%x 0x%x 0x%x 0x%x\n",
                                   i, (unsigned int)virt_to_phys(ep),
-                                  ep->basic.des0, ep->basic.des1,
-                                  ep->basic.des2, ep->basic.des3);
-                       ep++;
+                                  le32_to_cpu(ep->basic.des0),
+                                  le32_to_cpu(ep->basic.des1),
+                                  le32_to_cpu(ep->basic.des2),
+                                  le32_to_cpu(ep->basic.des3));
+                       ep++);


there is a build problem here.

Pls fix it.


Peppe

Reply via email to