Google
  Web www.spinics.net

Re: Multiple USB Endpoints

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On Thu, 22 Nov 2007, Chris Frey wrote:

> On Fri, Nov 16, 2007 at 01:59:16PM -0500, Alan Stern wrote:
> > > On Fri, 16 Nov 2007, Martin Owens wrote:
> > > As you can see it needs to be put in the second mode anyway, but there
> > > is a third mode which is just the database stuff, without the mass
> > > storage device. I believe the existing barry project is attempting to
> > > claim all interfaces including the MSD one which is where it runs into
> > > problems.
> 
> Hi,
> 
> I'm the lead developer of the Barry project.
> 
> I think the modes Martin is talking about is that the Blackberry Pearl,
> and similar devices, can reboot itself and present 3 different
> product ID's.
> 
> The most useful of these product ID's is 0004, which presents two
> configurations: a Mass Storage, and a class 255 (the Database config).

You are mixing up "configuration" and "interface".  I think you mean 
"interface" here (configurations don't have classes but interfaces do).

> The problem is that usb_storage sees the Mass Storage configuration,
> and uses it.  When Barry wants to use the Database configuration,
> there's a conflict.

What's the conflict?

> > Okay, that seems straightforward enough.  The solution is (obviously) 
> > to make the barry project avoid trying to claim the mass-storage 
> > interface.
> > 
> > It shouldn't be hard to do.  You can tell which interface is 
> > mass-storage by checking whether the bInterfaceClass value is 0x08.  If 
> > it is, simply have the program skip over the interface.  The function 
> > call you need to avoid is usb_claim_interface().
> 
> Barry doesn't use the Mass Storage configuration at all.  It uses
> libusb to call set_configuration on the Database configuration, and then
> usb_claim_interface on that.  If I comment out the claim_interface
> call, I still get the error on set_configuration.

Now you're sounding even more confused.  Which are you talking about, 
configurations or interfaces?

You say the set_configuration call returns an error?  Have you tried
turning on the usbfs_snoop parameter for the usbcore module to see what
shows up in the kernel log?  Have you verified that the configuration
you're trying to install actually exists?

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
linux-usb-devel@xxxxxxxxxxxxxxxxxxxxx
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

[Home]     [Video for Linux]     [Photo]     [Yosemite Forum]     [Yosemite Photos]    [Video Projectors]     [PDAs]     [Hacking TiVo]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Devices]     [Big List of Linux Books]     [Free Dating]

  Powered by Linux