Skip to content

Commit 52a0cf7

Browse files
aakoskingregkh
authored andcommitted
USB: omap_udc: DMA: Don't enable burst 4 mode
commit 3f91484 upstream. Commit 6511108 ("USB: more omap_udc updates (dma and omap1710)") added setting for DMA burst 4 mode. But I think this should be undone for two reasons: - It breaks DMA on 15xx boards - transfers just silently stall. - On newer OMAP1 boards, like Nokia 770 (omap1710), there is no measurable performance impact when testing TCP throughput with g_ether with large 15000 byte MTU size. It's also worth noting that when the original change was made, the OMAP_DMA_DATA_BURST_4 handling in arch/arm/plat-omap/dma.c was broken, and actually resulted in the same as the OMAP_DMA_DATA_BURST_DIS i.e. burst disabled. This was fixed not until a couple kernel releases later in an unrelated commit 1a8bfa1 ("[ARM] 3142/1: OMAP 2/5: Update files common to omap1 and omap2"). So based on this it seems there was never really a very good reason to enable this burst mode in omap_udc, so remove it now to allow 15xx DMA to work again (it provides 2x throughput compared to PIO mode). Fixes: 6511108 ("[PATCH] USB: more omap_udc updates (dma and omap1710)") Cc: stable <stable@kernel.org> Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Link: https://patch.msgid.link/ad06qHLclWHeSGnV@darkstar.musicnaut.iki.fi Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 411f2f7 commit 52a0cf7

1 file changed

Lines changed: 0 additions & 4 deletions

File tree

drivers/usb/gadget/udc/omap_udc.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -733,8 +733,6 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
733733
if (status == 0) {
734734
omap_writew(reg, UDC_TXDMA_CFG);
735735
/* EMIFF or SDRC */
736-
omap_set_dma_src_burst_mode(ep->lch,
737-
OMAP_DMA_DATA_BURST_4);
738736
omap_set_dma_src_data_pack(ep->lch, 1);
739737
/* TIPB */
740738
omap_set_dma_dest_params(ep->lch,
@@ -756,8 +754,6 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
756754
UDC_DATA_DMA,
757755
0, 0);
758756
/* EMIFF or SDRC */
759-
omap_set_dma_dest_burst_mode(ep->lch,
760-
OMAP_DMA_DATA_BURST_4);
761757
omap_set_dma_dest_data_pack(ep->lch, 1);
762758
}
763759
}

0 commit comments

Comments
 (0)