[PATCH v4 0/8] usbgadget: add support for USB mass storage gadget

Ahmad Fatoum a.fatoum at pengutronix.de
Tue Jun 22 01:26:09 PDT 2021


v3 -> v4:
  - change bthreads to be scheduled like workqueues instead of pollers
  - change virtio input from bthread to poller
  - add useful bthread debug print

v2 -> v3:
  - rebase on v3 of the preparatory system partitions series
  - have usbgadget -S '' fallback to use $global.system.partitions
  - do file_list_detect_all at gadget instantiation time

v1 -> v2:

  - rebase on top of new bthread API
  - drop blocking fallback implementation; we now have bthreads
    everywhere
  - reuse $global.system.partitions instead of creating even
    more autostart variables
  - fix assert_command_context to actually do what the
    commit message said


Ahmad Fatoum (8):
  input: virtio: poll from poller, not bthread
  bthread: add debug print for scheduler context switches
  common: move workqueue handling from poller_call() to sched()
  common: bthread: schedule only in command context
  bthread: implement basic Linux-like completion API
  Documentation: devel: background-execution: update bthread docs
  usbgadget: refactor usbgadget_register to accept array
  usbgadget: add support for USB mass storage gadget

 Documentation/devel/background-execution.rst |   34 +-
 Documentation/user/usb.rst                   |    5 +
 commands/bthread.c                           |    5 +
 commands/usbgadget.c                         |   29 +-
 common/Kconfig                               |    5 +
 common/Makefile                              |    1 +
 common/bthread.c                             |    5 +-
 common/poller.c                              |   23 +-
 common/sched.c                               |   26 +
 common/usbgadget.c                           |   36 +-
 drivers/input/Kconfig                        |    3 +-
 drivers/input/virtio_input.c                 |   45 +-
 drivers/usb/gadget/Kconfig                   |   15 +-
 drivers/usb/gadget/Makefile                  |    1 +
 drivers/usb/gadget/f_mass_storage.c          | 2725 ++++++++++++++++++
 drivers/usb/gadget/multi.c                   |   36 +
 drivers/usb/gadget/storage_common.c          |  173 ++
 drivers/usb/gadget/storage_common.h          |  245 ++
 include/linux/completion.h                   |   55 +
 include/poller.h                             |    8 +-
 include/sched.h                              |   10 +-
 include/scsi.h                               |   12 +
 include/slice.h                              |    8 +-
 include/usb/gadget-multi.h                   |   21 +-
 include/usb/mass_storage.h                   |   28 +
 include/usb/storage.h                        |   87 +
 26 files changed, 3534 insertions(+), 107 deletions(-)
 create mode 100644 common/sched.c
 create mode 100644 drivers/usb/gadget/f_mass_storage.c
 create mode 100644 drivers/usb/gadget/storage_common.c
 create mode 100644 drivers/usb/gadget/storage_common.h
 create mode 100644 include/linux/completion.h
 create mode 100644 include/usb/mass_storage.h
 create mode 100644 include/usb/storage.h

-- 
2.29.2




More information about the barebox mailing list