usb-linux: introduce a usb_linux_get_configuration function
The next patch in this series introduces multiple ways to get the configuration dependent upon usb_fs_type, it is cleaner to put this into its own function. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
0f5160d1ea
commit
71d71bbdeb
30
usb-linux.c
30
usb-linux.c
|
@ -775,13 +775,11 @@ static int usb_host_handle_packet(USBDevice *s, USBPacket *p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* returns 1 on problem encountered or 0 for success */
|
static int usb_linux_get_configuration(USBHostDevice *s)
|
||||||
static int usb_linux_update_endp_table(USBHostDevice *s)
|
|
||||||
{
|
{
|
||||||
uint8_t *descriptors;
|
uint8_t configuration;
|
||||||
uint8_t devep, type, configuration, alt_interface;
|
|
||||||
struct usb_ctrltransfer ct;
|
struct usb_ctrltransfer ct;
|
||||||
int interface, ret, length, i;
|
int ret;
|
||||||
|
|
||||||
ct.bRequestType = USB_DIR_IN;
|
ct.bRequestType = USB_DIR_IN;
|
||||||
ct.bRequest = USB_REQ_GET_CONFIGURATION;
|
ct.bRequest = USB_REQ_GET_CONFIGURATION;
|
||||||
|
@ -793,15 +791,31 @@ static int usb_linux_update_endp_table(USBHostDevice *s)
|
||||||
|
|
||||||
ret = ioctl(s->fd, USBDEVFS_CONTROL, &ct);
|
ret = ioctl(s->fd, USBDEVFS_CONTROL, &ct);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
perror("usb_linux_update_endp_table");
|
perror("usb_linux_get_configuration");
|
||||||
return 1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* in address state */
|
/* in address state */
|
||||||
if (configuration == 0) {
|
if (configuration == 0) {
|
||||||
return 1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return configuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* returns 1 on problem encountered or 0 for success */
|
||||||
|
static int usb_linux_update_endp_table(USBHostDevice *s)
|
||||||
|
{
|
||||||
|
uint8_t *descriptors;
|
||||||
|
uint8_t devep, type, configuration, alt_interface;
|
||||||
|
struct usb_ctrltransfer ct;
|
||||||
|
int interface, ret, length, i;
|
||||||
|
|
||||||
|
i = usb_linux_get_configuration(s);
|
||||||
|
if (i < 0)
|
||||||
|
return 1;
|
||||||
|
configuration = i;
|
||||||
|
|
||||||
/* get the desired configuration, interface, and endpoint descriptors
|
/* get the desired configuration, interface, and endpoint descriptors
|
||||||
* from device description */
|
* from device description */
|
||||||
descriptors = &s->descr[18];
|
descriptors = &s->descr[18];
|
||||||
|
|
Loading…
Reference in New Issue