mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-14 05:19:42 +00:00
DM USB: xHCI: support bulk and interrupt transfer for port mapper
Support USB mouse, USB keyboard and USB flash drive by enabling the USB bulk and interrupt transfer for port mapper. Change-Id: Ia202729e0cfb26fb44a6b278cf4306f2b0b6fa36 Signed-off-by: Wu, Xiaoguang <xiaoguang.wu@intel.com> Reviewed-by: Shuo Liu <shuo.a.liu@intel.com> Reviewed-by: Yu Wang <yu1.wang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
@@ -83,6 +83,30 @@ struct usb_dev {
|
||||
libusb_device_handle *handle;
|
||||
};
|
||||
|
||||
/*
|
||||
* The purpose to implement struct usb_dev_req is to adapt
|
||||
* struct usb_data_xfer to make a proper data format to talk
|
||||
* with libusb.
|
||||
*/
|
||||
struct usb_dev_req {
|
||||
struct usb_dev *udev;
|
||||
int in;
|
||||
int seq;
|
||||
/*
|
||||
* buffer could include data from multiple
|
||||
* usb_data_xfer_block, so here need some
|
||||
* data to record it.
|
||||
*/
|
||||
uint8_t *buffer;
|
||||
int buf_length;
|
||||
int blk_start;
|
||||
int blk_count;
|
||||
|
||||
struct usb_data_xfer *xfer;
|
||||
struct libusb_transfer *libusb_xfer;
|
||||
struct usb_data_xfer_block *setup_blk;
|
||||
};
|
||||
|
||||
/* callback type used by code from HCD layer */
|
||||
typedef int (*usb_dev_sys_cb)(void *hci_data, void *dev_data);
|
||||
|
||||
@@ -100,6 +124,8 @@ struct usb_dev_sys_ctx_info {
|
||||
*/
|
||||
usb_dev_sys_cb conn_cb;
|
||||
usb_dev_sys_cb disconn_cb;
|
||||
usb_dev_sys_cb notify_cb;
|
||||
usb_dev_sys_cb intr_cb;
|
||||
|
||||
/*
|
||||
* private data from HCD layer
|
||||
@@ -116,4 +142,5 @@ void usb_dev_deinit(void *pdata);
|
||||
int usb_dev_info(void *pdata, int type, void *value, int size);
|
||||
int usb_dev_request(void *pdata, struct usb_data_xfer *xfer);
|
||||
int usb_dev_reset(void *pdata);
|
||||
int usb_dev_data(void *pdata, struct usb_data_xfer *xfer, int dir, int epctx);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user