diff --git a/drivers/usbdev/Kconfig b/drivers/usbdev/Kconfig index f38475f42d5..2335a3f71c0 100644 --- a/drivers/usbdev/Kconfig +++ b/drivers/usbdev/Kconfig @@ -25,6 +25,12 @@ config USBDEV_DUALSPEED ---help--- Hardware handles high and full speed operation (USB 2.0) +config USBDEV_EPBUFFER_ALIGNMENT + int "The usbdev ep req bffer aligned bytes" + default 0 + ---help--- + The aligned bytes of usbdev ep req buffer + choice prompt "Select USB device powered" default USBDEV_SELFPOWERED diff --git a/drivers/usbdev/usbdev_req.c b/drivers/usbdev/usbdev_req.c index a5b3d7801f1..19652f24daa 100644 --- a/drivers/usbdev/usbdev_req.c +++ b/drivers/usbdev/usbdev_req.c @@ -47,7 +47,11 @@ # define EP_ALLOCBUFFER(ep,nb) (ep)->ops->allocbuffer(ep,nb) # define EP_FREEBUFFER(ep,buf) (ep)->ops->freebuffer(ep,buf) #else -# define EP_ALLOCBUFFER(ep,nb) kmm_malloc(nb) +# if CONFIG_USBDEV_EPBUFFER_ALIGNMENT != 0 +# define EP_ALLOCBUFFER(ep,nb) kmm_memalign(CONFIG_USBDEV_EPBUFFER_ALIGNMENT, nb) +# else +# define EP_ALLOCBUFFER(ep,nb) kmm_malloc(nb) +# endif # define EP_FREEBUFFER(ep,buf) kmm_free(buf) #endif