Re: Question about struct usb_hub

"Felipe Balbi" <[email protected]>
Newsgroups gmane.linux.usb.devel
Message-ID <[email protected]>
Hi Allan,

let me get this same thread to ask you the following

On 7/3/07, Alan Stern <[email protected]> wrote:
> On Tue, 3 Jul 2007, jidong xiao wrote:
>
> > What's the difference between event_bits and change_bits?
> > I just cannot understand why we need two variables.
> >
> >
> >     188 struct usb_hub {
> >     ...
> >     205         unsigned long           event_bits[1];  /* status
> > change bitmask */
> >     206         unsigned long           change_bits[1]; /* ports with
> > logical connect
> >     207                                                         status change */
> >
> > Take following section for example,inside hub_events() sampled from
> > drivers/usb/core/hub.c:
> >
> >    2594                 /* deal with port status changes */
> >    2595                 for (i = 0; i < hub->descriptor->bNbrPorts; i++) {
> >    2596                         connect_change = test_bit(i, hub->change_bits);
> >    2597                         if (!test_and_clear_bit(i+1, hub->event_bits) &&
> >    2598                                         !connect_change)
> >    2599                                 continue;
> >
> > Why do we need to test changes_bits and then test event_bits?
>
> event_bits records which ports have their bits set in the hub's
> interrupt URB.  change_bits records the ports for which we want to
> force a disable and re-enumeration.

How could I force my usb host controller to re-enumerate everything
attached on the bus through userspace?? would it be some sort of
control message???
thanks

>
> Sometimes the core needs to act as though a device has disconnected
> even when it really hasn't.  That's what change_bits is for.
> event_bits, on the other hand, tells us about real connect and
> disconnect events.  So the driver has to check both bit-vectors.
>
> Alan Stern
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> [email protected]
> To unsubscribe, use the last form field at:
> https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
>


-- 
Best Regards,

Felipe Balbi
[email protected]

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.