@@ -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",
@@ -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",
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@samsung.com> --- drivers/usb/eth/asix.c | 14 ++++++++------ drivers/usb/eth/smsc95xx.c | 24 ++++++++++++------------ 2 files changed, 20 insertions(+), 18 deletions(-)