• Andrzej Pietrasiewicz's avatar
    usb: gadget: printer: enqueue printer's response for setup request · 0ff72fcd
    Andrzej Pietrasiewicz authored
    commit eb132ccb upstream.
    
    Function-specific setup requests should be handled in such a way, that
    apart from filling in the data buffer, the requests are also actually
    enqueued: if function-specific setup is called from composte_setup(),
    the "usb_ep_queue()" block of code in composite_setup() is skipped.
    
    The printer function lacks this part and it results in e.g. get device id
    requests failing: the host expects some response, the device prepares it
    but does not equeue it for sending to the host, so the host finally asserts
    timeout.
    
    This patch adds enqueueing the prepared responses.
    
    Fixes: 2e87edf4: "usb: gadget: make g_printer use composite"
    Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
    Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
    [ luis: backported to 3.16:
      - file rename: drivers/usb/gadget/legacy/printer.c ->
        drivers/usb/gadget/printer.c ]
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    0ff72fcd
printer.c 33.3 KB