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?
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to