]> git.sur5r.net Git - u-boot/commitdiff
usb: xhci: Add input slot context in xhci_set_configuration()
authorBin Meng <bmeng.cn@gmail.com>
Wed, 19 Jul 2017 13:49:56 +0000 (21:49 +0800)
committerMarek Vasut <marex@denx.de>
Fri, 28 Jul 2017 21:34:17 +0000 (23:34 +0200)
A valid input slot context for a 'configure endpoint' command requires
the 'Context Entries' field to be initialized to the index of the last
valid endpoint context that is defined by the target configuration. We
set up the 'Context Entries' field, but we forget to include the input
slot context in the input control context 'Add Context flags' bitmap.
So xHC will simply ignore input slot context and continue using its own
which contains old information of the device.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
Tested-by: Stefan Roese <sr@denx.de>
drivers/usb/host/xhci.c

index bd8f4c43b4b246c61232fd2e1874f3c68cc48b4a..95a0fbab50cd0a5c3dbf749e67007545d0ffb1b0 100644 (file)
@@ -332,8 +332,8 @@ static int xhci_set_configuration(struct usb_device *udev)
        ifdesc = &udev->config.if_desc[0];
 
        ctrl_ctx = xhci_get_input_control_ctx(in_ctx);
-       /* Zero the input context control */
-       ctrl_ctx->add_flags = 0;
+       /* Initialize the input context control */
+       ctrl_ctx->add_flags = cpu_to_le32(SLOT_FLAG);
        ctrl_ctx->drop_flags = 0;
 
        /* EP_FLAG gives values 1 & 4 for EP1OUT and EP2IN */