@@ -2168,6 +2168,10 @@ unknown_cmnd:
return 0;
}
+int __weak do_extra_command(struct fsg_common *common)
+{
+ return -EINVAL;
+}
/*-------------------------------------------------------------------------*/
static int received_cbw(struct fsg_dev *fsg, struct fsg_buffhd *bh)
@@ -2540,8 +2544,10 @@ int fsg_main_thread(void *common_)
if (!exception_in_progress(common))
common->state = FSG_STATE_DATA_PHASE;
- if (do_scsi_command(common) || finish_reply(common))
+ if ((do_extra_command(common) && do_scsi_command(common)) ||
+ finish_reply(common)) {
continue;
+ }
if (!exception_in_progress(common))
common->state = FSG_STATE_STATUS_PHASE;
add do_extra_command to let people deal with customized command Signed-off-by: Eddie Cai <eddie.cai.linux@gmail.com> --- drivers/usb/gadget/f_mass_storage.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)