Skip to content

Commit f9dd48b

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 127f021 commit f9dd48b

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
@@ -732,8 +732,6 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
732732
if (status == 0) {
733733
omap_writew(reg, UDC_TXDMA_CFG);
734734
/* EMIFF or SDRC */
735-
omap_set_dma_src_burst_mode(ep->lch,
736-
OMAP_DMA_DATA_BURST_4);
737735
omap_set_dma_src_data_pack(ep->lch, 1);
738736
/* TIPB */
739737
omap_set_dma_dest_params(ep->lch,
@@ -755,8 +753,6 @@ static void dma_channel_claim(struct omap_ep *ep, unsigned channel)
755753
UDC_DATA_DMA,
756754
0, 0);
757755
/* EMIFF or SDRC */
758-
omap_set_dma_dest_burst_mode(ep->lch,
759-
OMAP_DMA_DATA_BURST_4);
760756
omap_set_dma_dest_data_pack(ep->lch, 1);
761757
}
762758
}

0 commit comments

Comments
 (0)