usb_busdma: Add USB_NEED_BUSDMA_COHERENT_ALLOC

Some BSPs have a cache-coherent memory area, however, it should not be
used for the USB controller.
This commit is contained in:
Sebastian Huber 2020-04-14 15:55:33 +02:00 committed by Christian Mauderer
parent 0444b24bf9
commit bd7af5fcee
2 changed files with 9 additions and 0 deletions

View File

@ -584,7 +584,11 @@ usb_pc_alloc_mem(struct usb_page_cache *pc, struct usb_page *pg,
}
/* allocate memory */
if (bus_dmamem_alloc(
#if !defined(__rtems__) || USB_NEED_BUSDMA_COHERENT_ALLOC
utag->tag, &ptr, (BUS_DMA_WAITOK | BUS_DMA_COHERENT), &map)) {
#else /* __rtems__ */
utag->tag, &ptr, BUS_DMA_WAITOK, &map)) {
#endif /* __rtems__ */
goto error;
}
/* setup page cache */

View File

@ -1,4 +1,5 @@
#include <rtems/bsd/modules.h>
#include <bsp.h>
#define USB_HAVE_CONDVAR 1
@ -6,6 +7,10 @@
#define USB_HAVE_BUSDMA 1
#if !defined(LIBBSP_ARM_IMX_BSP_H) && !defined(LIBBSP_ARM_STM32H7_BSP_H)
#define USB_NEED_BUSDMA_COHERENT_ALLOC 1
#endif
#define USB_HAVE_COMPAT_LINUX 0
#define USB_HAVE_USER_IO 0