Re: [PATCH] usb: chipidea: reuse the platform_data to store the ci info

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

 



On Fri, 14 Aug 2015, Felipe Balbi wrote:

> > That's not quite what I had in mind.  I was thinking of something more 
> > like this:
> > 
> > 		Platform device ---- drvdata ----> struct usb_pointers
> > 			|
> > 			|
> > 		|-------|-------|
> > 		|	|	|
> > 	      gadget   hcd     otg
> > 
> > where struct usb_pointers (maybe you can think of a better name) looks 
> > like this:
> > 
> > struct usb_pointers {
> > 	struct usb_hcd		*hcd;
> > 	struct usb_gadget	*gadget;
> > 	struct usb_otg		*otg;
> > };
> > 
> > If you want, you can use your IP Core device in place of my platform
> > device.  All that matters is that the parent device of the root hub
> > (for hosts) or gadget (for peripherals) should store the address of a 
> > usb_pointers structure in its drvdata.
> 
> that looks pretty clean to me, Alan. Wonder how that looks after
> actually implementing it.

Implementing it will take a fair amount of work, because all of the
existing UDC and HC drivers will have to be changed.  Probably a bunch 
of OTG drivers too, but I'm not familiar with them.

The concept is simple, though.  A little new code to allocate and 
deallocate these usb_pointer structures can be added to 
common/common.c.  (I'd _really_ like to find a better name!)

Or maybe we could use a simpler approach: Always allocate a usb_otg 
structure (even if the hardware doesn't support OTG) and make the 
platform driver's drvdata point to it.  Since struct usb_otg already 
contains pointers to a usb_bus (should that really be usb_hcd?) and a 
usb_gadget, we'd be all set.

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