[U-Boot] [PATCH 1/2] USB: make usb_kbd obey USB DMA alignment requirements

Stephen Warren swarren at wwwdotorg.org
Mon Oct 22 23:59:43 CEST 2012


On 10/22/2012 03:39 PM, Allen Martin wrote:
> Change usb_kbd driver to obey alignment requirements for USB DMA on
> the buffer used for data transfer.  This is necessary for
> architectures that enable dcache and enable USB DMA.

> diff --git a/common/usb_kbd.c b/common/usb_kbd.c

>  struct usb_kbd_pdata {
> +	uint8_t		new[8];
> +	uint8_t		old[8];
> +
>  	uint32_t	repeat_delay;
>  
>  	uint32_t	usb_in_pointer;
>  	uint32_t	usb_out_pointer;
>  	uint8_t		usb_kbd_buffer[USB_KBD_BUFFER_LEN];
>  
> -	uint8_t		new[8];
> -	uint8_t		old[8];
> -
>  	uint8_t		flags;
> -};
> +} __aligned(USB_DMA_MINALIGN);

Surely you need to edit the malloc() call in usb_kbd_probe() instead of
adding __aligned to the type; does the alignment on the type really get
propagated into malloc(), or as custom code at the call-site somehow?


More information about the U-Boot mailing list