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

Allen Martin amartin at nvidia.com
Wed Oct 24 19:24:20 CEST 2012


On Wed, Oct 24, 2012 at 12:31:40AM -0700, Marek Vasut wrote:
> Dear Allen Martin,
> 
> > 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.
> [...]
> 
> Good, now please fix the bug. I'm terribly unhappy seeing there is a bug that is 
> about to go unfixed.

I didn't say the bug will go unfixed, I've opened an issue in our
internal bug tracker so it doesn't go forgotten.  It's just a matter
of prioritization.  It's just not important to fix a corner case bug
in a driver that noone outside of NVIDIA can actually use when there
are major functionality holes and regressions (like your change to
serial_assign() that broke serial output on tegra).  I only work on
u-boot on the side, so I have to pick my battles carefully.

-Allen
-- 
nvpublic


More information about the U-Boot mailing list