USB: Some cleanup prior to USB 3.0 interface addition
Some cleanup in usb framework, nothing much on feature side. Signed-off-by: Vikas C Sajjan <vikas.sajjan@samsung.com> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
This commit is contained in:
parent
ceb4972a8f
commit
605bd75af5
21
common/usb.c
21
common/usb.c
@ -348,6 +348,7 @@ static int usb_parse_config(struct usb_device *dev,
|
||||
struct usb_descriptor_header *head;
|
||||
int index, ifno, epno, curr_if_num;
|
||||
u16 ep_wMaxPacketSize;
|
||||
struct usb_interface *if_desc = NULL;
|
||||
|
||||
ifno = -1;
|
||||
epno = -1;
|
||||
@ -375,23 +376,27 @@ static int usb_parse_config(struct usb_device *dev,
|
||||
&buffer[index])->bInterfaceNumber != curr_if_num) {
|
||||
/* this is a new interface, copy new desc */
|
||||
ifno = dev->config.no_of_if;
|
||||
if_desc = &dev->config.if_desc[ifno];
|
||||
dev->config.no_of_if++;
|
||||
memcpy(&dev->config.if_desc[ifno],
|
||||
&buffer[index], buffer[index]);
|
||||
dev->config.if_desc[ifno].no_of_ep = 0;
|
||||
dev->config.if_desc[ifno].num_altsetting = 1;
|
||||
memcpy(if_desc, &buffer[index], buffer[index]);
|
||||
if_desc->no_of_ep = 0;
|
||||
if_desc->num_altsetting = 1;
|
||||
curr_if_num =
|
||||
dev->config.if_desc[ifno].desc.bInterfaceNumber;
|
||||
if_desc->desc.bInterfaceNumber;
|
||||
} else {
|
||||
/* found alternate setting for the interface */
|
||||
dev->config.if_desc[ifno].num_altsetting++;
|
||||
if (ifno >= 0) {
|
||||
if_desc = &dev->config.if_desc[ifno];
|
||||
if_desc->num_altsetting++;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case USB_DT_ENDPOINT:
|
||||
epno = dev->config.if_desc[ifno].no_of_ep;
|
||||
if_desc = &dev->config.if_desc[ifno];
|
||||
/* found an endpoint */
|
||||
dev->config.if_desc[ifno].no_of_ep++;
|
||||
memcpy(&dev->config.if_desc[ifno].ep_desc[epno],
|
||||
if_desc->no_of_ep++;
|
||||
memcpy(&if_desc->ep_desc[epno],
|
||||
&buffer[index], buffer[index]);
|
||||
ep_wMaxPacketSize = get_unaligned(&dev->config.\
|
||||
if_desc[ifno].\
|
||||
|
@ -269,9 +269,9 @@ int usb_stor_scan(int mode)
|
||||
lun++) {
|
||||
usb_dev_desc[usb_max_devs].lun = lun;
|
||||
if (usb_stor_get_info(dev, &usb_stor[start],
|
||||
&usb_dev_desc[usb_max_devs]) == 1) {
|
||||
usb_max_devs++;
|
||||
}
|
||||
&usb_dev_desc[usb_max_devs]) == 1) {
|
||||
usb_max_devs++;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* if storage device */
|
||||
@ -504,7 +504,7 @@ static int usb_stor_BBB_comdat(ccb *srb, struct us_data *us)
|
||||
dir_in = US_DIRECTION(srb->cmd[0]);
|
||||
|
||||
#ifdef BBB_COMDAT_TRACE
|
||||
printf("dir %d lun %d cmdlen %d cmd %p datalen %d pdata %p\n",
|
||||
printf("dir %d lun %d cmdlen %d cmd %p datalen %lu pdata %p\n",
|
||||
dir_in, srb->lun, srb->cmdlen, srb->cmd, srb->datalen,
|
||||
srb->pdata);
|
||||
if (srb->cmdlen) {
|
||||
@ -1209,6 +1209,7 @@ int usb_storage_probe(struct usb_device *dev, unsigned int ifnum,
|
||||
{
|
||||
struct usb_interface *iface;
|
||||
int i;
|
||||
struct usb_endpoint_descriptor *ep_desc;
|
||||
unsigned int flags = 0;
|
||||
|
||||
int protocol = 0;
|
||||
@ -1291,24 +1292,25 @@ int usb_storage_probe(struct usb_device *dev, unsigned int ifnum,
|
||||
* We will ignore any others.
|
||||
*/
|
||||
for (i = 0; i < iface->desc.bNumEndpoints; i++) {
|
||||
ep_desc = &iface->ep_desc[i];
|
||||
/* is it an BULK endpoint? */
|
||||
if ((iface->ep_desc[i].bmAttributes &
|
||||
if ((ep_desc->bmAttributes &
|
||||
USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK) {
|
||||
if (iface->ep_desc[i].bEndpointAddress & USB_DIR_IN)
|
||||
ss->ep_in = iface->ep_desc[i].bEndpointAddress &
|
||||
USB_ENDPOINT_NUMBER_MASK;
|
||||
if (ep_desc->bEndpointAddress & USB_DIR_IN)
|
||||
ss->ep_in = ep_desc->bEndpointAddress &
|
||||
USB_ENDPOINT_NUMBER_MASK;
|
||||
else
|
||||
ss->ep_out =
|
||||
iface->ep_desc[i].bEndpointAddress &
|
||||
ep_desc->bEndpointAddress &
|
||||
USB_ENDPOINT_NUMBER_MASK;
|
||||
}
|
||||
|
||||
/* is it an interrupt endpoint? */
|
||||
if ((iface->ep_desc[i].bmAttributes &
|
||||
USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT) {
|
||||
ss->ep_int = iface->ep_desc[i].bEndpointAddress &
|
||||
USB_ENDPOINT_NUMBER_MASK;
|
||||
ss->irqinterval = iface->ep_desc[i].bInterval;
|
||||
if ((ep_desc->bmAttributes &
|
||||
USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_INT) {
|
||||
ss->ep_int = ep_desc->bEndpointAddress &
|
||||
USB_ENDPOINT_NUMBER_MASK;
|
||||
ss->irqinterval = ep_desc->bInterval;
|
||||
}
|
||||
}
|
||||
debug("Endpoints In %d Out %d Int %d\n",
|
||||
|
@ -247,7 +247,7 @@
|
||||
#define HUB_CHAR_OCPM 0x0018
|
||||
|
||||
/*
|
||||
*Hub Status & Hub Change bit masks
|
||||
* Hub Status & Hub Change bit masks
|
||||
*/
|
||||
#define HUB_STATUS_LOCAL_POWER 0x0001
|
||||
#define HUB_STATUS_OVERCURRENT 0x0002
|
||||
|
Loading…
Reference in New Issue
Block a user