[PATCH 2/3] stmmac: change dma descriptors to __le32
Giuseppe CAVALLARO
peppe.cavallaro at st.com
Tue Jul 26 05:13:45 PDT 2016
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.weiser at gmx.de>
> Cc: Giuseppe Cavallaro <peppe.cavallaro at st.com>
> Cc: Alexandre Torgue <alexandre.torgue at st.com>
> Cc: netdev at 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
More information about the linux-arm-kernel
mailing list