RE: [RFC] xHCI: keep track of ports being resumed and indicate in hub_status_data

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

 



> -----Original Message-----
> From: Sarah Sharp [mailto:sarah.a.sharp@xxxxxxxxxxxxxxx]
> Sent: Saturday, April 14, 2012 12:13 AM
> To: Andiry Xu
> Cc: linux-usb@xxxxxxxxxxxxxxx; Xu, Andiry; Alan Stern
> Subject: Re: [RFC] xHCI: keep track of ports being resumed and indicate in
> hub_status_data
> 
> On Sat, Apr 14, 2012 at 02:54:30AM +0800, Andiry Xu wrote:
> > This commit adds a bit-array to xhci bus_state for keeping track of
> >  which ports are undergoing a resume transition. If any of the bits
> >  are set when xhci_hub_status_data() is called, the routine will return
> >  a non-zero value even if no ports have any status changes pending.
> >  This will allow usbcore to handle races between root-hub suspend and
> >  port wakeup.
> 
> Hi Andiry,
> 
> Thanks for doing this!  The patch looks fine, but I have one question:
> 
> > --- a/drivers/usb/host/xhci.h
> > +++ b/drivers/usb/host/xhci.h
> > @@ -1362,6 +1362,8 @@ struct xhci_bus_state {
> >  	u32			suspended_ports;
> >  	u32			port_remote_wakeup;
> >  	unsigned long		resume_done[USB_MAXCHILDREN];
> > +	/* which ports have started to resume */
> > +	unsigned long		resuming_ports;
> 
> Is there a particular reason why you chose unsigned long for this when
> the other two bitmasks for port suspend states (suspended_ports and
> port_remote_wakeup) are u32?
> 

After double check, I found there is reason to use unsigned long.
set_bit/clear_bit requires a unsigned long pointer parameter. Passing
a u32 pointer to it causes compile warning, at least on x86 platrform.
So I think we should keep using unsigned long.

Thanks,
Andiry



--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux