This is a continuation of this thread: http://www.spinics.net/lists/linux-usb/msg78189.html The prerequisite for providing the configfs interface for USB gadgets and all their users is converting them to the new function interface from Sebastian. This patch series serves the purpose stated above for mass storage, usb Ethernet and FunctionFS. @Felipe, @Sebastian: Converting the above mentioned functions to the new interface has already been a considerable effort, so could you please share your opinion? There has only been a very limited discussion, mainly regarding the naming. Other than that, are there any comments from you? * The plan for the mass storage conversion is as follows: - identify all users of mass storage (acm_ms, mass_storage, multi) - get rid of #including the storage_common.c file by using separate compilation - make f_mass_storage a separately compiled module with the new interface a) create a header file b) convert to the new function interface c) provide compatibility for the mass storage's users - convert the users of mass storage one by one to the new interface - remove the compatibility for old style mass storage users - merge separately compiled object files storage_common.o and f_mass_storage.o into one module (at this point there is no purpose in having a separate utiltiy module) * The plan for usb ethernet conversion is as follows: - identify all ethernet functions (ncm, eem, ecm, ecm subset, rndis) - identify all ethernet functions' users | ncm | cdc2 | ether | g_ffs | multi | nokia ========================================================= f_ncm | v | | | | | f_eem | | | v | | | f_ecm | | v | v | v | v | v f_subset | | | v | v | v | f_rndis | | | v | v | v | - for each identified function: a) convert to the new function inteface b) provide compatibility for function's users c) convert users one-by-one d) remove compatibility * The plan for FunctionFS conversion is as follows: - identify all FunctionFS users (f_fs, ccg) - make ccg not sensitive to changes in mainline - convert f_fs.c to the new function interface and provide compatibility layer - convert g_ffs.c to use the new interface - remove compatibility The series depends on Sebastian's patches found here: http://www.spinics.net/lists/linux-usb/msg78752.html http://www.spinics.net/lists/linux-usb/msg78733.html http://www.spinics.net/lists/linux-usb/msg78734.html It also depends on the patch: http://www.spinics.net/lists/stable/msg01591.html Revision summary: v3..v2: - changed the naming scheme for usb function modules, it is now usb_f_xxxx.ko - converted FunctionFS v1..v2: - introduced consistent naming scheme for usb function modules - converted usb ethernet functions: ncm, eem, ecm, ecm subset, rndis v1: - converted mass storage and users: acm_ms, mass_storage, multi Andrzej Pietrasiewicz (42): usb/gadget: use consistent naming scheme for usb function modules usb/gadget: create utility for mass_storage usb/gadget: allow not clearing the memory for struct fsg_common usb/gadget: create header file for f_mass_storage usb/gadget: convert f_mass_storage to new function interface with backward compatibility usb/gadget: convert acm_ms to new function interface usb/gadget: convert mass_storage to new function interface usb/gadget: convert multi to new function interface usb/gadget: f_mass_storage: remove compatibility layer usb/gadget: merge u_ms.ko with f_mass_storage_usb.ko into f_mass_storage_usb.ko usb/gadget: u_ether: convert into module usb/gadget: rndis: convert into module usb/gadget: f_ncm: convert to new function interface with backward compatibility usb/gadget: ncm: convert to new function interface usb/gadget: f_ncm: remove compatibility layer usb/gadget: f_eem: convert to new function interface with backward compatibility usb/gadget: ether: convert to new interface of f_eem usb/gadget: f_eem: remove compatibility layer usb/gadget: f_ecm: convert to new function interface with backward compatibility usb/gadget: cdc2: convert to new interface of f_ecm usb/gadget: ether: convert to new interface of f_ecm usb/gadget: g_ffs: convert to new interface of f_ecm usb/gadget: multi: convert to new interface of f_ecm usb/gadget: nokia: convert to new interface of f_ecm usb/gadget: f_ecm: remove compatibility layer usb/gadget: multi: Remove unused include usb/gadget: f_subset: convert to new function interface with backward compatibility usb/gadget: ether: convert to new interface of f_subset usb/gadget: g_ffs: convert to new interface of f_subset usb/gadget: f_subset: remove compatibility layer usb/gadget: f_rndis: convert to new function interface with backward compatibility usb/gadget: ether: convert to new interface of f_rndis usb/gadget: g_ffs: convert to new interface of f_rndis usb/gadget: multi: convert to new interface of f_rndis usb/gadget: f_rndis: remove compatibility layer usb/gadget: g_ffs: use consistent naming for config bind functions usb/gadget: merge f_rndis_usb.ko with u_rndis.ko into f_rndis_usb.ko staging/ccg: provide function prototypes locally usb/gadget: f_fs: provide function prototypes locally usb/gadget: f_fs: convert to new function interface with backward compatibility usb/gadget: g_ffs: convert to new interface of f_fs usb/gadget: f_fs: remove compatibility layer drivers/staging/ccg/f_fs.c | 29 +++- drivers/usb/gadget/Kconfig | 47 +++++ drivers/usb/gadget/Makefile | 22 ++- drivers/usb/gadget/acm_ms.c | 77 +++++---- drivers/usb/gadget/cdc2.c | 57 +++++-- drivers/usb/gadget/ether.c | 161 ++++++++++++++++-- drivers/usb/gadget/f_ecm.c | 108 +++++++----- drivers/usb/gadget/f_eem.c | 124 ++++++++------ drivers/usb/gadget/f_fs.c | 324 +++++++++-------------------------- drivers/usb/gadget/f_fs.h | 246 ++++++++++++++++++++++++++ drivers/usb/gadget/f_mass_storage.c | 286 +++++++++++-------------------- drivers/usb/gadget/f_mass_storage.h | 196 +++++++++++++++++++++ drivers/usb/gadget/f_ncm.c | 150 +++++++++------- drivers/usb/gadget/f_rndis.c | 129 +++++++++----- drivers/usb/gadget/f_subset.c | 101 +++++++----- drivers/usb/gadget/g_ffs.c | 266 ++++++++++++++++++++++++++-- drivers/usb/gadget/mass_storage.c | 122 +++++++++----- drivers/usb/gadget/multi.c | 150 +++++++++++++---- drivers/usb/gadget/ncm.c | 50 ++++-- drivers/usb/gadget/nokia.c | 51 +++++- drivers/usb/gadget/rndis.c | 16 ++ drivers/usb/gadget/rndis.h | 1 + drivers/usb/gadget/storage_common.c | 317 ++++++----------------------------- drivers/usb/gadget/storage_common.h | 208 ++++++++++++++++++++++ drivers/usb/gadget/u_ecm.h | 27 +++ drivers/usb/gadget/u_eem.h | 26 +++ drivers/usb/gadget/u_ether.c | 7 + drivers/usb/gadget/u_ether.h | 44 ----- drivers/usb/gadget/u_gether.h | 27 +++ drivers/usb/gadget/u_ncm.h | 27 +++ drivers/usb/gadget/u_rndis.h | 29 +++ include/linux/usb/functionfs.h | 36 ---- 32 files changed, 2264 insertions(+), 1197 deletions(-) create mode 100644 drivers/usb/gadget/f_fs.h create mode 100644 drivers/usb/gadget/f_mass_storage.h create mode 100644 drivers/usb/gadget/storage_common.h create mode 100644 drivers/usb/gadget/u_ecm.h create mode 100644 drivers/usb/gadget/u_eem.h create mode 100644 drivers/usb/gadget/u_gether.h create mode 100644 drivers/usb/gadget/u_ncm.h create mode 100644 drivers/usb/gadget/u_rndis.h delete mode 100644 include/linux/usb/functionfs.h -- 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