]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
usb: gadget: printer: enqueue printer's response for setup request
authorAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Tue, 3 Mar 2015 09:52:05 +0000 (10:52 +0100)
committerSasha Levin <sasha.levin@oracle.com>
Sun, 17 May 2015 23:11:47 +0000 (19:11 -0400)
commit67c5b95cdb8dea2e60b783c79e63c952e443dfec
tree404ce01e3a87c3a57073d33ab99d6f77333a9956
parent43e8149d0401067293a8a5a8b85f4c34560e2a9e
usb: gadget: printer: enqueue printer's response for setup request

[ Upstream commit eb132ccbdec5df46e29c9814adf76075ce83576b ]

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.

Cc: <stable@vger.kernel.org> # v3.4+
Fixes: 2e87edf49227: "usb: gadget: make g_printer use composite"
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/usb/gadget/legacy/printer.c