Re: [RFC 12/15] usb: Register second xHCI roothub.

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

 



On Wed, 1 Dec 2010, Sarah Sharp wrote:

> On Wed, Dec 01, 2010 at 03:56:00PM -0500, Alan Stern wrote:
> > On Wed, 1 Dec 2010, Alan Stern wrote:
> > 
> > > Add a bcdUSB field to the usb_bus structure (might as well make it
> > > host-endian since it won't get exposed outside usbcore).  This
> > > information really belongs there rather than in the driver->flags
> > > field, since xhci-hcd now provides two different kinds of buses, but
> > > removing it from the driver would mean changing a lot of existing code.
> > > 
> > > The new field can be initialized based on the driver's HCD_MASK bits,
> > > and xhci-hcd could adjust it as needed.  Then whereever hcd.c tests
> > > hcd->driver->flags & HCD_MASK, test hcd->self.bcdUSB instead.
> > 
> > You can also avoid making so many changes to usb_hcd_pci_probe() by 
> > registering your own probe routine in xhci-pci.c.  Have it call 
> > usb_hcd_pci_probe() twice.  You can add a new HCD_NO_RESOURCES flag 
> > bit, to prevent the various interrupt and memory resources from being 
> > allocated when the second hcd is registered.
> 
> I'll look into that.  But how would registering my own probe routine
> help to coordinate the allocation of only one bandwidth mutex?  It
> really seems like that needs to be in the core.

Have the core check for HCD_NO_RESOURCES.  If that flag is set, don't 
allocate or free the bandwidth mutex.  In your probe routine, copy the 
mutex pointer from one hcd to the other.

I admit, this amounts to a bunch of somewhat ad-hoc changes just to 
avoid changing the hcd-is-a-bus assumption.  But since that would end 
up being such a big change, this seems justified.

Alan Stern

--
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