On Mon, Oct 22, 2012 at 02:59:43PM -0700, Stephen Warren wrote: > 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?
Yes, you're right. I misread the code and thought it came from a static allocation. I got reassured when I added the change and the cache flush alignment warnings went away, but I guess these alignment things are always a crapshoot anyway. I'll fix, thanks for finding that. -Allen -- nvpublic _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot