[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-usb-devel
Subject: Re: [linux-usb-devel] uhci error message
From: Johannes Erdfelt <johannes () erdfelt ! com>
Date: 2003-01-29 20:16:09
[Download RAW message or body]
On Wed, Jan 29, 2003, Oliver Kurth <oku@masqmail.cx> wrote:
> On Wed, Jan 29, 2003 at 11:44:16AM -0500, Johannes Erdfelt wrote:
> > On Wed, Jan 29, 2003, Oliver Kurth <oku@masqmail.cx> wrote:
> > > With my at76c503 driver, I get this error:
>
> > > This happens just after the usbdfu module (in at76c503 package) has
> > > downloaded the firmware, in the probe() function. I guess one reason
> > > might be that at that moment the device has changed its interfaces
> > > and this confuses uhci. It does not happen on another host with
> > > ohci. Haven't tried usb-uhci yet.
> > >
> > > Is this anything I have to worry about? Anything I can do in the driver?
> > >
> > > I looked at the relevant code of uhci_result_control() in uhci, but
> > > I do not understand it yet.
> >
> > It's not because it's getting confused. The UHCI driver is at a lower
> > layer than that.
>
> So low it can't get confused? ;-)
Pretty much. It just performs the transfers the higher layers ask it to.
Nothing changes at the lower layer because a configuration changed, etc.
It's all just bits to it.
> > When you say "changed its interfaces", what do you mean? That you had
> > switched alternate settings? You had switched configuration?
>
> I mean that the lsusb output differs: the interface class changes and
> it gets two more bulk endpoints. See here:
>
> before: (just after plugging in)
>
> Bus 001 Device 005: ID 0d5c:a002
> Language IDs: none (invalid length string descriptor bf; len=0)
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 254
> bDeviceSubClass 1
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x0d5c
> idProduct 0xa002
> bcdDevice 1.00
> iManufacturer 0
> iProduct 0
> iSerial 0
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 25
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0x80
> MaxPower 500mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 0
> bInterfaceClass 254
> bInterfaceSubClass 1
> bInterfaceProtocol 0
> iInterface 0
> unknown descriptor type: 07 21 01 13 05 00 04
> Language IDs: none (invalid length string descriptor bf; len=0)
>
>
> after the fw is loaded:
>
> Bus 001 Device 004: ID 0d5c:a002
> Language IDs: none (invalid length string descriptor bf; len=0)
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 254
> bDeviceSubClass 1
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x0d5c
> idProduct 0xa002
> bcdDevice 1.00
> iManufacturer 0
> iProduct 0
> iSerial 0
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 32
> bNumInterfaces 1
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0x80
> MaxPower 500mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 2
> bInterfaceClass 255 Vendor Specific Class
> bInterfaceSubClass 0
> bInterfaceProtocol 255
> iInterface 0
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x85 EP 5 IN
> bmAttributes 2
> Transfer Type Bulk
> Synch Type none
> wMaxPacketSize 64
> bInterval 0
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x02 EP 2 OUT
> bmAttributes 2
> Transfer Type Bulk
> Synch Type none
> wMaxPacketSize 64
> bInterval 0
> Language IDs: none (invalid length string descriptor bf; len=0)
>
> Too make it more clear, here is a diff:
[snip diff]
> Sorry for this long message. And, as I said, I do not know whether
> that really is the problem, I thought it might be. And no, I did
> not change the configuration. I do that later, after the error message.
> But I get the error message when the device has just been plugged in,
> so it does not know of any configuration change.
So after the you upload the firmware, it disconnects and then comes back
as a different device, right?
If so, the error you received isn't too surprising. The device
disappeared, there's nothing to communicate with anymore.
I'm not exactly sure why the core was still communicating however.
JE
-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic