Re: [PATCH 01/10] added media agnostic (MA) USB HCD driver

Greg KH
2014-11-05T22:08:10Z

On Wed, Nov 05, 2014 at 12:14:33PM -0800, sostalle wrote:
> On Mon, Nov 03, 2014 at 04:13:55PM -0800, Greg KH wrote:
> > On Mon, Nov 03, 2014 at 04:04:42PM -0800, steph wrote:
> > > On Mon, Nov 03, 2014 at 01:21:39PM -0800, Greg KH wrote:
> > > > On Mon, Nov 03, 2014 at 12:42:48PM -0800, Stephanie Wallick wrote:
> [snip]
> > > > > +static int mausb_hcd_init(void)
> > > > > +{
> > > > > + int ret;
> > > > > +
> > > > > + /* register HCD driver */
> > > > > + ret = platform_driver_register(&mausb_driver);
> > > >
> > > > Why is this a platform driver? How does this relate to platform
> > > > hardware?
> > > >
> > > The driver doesn't require platform resources. It looks like a host
> > > controller driver but communicates over the network instead of to
> > > a physical host controller. There is no MA USB-specific hardware.
> > >
> > > Should we use a struct device instead of a struct platform_device?
> >
> > Yes, please make it a "virtual" device.
> >
>
> Is it OK for our virtual host controller to use struct platform_device?
>
> The other virtual host controllers (usbip/vhci_hcd.c & gadget/udc/dummy_hcd.c)
> use the platform_device struct. Unless I am missing something, it doesn't look
> like the other virtual host controllers use platform resources.
>
> If it is not ok, is there a good example somewhere of a virtual non-platform
> device?

If your device is not really a platform device (i.e. no platform
resources), then just create a virtual device with a call to
device_create() and don't pass in a parent pointer. But you need to
create a class for it, which is a pain, but shouldn't be that hard.

Hope this helps,

greg k-h