net: emaclite: add barriers to support Xilinx Zynq platform
This patch adds barriers at appropriate places to ensure the driver works on Xilinx Zynq ARM-based SoC platform. Signed-off-by: Srikanth Thokala <sthokal@xilinx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
243fedd5fa
Коммит
ec21b6b404
|
@ -220,6 +220,13 @@ static void xemaclite_aligned_write(void *src_ptr, u32 *dest_ptr,
|
||||||
*to_u16_ptr++ = *from_u16_ptr++;
|
*to_u16_ptr++ = *from_u16_ptr++;
|
||||||
*to_u16_ptr++ = *from_u16_ptr++;
|
*to_u16_ptr++ = *from_u16_ptr++;
|
||||||
|
|
||||||
|
/* This barrier resolves occasional issues seen around
|
||||||
|
* cases where the data is not properly flushed out
|
||||||
|
* from the processor store buffers to the destination
|
||||||
|
* memory locations.
|
||||||
|
*/
|
||||||
|
wmb();
|
||||||
|
|
||||||
/* Output a word */
|
/* Output a word */
|
||||||
*to_u32_ptr++ = align_buffer;
|
*to_u32_ptr++ = align_buffer;
|
||||||
}
|
}
|
||||||
|
@ -235,6 +242,12 @@ static void xemaclite_aligned_write(void *src_ptr, u32 *dest_ptr,
|
||||||
for (; length > 0; length--)
|
for (; length > 0; length--)
|
||||||
*to_u8_ptr++ = *from_u8_ptr++;
|
*to_u8_ptr++ = *from_u8_ptr++;
|
||||||
|
|
||||||
|
/* This barrier resolves occasional issues seen around
|
||||||
|
* cases where the data is not properly flushed out
|
||||||
|
* from the processor store buffers to the destination
|
||||||
|
* memory locations.
|
||||||
|
*/
|
||||||
|
wmb();
|
||||||
*to_u32_ptr = align_buffer;
|
*to_u32_ptr = align_buffer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче