usb: sandbox: Add support for interrupt operations
Allow USB device emulation to support interrupt URBs so that we can use USB keyboards with sandbox. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -87,6 +87,24 @@ static int sandbox_submit_bulk(struct udevice *bus, struct usb_device *udev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int sandbox_submit_int(struct udevice *bus, struct usb_device *udev,
|
||||
unsigned long pipe, void *buffer, int length,
|
||||
int interval)
|
||||
{
|
||||
struct udevice *emul;
|
||||
int ret;
|
||||
|
||||
/* Just use child of dev as emulator? */
|
||||
debug("%s: bus=%s\n", __func__, bus->name);
|
||||
ret = usb_emul_find(bus, pipe, &emul);
|
||||
usbmon_trace(bus, pipe, NULL, emul);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = usb_emul_int(emul, udev, pipe, buffer, length, interval);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int sandbox_alloc_device(struct udevice *dev, struct usb_device *udev)
|
||||
{
|
||||
return 0;
|
||||
@@ -100,6 +118,7 @@ static int sandbox_usb_probe(struct udevice *dev)
|
||||
static const struct dm_usb_ops sandbox_usb_ops = {
|
||||
.control = sandbox_submit_control,
|
||||
.bulk = sandbox_submit_bulk,
|
||||
.interrupt = sandbox_submit_int,
|
||||
.alloc_device = sandbox_alloc_device,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user