usb: gadget: f_mass_storage: create fsg_common_run_thread for use in fsg_common_init
fsg_common_init is a lengthy function. Factor a portion of it out. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Michal Nazarewicz <mina86@mina86.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
23682e3c78
commit
5de862d73b
2 changed files with 23 additions and 11 deletions
|
@ -2996,6 +2996,24 @@ void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn,
|
||||||
i);
|
i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int fsg_common_run_thread(struct fsg_common *common)
|
||||||
|
{
|
||||||
|
common->state = FSG_STATE_IDLE;
|
||||||
|
/* Tell the thread to start working */
|
||||||
|
common->thread_task =
|
||||||
|
kthread_create(fsg_main_thread, common, "file-storage");
|
||||||
|
if (IS_ERR(common->thread_task)) {
|
||||||
|
common->state = FSG_STATE_TERMINATED;
|
||||||
|
return PTR_ERR(common->thread_task);
|
||||||
|
}
|
||||||
|
|
||||||
|
DBG(common, "I/O thread pid: %d\n", task_pid_nr(common->thread_task));
|
||||||
|
|
||||||
|
wake_up_process(common->thread_task);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
struct fsg_common *fsg_common_init(struct fsg_common *common,
|
struct fsg_common *fsg_common_init(struct fsg_common *common,
|
||||||
struct usb_composite_dev *cdev,
|
struct usb_composite_dev *cdev,
|
||||||
struct fsg_config *cfg)
|
struct fsg_config *cfg)
|
||||||
|
@ -3032,21 +3050,13 @@ struct fsg_common *fsg_common_init(struct fsg_common *common,
|
||||||
|
|
||||||
fsg_common_set_inquiry_string(common, cfg->vendor_name,
|
fsg_common_set_inquiry_string(common, cfg->vendor_name,
|
||||||
cfg->product_name);
|
cfg->product_name);
|
||||||
/* Tell the thread to start working */
|
|
||||||
common->thread_task =
|
|
||||||
kthread_create(fsg_main_thread, common, "file-storage");
|
|
||||||
if (IS_ERR(common->thread_task)) {
|
|
||||||
rc = PTR_ERR(common->thread_task);
|
|
||||||
goto error_release;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Information */
|
/* Information */
|
||||||
INFO(common, FSG_DRIVER_DESC ", version: " FSG_DRIVER_VERSION "\n");
|
INFO(common, FSG_DRIVER_DESC ", version: " FSG_DRIVER_VERSION "\n");
|
||||||
INFO(common, "Number of LUNs=%d\n", common->nluns);
|
|
||||||
|
|
||||||
DBG(common, "I/O thread pid: %d\n", task_pid_nr(common->thread_task));
|
rc = fsg_common_run_thread(common);
|
||||||
|
if (rc)
|
||||||
wake_up_process(common->thread_task);
|
goto error_release;
|
||||||
|
|
||||||
return common;
|
return common;
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,8 @@ int fsg_common_create_luns(struct fsg_common *common, struct fsg_config *cfg);
|
||||||
void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn,
|
void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn,
|
||||||
const char *pn);
|
const char *pn);
|
||||||
|
|
||||||
|
int fsg_common_run_thread(struct fsg_common *common);
|
||||||
|
|
||||||
void fsg_config_from_params(struct fsg_config *cfg,
|
void fsg_config_from_params(struct fsg_config *cfg,
|
||||||
const struct fsg_module_parameters *params,
|
const struct fsg_module_parameters *params,
|
||||||
unsigned int fsg_num_buffers);
|
unsigned int fsg_num_buffers);
|
||||||
|
|
Loading…
Add table
Reference in a new issue