Discussion:
[Linux-usb-users] device descriptor read/64, error -110
Midhun Agnihotram
2007-08-13 16:20:47 UTC
Permalink
Hi All,

We are have a development kit on which we are trying to run USB
host port. The drivers are from the vendor. The kernel recognizes the
USB host controller. But as soon as we insert a USB flash drive, the
kernel hangs with the following error:

usb 1-2: device descriptor read/64, error -110

I do not use the EHCI or UHCI driver. It is a custom driver given to
us by the vendor. I could not find any solution to the above error on
the net.

I am attaching the source code that I got from the vendor.

I would appreciate any help.

Thanks,
Midhun.

P.S.: I am not on the mailing list. Please cc my ID when replying. Thanks again.


Forwarded Conversation
Subject: device descriptor read/64, error -110
------------------------
From: Alan Stern <***@rowland.harvard.edu>
To: Midhun Agnihotram <***@gmail.com>
Cc: linux-usb-***@lists.sourceforge.net
Date: Mon, Aug 13, 2007 at 7:38 PM
Hi All,
We are have a development kit on which we are trying to run USB
host port. The drivers are from the vendor. The kernel recognizes the
USB host controller. But as soon as we insert a USB flash drive, the
usb 1-2: device descriptor read/64, error -110
I do not use the EHCI or UHCI driver. It is a custom driver given to
us by the vendor. I could not find any solution to the above error on
the net.
What does the error signify? Why does the kernel hang?
The error means the computer is unable to communicate with the flash
drive. There was no response to a Get-Device-Descriptor request within
the timeout limit.

The kernel hangs because your vendor's driver is buggy.
Any help would be appreciated.
It's hard to provide help without access to the source code.

Alan Stern


--------
From: Midhun Agnihotram <***@gmail.com>
To: Alan Stern <***@rowland.harvard.edu>
Cc: linux-usb-***@lists.sourceforge.net
Date: Mon, Aug 13, 2007 at 9:25 PM
It's hard to provide help without access to the source code.
Alan Stern
Is it fine if I mail the source code as an attachment?
Thanks,
Midhun.
--------
From: Midhun Agnihotram <***@gmail.com>
To: Alan Stern <***@rowland.harvard.edu>,
linux-usb-***@lists.sourceforge.net
Date: Mon, Aug 13, 2007 at 9:30 PM

Hi,
It's hard to provide help without access to the source code.
Is it fine if I send across the source code as an attachment?


--
Thanks,
Midhun.

--------
From: Alan Stern <***@rowland.harvard.edu>
To: Midhun Agnihotram <***@gmail.com>
Cc: linux-usb-***@lists.sourceforge.net
Date: Mon, Aug 13, 2007 at 9:42 PM
Hi,
It's hard to provide help without access to the source code.
Is it fine if I send across the source code as an attachment?
You can put the source code in the body of an email message or as an
attachment, or you can put the source code on a Web server and send the
URL in an email message.

However I suggest you do this on the linux-usb-devel list, since the
type of problem you're struggling with is more suited to developers
than to users.

Alan Stern

--------
David Brownell
2007-08-13 18:29:25 UTC
Permalink
Post by Midhun Agnihotram
Hi All,
We are have a development kit on which we are trying to run USB
host port. The drivers are from the vendor. The kernel recognizes the
USB host controller. But as soon as we insert a USB flash drive, the
usb 1-2: device descriptor read/64, error -110
Just a flash drive? Or -- *any* USB device? This happens
very early. I've seen similar problems if the transciever
is set up wrong ... e.g. it uses 4-wire signaling but you've
set it up for 6-wire, and so on.
Post by Midhun Agnihotram
I am attaching the source code that I got from the vendor.
Looks like they sent you a broken development snapshot. What's
that huge block of "#if 0/.../#endif code at the top, before the
copyright and normal #includes?

Does the vendor have any help to offer you? How well do they
say it should work? Can they report that it runs for a week
with all the tests listed in

http://www.linux-usb.org/usbtest/

which apply to host side drivers? With lockdep and memory
poisoning enabled?

- Dave

p.s. With code like the following, I can easily see how this
Post by Midhun Agnihotram
static int imx21_alloc_dmem(struct imx21 *imx21, int size)
{
    int offset = 0;
    imx21_dmem_area_t *area;
    imx21_dmem_area_t **p;
    imx21_dmem_area_t *tmp;
    spin_lock(imx21->lock);
    /* Round the size up */
    size += (~size + 1) & 0x3;
How about the traditional "size = (size + 3) & 3" ?
That "-size" looks needlessly fishy ...
Post by Midhun Agnihotram
    if (size > DMEM_SIZE) {
        return -ENOMEM;
Didn't release the lock. Of course, it *GOT* the lock
too early ... one should defer getting locks for as long
as practical. In this case there's no point in getting
it until the dmem_list needs to be scanned, since it
doesn't need to protect local variables ("size", "area")
from anything.
Post by Midhun Agnihotram
    }
    area = kmalloc(sizeof(imx21_dmem_area_t), GFP_ATOMIC);
    if ( area == NULL) {
        return -ENOMEM;
A second locking bug, and the routine hasn't really even
begun to do work yet!

Plus of course the style bugs: indents aren't purely TAB
characters, extra brackets in "if (...) return...", extra
space right above "if ( ", and so on.

Style bugs aren't necessarily a worry, although they do
hurt when asking for help from the the general community.
But in conjunction with obvious locking bugs they certainly
suggest that the driver hasn't yet had the *minimum* of
attention it needs before it's expected to work properly.

HCDs are, unfortunately, fairly complex animals. Being
able to notice serious locking bugs without even trying
makes me suspect this driver needs a *LOT* more work than
anyone without iMX21 hardware can provide.
Post by Midhun Agnihotram
    }
... more omitted.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2007-08-13 19:40:41 UTC
Permalink
Post by David Brownell
Post by Midhun Agnihotram
Hi All,
We are have a development kit on which we are trying to run USB
host port. The drivers are from the vendor. The kernel recognizes the
USB host controller. But as soon as we insert a USB flash drive, the
usb 1-2: device descriptor read/64, error -110
I'm not surprised the system gets hung up. The urb_dequeue method
doesn't do anything!
Post by David Brownell
Does the vendor have any help to offer you? How well do they
say it should work? Can they report that it runs for a week
with all the tests listed in
http://www.linux-usb.org/usbtest/
which apply to host side drivers? With lockdep and memory
poisoning enabled?
Good questions. With something like this, it really is up to the
vendor to make sure the driver works properly with their hardware.

This version of the source code is clearly preliminary and
experimental. It shouldn't be expected to work perfectly.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Midhun Agnihotram
2007-08-14 04:30:54 UTC
Permalink
Hi,
Post by David Brownell
Just a flash drive? Or -- *any* USB device? This happens
very early. I've seen similar problems if the transciever
is set up wrong ... e.g. it uses 4-wire signaling but you've
set it up for 6-wire, and so on.
I did not try it out - and am not able to try it out. The same
error now occurs as soon as the system boots and the whole system
hangs.
Post by David Brownell
Looks like they sent you a broken development snapshot. What's
that huge block of "#if 0/.../#endif code at the top, before the
copyright and normal #includes?
I have no idea about that. May be that we were supplied with the
experimental code.
Post by David Brownell
Does the vendor have any help to offer you? How well do they
say it should work? Can they report that it runs for a week
The vendor will help us if we pay for the support. But its a huge
cost which we cannot afford.
Post by David Brownell
I'm not surprised the system gets hung up. The urb_dequeue method
doesn't do anything!
This version of the source code is clearly preliminary and
experimental. It shouldn't be expected to work perfectly.
Hmm. I would like to fix the driver for myself. Can you please
provide me a pointer a similar USB driver? (I mean a driver written
with a similar style - If none, then the best USB driver.)

Thanks,
Midhun.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2007-08-14 14:46:19 UTC
Permalink
Post by Midhun Agnihotram
Post by Alan Stern
This version of the source code is clearly preliminary and
experimental. It shouldn't be expected to work perfectly.
Hmm. I would like to fix the driver for myself. Can you please
provide me a pointer a similar USB driver? (I mean a driver written
with a similar style - If none, then the best USB driver.)
The one most suited for what you want is probably the sl811 driver;
however I don't know how close a match it is to the imx21 hardware.
There may be out-of-tree drivers that would be better.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
David Brownell
2007-08-14 15:35:04 UTC
Permalink
Post by Alan Stern
Post by Midhun Agnihotram
Post by Alan Stern
This version of the source code is clearly preliminary and
experimental. It shouldn't be expected to work perfectly.
Hmm. I would like to fix the driver for myself. Can you please
provide me a pointer a similar USB driver? (I mean a driver written
with a similar style - If none, then the best USB driver.)
The one most suited for what you want is probably the sl811 driver;
however I don't know how close a match it is to the imx21 hardware.
Why do you say that? It's certainly the simplest (and I suspect the
easiest to understand!) but I don't think that would help much here.
(Except maybe for the "what is this supposed to do" learning curve.)

The iMX21 hardware seems OHCI-ish, modulo some OTG additions that
I'd expect are turned off in that code. So the real OHCI driver, or
maybe the isp116x code (OHCI-ish but likewise not real OHCI) would
probably offer more useful guidance.

- Dave


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Midhun Agnihotram
2007-08-16 11:39:12 UTC
Permalink
Hi All,
Post by David Brownell
I'd expect are turned off in that code. So the real OHCI driver, or
maybe the isp116x code (OHCI-ish but likewise not real OHCI) would
probably offer more useful guidance.
- Dave
I am now developing a USB driver for IMX21 based on the OHCI S3C2410
USB driver (since both are ARM based). I have made the changes in
ohci.h for the register's physical addresses (I could not map every
field - I did as many as I could map).

My USB hub has been detected by the kernel. And there are three
ports on the system - 1 USB host port and 2 USB device ports. The Hub
says that 0 ports have been detected.

hub 1-0:1.0: USB hub found
hub 1-0:1.0: 0 ports detected

I could trace out that USB ports information is got from
get_hub_descriptor method in hub.c. This sends a control message to
get the descriptor. Here is where it is finding zero ports.

What is this command? Isnt this command from the USB specification
and hence should be a standard? In that case I will not need to worry
about the command.

What does this do? Is this returning 0 ports due to mismatched
physical addresses? Where else could have this gone wrong?

Thanks,
Midhun.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2007-08-16 14:00:52 UTC
Permalink
Post by Midhun Agnihotram
I am now developing a USB driver for IMX21 based on the OHCI S3C2410
USB driver (since both are ARM based). I have made the changes in
ohci.h for the register's physical addresses (I could not map every
field - I did as many as I could map).
My USB hub has been detected by the kernel. And there are three
ports on the system - 1 USB host port and 2 USB device ports. The Hub
says that 0 ports have been detected.
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 0 ports detected
I could trace out that USB ports information is got from
get_hub_descriptor method in hub.c. This sends a control message to
get the descriptor. Here is where it is finding zero ports.
What is this command? Isnt this command from the USB specification
and hence should be a standard?
Yes.
Post by Midhun Agnihotram
In that case I will not need to worry
about the command.
Just the opposite: Because it is a standard, you _must_ support it!
Post by Midhun Agnihotram
What does this do? Is this returning 0 ports due to mismatched
physical addresses? Where else could have this gone wrong?
Look at ohci_hub_descriptor() in ohci-hub.c. The bNbrPorts field is
filled in from ohci->num_ports. If your driver doesn't set that field
correctly then nothing will work.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Midhun Agnihotram
2007-08-16 14:30:26 UTC
Permalink
Hey,
Post by Alan Stern
filled in from ohci->num_ports. If your driver doesn't set that field
correctly then nothing will work.
I have looked for ohci->num_ports in ohci-hub.c It seems it is
getting populated in ohci-hcd.c as

ohci->num_ports = roothub_a(ohci) & RH_A_NDP;
--
Thanks,
Midhun.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Midhun Agnihotram
2007-08-16 14:32:31 UTC
Permalink
Sorry for incomplete mail.
Post by Midhun Agnihotram
I have looked for ohci->num_ports in ohci-hub.c It seems it is
getting populated in ohci-hcd.c as
ohci->num_ports = roothub_a(ohci) & RH_A_NDP;
But I could not find definition for roothub_a(). RH_A_NDP is 0xFF
in my case. So what is this roothub_a() method?
--
Thanks,
Midhun.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2007-08-16 14:52:57 UTC
Permalink
Post by Midhun Agnihotram
Sorry for incomplete mail.
Post by Midhun Agnihotram
I have looked for ohci->num_ports in ohci-hub.c It seems it is
getting populated in ohci-hcd.c as
ohci->num_ports = roothub_a(ohci) & RH_A_NDP;
But I could not find definition for roothub_a(). RH_A_NDP is 0xFF
in my case. So what is this roothub_a() method?
It is defined in ohci.h.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Midhun Agnihotram
2007-08-16 15:29:56 UTC
Permalink
Hi,
I have gone through the function. It reads the root hub A register
and masks it with a hex for AMD. So the masking should not apply to
i.MX 21.
When I read the register on my own, it reads as 0. Then I tried to
print the address of the root hub A register by
&ohci->regs->roothub.a. This prints an address which is different than
the address in the ref manual of i.MX. So I might be reading from the
wrong address.
How do I make sure that the address is correct?

Thanks,
Midhun.
Post by Alan Stern
Post by Midhun Agnihotram
Sorry for incomplete mail.
Post by Midhun Agnihotram
I have looked for ohci->num_ports in ohci-hub.c It seems it is
getting populated in ohci-hcd.c as
ohci->num_ports = roothub_a(ohci) & RH_A_NDP;
But I could not find definition for roothub_a(). RH_A_NDP is 0xFF
in my case. So what is this roothub_a() method?
It is defined in ohci.h.
Alan Stern
--
Thanks,
Midhun.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
David Brownell
2007-08-16 17:04:17 UTC
Permalink
   I have gone through the function. It reads the root hub A register
and masks it with a hex for AMD. So the masking should not apply to
i.MX 21.
Right, you're not going to modify the OHCI driver, so whatever
code you provide will naturally not need quirks for any chips
from AMD or other vendors. It will be specific to the i.MX21 ...
   When I read the register on my own, it reads as 0. Then I tried to
print the address of the root hub A register by
&ohci->regs->roothub.a. This prints an address which is different than
the address in the ref manual of i.MX. So I might be reading from the
wrong address.
  How do I make sure that the address is correct?
Have your imx21-specific header file provide the right address in
the first place ...


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Midhun Agnihotram
2007-08-17 19:59:33 UTC
Permalink
Hi,

I have now implemented the hub descriptor for i.MX21. It now says
that recognizes three ports. But there is still a problem with the
mapping of the registers (or rather I feel so). Of all the registers
specified in ohci.h, I am not able to map the following bits to the
corresponding i.MX21 ones:

In HcControl (control) register masks
========================

#define OHCI_CTRL_PLE (1 << 2) /* periodic list enable */
#define OHCI_CTRL_IE (1 << 3) /* isochronous enable */
#define OHCI_CTRL_CLE (1 << 4) /* control list enable */
#define OHCI_CTRL_BLE (1 << 5) /* bulk list enable */
#define OHCI_CTRL_HCFS (3 << 6) /* host controller functional state */
#define OHCI_CTRL_IR (1 << 8) /* interrupt routing */
#define OHCI_CTRL_RWC (1 << 9) /* remote wakeup connected */


In HcCommandStatus (cmdstatus) register masks
==================================
#define OHCI_CLF (1 << 1) /* control list filled */
#define OHCI_BLF (1 << 2) /* bulk list filled */
#define OHCI_OCR (1 << 3) /* ownership change request */

In Masks used with interrupt registers:
==========================

#define OHCI_INTR_OC (1 << 30) /* ownership change */
#define OHCI_INTR_MIE (1 << 31) /* master interrupt enable */

What effect will any of these have on my USB functioning? As of now,
the hub and the ports are recognized when the kernel boots but when I
plug in a flash drive, nothing happens - I mean the device is not
recognized as such.


Thanks,
Midhun.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
David Brownell
2007-08-17 20:23:04 UTC
Permalink
Post by Midhun Agnihotram
Hi,
I have now implemented the hub descriptor for i.MX21. It now says
that recognizes three ports. But there is still a problem with the
mapping of the registers (or rather I feel so). Of all the registers
specified in ohci.h, I am not able to map the following bits to the
...
Well, as I said it's ** NOT REALLY OHCI ** so the OHCI code is only
a partial model for what i.MX21 would need. Philips (and now NXP)
have an annoying habit of taking standard USB register models and
then hacking them up so that existing code can't be used as-is.
Post by Midhun Agnihotram
What effect will any of these have on my USB functioning? As of now,
the hub and the ports are recognized when the kernel boots but when I
plug in a flash drive, nothing happens - I mean the device is not
recognized as such.
The next step after getting the root hub to behave is to get basic
control traffic working.

You have i.MX manuals and hardware, so you'll have to figure out how
to issue the various packets using the registers on that hardware.

- Dave

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Alan Stern
2007-08-17 21:15:57 UTC
Permalink
Post by David Brownell
Post by Midhun Agnihotram
What effect will any of these have on my USB functioning? As of now,
the hub and the ports are recognized when the kernel boots but when I
plug in a flash drive, nothing happens - I mean the device is not
recognized as such.
The next step after getting the root hub to behave is to get basic
control traffic working.
Is there even a port-change interrupt? Does the root hub get resumed?

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

David Brownell
2007-08-16 16:58:21 UTC
Permalink
Post by Midhun Agnihotram
Hi All,
Post by David Brownell
I'd expect are turned off in that code. So the real OHCI driver, or
maybe the isp116x code (OHCI-ish but likewise not real OHCI) would
probably offer more useful guidance.
- Dave
I am now developing a USB driver for IMX21 based on the OHCI S3C2410
USB driver (since both are ARM based). I have made the changes in
ohci.h for the register's physical addresses (I could not map every
field - I did as many as I could map).
Don't modify any part of the OHCI driver ... the imx21 controller
is *NOT OHCI* and you'd end up breaking code that a lot of folk
rely on ...
Post by Midhun Agnihotram
My USB hub has been detected by the kernel. And there are three
ports on the system - 1 USB host port and 2 USB device ports. The Hub
says that 0 ports have been detected.
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 0 ports detected
I could trace out that USB ports information is got from
get_hub_descriptor method in hub.c. This sends a control message to
get the descriptor. Here is where it is finding zero ports.
What is this command? Isnt this command from the USB specification
and hence should be a standard? In that case I will not need to worry
about the command.
Thing is, you don't have an actual hub device ... you're implementing
a "root hub" that response to the same API requests we make to real
hubs, but the messages never go out on the wire. So *YOU* are the one
who will implement the guts of get_hub_descriptor() for your hardware
root hub, according to the relevant bits of chapter 11 of the USB 2.0
specification.
Post by Midhun Agnihotram
What does this do? Is this returning 0 ports due to mismatched
physical addresses? Where else could have this gone wrong?
Your code returned the an invalid root hub descriptor.

- Dave

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
linux-usb-***@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
Loading...