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++;
|
||||
|
||||
/* 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 */
|
||||
*to_u32_ptr++ = align_buffer;
|
||||
}
|
||||
|
@ -235,6 +242,12 @@ static void xemaclite_aligned_write(void *src_ptr, u32 *dest_ptr,
|
|||
for (; length > 0; length--)
|
||||
*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;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче