composition switch design

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

 



Hi All,

We have a usb device which supports multiple usb functions. We would
like to support dynamic configuration based on user input. i.e We have
a array of product ids and each product id consists of different usb
functions. for example

product id A : mass storage

product id B: CDC-ECM

product id C: mass storage + CDC-ACM

We can compile composite driver as a DLKM (g_myusb.ko) which takes
product id as a module parameter. Based on product id we can prepare
configuration and the corresponding functions only will be active i.e
remaining function drivers bind will not be called. Every time user
wants to switch to a different composition, we reload the module with
a different product id as module parameter.

We want to extend the same functionality for statically compiled
composite driver as well. We can register sysfs handler function to
receive a product id module parameter. The default product id can be
passed via kernel command line. If nothing is passed, usb device will
not be enumerated till product id is passed from user.

sysfs_function(u16 pid)
{
   composite_driver_unregister(&previous);
   composite_driver_register(&new);
}

But gadget function driver bind and unbind methods are marked as
__init and __exit. Is it okay to remove these macros to support this
feature? Is there a better approach to achieve this functionality? Any
pointers on how different usb devices (mostly phones) support this
functionality?

Thanks in advance,
Sai
--
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