[U-Boot] [PATCH 7/7] usb: eth: Fix for updated usb interface descriptor structure
Vivek Gautam
gautam.vivek at samsung.com
Wed Mar 27 10:29:03 CET 2013
Now usb interface structure doesn't contain the Ep descriptor directly,
in fact it contains a pointer to 'usb_ep_desc' structure which
contains the Ep descriptor.
So updating the usb-eth drivers accordingly.
Signed-off-by: Vivek Gautam <gautam.vivek at samsung.com>
---
drivers/usb/eth/asix.c | 14 ++++++++------
drivers/usb/eth/smsc95xx.c | 24 ++++++++++++------------
2 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/drivers/usb/eth/asix.c b/drivers/usb/eth/asix.c
index 75ec8f7..42e98f1 100644
--- a/drivers/usb/eth/asix.c
+++ b/drivers/usb/eth/asix.c
@@ -611,6 +611,7 @@ int asix_eth_probe(struct usb_device *dev, unsigned int ifnum,
{
struct usb_interface *iface;
struct usb_interface_descriptor *iface_desc;
+ struct usb_endpoint_descriptor *ep_desc;
int ep_in_found = 0, ep_out_found = 0;
int i;
@@ -652,10 +653,11 @@ int asix_eth_probe(struct usb_device *dev, unsigned int ifnum,
* int. We will ignore any others.
*/
for (i = 0; i < iface_desc->bNumEndpoints; i++) {
+ ep_desc = &iface->ep_desc[i].ep_desc;
/* is it an BULK endpoint? */
- if ((iface->ep_desc[i].bmAttributes &
+ if ((ep_desc->bmAttributes &
USB_ENDPOINT_XFERTYPE_MASK) == USB_ENDPOINT_XFER_BULK) {
- u8 ep_addr = iface->ep_desc[i].bEndpointAddress;
+ u8 ep_addr = ep_desc->bEndpointAddress;
if (ep_addr & USB_DIR_IN) {
if (!ep_in_found) {
ss->ep_in = ep_addr &
@@ -672,11 +674,11 @@ int asix_eth_probe(struct usb_device *dev, unsigned int ifnum,
}
/* is it an interrupt endpoint? */
- if ((iface->ep_desc[i].bmAttributes &
+ if ((ep_desc->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;
+ ss->ep_int = ep_desc->bEndpointAddress &
+ USB_ENDPOINT_NUMBER_MASK;
+ ss->irqinterval = ep_desc->bInterval;
}
}
debug("Endpoints In %d Out %d Int %d\n",
diff --git a/drivers/usb/eth/smsc95xx.c b/drivers/usb/eth/smsc95xx.c
index fd8f8a7..3f58c89 100644
--- a/drivers/usb/eth/smsc95xx.c
+++ b/drivers/usb/eth/smsc95xx.c
@@ -807,6 +807,7 @@ int smsc95xx_eth_probe(struct usb_device *dev, unsigned int ifnum,
{
struct usb_interface *iface;
struct usb_interface_descriptor *iface_desc;
+ struct usb_endpoint_descriptor *ep_desc;
int i;
/* let's examine the device now */
@@ -837,25 +838,24 @@ int smsc95xx_eth_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].ep_desc;
/* 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 &
- USB_ENDPOINT_NUMBER_MASK;
+ ss->ep_out = ep_desc->bEndpointAddress &
+ USB_ENDPOINT_NUMBER_MASK;
}
/* is it an interrupt endpoint? */
- if ((iface->ep_desc[i].bmAttributes &
+ if ((ep_desc->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;
+ ss->ep_int = ep_desc->bEndpointAddress &
+ USB_ENDPOINT_NUMBER_MASK;
+ ss->irqinterval = ep_desc->bInterval;
}
}
debug("Endpoints In %d Out %d Int %d\n",
--
1.7.6.5
More information about the U-Boot
mailing list