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

Allen Martin amartin at nvidia.com
Wed Oct 24 02:39:50 CEST 2012


On Tue, Oct 23, 2012 at 03:03:34PM -0700, Marek Vasut wrote:
> Dear Allen Martin,
> 
> > On Tue, Oct 23, 2012 at 09:51:06AM -0700, Stephen Warren wrote:
> > > On 10/22/2012 11:47 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.
> > > 
> > > The series,
> > > Tested-by: Stephen Warren <swarren at nvidia.com>
> > > 
> > > BTW, I tested tegra-kbc too, and that does indeed currently work (at
> > > least in my local dev branch based on u-boot/master).
> > 
> > Yes, I also tried on a seaboard with internal keyboard and it works,
> > although once the USB keyboard driver loads the internal keyboard
> > stops working.  I haven't tracked down why, but it seems like a bug I
> > can live with for now as seaboards with internal keyboards are pretty
> > rare these days, and how many keyboards do you need in u-boot anyway?
> 
> Good thing you pointed it out. Please let's not ignore a bug. How come it 
> happens? What happens if you have two usb keyboards connected?
> 

I'm pretty sure the USB keyboard driver doesn't support multiple
devices, I see this in drv_usb_kbd_init():

                /* We found a keyboard, check if it is already
                registered. */
                USB_KBD_PRINTF("USB KBD: found set up device.\n");
                old_dev = stdio_get_by_name(DEVNAME);
                if (old_dev) {
                        /* Already registered, just return ok. */
                        USB_KBD_PRINTF("USB KBD: is already
                registered.\n");
                        return 1;
                }

The bug is almost certainly inside the tegra kbd driver, which is why
I'm not terribly concerned about it.  The only boards that use that
driver are inside NVIDIA, and even those are rare.


> > :^)
> > :
> > > Note that patch 2 has a merge conflict with the following patch in
> > > u-boot-tegra/next, since I assume your series is based on u-boot/master
> > > not u-boot-tegra/next:
> > > 
> > > 799f182 ARM: tegra: use standard variables to define load addresses
> > > 
> > > It's pretty simple to resolve though.
> > 
> > Yes, I based it on u-boot/master, once we figure out what trees each
> > patch is destined for I'll rebase appropriately.
> 
> I pushed u-boot-usb/master today, can you check if it still applies ?

Yes, it still applies cleanly to u-boot-usb/master

> 
> Best regards,
> Marek Vasut

-Allen
-- 
nvpublic


More information about the U-Boot mailing list