08ff54dc5b
This driver does not use DMA at the moment, so some care is needed to prevent TX FIFO underruns and RX FIFO overflows. Several improvements are done in oder to minimize chances of those. First, the interrupt handling is moved to a filter to minimize latency. Second, FIFO trigger thresholds are configured for both FIFOs. The TX FIFO threshold is set to 3/4-th of its size and the RX FIFO threshold is set to 1/4-th of its size. The interrupt conditions are changed from the empty FIFO and full FIFO for the TX and RX correspondingly to going below and above the thresholds. While here I renamed AW_SPI_IER_RF_ERQ to AW_SPI_IER_RF_RDY which is closer to what the documentation uses, RF_RDY_INT_EN in the interrupt control register and RX_RDY in the interrupt status register. Reviewed by: manu MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D33558 |
||
---|---|---|
.. | ||
a10 | ||
a13 | ||
a20 | ||
a31 | ||
a33 | ||
a64 | ||
a83t | ||
clkng | ||
h3 | ||
h6 | ||
a10_ahci.c | ||
a10_codec.c | ||
a10_dmac.c | ||
a10_dmac.h | ||
a10_fb.c | ||
a10_hdmi.c | ||
a10_hdmiaudio.c | ||
a10_sramc.c | ||
a10_sramc.h | ||
a10_timer.c | ||
a31_dmac.c | ||
a33_codec.c | ||
allwinner_pinctrl.h | ||
aw_ccu.c | ||
aw_cir.c | ||
aw_dwc3.c | ||
aw_gmacclk.c | ||
aw_gpio.c | ||
aw_i2s.c | ||
aw_if_dwc.c | ||
aw_machdep.c | ||
aw_machdep.h | ||
aw_mmc.c | ||
aw_mmc.h | ||
aw_mp.c | ||
aw_mp.h | ||
aw_nmi.c | ||
aw_pwm.c | ||
aw_r_intc.c | ||
aw_reset.c | ||
aw_rsb.c | ||
aw_rtc.c | ||
aw_sid.c | ||
aw_sid.h | ||
aw_spi.c | ||
aw_syscon.c | ||
aw_thermal.c | ||
aw_ts.c | ||
aw_usb3phy.c | ||
aw_usbphy.c | ||
aw_wdog.c | ||
aw_wdog.h | ||
axp81x.c | ||
axp209.c | ||
axp209reg.h | ||
files.allwinner | ||
files.allwinner_up | ||
if_awg.c | ||
if_awgreg.h | ||
if_emac.c | ||
if_emacreg.h | ||
std.allwinner | ||
std.allwinner_up | ||
sunxi_dma_if.m |