Skip to content

Commit 9b92535

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 91c3634 commit 9b92535

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
@@ -734,8 +734,6 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
734734
if (status == 0) {
735735
omap_writew(reg, UDC_TXDMA_CFG);
736736
/* EMIFF or SDRC */
737-
omap_set_dma_src_burst_mode(ep->lch,
738-
OMAP_DMA_DATA_BURST_4);
739737
omap_set_dma_src_data_pack(ep->lch, 1);
740738
/* TIPB */
741739
omap_set_dma_dest_params(ep->lch,
@@ -757,8 +755,6 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
757755
UDC_DATA_DMA,
758756
0, 0);
759757
/* EMIFF or SDRC */
760-
omap_set_dma_dest_burst_mode(ep->lch,
761-
OMAP_DMA_DATA_BURST_4);
762758
omap_set_dma_dest_data_pack(ep->lch, 1);
763759
}
764760
}

0 commit comments

Comments
 (0)