]> git.baikalelectronics.ru Git - uboot.git/commit
net: dwc_eth_qos: Add support for bulk RX descriptor cleaning
authorMarek Vasut <marex@denx.de>
Sun, 9 Oct 2022 15:51:46 +0000 (17:51 +0200)
committerTom Rini <trini@konsulko.com>
Mon, 28 Nov 2022 15:25:17 +0000 (10:25 -0500)
commit7867b785c373c345790a9c870a196fefa08cb750
tree9d6796232f7930be36486f2d04f471f5d1d378fb
parentb1f088b0fbc3113a2abd1a4cf43f74f2cac661d8
net: dwc_eth_qos: Add support for bulk RX descriptor cleaning

Add new desc_per_cacheline property which lets a platform run RX descriptor
cleanup after every power-of-2 - 1 received packets instead of every packet.
This is useful on platforms where (axi_bus_width EQOS_AXI_WIDTH_n * DMA DSL
inter-descriptor word skip count + DMA descriptor size) is less than cache
line size, which necessitates packing multiple DMA descriptors into single
cache line.

In case of TX descriptors, this is not a problem, since the driver always
does synchronous TX, i.e. the TX descriptor is always written, flushed and
polled for completion in eqos_send().

In case of RX descriptors, it is necessary to update their status in bulk,
i.e. after the entire cache line worth of RX descriptors has been used up
to receive data.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Reviewed-by: Ramon Fried <rfried.dev@gmail.com>
drivers/net/dwc_eth_qos.c
drivers/net/dwc_eth_qos.h